Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Penyelesaian TSP dengan Algoritma Genetik

Presentasi serupa


Presentasi berjudul: "Penyelesaian TSP dengan Algoritma Genetik"— Transcript presentasi:

1 Penyelesaian TSP dengan Algoritma Genetik
Algoritma Genetik – by Ignas Lamabelawa Penyelesaian TSP dengan Algoritma Genetik

2 pENGERtian tsp sebuah persoalan optimasi untuk mencari rute terpendek bagi seorang pedagang keliling (salesman) Persoalan optimasi yang ingin dicapai ialah rute yang dilalui dan biaya yang digunakan paling minimum

3 Permasalahan Bila dipandang dari sudut komputasinya, algoritma ini dapat diselesaikan dengan cepat walaupun dengan menggunakan algoritma brute force sekalipun, jika kota-kota yang akan dikunjunginya sedikit. Namun, jika kota-kota yang akan dikunjungi banyak, maka algoritma seperti Brute Force tidaklah menjadi pilihan lagi. Sebab, Algoritma Brute Force sendiri memiliki kompleksitas O(n!)

4 Metode penyelesain tsp konvensional
Salah satu cara untuk menyelesaikan TSP yaitu dengan menggunakan Algoritma Brute Force. Hal yang dilakukan ialah dengan cara mengenumerasi seluruh kemungkinan rute yang akan ditempuh

5 Metode penyelesaian - algortima genetik
Beberapa metode telah dikembangkan untuk memecahkan persoalan ini namun belum ditemukan algoritma penyelesaian yang optimal. Salah satu algoritma yang muncul untuk menyelesaikan persoalan ini ialah Algoritma Genetika

6 Contoh masalah tsp

7 Penyelesaian 1 Jumlah node (n) ada 5 buah, Jumlah kemungkinan jalur = (n-1)! / 2 Jumlah jalur 4! /2 = 12 buah Dimisalkan titik asal A dan titik akhir adalah A Maka jumlah jalur dan panjang lintasannya adalah :

8 Penyelesaian 2 Lintasan 1 = (a b c d e a) atau (a e d c b a) memiliki panjang lintasan = = 33 Lintasan 2 = (a b c e d a) atau (a d e c b a) memiliki panjang lintasan = = 32 Lintasan 3 = (a b d c e a) atau (a e c d b a) memiliki panjang lintasan = = 25 Lintasan 4 = (a b d e c a) atau (a c e d b a) memiliki panjang lintasan = = 23 Lintasan 5 = (a b e c d a) atau (a d c e b a) memiliki panjang lintasan = = 31 Lintasan 6 = (a b e d c a) atau (a c d e b a) memiliki panjang lintasan = = 30 Lintasan 7 = (a c b d e a) atau (a e d b c a) memiliki panjang lintasan = = 29 Lintasan 8 = (a c b e d a) atau (a d e b c a) memiliki panjang lintasan = = 35 Lintasan 9 = (a c d b e a) atau (a e b d c a) memiliki panjang lintasan = = 28 Lintasan 10 = (a d b c e a) atau (a e c b d a) memiliki panjang lintasan = = 30 Lintasan 11 = (a d b e c a) atau (a c e b d a) memiliki panjang lintasan = = 27 Lintasan 12 = (a d c b e a) atau (a e b c d a) memiliki panjang lintasan = = 37 Lintasan yang jaraknya paling pendek adalah : 4 yaitu 23

9 hasil Dari hasil ke-12 enumerasi di atas didapatkan panjang jalur lintasan paling minimum yaitu 23. Jumlah enumerasi dari algoritma ini ialah (n - 1)! yang akan memerlukan waktu yang sangat lama untuk mendapatkan panjang lintasan paling minimum jika nilai n bernilai sangat besar.

10 Penyelesaian dengan ag
Dengan contoh yang sama diatas, tahap2 penyelesaian TSP dengan AG adalah : Inisialisasi Evaluasi kromosom Seleksi Kromosom Pindah Silang (crossover) Mutasi

11 Inisialisasi Dipilih secara random ada 6 buah populasi
dalam satu generasi, yaitu : Kromosom[1] = [B D E C] Kromosom[2] = [D B E C] Kromosom[3] = [C B D E] Kromosom[4] = [E B C D] Kromosom[5] = [E C B D] Kromosom[6] = [C D E B]

12 Evaluasi kromosom Menghitung nilai fitness dari tiap kromosom yang telah dibangkitkan pada langkah 1 di atas, dengan menghitung bobot dari setiap lintasan : Fitness[1] = AB+BD+DE+EC+CA = = 23 Fitness[2] = AD+DB+BE+EC+CA = = 27 Fitness[3] = AC+CB+BD+DE+EA = = 29 Fitness[4] = AE+EB+BC+CD+DA = = 37 Fitness[5] = AE+EC+CB+BD+DA = = 30 Fitness[6] = AC+CD+DE+EB+BA = = 30

13 seleksi Q[i] = 1 / Fitness[i] Q[1] = 1 / 23 = 0,043 Q[2] = 1 / 27 = 0,037 Q[3] = 1 / 29 = 0,034 Q[4] = 1 / 37 = 0,027 Q[5 = 1 / 30 = 0,033 Q[6] = 1 / 30 = 0,033 Total = 0, , , , , ,033 = 0,207

14 Probabilitas Untuk mencari probabilitas kita menggunakan
rumus berikut : P[i] = Q[i] / Total (2) P[1] = 0,043 / 0,207 = 0,208 P[2] = 0,037 / 0,207 = 0,179 P[3] = 0,034 / 0,207 = 0,164 P[4] = 0,027 / 0,207 = 0,130 P[5] = 0,033 / 0,207 = 0,159 P[6] = 0,033 / 0,207 = 0,159

15 Probabilitas kUMULATIF
Dengan C[1] = 0,028 C[2] = 0,028+0,179 = 0,387 C[3] = 0,387+0,164 = 0,551 C[4] = 0,551+0,130 = 0,681 C[5] = 0,681+0,159 = 0,840 C[6] = 0,840+0,159 = 1

16 metode roulette wheel Bila bilangan random R[i] yang dihasilkan sbb :
Induk yang dipilih dengan C[k-1]<R[k]<C[k] menghasilkan : C[2],C[[1],C[3],C[5],C[[4],C[]

17 Populasi baru yang terbentuk
Kromosom[1] = [D B E C] Kromosom[2] = [B D E C] Kromosom[3]= [C B D E] Kromosom[4] = [E C B D] Kromosom[5] = [E B C D] Kromosom[6] = [C D E B]

18 Pindah silang(crossover)
Misal parameter crossover probability (ρc) = 25%. Berarti jika bilangan random dihasilkan < 0.25 maka akan dipilih menjadi induk baru. Hasil 6 bilangan random yang dihasilkan adalah : R[1] = 0,451 , R[2] = 0,211 , R[3] = 0,202 , R[4] = 0,877 , R[5] = 0,771 ,R[6] = 0,131 , Kromosom ke-k yang dipilih sebagai induk jika R[k] < ρc. Maka yang akan dijadikan induk adalah kromosom[2], kromosom[3], dan kromosom[6].

19 Proses crossover : Proses crossover : Kromosom[2] = Kromosom[2] >< Kromosom[3] = [B D E C] >< [C B D E] = [B D C E] Kromosom[3] = Kromosom[3] >< Kromosom[6] = [C B D E] >< [C D E B] = [C D E B] Kromosom[6] = Kromosom[6] >< Kromosom[2] = [C D E B] >< [B D E C] = [C D B E]

20 Hasil crossover Kromosom[1] = [D B E C] diambil dari kromosom induk 1 Kromosom[2] = [B D C E] diambil dari hasil crossover kromosom 2 dan 3 Kromosom[3] = [C D E B] diambil dari hasil crossover kromosom 3 dan 6 Kromosom[4] = [E C B D] diambil dari kromosom induk 4 Kromosom[5] = [E B C D] diambil dari kromosom induk 5 Kromosom[6] = [C D B E] diambil dari hasil crossover kromosom 6 dan 2

21 mutasi Panjang total gen = jumlah gen dalam 1 kromosom * jumlah Kromosom (3) = 4 * 6 = 24 Misal probabilitas mutasi (ρm) = 20 %, maka jumlah gen yang akan dimutasi adalah = 0,2*24 = 4,8 = 5 .Posisi tersebut didapat dari pembangkitan 5 bilangan acak, mis bilangan acak yang dihasilkan adalah 0,1 maka posisi gen yang akan dimutasi adalah posisi no 3, dimana 0.1 < 3/24 Mis 5 buah posisi gen yang akan dimutasi adalah 3, 7, 10, 20, 24.

22 Proses mutasi Kromosom[1] = [D B C E] Kromosom[2] = [B D E C] Kromosom[3] = [C E D B] Kromosom[4] = [E C B D] Kromosom[5] = [D B C E] Kromosom[6] = [E D B C]

23 Kesimpulan Kelebihan algoritma genetika dibandingkan metode pencarian konvensiona pada TSP yaitu 1. Solusi dapat diperoleh kapanpun karena solusi dihasilkan pada generasi ke berapapun 2. Algoritma genetika tidak harus membutuhkan waktu yang lama karena tidak semua kemungkinan dicoba, tergantung pada kriteria berakhirnya. 3. Algoritma pencarian konvensional dilakukan apabila jumlah n kecil, tapi jika n nya banyak maka akan memakan banyak waktu untuk penyelesaian dibandingkan algoritma genetik

24 Contoh program tsp dengan matlab
Ada 10 kota yang dipetakan dalam titik koordinat sebagai berikut : Kota(x,y) = [1 3;1 7; 3 9; 5 3; 7 1; 9 5; 9 9; 11 1;15 7; 19 3];

25 gambar

26 1. Inisialisasi function Populasi = TSPInisialisasiPopulasi(UkPop,JumGen) for i=1:UkPop, [Xval,Ind] = sort(rand(1,JumGen)); Populasi(i,:) = Ind; end

27 Implementasi Misalkan diambil ukuran populasi atau jumlah kromosom dalam populasi = 20 Jumlah gen dalam kromosom/ jumlah kota = 10 >> TSPinisialisasiPopulasi(20,10) Y =

28 2. Hitung nilai fitness function fitness = TSPEvaluasiIndividu(Kromosom,JumGen,XYkota) TB = 0; For i=1:JumGen-1, TB = TB + norm(XYkota(Kromosom(ii),:) - XYkota(Kromosom(i+1),:)); end % Jalur harus kembali ke kota asal TB = TB + norm(XYkota(Kromosom(JumGen),:) - XYkota(Kromosom(1),:)); fitness = 1 / TB;

29 >> TSPEvaluasiIndividu(Y,10,XYkota) TB = 105.3432 ans = 0.0095

30 LINEARFITNESSRANKING
function LFR = LinearFitnessRanking(UkPop,Fitness,MaxF,MinF) [SF,IndF] = sort(Fitness); % LinearFitness = nilai fitness baru hasil pen-skala-an for rr=1:UkPop, LFR(IndF(UkPop-rr+1)) = MaxF-(MaxF-MinF)*((rr-1)/(UkPop-1)); end

31 ROULETTE WHEEL function Pindex = RouletteWheel(UkPop,LinearFitness); JumFitness = sum(LinearFitness); KumulatifFitness = 0; RN = rand; ii = 1; while ii <= UkPop, KumulatifFitness = KumulatifFitness + LinearFitness(ii); if (KumulatifFitness/JumFitness) > RN, Pindex = ii; break; end ii = ii + 1;

32 PINDAH SILANG function Anak = TSPPindahSilang(Bapak,Ibu,JumGen) cp1 = 1 + fix(rand*(JumGen-1)) cp2 = 1 + fix(rand*(JumGen-1)) while cp2==cp1, end if cp1 < cp2, cps = cp1; cpd = cp2; else cps = cp2; cpd = cp1; Anak(1,cps+1:cpd) = Ibu(cps+1:cpd); Anak(2,cps+1:cpd) = Bapak(cps+1:cpd); C=Anak(1,cps+1:cpd) D=Anak(2,cps+1:cpd) SisaGenbapak = []; SisaGenIbu = []; for ii=1:JumGen, if ~ismember(Bapak(ii),Anak(1,:)), SisaGenbapak = [SisaGenbapak Bapak(ii)]; if ~ismember(Ibu(ii),Anak(2,:)), SisaGenIbu = [SisaGenIbu Ibu(ii)]; SGB=SisaGenbapak SGI=SisaGenIbu Anak(1,cpd+1:JumGen) = SisaGenbapak(1:JumGen-cpd); Anak(1,1:cps) = SisaGenbapak(1+JumGen-cpd:length(SisaGenbapak)); Anak(2,cpd+1:JumGen) = SisaGenIbu(1:JumGen-cpd); Anak(2,1:cps) = SisaGenIbu(1+JumGen-cpd:length(SisaGenIbu));

33 >> B=TSPInisialisasiPopulasi(1,10) B = >> I=TSPInisialisasiPopulasi(1,10) I = cp1 = 8;cps=4 cp2 = 4;cpd=8 anak1( 5:8 ) = baris ke 5-8 dari ibu sisanya diambil dari Sisa Gen Bapak yang tidak sama dengan anak1 yang terbentuk diatas: Dengan perincian Anak1(9:10)=sisa gen bapak(1:10-8) = 2 8 Anak1(1:4)=sisag gen bapak(3:6) = Anak2 = Anak2(5:8) = Sisa gen ibu = Anak2(9:10)= 1 8 Anak2(1:4)= Anak 1 : Anak 2 :

34 mutasi function MutKrom = TSPMutasi(Kromosom,JumGen,Pmutasi) MutKrom = Kromosom; For i=1:JumGen, if rand < Pmutasi, TM2 = 1 + fix(rand*JumGen); while TM2==i, end temp = MutKrom(i); MutKrom(i) = MutKrom(TM2); MutKrom(TM2) = temp;

35 Hasil mutasi >> TSPMutasi(Y,10,0.005) ans = 8 7 3 2 4 5 1 9 6 10

36 Hasil output

37 JalurTerbaik =

38 Terima kasih


Download ppt "Penyelesaian TSP dengan Algoritma Genetik"

Presentasi serupa


Iklan oleh Google