Anda di halaman 1dari 24

Travelling Salesperson

Problem (TSP)

TEKNIK INDUSTRI - UTY


Diberikan sejumlah kota dan diketahui jarak antar
kota. Tentukan tur terpendek yang harus dilalui oleh
seorang pedagang bila pedagang itu berangkat dari
sebuah kota asal dan menyinggahi setiap kota tepat
satu kali dan kembali lagi ke kota asal keberangkatan.

2
• Misalkan G = (V, E) adalah graf lengkap berarah
dengan sisi-sisi yang diberi harga cij > 0.

• Misalkan V = n dan n > 1. Setiap simpul diberi


nomor 1, 2, …, n.

• Asumsikan perjalanan (tur) dimulai dan berakhir


pada simpul 1.

3
• Setiap tur pasti terdiri dari sisi (1, k) untuk
beberapa k  V – {1} dan sebuah lintasan
dari simpul k ke simpul 1.

• Lintasan dari simpul k ke simpul 1 tersebut


melalui setiap simpul di dalam V – {1, k} tepat
hanya sekali.

• Prinsip Optimalitas: jika tur tersebut optimal


maka lintasan dari simpul k ke simpul 1 juga
menjadi lintasan k ke 1 terpendek yang
melalui simpul-simpul di dalam V – {1, k}.

4
• Misalkan f(i, S) adalah bobot lintasan
terpendek yang berawal pada simpul i,
yang melalui semua simpul di dalam S
dan berakhir pada simpul 1.

• Nilai f(1, V – {1}) adalah bobot tur


terpendek.

5
Hubungan rekursif:

f (1, V  {1})  min{c  f ( k , V  {1, k })}


2k n 1k
(1)

Dengan merampatkan persamaan (1), diperoleh

f (i ,  )  c i ,1
, 2in (basis)

f (i, S )  min{c  f ( j , S  { j})} (rekurens) (2)


jS ij

• Gunakan persamaan (2) untuk


memperoleh f(i, S) untuk S = 1, f(i, S)
untuk S = 2, dan seterusnya sampai
untuk S = n – 1.
6
Tinjau persoalan TSP untuk n = 4:

0 10 15 20
5 0 9 10 
 
6 13 0 12 
8 8 9 0 
 

Tahap 1: f (i,  )  c i ,1
, 2in

Diperoleh:
f(2, ) = c21 = 5;
f(3, ) = c31 = 6;
f(4, ) = c41 = 8;

7
Tahap 2:
f (i, S )  min{c  f ( j, S  { j})} untuk S = 1
jS ij

Diperoleh:
f(2, {3}) = min{c23 + f(3, )} = min{9 + 6} = min{15} = 15
f(2, {4}) = min{c24 + f(4, )} = min{10 + 8} = min{18} = 18
f(3, {2}) = min{c32 + f(2, )} = min{13 + 5} = min{18} = 18
f(3, {4}) = min{c34 + f(4, )} = min{12 + 8} = min{20} = 20
f(4, {2}) = min{c42 + f(2, )} = min{8 + 5} = min{13} = 13
f(4, {3}) = min{c43 + f(3, )} = min{9 + 6} = min{15} = 15

8
Tahap 3:
f (i, S )  min{c  f ( j, S  { j})}
j S ij

untuk S = 2 dan i  1, 1  S dan i  S.

Diperoleh:
f(2, {3, 4}) = min{c23 + f(3, {4}), c24 + f(4, {3})}
= min{9 + 20, 10 + 15}
= min{29, 25} = 25

f(3, {2, 4}) = min{c32 + f(2, {4}), c34 + f(4, {2})}


= min{13 + 18, 12 + 13}
= min{31, 25} = 25

f(4, {2, 3}) = min{c42 + f(2, {3}), c43 + f(3, {2})}


= min{8 + 15, 9 + 18}
= min{23, 27} = 23 9
Dengan menggunakan persamaan (1) diperoleh:

f(1, {2, 3, 4}) = min{c12 + f(2, {3, 4}), c13 + f(3, {2, 4}),
c14 + f(4, {2, 3})}
= min{10 + 25, 15 + 25, 20 + 23}
= min{35, 40, 43} = 35

Jadi, bobot tur yang berawal dan berakhir di simpul 1


adalah 35.

10
• Misalkan J(i, S) adalah nilai yang dimaksudkan
tersebut. Maka, J(1, {2, 3, 4}) = 2. Jadi, tur mulai
dari simpul 1 selanjutnya ke simpul 2.

• Simpul berikutnya dapat diperoleh dari f(2, {3,


4}), yang mana J(2, {3, 4}) = 4. Jadi, simpul
berikutnya adalah simpul 4.

• Simpul terakhir dapat diperoleh dari f(4, {3}),


yang mana J(4, {3}) = 3. Jadi, tur yang optimal
adalah 1, 2, 4, 3, 1 dengan bobot (panjang) =
35.
11
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).
• 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.
CONTOH KASUS

Rumus Dynamic Programming untuk TSP

p(i,L) = min[c(j,i) + p(j,L–{j})]


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.
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).
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


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]
LINTASAN TERPENDEK TSP
LATIHAN
• Diketahui Cost Matrix sebuah Graph TSP
sebagai berikut :   17  8 12
10  15 11 14
 
 8 16  9 10
 
12 19 10  13
15 7 19   
• Gambarkan Graph TSP nya !
• Temukan lintasan TSP terpendek dengan
menggunakan Dynamic Programming !
REVIEW
• Apa yang sudah dipahami?
• Apa yang akan dibahas selanjutnya?
TERIMA
KASIH

Anda mungkin juga menyukai