BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.2 Pengujian
4.2.1 Perhitungan Manual Algoritma Genetika
Contoh pencarian lintasan terpendek denganmenggunakan algoritma Genetika dapat dilihat pada penjelasan berikut.
Tabel 4.1Jarak Wisata Tempat Wisata Danau
Siombak
Tentukan titik yang akan menjadi titik asal kemudian tentukan titik yang akan menjadi titik tujuan. Kita akan mencari jarak terpendek dari Danau Siombak menuju KRK, sebelum melakukan pencarian, pada Algoritma Genetika terdapat beberapa parameter yang harus ditentukan sebagai berikut :
Generasi maksimal = 5 Populasi maksimal = 5 Probabilitas Crossover (pc) = 0.3 Probabilitas Mutasi (pm) = 0.3
Selain parameter diatas, kriteria pemberhentian pencarian juga harus ditentukan, ada dua kriteria pemberhentian pencarian dalam kasus ini, yaitu pencarian dihentikan ketika nilai fitness terkecil yang didapat sama dari tiga generasi dan apabila pencarian telah mencapai generasi maksimal.
Langkah pertama dalam pencarian rute terpendek menggunakan Algoritma Genetika adalah encoding, dimana semua titik dikodekan untuk mempermudah pencarian. Teknik encoding yang digunakan adalah value encoding, dan proses encoding dilakukan dalam database.
Table 4.2 Hasil encoding Titik Encoding
Danau Siombak A
Setelah melakukan encoding proses selanjutnya adalah melakukan seleksi, metode penyeleksian yang digunakan adalah Roulette Wheel Selection. Pada proses penyeleksian digunakan suatu parameter yang disebut nilai fitness, yang berguna untuk menentukan seberapa baik kualitas suatu kromosom untuk terpilih sebagai solusi.
Bangkitkan kromosom acak solusi rute terpendek dari titik A menuju titik F, titik A dan titik F tidak dimasukkan kedalam kromosom karena merupakan titik asal dan titik tujuan.
Kromosom (1) = B – C – D – E Kromosom (2) = C – E – B – D Kromosom (3) = C – B – D – E Kromosom (4) = D – E – B – C Kromosom (5) = E – B – D – C
Kemudian dihitung nilai fitnesnya dengan rumus fitness.
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 = 𝑇𝑇𝑇𝑇𝐹𝐹𝑇𝑇𝑇𝑇 𝑗𝑗𝑇𝑇𝑗𝑗𝑇𝑇𝑗𝑗
Selanjutnya cari nilai fitness alternatif dengan rumus :
Setelah didapat nilai fitnessalternatifnya, lanjutkan dengan mencari probabilitas kromosom, rumus untuk mencari probabilitas kromosom adalah :
𝑃𝑃(𝐹𝐹) = 𝑄𝑄(𝐹𝐹)
Lakukan proses seleksi menggunakan Roulette Wheel Selection, langkah pertama adalah dengan mencari nilaikumulatif probabilitas kromosom.
C(1) = 0.186
C(2) = 0.186 + 0.162 = 0.348 C(3) = 0.348 + 0.186 = 0.534 C(4) = 0.534 + 0.267 = 0.801 C(5) = 0.801 + 0.197 = 0.998
Setelah dihitung nilai kumulatif probabilitasnya maka proses seleksi dapat dilakukan. Prosesnya diawali dengan membangkitkan bilangan acak dari nol sampai nilai terbesar dari nilai kumulatif probabilitas, kemudian bilangan acak yang dibangkitkan tersebut dibandingkan dengan nilai probabilitas komulatif dengan syarat, Jika R(k) < C(1) maka pilih kromosom(1) sebagai induk, selain itu pilih kromosom ke-k sebagai induk dengan syarat C(k-1) < R < C(k). Bangkitkan bilangan acak sebanyak jumlah populasi yaitu lima bilangan acak.
R(1) = 0.249 R(2) = 0.127 R(3) = 0.687 R(4) = 0.821 R(5) = 0.760
Dari bilangan acak yang telah dibangkitkan diatas maka populasi kromosom baru hasil proses seleksi adalah :
Kromosom(1) = Kromosom(2) = C – E – B – D Kromosom(2) = Kromosom(1) = B – C – D – E Kromosom(3) = Kromosom(4) = D – E – B – C Kromosom(4) = Kromosom(5) = E – B – D – C Kromosom(5) = Kromosom(4) = D – E – B – C
Setelah proses seleksi maka proses selanjutnya adalah crossover, crossover adalah proses untuk menyilangkan dua kromosom sehingga membentuk kromosom baru yang harapannya lebih baik daripada induknya. Metode crossover yang digunakan adalah one-cut point crossover, dimana akan dipilih dua induk kromosom yang akan dilakukan crossover, lalu bangkitkan bilangan acak untuk mengetahui posisi gen mana yang akan mengalami crossover, setelah posisi gen didapatkan lakukan penukaran gen antara dua induk kromosom yang terpilih tadi.
Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang mengalami crossover dipengaruhi oleh probabilitas crossover(pc) yang telah ditentukan yaitu 0.3, maka dalam 1 generasi diharapkan ada 30% dari total populasi yang akan mengalami crossover.
Pertama bangkitkan dulu bilangan acak R sebanyak jumlah populasi, yaitu lima bilangan acak.
R(1) = 0.228 R(2) = 0.340 R(3) = 0.011 R(4) = 0.910 R(5) = 0.579
Kemudian kromosom yang akan mengalami crossover dicari dengan kondisi, Kromosom ke-k akan dipilih sebagai induk jika R(k) < pc. Maka kromosom yang akan menjadi induk adalah kromosom(1) dan kromosom(3). Proses selanjutnya adalah menentukan posisi crossover dengan cara membangkitkan bilangan acak antara satu sampai dengan panjang kromosom dikurang satu sebanyak jumlah kromosom yang terpilih sebagai induk.
Panjang kromosom = 4
Bilangan acak yang akan dibangkitkan = 1 sampai 4 – 1 = 3 C(1) = 2
C(2) = 1
Dari bilangan acak yang dibangkitkan diatas kita dapatkan posisi gen yang akan mengalami crossover pada induk pertama adalah gen kedua dan posisi gen yang akan mengalami crossover pada induk kedua adalah gen pertama. Selanjutnya lakukan pertukaran gen antara induk pertama dan induk kedua.
Kromosom(1) = Kromosom(1) >< Kromosom(3)
= C – E – B – D >< D – E – B – C
= C – E – B – C
Kromosom(3) = Kromosom(3) >< Kromosom(1)
= D – E – B – C >< C – E – B – D
= D – E – B – D
Hasil kromosom setelah mengalami proses crossover : Kromosom(1) = C – E – B – C
Kromosom(2) = B – C – D – E Kromosom(3) = D – E – B – D
Kromosom(4) = E – B – D – C Kromosom(5) = D – E – B – C
Setelah melakukan crossover selanjutnya akan dilakukan mutasi, metode mutasi yang digunakan adalah swapping mutation, jumlah kromosom yang mengalami mutasi dalam suatu populasi ditentukan oleh probabilitas mutasi (pm).
Pada swapping mutation proses mutasi dilakukan dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya, dan jika gen yang terpilih berada di akhir kromosom maka ditukar dengan gen yang pertama yg berada diawal kromosom.
Mutasi diawali dengan menghitung total panjang gen yang ada dalam suatu populasi,total panjang gen = jumlah gen dalam satu kromosom * jumlah kromosom.
Total panjang gen = 4 * 5 = 20
Selanjutnya cari berapa banyak gen yang akan mengalami mutasi menggunakan probabilitas mutasi (pm) yang telah ditentukan yaitu pm = 0.3. Maka jumlah gen yang akan dimutasi adalah :
0.3 * 20 = 6
Untuk memilih posisi gen yang akan dimutasi bangkitkan bilangan acak antara satu sampai total panjang gen = 1 sampai 20, sebanyak jumlah gen yang akan dimutasi.
Kromosom hasil crossover : Kromosom(1) = C– E – B – C Kromosom(2) = B – C – D – E Kromosom(3) = D – E– B – D Kromosom(4) = E – B – D – C Kromosom(5) = D – E– B – C
Kromosom hasil mutasi :
Kemudian dihitung lagi nilai fitnessnya setelah satu generasi.
Kromosom(1) = AE +EC + CB + BC + CF = 28 + 9 + 7 + 7 + 2 = 53
Kromosom(2) = AE + EC + CD + DB + BF = 28 + 9 + 15 + 11 + 5 = 68 Kromosom(3) = AD +DB+ BE + ED + DF = 20 + 11 + 5 + 6 + 13 = 55 Kromosom(4) = AC + CB + BD + DE + EF = 30 + 7 + 11 + 6 + 7 = 61 Kromosom(5) = AC +CB+ BE + ED + DF = 30 + 7 + 7 + 6 + 13 = 63
Setelah proses mutasi selesai maka satu generasi telah selesai diproses dengan Algoritma Genetika, generasi baru hasil proses pertama akan digunakan sebagai generasi kedua untuk diproses lagi.
Proses pencarian pada generasi kedua.
Kromosom(1) = AE +EC + CB + BC + CF = 28 + 9 + 7 + 7 + 2 = 53
Kromosom(2) = AE + EC + CD + DB + BF = 28 + 9 + 15 + 11 + 5 = 68 Kromosom(3) = AD +DB+ BE + ED + DF = 20 + 11 + 5 + 6 + 13 = 55 Kromosom(4) = AC + CB + BD + DE + EF = 30 + 7 + 11 + 6 + 7 = 61 Kromosom(5) = AC +CB+ BE + ED + DF = 30 + 7 + 7 + 6 + 13 = 63
Nilai fitness alternatif.
Q(1) = 1
Q(5) = 1
Nilaikumulatif probabilitas kromosom.
C(1) = 0.209
C(2) = 0.209 + 0.162 = 0.371 C(3) = 0.371 + 0.209 = 0.58 C(4) = 0.58 + 0.186 = 0.766 C(5) = 0.766 + 0.185 = 0.951
Bilangan acak untuk proses seleksi.
R(1) = 0.25 R(2) = 0.127 R(3) = 0.82 R(4) = 0.69 R(5) = 0.73
Kromosom hasil seleksi.
Kromosom(1) = Kromosom(2) = E – C – D – B Kromosom(2) = Kromosom(1) = E – C – B – C Kromosom(3) = Kromosom(5) = C – B – E – D Kromosom(4) = Kromosom(4) = C – B – D – E Kromosom(5) = Kromosom(4) = C – B – D – E
Bilangan acak untuk proses crossover.
Bilangan acak posisi crossover.
C(1) = 3 C(2) = 1
Kromosom(2) = Kromosom(2) >< Kromosom(5)
= E – C – B – C><C – B – D – E
= E – C – B – E
Kromosom(5) = Kromosom(5) >< Kromosom(2)
= C – B – D – E><E – C – B – C
= C – C – B – C
Kromosom setelah mengalami proses crossover : Kromosom(1) = E – C – D – B
Kromosom(2) = E – C – B – E Kromosom(3) = D – B – E – C Kromosom(4) = C – B – D – E Kromosom(5) = C – C – B – C
Bilangan acak untuk proses mutasi.
M(1) = 12
Kromosom(1) = E – C – D – B Kromosom(2) = E – C – B – E Kromosom(3) = D – B – E – C Kromosom(4) = C – B – D – E Kromosom(5) = C – C – B – C
Kromosom hasil mutasi:
Kromosom(1) = E – D – C – B Kromosom(2) = C – E – E – B Kromosom(3) = C – B – E – D Kromosom(4) = C – B – E – D Kromosom(5) = C – C – B – C
Nilai fitnes setelah mutasi dan disimpan sebagai generasi ketiga:
Kromosom(1) = AE +ED +DC +CB + BF = 28 + 6 + 15 + 7 + 5 = 61 Kromosom(2) = AC +CE +EE +EB + BF = 28 + 9 + 0 + 7 + 5 = 49 Kromosom(3) = AC +CB + BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 63 Kromosom(4) = AC + CB +BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 63 Kromosom(5) = AC +CC + CB +BC + CF = 30 + 0 + 7 + 7 + 2 = 46
Proses pencarian pada generasi ketiga.
Kromosom(1) = AE +ED +DC +CB + BF = 28 + 6 + 15 + 7 + 5 = 61 Kromosom(2) = AC +CE +EE +EB + BF = 28 + 9 + 0 + 7 + 5 = 49 Kromosom(3) = AC +CB + BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 63 Kromosom(4) = AC + CB +BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 63 Kromosom(5) = AC +CC + CB +BC + CF = 30 + 0 + 7 + 7 + 2 = 46
Nilai fitness alternatif.
Q(1) = 1
Q(4) = 1
Nilaikumulatif probabilitas kromosom.
C(1) = 0.183
C(2) = 0.183 + 0.195 = 0.378 C(3) = 0.378 + 0.172 = 0.55 C(4) = 0.55 + 0.172 = 0.722 C(5) = 0.722 + 0.241 = 0.963
Bilangan acak untuk proses seleksi.
R(1) = 0.271 R(2) = 0.140 R(3) = 0.942 R(4) = 0.678 R(5) = 0.290
Kromosom hasil seleksi.
Kromosom(1) = Kromosom(2) = C – E – E – B Kromosom(2) = Kromosom(1) = E – D – C – B Kromosom(3) = Kromosom(5) = C – C – B – C
Kromosom(4) = Kromosom(4) = C – B – E – D Kromosom(5) = Kromosom(2) = C – E – E – B
Bilangan acak untuk proses crossover.
R(1) = 0.913 R(2) = 0.579 R(3) = 0.011 R(4) = 0.228 R(5) = 0.391
Bilangan acak posisi crossover.
C(1) = 1 C(2) = 2
Kromosom(3) = Kromosom(3) >< Kromosom(4)
= C – C – B – C><C – B – E – D
= C – B – E – D
Kromosom(4) = Kromosom(4) >< Kromosom(3)
= C – B – E – D >< C – C – B – C
= C – B – B – C
Kromosom setelah mengalami proses crossover : Kromosom(1) = E – C – E – B
Kromosom(2) = C – E – E – B Kromosom(3) = C – B – E – D Kromosom(4) = C – B – B – C Kromosom(5) = E – C – E – B
Bilangan acak untuk proses mutasi.
M(1) = 13
Kromosom(1) = E – C – E – B Kromosom(2) = E – D – C – B Kromosom(3) = C – B – E – D Kromosom(4) = C – B – B – C Kromosom(5) = E – C – E – B
Kromosom hasil mutasi:
Kromosom(1) = B – E – C –E Kromosom(2) = B – D – C – E Kromosom(3) = C – B – E – D Kromosom(4) = C – C – B – B Kromosom(5) = E – C –B–E
Nilai fitnes setelah mutasi dan disimpan sebagai generasi ke empat:
Kromosom(1) = AB +BE +EE+CE + EF = 25 + 7 + 0 + 9 + 7 = 48 Kromosom(2) = AB +BD +DC+CE + EF = 25 + 11 + 15 + 9 + 7 = 67 Kromosom(3) = AC +CB + BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 66 Kromosom(4) = AC + CC +CB+BB + BF = 30 + 0 + 7 + 0 + 5 = 42 Kromosom(5) = AE+EC + CB +BE + EF = 23 + 9 + 7 + 7 + 7 = 53
Proses pencarian pada generasi ke empat.
Kromosom(1) = AB +BE +EE+CE + EF = 25 + 7 + 0 + 9 + 7 = 48 Kromosom(2) = AB +BD +DC+CE + EF = 25 + 11 + 15 + 9 + 7 = 67 Kromosom(3) = AC +CB + BE +ED + DF = 30 + 7 + 7 + 6 + 13 = 66 Kromosom(4) = AC + CC +CB+BB + BF = 30 + 0 + 7 + 0 + 5 = 42 Kromosom(5) = AE+EC + CB +BE + EF = 23 + 9 + 7 + 7 + 7 = 53
Nilai fitness alternatif.
Q(1) = 1
Q(4) = 1
Nilaikumulatif probabilitas kromosom.
C(1) = 0.222
C(2) = 0.222 + 0.155 = 0.377 C(3) = 0.377 + 0.166 = 0.543 C(4) = 0.543 + 0.255 = 0.798 C(5) = 0.798 + 0.2 = 0.998
Bilangan acak untuk proses seleksi.
R(1) = 0.471 R(2) = 0.540 R(3) = 0.142 R(4) = 0.678 R(5) = 0.290
Kromosom hasil seleksi.
Kromosom(1) = Kromosom(3) = C – B – E – D Kromosom(2) = Kromosom(3) = C – B – E – D Kromosom(3) = Kromosom(1) = B – E – C –E Kromosom(4) = Kromosom(4) = C – C – B – B
Kromosom(5) = Kromosom(2) = B – D – C – E
Bilangan acak untuk proses crossover.
R(1) = 0.011 R(2) = 0.579 R(3) = 0.913 R(4) = 0.228 R(5) = 0.391
Bilangan acak posisi crossover.
C(1) = 3 C(2) = 2
Kromosom(1) = Kromosom(1) >< Kromosom(4)
= C – B – E – D ><C – C – B – B
= C – B – E – B
Kromosom(4) = Kromosom(4) >< Kromosom(1)
= C – C – B – B><C – B – E – D
= C – C – E – D
Kromosom setelah mengalami proses crossover : Kromosom(1) = C – B – E – B
Kromosom(2) = C – B – E – D Kromosom(3) = B – E – C –E Kromosom(4) = C – C – E – D Kromosom(5) = B – D – C – E
Bilangan acak untuk proses mutasi.
M(1) = 10
Kromosom(1) = C – B – E – B Kromosom(2) = C – B – E – D Kromosom(3) = B – C – E – E Kromosom(4) = C – C – E – D Kromosom(5) = B – D – C – E
Kromosom hasil mutasi:
Kromosom(1) = C – E – B – B Kromosom(2) = D – E – B – C Kromosom(3) = B – E – C – E Kromosom(4) = C – C – D – E Kromosom(5) = E – D – C – B
Nilai fitnes setelah mutasi dan disimpan sebagai generasi kelima:
Kromosom(1) = AC +CE +EB+BB + BF = 30 + 9 + 7 + 0 + 5 = 51 Kromosom(2) = AD +DE +EB+BC + CF = 20 + 6 + 7 + 7 + 2 = 42 Kromosom(3) = AB+ BE+ EC +CE + EF = 25 + 7 + 9 + 9 + 7 = 57 Kromosom(4) = AC + CC +CD+DE + EF = 30 + 0 + 15 + 6 + 7 = 58 Kromosom(5) = AE+ED + DC +CB + BF = 23 + 6 + 15 + 7 + 5 = 56
Pencarian dihentikan karena telah sampai pada generasi maksimal dan nilai fitness terkecil yang didapat sama pada tiga generasi yaitu 42. Semua kromosom dengan nilai fitness 42 dikumpulkan dan di cek apakah ada pengulangan jalur pada tiap kromosom, dan kromosom yang tidak ada pengulangan jalur akan dipilih sebagai solusi.
Kromosom dengan nilai fitness 42 adalah sebagai berikut:
1. Kromosom keempat pada generasi pertama
AD + DE + EB + BC + CF = 20 + 6 + 7 + 7 + 2 = 42 2. Kromosom keempat pada generasi keempat
AC + CC +CB+BB + BF = 30 + 0 + 7 + 0 + 5 = 42 3. Kromosom kedua pada generasi kelima
AD +DE +EB+BC + CF = 20 + 6 + 7 + 7 + 2 = 42
Setelah di cek kromosom keempat pada generasi keempat tidak bisa dijadikan solusi karena terjadi pengulangan jalur, kromosom keempat pada generasi pertama dan kromosom kedua pada generasi kelima merupakan solusi dari pencarian rute terpendek yang dilakukan karena tidak terjadi pengulangan jalur.