Algoritma Genetika dalam Komputasi

Hai hai kawan-kawan blogger, kali ini kita akan bicara dikit tentang GA. Artikel ini dipersembahkan khusus buat teman saya yang sekarang ambil studi Master Tambahan di Warsaw, Polandia :D. Semoga bermanfaat :))


 source : www.graphics.com
 Algoritma genetika adalah salah satu contoh algoritma evolusi. Algoritma ini sangat akrab untuk digunakan dalam masalah optimasi. Inti dari algoritma ini adalah mencari solusi optimal dalam suatu permasalahan. Permasalahan yang dimaksud bisa mencakup masah diskrit (e.g. TSP) atau continou (e.g. maksimasi fungsi). 

Dari namanya kita sudah bisa menebak bahwa algoritma genetika disadur dari konsep genetika yang bercerita tentang kromosom. Konsep yang dimaksud adalah bagaimana sebuah kromosom berpindah silang dan bermutasi. Well, seperti itulah sekilas tentang Algoritma Genetika a.k.a GA.


Secara mudah, prosedur GA dapat dilihat pada diagram berikut:
Prosedur Algoritma Genetika

Metode ini dijalankan secara bertahap sebagai berikut:

1. Membangkitkan Populasi
Populasi yang dimaksud adalah sekumpulan solusi permasalahan yang fisibel. Solusi disini sudah harus dalam bentuk kode-kode yang siap diolah. Kriteria solusi sangat bergantung pada permasalahan, contohnya :
* Jika masalah yang dibahas adalah TSP, maka solusinya adalah rute perjalanan.
* Jika masalah yang dibahas adalah optimasi fungsi, maka solusinya adalah suatu bilangan real.
* Jika masalah yang dibahas adalah optimasi metode learning ANN, maka solusinya adalah bobot dan bias.
* Jika masalah yang dibahas Anda belum paham, maka konsultasikan pada dosen Anda :D
Jumlah populasi sering disebut dengan istilah pop_size (baca : population size). Nilai dari pop_size bervariasi tergantung user atau programmer. Umumnya bilangan genap seperti 10, 50, 100, atau 1000. Jarang saya temui user mematok angka seperti 17, 23, atau 349 untuk ukuran sebuah populasi. :D. 
input : pop_size
proses : generate populasi secara random
output : populasi 

2. Evaluasi
Populasi yang telah dibangkitkan dihitung cost atau fungsi tujuan atau fungsi objektif. Evaluasi disini bertujuan untuk mengetahui fitness atau keunggulan dari masing-masing kromosom. Pada prinsipnya, semakin bagus nilai fitness, akan semakin bagus kromosom, sehingga akan semakin besar peluang kromosom terpilih kembali di populasi selanjutnya. Kriteria evaluasi pun sangat bergantung pada permasalahan, contohnya :
* Jika masalah yang dibahas adalah TSP, maka fungsi tujuannya adalah jarak total rute perjalanan.
* Jika masalah yang dibahas adalah optimasi fungsi, maka fungsi tujuannya adalah error.
* Jika masalah yang dibahas adalah optimasi metode learning ANN, maka fungsu tujuannya adalah error.
input : populasi
proses : perhitungan cost
output : fitness tiap kromosom dalam populasi

3. Seleksi
Tahap ini bertujuan untuk memilih kromosom yang akan melakukan crossover atau mutasi. seleksi ini bermacam-macam. tiga yang paling populer adalah roullet wheel, turnamen, dan elitism. 
input : populasi
proses : memilih kromosom untuk crossover atau mutasi
output : calon kromosom induk untuk crossover atau mutasi

4. Crossover
Operator genetika ini membutuhkan dua kromosom untuk menghasilkan anak. Pada proses crossover, dua induk akan berpindah silang sehingga memiliki dua anakan. Ada berbagai macam tipe crossover. Lebih lanjut dapat dilihat di sini. "Calon kromosom induk crossover" yang diperoleh dari proses seleksi tidak serta merta menjadi induk. Namun, dibutuhkan sebuah bilangan probabilitas untuk menentukan apakah kromosom ini didaulat menjadi induk atau tidak. Bilangan tersebut disebut probability of crossover (pc). Jika bilangan random yang disematkan pada masing-masing kromosom tersebut kurang dari pc, maka kromosom tersebut telah sah menjadi "kromosom induk crossover".
input : calon kromosom induk crossover, pc
proses : memindah silangkan gen pada 2 kromosom induk crossover
output : kromosom anak hasil crossover

5. Mutasi
Operator genetika ini membutuhkan satu saja kromosom untuk menghasilkan anak. Pada proses mutasi, induk akan merubah gen sehingga kromosom dengan gen yang baru menjadi anak. Ada berbagai macam tipe mutasi. Lebih lanjut dapat dilihat di sini. Seperti halnya crossover, "calon kromosom induk mutasi" yang diperoleh dari proses seleksi tidak serta merta menjadi induk. Namun, dibutuhkan sebuah bilangan probabilitas untuk menentukan apakah kromosom ini didaulat menjadi induk atau tidak. Bilangan tersebut disebut probability of mutation (pm). Jika bilangan random yang disematkan pada masing-masing kromosom tersebut kurang dari pm, maka kromosom tersebut telah sah menjadi "kromosom induk mutasi".
input : calon kromosom induk mutasi
proses : merekayasa gen pada kromosom induk mutas
output : kromosom anak hasil mutasi

6. Populasi baru
Tahapan ini adalah tahapan akhir dari satu iterasi atau satu generasi GA. Setelah kromosom melakukan crossover dan mutasi, maka anakan tersebut dikumpulkan bersama populasi sebelumnya. Selanjutnya dipilih populasi baru sebanyak pop_size untuk dilanjutkan ke generasi selanjutnya.
input : kromosom dalam populasi sekarang, kromosom anak hasil crossover dan mutasi
proses : memilih populasi baru
output : populasi baru

Next, kita coba implementasikan metode ini untuk masalah Travelling Salesman Problem. Yuk ke TKP :))

Komentar

Postingan populer dari blog ini

Artikel: Kaya vs Miskin

Definisi Cinta

Hafalan Shalat Delisa