METODOLOGI PENELITIAN
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 Crossover(Partially mapped crossover) PMX Umum,PMX I,PMX II Output: Pengaruh pemetaan pada PMX dalam i b t
Start
Data: TSPLIB
Representasi/encoding ke dalam bentuk path representation
Tentukan:
- ukuran populasi (population size/N) - jumlah generasi
- probabilitas crossover (pc) - probabilitas mutasi (pm)
Bangkitkan populasi awal (inisialisasi populasi) secara acak
Hitung fitness dari masing-masing kromosom
Apakah kriteria/syarat 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 (pc) sehingga menghasilkan
offspring
Ubah secara acak nilai gen pada
offspring dengan memperhatikan probabilitas mutasi (pm)
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 FlowchartPartially 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
tidak
ya
Gambar 3.3 Flowchart Partially Mapped Crossover (PMX) Umum
Mulai
Tentukan nilai Pc
ya
Gambar 3.4 FlowchartPartially Mapped Crossover (PMX) Variasi I Tidak
Tentukan Pc
Pilih Kromosom Induk
Tentukan titik potong pada posisi yang sama pada dua kromosom Induk
tidak
ya
Gambar 3.5 FlowchartPartially 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-kromosom/individu-individu adalah kumpulan angka yang mewakili posisi kota dalam sebuah rangkaian (urutan). Dengan kata lain, sebuah kromosom/individu 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 ��
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 :
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
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
k= 0
While k <= populasi do R[k] random(0-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] random(0-1)
If R[k] < ρc then
pilih Kromosom[k][] sebagai induk Parrent1=Kromosom[k+1] Parrent2=Kromosom[k+2] Gen1[k+1]=left(2) Gen2[k+1]=right(2) Gen1[k+2]=left(3) Gen2[k+2]=right(1) Create Mapping Gen1[k+1] Gen1[k+2] Gen2[k+2] Gen1[k+1] end if
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] random(0-1)
If R[k] < ρc then
pilih Kromosom[k][] sebagai induk Parrent1=Kromosom[k+1] Parrent2=Kromosom[k+2] Gen1[k+1]=left(2) Gen2[k+1]=right(3) Gen1[k+2]=left(2) Gen2[k+2]=right(3) Create Mapping Mid(Gen1[k+1],3,3) mid(Gen1[k+2],3,3) Mid(Gen2[k+2],3,3) mid(Gen1[k+1],3,3) end if k k+1 end while
Langkah 1 :Menentukan dua posisi kromosom pada aturan acak dengan posisi yang sama. Substring yang berada dalam dua posisi ini dinamakan daerah mapping.
Langkah 2 : Menukar dua substring antara induk untuk menghasilkan protochildren. Langkah 3 : Menentukan hubungan mapping diantara dua daerah mapping.
Langkah 4 : Menentukan kromosom keturunan mengacu pada hubungan mapping.
b. Bentuk PMX Variasi I:
Langkah 1 :Menentukan dua posisi kromosom dengan posisi acak dengan posisi titik potong pada parent1 dipotong pada gen kedua sedangkan parent2 dipotong pada gen ketiga dengan daerah mapping terletak diantara kedua titik potong pada masing-masing parent.
Langkah 2 : Menukar dua substring antara induk untuk menghasilkan protochildren. Langkah 3: Menentukan hubungan mapping diantara dua daerah mapping.
Langkah 4: Menentukan kromosom keturunan mengacu pada hubungan mapping.
Contoh:
P1 : 3 6 7 2 4 5 1 8 P2 : 1 7 4 5 3 6 8 2
Menentukan dua posisi kromosom induk yang umumnya dilakukan pada posisi yang sama tetapi pada penelitian ini menentukan dua posisi kromosom secara acak dimana posisi kromosom pada parent1 dipotong pada gen kedua sedangkan pada parent2 dipotong pada gen ketiga
P1 : 3 6 |7 2 4 5|1 8 P2 : 1 7 4 |5 3 6 8| 2
Protochildren1 : 1 7 4|7 2 4 5 |2 Protochildren2 : 3 6| 5 3 6 8|1 8
Menentukan hubungan mapping
7 6 2 3
Maka akan dihasilkan keturunan O1 : 8 6 1|7 2 4 5|3
O2 : 2 7|5 3 6 8|4 1
c. Bentuk PMX Variasi II:
Langkah 1: Menentukan dua posisi kromosom dengan posisi sama.
Langkah 2: Menukar dua substring antara induk untuk menghasilkan protochildren. Langkah 3:Menentukan hubungan mapping dimana daerah mapping yang biasanya
terletak diantara dua substring menjadi terletak di pinggir masing-masing substring.
Langkah 4: Menentukan kromosom keturunan mengacu pada hubungan mapping.
Contoh:
P1 : 3 6 7 2 4 5 1 8 P2 : 1 7 4 5 3 6 8 2
Menentukan dua posisi kromosom dalam posisi sama P1 : 3 6 7 |2 4 5 |1 8
P2 : 1 7 4 |5 3 6 |8 2
Protochildren1 : 1 7 4| 2 4 5 |8
Protochildren2 : 3 6 7| 5 3 6 |1 8
Menentukan hubungan mapping yang biasanya daerah mapping terletak diantara dua substring, maka akan dipilih daerah mapping yang terletak di ujung-ujung substring.
1 3 8 2
7 6 4
Maka akan dihasilkan keturunan kromosom sebagai berikut O1: 1 7 4|3 6 5| 8 2
O2: 3 6 7|5 2 4|1 8
Mutasi yang akan dilakukan pada penelitian ini adalah swapping mutation. Swapping mutation adalah mutasi yang dilakukan dengan menukar satu atau beberapa nilai gen dalam kromosom.
Langkah-langkah dalam menentukan mutasi adalah :
1. Hitung jumlah gen pada populasi (panjang kromosom ini dikalikan dengan ukuran populasi.
2. Pilih secara acak gen yang akan dimutasi
3. Tentukan kromosom dari gen yang terpilih untuk dimutasi 4. Ambil 2 gen secara acak dan tukar posisi mereka
BAB 4