• Tidak ada hasil yang ditemukan

Algoritma Genetika pada Travelling Salesman Problem (TSP)

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

Dokumen terkait