Diskusi: Probabilitas Seleksi Algoritma Genetika dengan Pengkodean Real Real-Coded

41

3.7. Diskusi: Penanganan Konvergensi Dini

Perhatikan masalah konvergensi dini yang terjadi pada Sub-Bab 3.1.4. Hampir semua individu bernilai sama sebelum tercapainya titik optimum yang diinginkan. Ada banyak metode untuk mengatasi masalah ini. Satu metode sederhana yang bisa diterapkan adalah dengan melakukan random injection yaitu proses seleksi hanya memilih popSize- n individu n =1 ..3. n individu terakhir dibangkitkan secara random seperti pada saat inisialisasi Mahmudy, Marian Luong 2013d, 2013e. n=0,1×popSize biasanya sudah cukup memadai. Untuk popSize=10, dengan memasukkan 1 individu random ini maka keragaman populasi akan tetap terjaga karena individu ini juga terlibat dalam proses reproduksi. Untuk menghemat waktu komputasi, pemasukan individu random ini tidak harus pada setiap generasi tapi bisa dilakukan setiap g interval generasi. Penentuan nilai g yang sesuai dilakukan melalui beberapa percobaan pendahuluan. Dengan mengacu struktur GAs murni pada sub-bab sebelumnya maka teknik penanganan konvergensi dini dengan random injection bisa disusun sebagai berikut: procedure AlgoritmaGenetika begin t = 0 inisialisasi Pt while bukan kondisi berhenti do reproduksi Ct dari Pt evaluasi Pt dan Ct seleksi Pt+1 dari Pt dan Ct if t mod g = 0 replace n individu end t = t + 1 end while end 42 Berikut ini adalah hasil penggunaan random injection 1 individu untuk kasus pada Sub- Bab 2.4. generasi fx 1 ,x 2 generasi fx 1 ,x 2 terbaik rata-rata terbaik rata-rata 0 32,5606 21,2507 300 36,7112 32,2169 1 32,5606 21,7481 350 36,7112 32,4219 2 32,5606 21,6480 400 37,0110 35,3276 3 32,5606 22,8637 450 37,0112 34,4334 4 32,5606 24,3919 500 37,0112 33,2982 5 32,5606 25,4174 550 37,0112 31,9309 6 32,5606 26,5430 600 37,0112 25,1292 7 32,5606 27,7997 650 37,0112 30,1114 8 32,5606 26,9720 700 37,0112 32,1155 9 32,5606 27,3259 750 37,0112 35,1785 50 33,0101 31,9865 800 37,0112 29,8486 100 36,7112 33,7484 850 37,0112 35,1296 150 36,7112 27,7559 900 37,0113 35,1574 200 36,7112 30,5534 950 37,0113 35,4518 250 36,7112 31,7417 1000 37,0113 32,4105 Gambar 3.5. Solusi RCGA pada tiap generasi menggunakan random injection satu individu Metode ini random injection terbukti menghasilkan individu-individu yang lebih bervariasi dan juga nilai fungsi fitness yang lebih besar. 5 10 15 20 25 30 35 40 2 4 6 8 50 150 250 350 450 550 650 750 850 950 Generasi y = fx 1 ,x 2 Terbaik Rata-rata 43 Cara lain yang bisa diterapkan adalah dengan melakukan pengujian konvergensi populasi yang diterapkan secara periodik sepanjang generasi. Jika nilai keragaman populasi dibawah nilai threshold maka mutasi akan dilakukan terhadap sebagaian chromosome. Gambar 3.6 menunjukkan perhitungan kemiripan dari dua kromosom dengan reprentasi biner atau bilangan bulat integer. Setiap gen kromosom dibandingkan dan rasio kemiripan simmilarity ratio dinyatakan dalam persentase. PROCEDURE Simmilarity Input: chromosome1, chromosome2 Output: simmilarity_ratio length ← LengthOf chromosomes1 sim ← 0 FOR i=1 TO length DO IF chromosome1[i]= chromosome2[i] THEN sim ← sim + 1 END IF NEXT i simmilarity_ratio ← simlength 100 RETURN simmilarity_ratio END PROCEDURE Gambar 3.6. Pseudo-code perhitungan rasio kemiripan dua kromosom Gambar 3.7 menunjukkan perhitungan nilai keragaman diversity dari populasi pop. Setiap kromosom dalam populasi dibandingkan dan dihitung rasio kemiripannya. Nilai keragaman didapatkan dengan mengurangi 1 dengan rata-rata rasio kemiripan. PROCEDURE PopulationSimmilarity Input: pop, pop_size Ouput: diversity total ← 0 n ← 0 FOR i=1 TO popSize-1 DO FOR j=i+1 TO popSize DO total ← total + Simmilarity pop[i], pop[j] n ← n + 1 NEXT j NEXT i diversity ← 1-totaln END PROCEDURE Gambar 3.7. Pseudo-code perhitungan nilai keragaman populasi Beberapa metode yang lebih kompleks untuk penanganan konvergensi dini akan dibahas dalam bab berikutnya.