Matakuliah Tahun : T0034 / Perancangan & Analisis Algoritma : 2008 Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP) TRAVELING SALESMAN PROBLEM • Ada seorang pedagang keliling (salesman) yang hendak menawarkan barang dagangannya ke beberapa alamat. • Jarak antar alamat-alamat itu berbeda-beda. • Pedagang berusaha mencari rute agar dia bisa mengunjungi semua alamat tersebut secepat mungkin (rute terpendek), kemudian kembali ke rumahnya sendiri. • Problem inilah yang dinamakan dengan Traveling Salesman Problem (atau sering disingkat TSP). [buku utama, bab 7.6] Bina Nusantara PENERAPAN TSP • Dalam penerapan TSP di komputer, setiap alamat dilambangkan dengan sebuah node di graph. • Semua jalur antar alamat dilambangkan dengan edge yang memiliki weight (bobot). – Misalkan si pedagang memulai perjalanannya dari node A (rumahnya sendiri), dia harus mengunjungi semua alamat yang lain tepat 1 kali (tiap node dikunjungi 1 kali, tidak boleh kurang dan tidak boleh lebih) dan akhirnya harus kembali pulang ke rumahnya sendiri. Bina Nusantara CONTOH KASUS [buku utama, ilustrasi 7.16] Rumus Dynamic Programming untuk TSP p(i,L) = min[c(j,i) + p(j,L–{j})] Bina Nusantara REPRESENTASI MASALAH TSP • Digunakan Cost Matrix, bukan Adjacency Matrix, mengapa? – Jika antara 2 node tidak ada edge yang menghubungkan, berarti tidak ada jalur yang bisa ditempuh antara 2 node tersebut. Jika digunakan nilai 0 dalam Adjacency Matrix, maka algoritma Dynamic Programming akan mendeteksinya sebagai jarak yang sangat dekat, seolah terdapat jalur. Bina Nusantara RUMUS TSP • p(i,L) = min[c(j,i) + p(j,L–{j})] • p(i,S) adalah panjang jalur dari node awal menuju node i setelah sebelumnya melewati rangkaian jalur L. • Jarak dari node j ke node i dilambangkan dengan c(j,i). • Perhatikan bahwa c(j,i) tidak sama dengan c(i,j) karena graph di atas mengandung 2 directed edge dengan arah berbeda dan weight berbeda. • L-{j} dapat diartikan sebagai rangkaian jalur L yang dikurangi dengan node j. • Maka, panjang lintasan terpendek untuk graph pada gambar di atas adalah p(A,{B,C,D}) yang artinya panjang lintasan dari node awal menuju node A setelah melewati node B, C, D dengan urutan apa pun (dicari yang terpendek). [buku utama, ilustrasi 7.17] Bina Nusantara PERHITUNGAN TSP p(B,Ø)=c(A,B)=12 p(C,Ø)=c(A,C)=11 p(D,Ø)=c(A,D)=16 p(B,{C})=c(C,B)+p(C,Ø)=25 p(B,{D})=c(D,B)+p(D,Ø)=27 p(C,{B})=c(B,C)+p(B,Ø)=29 p(C,{D})=c(D,C)+p(D,Ø)=33 p(D,{B})=c(B,D)+p(B,Ø)=22 p(D,{C})=c(C,D)+p(C,Ø)=29 p(B,{C,D})= min[c(C,B)+p(C,{D})|c(D,B)+p(D,{C})] = min[14+33|11+29] = 40 p(C,{B,D})= min[c(B,C)+p(B,{D})|c(D,C)+p(D,{B})] = min[15+27|17+22] = 39 p(D,{B,C})= min[c(B,D)+p(B,{C})|c(C,D)+p(C,{B})] = min[10+25|18+27] = 35 p(A,{B,C,D})= min[c(B,A)+p(B,{C,D})| c(C,A)+p(C,{B,D})| c(D,A)+p(D,{B,C})] = min[15+40|8+39|9+35] = 44 Panjang lintasan terpendek = 44 Bina Nusantara [buku utama, ilustrasi 7.18] PERHITUNGAN TSP p(B,Ø)=c(A,B)=12 p(C,Ø)=c(A,C)=11 p(D,Ø)=c(A,D)=16 p(B,{C})=c(C,B)+p(C,Ø)=25 p(B,{D})=c(D,B)+p(D,Ø)=27 p(C,{B})=c(B,C)+p(B,Ø)=29 p(C,{D})=c(D,C)+p(D,Ø)=33 p(D,{B})=c(B,D)+p(B,Ø)=22 p(D,{C})=c(C,D)+p(C,Ø)=29 p(B,{C,D})= min[c(C,B)+p(C,{D})|c(D,B)+p(D,{C})] = min[14+33|11+29] = 40 p(C,{B,D})= min[c(B,C)+p(B,{D})|c(D,C)+p(D,{B})] = min[15+27|17+22] = 39 p(D,{B,C})= min[c(B,D)+p(B,{C})|c(C,D)+p(C,{B})] = min[10+25|18+27] = 35 p(A,{B,C,D})= min[c(B,A)+p(B,{C,D})| c(C,A)+p(C,{B,D})| c(D,A)+p(D,{B,C})] = min[15+40|8+39|9+35] = 44 Lintasan terpendek = ACBDA Bina Nusantara [buku utama, ilustrasi 7.18] LINTASAN TERPENDEK TSP Bina Nusantara LATIHAN • Diketahui Cost Matrix sebuah Graph TSP sebagai berikut : 17 8 12 10 15 11 8 16 9 12 19 10 15 7 19 14 10 13 • Gambarkan Graph TSP nya ! • Temukan lintasan TSP terpendek dengan menggunakan Dynamic Programming ! Bina Nusantara REVIEW • Apa yang sudah dipahami? • Apa yang akan dibahas selanjutnya? Bina Nusantara
© Copyright 2024 Paperzz