download

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