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.