1 / 38

Penyelesaian TSP dengan Algoritma Genetik

Algoritma Genetik – by Ignas Lamabelawa. Penyelesaian TSP dengan Algoritma Genetik. 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.

ishana
Download Presentation

Penyelesaian TSP dengan Algoritma Genetik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AlgoritmaGenetik – by IgnasLamabelawa Penyelesaian TSP denganAlgoritmaGenetik

  2. 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 pENGERtian tsp

  3. 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!) Permasalahan

  4. 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 Metodepenyelesain tsp konvensional

  5. 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 Metodepenyelesaian - algortimagenetik

  6. Contohmasalah tsp

  7. Jumlah node (n)ada 5 buah, Jumlah kemungkinan jalur = (n-1)! / 2 Jumlahjalur 4! /2 = 12 buah Dimisalkantitikasal A dantitikakhiradalah A Makajumlahjalurdanpanjanglintasannyaadalah : Penyelesaian 1

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

  9. 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. hasil

  10. Dengancontoh yang samadiatas, tahap2 penyelesaian TSP dengan AG adalah : Inisialisasi Evaluasikromosom SeleksiKromosom PindahSilang (crossover) Mutasi Penyelesaiandenganag

  11. 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] Inisialisasi

  12. 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 = 7 + 2 + 6 + 3 + 5 = 23 Fitness[2] = AD+DB+BE+EC+CA = 9 + 2 + 8 + 3 + 5 = 27 Fitness[3] = AC+CB+BD+DE+EA = 5 + 7 + 2 + 6 + 9 = 29 Fitness[4] = AE+EB+BC+CD+DA = 9 + 8 + 7 + 4 + 9 = 37 Fitness[5] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30 Fitness[6] = AC+CD+DE+EB+BA = 5 + 4 + 6 + 8 + 7 = 30 Evaluasikromosom

  13. 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,043 + 0,037 + 0,034 + 0,027 + 0,033 + 0,033 = 0,207 seleksi

  14. 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 Probabilitas

  15. 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 ProbabilitaskUMULATIF

  16. metode roulette wheel Bilabilangan random R[i] yang dihasilkansbb : R[1] = 0,314 R[2] = 0,111, R[3] = 0,342, R[4] = 0,743 R[5] = 0,521, R[6] = 0,411 Induk yang dipilihdengan C[k-1]<R[k]<C[k] menghasilkan : C[2],C[[1],C[3],C[5],C[[4],C[]

  17. 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] Populasibaru yang terbentuk

  18. Misalparameter crossoverprobability (ρ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]. Pindahsilang(crossover)

  19. 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] Proses crossover :

  20. 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 Hasil crossover

  21. 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 dimutasiadalah 3, 7, 10, 20, 24. mutasi

  22. Kromosom[1] = [D B CE] Kromosom[2] = [B D EC] Kromosom[3] = [C ED B] Kromosom[4] = [E C B D] Kromosom[5] = [D B C E] Kromosom[6] = [E D B C] Prosesmutasi

  23. 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 Kesimpulan

  24. Ada 10 kota yang dipetakandalamtitikkoordinat sebagaiberikut : Kota(x,y) = [1 3;1 7; 3 9; 5 3; 7 1; 9 5; 9 9; 11 1;15 7; 19 3]; Contoh program tsp denganmatlab

  25. gambar

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

  27. Misalkan diambil ukuran populasi atau jumlahkromosomdalampopulasi = 20 Jumlah gen dalam kromosom/ jumlahkota = 10 >> TSPinisialisasiPopulasi(20,10) Y = 8 7 3 2 4 5 1 9 6 10 10 3 5 2 6 8 9 4 1 7 1 9 8 10 7 3 6 5 2 4 10 8 1 7 6 5 3 4 2 9 2 8 1 7 6 9 4 3 10 5 2 8 1 3 9 10 4 5 7 6 1 5 8 10 6 3 4 9 2 7 7 3 4 8 10 9 1 5 2 6 5 10 4 2 6 9 1 3 8 7 10 1 4 3 5 2 7 6 9 8 5 3 1 2 6 4 7 10 9 8 4 8 1 10 7 2 3 9 6 5 10 4 6 8 2 5 9 1 7 3 6 1 3 2 4 5 8 9 10 7 6 7 2 8 3 9 10 5 4 1 10 6 3 4 9 2 5 7 1 8 4 7 6 5 10 2 3 1 8 9 2 9 10 5 6 8 4 3 7 1 6 9 1 7 3 4 2 8 5 10 1 9 7 8 10 4 3 5 2 6 Implementasi

  28. function fitness = TSPEvaluasiIndividu(Kromosom,JumGen,XYkota) TB = 0; For i=1:JumGen-1, TB = TB + norm(XYkota(Kromosom(ii),:) - XYkota(Kromosom(i+1),:)); end % Jalurharuskembalikekotaasal TB = TB + norm(XYkota(Kromosom(JumGen),:) - XYkota(Kromosom(1),:)); fitness = 1 / TB; 2. Hitungnilai fitness

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

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

  31. 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; end ROULETTE WHEEL

  32. function Anak = TSPPindahSilang(Bapak,Ibu,JumGen) cp1 = 1 + fix(rand*(JumGen-1)) cp2 = 1 + fix(rand*(JumGen-1)) while cp2==cp1, cp2 = 1 + fix(rand*(JumGen-1)) end if cp1 < cp2, cps = cp1; cpd = cp2; else cps = cp2; cpd = cp1; end 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 = [SisaGenbapakBapak(ii)]; end if ~ismember(Ibu(ii),Anak(2,:)), SisaGenIbu = [SisaGenIbuIbu(ii)]; end end 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)); PINDAH SILANG

  33. >> B=TSPInisialisasiPopulasi(1,10) B =2 8 1 3 9 10 4 5 7 6 >> I=TSPInisialisasiPopulasi(1,10) I = 1 5 8 10 6 3 4 9 2 7 cp1 = 8;cps=4 cp2 = 4;cpd=8 anak1( 5:8 ) = bariske 5-8 dariibu 6 3 4 9 sisanyadiambildariSisa Gen Bapak yang tidaksamadengan anak1 yang terbentukdiatas: 2 8 1 10 5 7 Denganperincian Anak1(9:10)=sisa gen bapak(1:10-8) = 2 8 Anak1(1:4)=sisag gen bapak(3:6) = 1 10 5 7 Anak2 = 9 10 4 5 Anak2(5:8) = 9 10 4 5 Sisa gen ibu = 1 8 6 3 2 7 Anak2(9:10)= 1 8 Anak2(1:4)= 6 3 2 7 Anak 1 : 1 10 5 7 6 3 4 9 2 8 Anak 2 : 6 3 2 7 9 10 4 5 1 8

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

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

  36. Hasil output

  37. JalurTerbaik = 4 5 8 10 9 6 7 3 2 1

  38. Terimakasih

More Related