Algoritma Genetika pada Travelling Salesman Problem TSP

� �,� = ��� � − � � � 2 + �� � − � � � 2 keterangan: x i x = koordinat x kota i j y = koordinat x kota j i y = koordinat y kota i j = koordinat y kota j Nilai probabilitas crossover Pc yang digunakan yaitu 0,25 0,50 dan 1 dimana dipilih dari nilai Pc yang berskala kecil, sedang dan tinggi sebagai nilai untuk pengujian dari masing-masing data.

3.3 Algoritma Genetika pada Travelling Salesman Problem TSP

Adapun prosedur kerja dari penelitian ini dapat dilihat secara keseluruhan pada Gambar 3.1 di bawah ini Gambar 3.1 Metode Penelitian 3.3.1 Dasar Algoritma Genetika Dalam algoritma genetika terdapat beberapa proses atau tahapan yang harus dilakukan.Pada Gambar 3.2 diperlihatkan proses yang terdapat pada algoritma genetika Input: Data eil51 dan Proses: Mendefinisikan Individu Pembangkitan Populasi Awal Hitung nilai fitness Seleksi CrossoverPartially mapped crossover PMX Umum,PMX I,PMX II Output: Pengaruh pemetaan pada PMX dalam i b t Universitas Sumatera Utara Start Data: TSPLIB Representasiencoding ke dalam bentuk path representation Tentukan: - ukuran populasi population sizeN - jumlah generasi - probabilitas crossover p c - probabilitas mutasi p m Bangkitkan populasi awal inisialisasi populasi secara acak Hitung fitness dari masing-masing kromosom Apakah kriteriasyarat terminasi terpenuhi? Pilih kromosom untuk dijadikan parent sesuai dengan metode seleksi yang dipakai Kawinkan sepasang parent yang sudah dipilih pada tahap seleksi dengan memperhatikan probabilitas crossover p c sehingga menghasilkan offspring Ubah secara acak nilai gen pada offspring dengan memperhatikan probabilitas mutasi p m Apakah ukuran populasi yang baru = N populasi sebelumnya? Gantikan populasi kromosom sekarang dengan populasi kromosom baru untuk membentuk generasi selanjutnya Tempatkan offspring kromosom hasil dari proses mutasi pada populasi baru End Ya Tidak Ya Tidak Gambar 3.2 Dasar Algoritma Genetika Pada algoritma genetika terdapat proses crossover dimana pada proses ini terjadi pertukaran gen antara kromosom induk. Pada penelitian ini penulis pengaruh menganalisis mapping dari ketiga bentuk variasi PMX. Berikut ini Flowchart Partially Mapped Crossover PMX Umum, PMX Variasi I dan PMX Variasi II dapat dilihat pada Gambar 3.3, 3.4 dan 3.5 dibawah ini. Mulai Tentukan nilai Pc Pilih kromosom induk Universitas Sumatera Utara tidak ya Gambar 3.3 Flowchart Partially Mapped Crossover PMX Umum Mulai Tentukan nilai Pc Pilih kromosom induk Tentukan titik potong yang berbeda pada dua kromosom Induk Universitas Sumatera Utara ya Gambar 3.4 Flowchart Partially Mapped Crossover PMX Variasi I Tidak Tentukan Pc Pilih Kromosom Induk Tentukan titik potong pada posisi yang sama pada dua kromosom Induk Ganti daerah mapping pada pinggir kromosom induk gen Mulai Universitas Sumatera Utara tidak ya Gambar 3.5 Flowchart Partially Mapped Crossover PMX Variasi II 3.3.2. Mendefenisikan Individu Pada pendefenisian individu yang akan dilakukan adalah teknik penyandian gen dan kromosom. Gen merupakan bagian dari kromosom. Satu gen diwakili oleh satu variabel. Kromosom-kromosomindividu-individu adalah kumpulan angka yang mewakili posisi kota dalam sebuah rangkaian urutan. Dengan kata lain, sebuah kromosomindividu itu mewakili sebuah urutan kota yang dikunjungi salesman. Jadi apabila satu kromosom berbentuk: � 1 = � 1 , � 2 , � 3 , … , � � artinya salesman bergerak dari kota bernomor � 1 ke � 2 dst hingga ke � � Universitas Sumatera Utara 3.3.3 Pembangkitan Populasi Awal Rumus Pembangkitan Inisialisasi Populasi dengan menggunakan Pembangkitan Bilangan Random : ������ ��, � Contoh: ������ 8, 10 artinya dibangkitkan 10 kromosom dalam 1 populasi,dimana dalam 1 kromosom terdapat 8 gen. Misalnya didapatkan : Tabel 3.2 Pembentukan Populasi awal Kromosom Total Jarak Fitness Individu 1: 5 2 7 1 3 4 8 6 27,031 0,036 Individu 2: 8 1 3 4 6 5 7 2 26,042 0,0383 Individu 3: 3 6 7 2 4 5 1 8 30,423 0,0328 Individu 4: 1 4 6 7 8 2 5 3 30,254 0,0330 Individu 5: 7 2 6 4 5 8 3 1 29,906 0,0334 Individu 6 : 6 1 8 5 2 3 4 7 31,326 0,0319 Individu 7: 4 8 2 1 3 7 6 5 32,826 0,0304 Individu 8: 1 7 4 5 3 6 8 2 39,003 0,0256 Individu 9: 1 6 2 8 5 4 7 3 32,815 0,0304 Individu 10: 5 3 2 6 1 4 8 7 33,436 0,0299 3.3.4 Seleksi Metode seleksi yang dipergunakan dalam penelitian ini adalah Roulete Wheel Selection. Sebelum dilakukan seleksi harus dihitung terlebih dahulu nilai fitness dari masing-masing kromosom. Persamaan untuk menghitung nilai fitness adalah : Fitness = 1TotalJarak ……………….....................................................................3.1 Universitas Sumatera Utara Semakin besar jarak maka semakin kecil nilai fitness dan sebaliknya jika semakin kecil jarak makan semakin besar nilai fitness. Seleksi Roda Roullete : 1. Hitung Total Fitness Total Fitness dihitung dengan menggunakan persamaan : TotalFitness = Σ Fk ………………........................................................................3.2 dimana: k = 1, 2, 3 .... , ukuran populasi 0,036+0,0383+0,0328+0,0330+0,0334+0,0319+0,0304+0,0256+0,0304+0,0299 =0,3217 2. Hitung fitness relatif tiap individu Untuk menghitung fitness tiap individu digunakan persamaan : Pk = Fk TotalFitness ……………………............................................................ 3.3. dimana: Pk = fitness relatif tiap-tiap kromosom Fk = fitnes tiap kromosom individu ke -1 = 0,036 0,3217 =0,1119 individu ke -6 = 0,0319 0,3217 =0,0991 individu ke -2 = 0,0383 0,3217 = 0,1119 individu ke -7 = 0,0304 0,3217 =0,0945 individu ke -3 = 0,0328 0,3217 =0,1019 individu ke -8 = 0,0256 0,3217 =0,0795 individu ke -4 = 0,0330 0,3217 =0,1025 individu ke -9= 0,0304 0,3217 =0,0945 individu ke -5 = 0,0334 0,3217 =0,1038 individu ke -10= 0,0299 0,3217 =0,0929 3. Hitung fitness kumulatif q1 = p1 qk = qk-1 + pk ; k = 2,3, ....popsize q1 = 0,1119 q2 = 0,1119+0,1119=0,2238 q3= 0,1119+0,1119+0,1019=0,3257 q4=0,1119+0,1119+0,1019+0,1025=0,4282 q5=0,1119+0,1119+0,1019+0,1025+0,1038=0,532 Universitas Sumatera Utara q6=0,1119+0,1119+0,1019+0,1025+0,1038+0,0991=0,6311 q7=0,1119+0,1119+0,1019+0,1025+0,1038+0,0991+0,0945=0,7256 q8=0,1119+0,1119+0,1019+0,1025+0,1038+0,0991+0,0945+0,0795=0,8051 q9=0,1119+0,1119+0,1019+0,1025+0,1038+0,0991+0,0945+0,0795+0,0945=0,8996 q10=0,1119+0,1119+0,1019+0,1025+0,1038+0,0991+0,0945+0,0795+0,0945+0,0929 =0,9925 3.3.5 Partially Mapped Crossover PMX dan Variasinya Crossover dilakukan atas 2 kromosom induk untuk menghasilkan kromosom anak. Kromosom anak yang terbentuk akan mewarisi sebagian sifat induknya. Prosedur untuk memilih parent mana yang akan mengalami proses crossover : 1. Tentukan probabilitas crossover. 2. Bangkitkan bilangan random 0 sampai 1 sebanyak i jumlah kromosom dalam satu populasi. 3. Bandingkan bilangan random itu dengan probabilitas crossover Pc. 4. Induk terpilih bila bilangan r yang ke-i kurang atau sama dengan probabilitas crossover Pc. 5. Bila induk yang terpilih jumlahnya hanya satu maka proses ini diulang sampai jumlah induk lebih dari satu. Procedure Crossover inputpopulasi: integer, ρc: real {melakukan pemilihan induk pada proses crossover} Deklarasi k : integer R[] : array of integer Function random input a-b:integer:integer {menghasilkan bilangan random bilangan a hingga b} Algoritma Universitas Sumatera Utara k= 0 While k = populasi do R[k]  random0-1 If R[k] ρc then Select Kromosom[k][]  Parrent end if k k+1 end while Procedure CrossoverPMX1 inputpopulasi: integer, ρc: real {melakukan pemilihan induk pada proses cross over} Deklarasi k : integer R[] : array of integer Function random input a-b:integer integer {menghasilkan bilangan random bilangan a hingga b} Algoritma k= 0 While k = populasi do R[k]  random0-1 If R[k] ρc then pilih Kromosom[k][] sebagai induk Parrent1=Kromosom[k+1] Parrent2=Kromosom[k+2] Gen1[k+1]=left2 Gen2[k+1]=right2 Gen1[k+2]=left3 Gen2[k+2]=right1 Create Mapping Gen1[k+1]  Gen1[k+2] Gen2[k+2]  Gen1[k+1] end if Universitas Sumatera Utara k k+1 end while Procedure CrossoverPMX2 inputpopulasi: integer, ρc: real {melakukan pemilihan induk pada proses cross over} Deklarasi k : integer R[] : array of integer Function random input a-b:integer:integer {menghasilkan bilangan random bilangan a hingga b} Algoritma k= 0 While k = populasi do R[k]  random0-1 If R[k] ρc then pilih Kromosom[k][] sebagai induk Parrent1=Kromosom[k+1] Parrent2=Kromosom[k+2] Gen1[k+1]=left2 Gen2[k+1]=right3 Gen1[k+2]=left2 Gen2[k+2]=right3 Create Mapping MidGen1[k+1],3,3  midGen1[k+2],3,3 MidGen2[k+2],3,3  midGen1[k+1],3,3 end if k k+1 end while

a. Bentuk PMX secara umum: