You are on page 1of 12

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.

com)

Contoh Kasus Minimum Spanning Tree Berbasis Algoritma Genetika


Pertanyaan Pemerintah akan membangun jalur rel kereta api yang menghubungkan 6 buah kota. Karena biayanya mahal maka pembangunan jalur tersebut harus mampu menghubungkan semua kota dengan biaya seminimal mungkin. Gunakan algoritma genetika untuk menyelesaikan permasalahan tersebut. Gambar 1 menunjukan kota-kota yang terhubung satu sama lain serta jarak antar kota-kota tersebut.
43 B 50 30 32 D 20 25 45 10 25 55 E 15 F 40 15 35 C

10

Gambar 1 Contoh Kasus Telekomonikasi Jawab : Graph di atas terdiri dari 6 buah node. Jumlah maksimal spanning tree yang dapat dibuat adalah atau = 1296 buah.

Langkah 1 : Encoding Kromosom ke Bentuk Prufer Sequences Kita akan mengkonversi spanning tree ke dalam bentuk prufer number (kromosom). Mengapa demikian ?? Karena prufer number kebal terhadap proses mutasi dan crossover, artinya apabila dua buah prufer number (kromosom) dikawinsilangkan maka offspringnya (anak hasil perkawinan) masih tetap berbentuk spanning tree. Cara mengkonversi spanning tree tersebut ke dalam bentuk prufer number akan menggunakan algoritma seperti tampak pada Gambar 2.

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Gambar 2 Cara Encoding ke Prufer Sequence Sedangkan untuk mengkonversi balik dari bentuk prufer number ke spanning tree (decoding) akan menggunakan algoritma seperti tampak pada Gambar 3.

Gambar 3 Cara Decoding ke Spanning Tree Untuk menjelaskan proses encoding dari spanning tree ke bentuk prufer number dan sebaliknya melakukan decoding dari prufer number ke spanning tree maka diberikan contoh spanning tree dari graph di atas adalah seperti berikut:
A 30 D 45 25 E 15 F 10 B C

Gambar 4 Contoh Spanning Tree dari Gambar 1 Tahapan encoding spanning tree ke bentuk prufer sequence tampak seperti Gambar 5. Mula-mula kita cari leaf terkecil yaitu C (leaf = D, E dan C). Kita akan ambil tetangga dari C yaitu F dan memasukan ke dalam prufer sequence P = ( F ) kemudian hapus leaf C

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

dari spanning tree tersebut. Leaf yang ada sekarang adalah D, E dan F. Pilih yang terkecil yaitu D dan masukan tetangganya yaitu A ke prufer sequence P = (F, A). Ulangi langkah tersebut sampai n-2 kali dan hasil akhir adalah P = (F, A, A, B).

Langkah 2 : Evaluasi Kromosom Langkah selanjutnya adalah menghitung nilai fitness dari kromosom-kromosom yang telah dibangkitkan. Fitness ke-1 : AD + AB + AE + BF + FC = 125 Km Fitness ke-2 : AD + AB + AE + EF + FC = 155 Km Fitness ke-3 : AE + BE + CE + EF + DF = 195 Km Fitness ke-4 : AB + BE + BC + BF + DF = 145 Km Fitness ke-5 : AE + BF + EF + EC + DF = 180 Km Fitness ke-6 : AD + AB + BE + EC + CF = 130 Km Fitness ke-7 : AB + BC + CE + EF + DF = 170 Km Fitness ke-8 : AD + DF + CF + EC + BE = 140 Km Fitness ke-9 : AD + DF + EF + CE + BC = 190 Km Fitness ke-10 : AD + AB + DF + CF + EC = 110 Km

Langkah 3 : Populasi Awal (Initial Population) Setelah kita tahu cara melakukan encoding maka kita akan membangkitkan populasi awal, misalnya populasi awal berjumlah 10 buah seperti tampak pada Tabel 1 dan spanning treenya tampak pada Gambar 6. Tabel 1 Populasi Awal Kromosom ke1 2 3 4 5 6 7 8 9 10 Prufer Sequence F,A,A,B A,F,A,E E, E , E , F B,B,F,B E,F,E,F A,B,E,C B, C , E , F D,E,F,C D,C,E,F A,D,F,C Fitness 125 155 195 145 180 130 170 140 190 110

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

A 30 D 45 25

10

B C

A 30 D E 15 45 25

10

B C

E 15 F

P=()
A 30 D 45 25 E 15 F 10 B C A 30 D

P=(F)
10 45 25 E 15 F B C

P = ( F, A , A )

P = ( F, A )

A 30 D 45 25

10

B C

E 15 F

Fitness = 30+10+45+25+15 = 125

P = ( F, A , A , B )
Gambar 5 Proses Encoding Spanning Tree pada Gambar 5 ke Bentuk Prufer Sequence

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Berdasarkan pada nilai fitness pada Tabel 1, tampak bahwa chromosome v10 adalah chromosom terbaik (nilai terendah) dan chromosome v 3 adalah chromosom terjelek (nilai tertinggi).

Langkah 4 : Seleksi Kromosom Menggunakan Metode Roulette Wheel

Oleh karena pada persoalan minimum spanning tree ini yang diinginkan adalah kromosom dengan fitness yang lebih kecil akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse. ( )

Total = 0.008 + 0.00645 + 0.00513 + 0.0069 + 0.0056 + 0.0077 + 0.00588 + 0.0071 + 0.0053 + 0.0091 = 0.06716

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

A 30 D 45 25

10

B C

A 30 D E 15 45

10

B C

55

E 15

P = ( F, A, A, B)
A 45 D 20 55 E B C 40 35 D A

P = ( A, F, A, E )
10 B 50 40 25 E 20 C

P = ( E, E, E, F)
A 45 D 20 25 E 55 F B C 35 30 D A

P = ( B, B, F, B )
10 B C 40 E 15 F 35

P = ( E, F, E, F)
A 10 B 50 35 E 20 55 F C 30 D D A

P = ( A, B, E, C)
B C 40 E 15 F 35

20

P = ( B, C, E, F)
A 30 D E 20 55 F B 50 C 35 30 D A

P = ( D, E, F, C)
10 B C 35 E 20 15 F

P = ( D, C, E, F)

P = ( A, D, F, C)

Gambar 6 Spanning Tree untuk Populasi Awal

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Untuk mencari nilai probabilitas seleksi maka akan digunakan rumus berikut:

Setelah nilai-nilai p k diketahui, selanjutnya kita mencari nilai probabilitas kumulatif q k .


q1 p j p1 0.119 .
j 1 1

q 2 p j p1 p 2 0.119 0.096 0.215


j 1
3

q3 p j 0.215 0.076 0.291


j 1

q 4 p j 0.291 0.103 0.394


j 1

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

q5 p j 0.394 0.083 0.477


j 1 6

q 6 p j 0.477 0.1147 0.5917


j 1
7

q 7 p j 0.5917 0.088 0.6797


j 1 8

q8 p j 0.6797 0.106 0.7857


j 1

q9 p j 0.7857 0.079 0.8647


j 1

q10 p j 0.8647 0.135 1.0000


j 1

10

Selanjutnya, kita akan memutar roda roulette sebanyak 10 kali (sebanyak jumlah individu). Proses memutar roda roulette identik dengan membangkitkan sebuah nilai acak
a k yang memiliki kisaran [0,1]. Apabila:
q k 1 a k q k

[1]

maka kita pilih kromoson ke-k sebagai induk. Misalkan setelah 10 kali memutar roda roulette, hasilnya tampak pada Gambar 7.

Gambar 7 Nilai Acak Hasil Putaran Roda Roulette Merujuk pada Gambar 7, misalnya a1 0.301431 maka nilai tersebut memiliki nilai yang lebih besar dari q 3 dan lebih kecil dari q 4 . Dengan demikian, berdasarkan Persamaan [1], kita memilih kromosom v 4 untuk populasi yang baru. Proses tersebut diulang, dan akhirnya hasil akhir tampak pada Tabel 2.

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Tabel 2 Populasi Baru Hasil Selection Kromosom ke1 2 3 4 5 6 7 8 9 10 Prufer Sequence B,B,F,B B,B,F,B D,E,F,C A,D,F,C B,B,F,B A,B,E,C A,F,A,E B,B,F,B F,A,A,B A,F,A,E Fitness 145 145 140 110 145 130 155 145 125 155

Langkah 5 : Kawin Silang (one-cut-point Crossover)

Populasi baru yang tampak pada Tabel 2 akan dikawinsilangkan. Metode yang digunakan untuk kawin silang adalah one-cut-point. Anggap probabilitas crossover pc 0.25 (ada 4 kromosom yang mengalami crossover). Algoritma crossover sebagai berikut: Procedure crossover Begin K 0; While (k 10) do a k random number from [0, 1] If ( a k < 0.25) then Select a k as one parent for crossover; end K k + 1; end end Anggap urutan random number seperti tampak pada Gambar 8.

Gambar 8 Random Number

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Berdasarkan pada procedure Crossover maka yang terpilih sebagai parent yang akan dikawinsilangkan apabila memiliki nilai a k < 0.25. Karena alasan tersebut maka kromosom yang akan dikawinsilangkan hanya kromosom ke-5 dan kromosom ke-7 saja. Selanjutnya kita juga akan membangkitkan bilangan acak yang lain untuk memilih titik potong. Pada kasus ini kita akan membangkitkan bilangan acak dengan range [1,3] (karena 4 adalah panjang total dari kromosom) sebagai titik potong. Anggap hasil bilangan acak yang dibangkitkan bernilai 2, maka: Kromosom ke-5: [ B, B, F, B ] Kromosom ke-7: [ A, F, A, E ] Hasil kawin silang: Offspring ke-1: [ B, B, A, E ] Offspring ke-2: [ A, F, F, B ]

Kita akan menghitung fitness dari spanning tree hasil kawin silang, yaitu nilai fitness dari kromosom ke-5 dan kromosom ke-7 tetapi sebelumnya kita harus melakukan decoding prufer sequence tersebut ke dalam bentuk spanning tree.

Decoding Prufer Sequence Proses decoding tampak pada Gambar 9. Berdasarkan pada Gambar 9, kita akan melakukan decoding terhadap kromosom ke-5: [B, B, A, E]. Langkah decoding sebagai berikut: mula-mula kita ambil sequence P yang pertama yaitu B lalu cari elemen terkecil dari V yang tidak ada dalam P maka kita temukan C. Hubungkan B dengan C lalu hapus B dari P dan hapus C dari V. Kemudian ambil B yang kedua dari P dan cari elemen terkecil dari V yang tidak ada dalam P maka kita temukan D. Hubungkan B dengan D lalu hapus B dari P dan hapus D dari V. Proses tersebut dilakukan trus-menerus sampai n2 kali. Nilai fitness dari kromosom ke-5 [B, B, A, E] adalah 170 Km. Dengan cara yang sama, kita cari juga nilai fitness dari kromosom ke-7. Kita akan mendecodingkan prufer sequence tersebut ( [A, F, F, B] ) ke dalam bentuk spanning tree sehingga dapat dihitung nilai fitness-nya. Nilai fitness untuk kromosom [A, F, F, B] = 190 Km.

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

P = ( B, A, E )
A B 50 C D E D A 10 B

V = ( A, B, D, E, F)
50

P = ( B, B, A, E)

V = ( A, B, C, D, E, F)

10 10

B 50 A C 10 10 D E

B 50 C

45

P=(E)

V = ( A, E, F)

P = ( A, E )

V = ( A, B, E, F)

10 10

B 50 C

Fitness = 10+10+45+55+50 = 170 Km

45 E 55

P=( )

V = ( E, F)

Gambar 9 Tahapan Decoding Terhadap Kromosom [B, B, A, E]

Karena proses crossover hanya terjadi satu kali saja maka hasil akhir tampak seperti di bawah ini.

Materi Kuliah Algoritma Genetika - 3 April 2012 by Yosua Alberth Sir (yosuasir@gmail.com)

Kromosom ke1 2 3 4 5 6 7 8 9 10 Langkah 6 : Mutasi

Prufer Sequence B,B,F,B B,B,F,B D,E,F,C A,D,F,C B,B,A,E A,B,E,C A,F,F,B B,B,F,B F,A,A,B A,F,A,E

Fitness 145 145 140 110 170 130 190 145 125 155

Jumlah bit yang terdapat dalam satu generasi adalah m x pop_size = 4 x 10 = 40 bit. Jika kita men-setting nilai probabilitas mutasi p m 0.01 berarti kita mengharapkan 0.4 atau 1 mutasi per generasi. Setiap bit memiliki peluang yang sama untuk mengalami mutasi, karena itu kita akan membangkitkan bilangan acak yang memiliki kisaran [0,1] sebanyak 40 buah. Bilangan acak yang memiliki nilai lebih kecil dari p m 0.01 akan terpilih untuk mengalami mutasi. Misalkan bilangan acak yang terpilih adalah 0.009857 yaitu bilangan ke-9 maka kromosom yang mengalami mutasi adalah kromosom ke-3 dan bit ke-1 dan node yang terpilih adalah F maka kromosom ke-3 berubah menjadi [F,E,F,C]. Setelah proses mutasi selesai maka kita telah meyelesaikan 1 generasi. Proses selanjutnya adalah mengulangi lagi proses tersebut sampai generasi tertentu atau sampai 90% dari individu dalam generasi memiliki nilai fitness yang sama. Hasil akhir setelah mutasi: Kromosom ke1 2 3 4 5 6 7 8 9 10 Prufer Sequence B,B,F,B B,B,F,B F,E,F,C A,D,F,C B,B,A,E A,B,E,C A,F,F,B B,B,F,B F,A,A,B A,F,A,E Fitness 145 145 142 110 170 130 190 145 125 155

You might also like