Minggu, 17 Maret 2013

Genetic Algorithm

Ketika diberikan masalah, genetic algorithm membentuk suatu kumpulan/populasi calon solusi. Genetic algorithm memandang calon solusi ini sebagai individu yang dapat berkembang biak menghasilkan keturunan. Dengan prinsip “orang tua yang bagus menghasilkan keturunan yang lebih bagus”, maka di setiap calon solusi ini diberikan suatu
fitness value/nilai kecocokan untuk menunjukkan seberapa baguskah calon solusi tersebut. Semakin tinggi nilai kecocokannya, semakin tinggi juga kemungkinannya untuk bertahan hidup dan menghasilkan keturunan (menggambarkan proses seleksi alam). Contohnya, pada Knapsack Problem nilai kecocokan dapat didefinisikan sebagai nilai dari barang-barang yang dimasukkan dalam tas.

Pada prakteknya, calon solusi ini biasa direpresentasikan sebagai string/untaian nilai
(menggambarkan kromosom yang terdiri dari untaian gen). Nilai ini dapat berupa angka, huruf, atau kata di mana tiap-tiap nilai ini berkorespondensi dengan variabel tertentu. Contohnya, pada masalah Travelling Salesman Problem calon solusi dapat digambarkan
sebagai untaian angka yang menunjukkan urutan kota yang dikunjungi, jadi individu [3 5 2 1 4] mempunyai arti kota pertama = kota 3, kota kedua = kota 5, dst.

Agar suatu masalah dapat diselesaikan dengan geneticalgorithm, perlu ditentukan hal-hal berikut:
1. representasi solusi dalam untaian nilai, apakah akan digunakan untaian bit atau angka dan apa makna dari tiap nilai tersebut,
2. fungsi untuk menghitung nilai kecocokan,berdasarkan apa kita menentukan suatu individu
itu bagus atau tidak,
3. parameter untuk mengontrol genetic algorithm, yaitu jumlah populasi, probabilitas persilangan, dan probabilitas mutasi,
4. kondisi berhenti, yaitu kapan solusi yang diperoleh dianggap cukup. 

Tidak ada komentar: