Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP) Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 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 p(i,L) = min[c(j,i) + p(j,L–{j})] [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 [buku utama, ilustrasi 7.18] 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 Lintasan terpendek = ACBDA [buku utama, ilustrasi 7.18] Bina Nusantara
LINTASAN TERPENDEK TSP Bina Nusantara
Diketahui Cost Matrix sebuah Graph TSP sebagai berikut : LATIHAN Diketahui Cost Matrix sebuah Graph TSP sebagai berikut : Gambarkan Graph TSP nya ! Temukan lintasan TSP terpendek dengan menggunakan Dynamic Programming ! Bina Nusantara
Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara