Professional Documents
Culture Documents
Problem Trgovačkog Putnika
Problem Trgovačkog Putnika
www.vtsurosevac.com 1
Christofides-ov heuristički
algoritam
KORAK 2: Neka je k od n čvorova drveta A
neparnog stepena (k je uvek paran broj). Izvršiti
sparivanje po 2 od ovih k čvorova tako da
ukupna dužina grana koje spajaju ove čvorove
bude najmanja. Ovih k čvorova sa
odgovarajućim granama dobijenim sparivanjem
sačinjavaju mrežu koju ćemo označiti sa B.
Nacrtati mrežu C koja predstavlja uniju mreže B
i mreže A.
www.vtsurosevac.com 2
Christofides-ov heuristički algoritam
KORAK 3: Mreža C ne sadrži čvorove
neparnog stepena. Nacrtati Euler-ovu turu u
mreži C. Ova Euler-ova tura je približno rešenje
za problem trgovačkog putnika.
KORAK 4: Proveriti koji su sve čvorovi
posećeni više od jednog puta i poboljšati rutu
trgovačkog putnika dobijenu posle trećeg koraka
uzimanjem u obzir nejednakosti:
4
5
6
www.vtsurosevac.com 4
Najkraće pripadajuće drvo koje
povezuje čvorove 1, 2, ..., 7
(mreža A)
www.vtsurosevac.com 5
Mreža B
3
6
www.vtsurosevac.com 6
Mreža C
www.vtsurosevac.com 7
Ruta trgovačkog putnika dobijena
primenom Christosfides-ovog
algoritma
3
1
2
7
4
5
www.vtsurosevac.com 6 8
Clarke-Wright-ov algoritam
“ušteda” za konstrukciju rute
trgovačkog putnika
d(i, j)
i j i j
j)
, j)
d(B
d(B
,
d(B
d(B
,
, i)
i)
B B
(a) www.vtsurosevac.com (b) 9
(a) Trgovački putnik kreće iz baze (čvor B)
posećuje čvor i, vraća se u bazu, posećuje
čvor j i ponovo se vraća u bazu. U ovom
slučaju ukupno rastojanje koje prevali
trgovački putnik jednako je (pretpostavlja
se da je d(i, j) = d(j, i), za (i, j)):
2 d ( B, i ) + 2 d ( B, j )
(b) Poboljšana strategija kretanja
trgovačkog putnika:
Ukupno rastojanje koje prevali trgovački
putnik je jednako:
d ( B , i ) + d ( i , j ) + d ( B, j )
www.vtsurosevac.com 10
Ušteda s(i, j) koju ostvaruje trgovački putnik kada
čvorove i i j spoji u jednu rutu je jednaka:
(
s( i, j) = 2 d ( B, i) + 2 d ( B, j) − d ( B, i) + d ( i, j) + d ( B, j) )
odnosno:
www.vtsurosevac.com 11
Clarke-Wright-ov algoritam
“ušteda”
KORAK 1: Izračunati uštede
s(i, j) = d(B, i) + d(B, j) - d(i, j) za
svaki par (i, j) čvorova koje treba
opslužiti.
www.vtsurosevac.com 13
(c) su obe tačke i i j uključene u dve
različite delimične rute i nijedna od tih
tačaka nije unutrašnja u tim rutama (obe
su spoljne) u kom slučaju je moguće
spojiti delimične rute u jednu.
www.vtsurosevac.com 14
Primer:
3
1
2
7
4
5
www.vtsurosevac.com 6 15
Rastojanja
1 2 3 4 5 6 7
1 0 75 135 165 135 180 90
2 75 0 90 105 135 210 150
3 135 90 0 150 210 300 210
4 165 105 150 0 135 210 210
5 135 135 210 135 0 90 105
6 180 210 300 210 90 0 120
7 90 150 210 210 105 120 0
www.vtsurosevac.com 16
Rangirane uštede
Grana (i, j) Ušteda Grana (i, j) Ušteda Grana (i, j) Ušteda
(5,6) 225 (4,6) 135 (2,6) 45
www.vtsurosevac.com 17
Delimična ruta:
(1, 5, 6, 1),
(1, 4, 5, 6, 1),
(1, 3, 4, 5, 6, 1),
(1, 3, 4, 5, 6, 7, 1).
www.vtsurosevac.com 18
Ruta trgovačkog putnika dobijena
primenom Clark-Wright-ovog
algoritma “ušteda”
3
1
2
7
4
5
www.vtsurosevac.com
6 19
Problem m trgovačkih
putnika
Razmotrimo slučaj kada m trgovačkih putnika
treba da poseti n tačaka, pri čemu svaka od m
ruta počinje i završava u istoj tački. Označimo
ovu tačku sa B.
Neophodno je pronaći m ruta najmanje ukupne
dužine koje nemaju zajedničkih grana, koje
“pokrivaju” sve tačke koje treba obići i koje sve
započinju i završavaju u tački B.
www.vtsurosevac.com 20
Neka su takođe rastojanja između
tačaka-kopija i tačaka iz skupa od n tačaka
jednaka rastojanjima između originalne tačke
B i pojedinih tačaka iz skupa od n tačaka koje
treba obići, tj. neka je
d ( B1 , a ) = d ( B2 , a ) = ... = d ( Bm , a ) = d ( B, a )
( )
d Bi , B j = i , j = 1, 2,..., m
Problem možemo sada da tretiramo kao klasičan
problem trgovačkog putnika, tj. kao problem u kome
jedan trgovački putnik treba da obiđe (m+n) tačaka
tačno jedanput. Pri rešavanju ovog zadatka nikada
posle nekog čvora Bi neće doći neki čvor Bj s
obzirom da je
( )
d Bi , B j = i , j = 1, 2,..., m
www.vtsurosevac.com 22
Primer
1 7 2
8.06 8.06
5.64
5
4 4
4 3 B 4
www.vtsurosevac.com 3 23
Matrica rastojanja
B 1 2 3 4
B 5 5.64 4 3
1 5 7 8.06 4
2 5.64 7 4 8.06
3 4 8.06 4 7
4 3 4 8.06 7
www.vtsurosevac.com 24
Nova matrica rastojanja
B1 B2 1 2 3 4
B1 5 5.64 4 3
B2 5 5.64 4 3
1 5 5 7 8.06 4
2 5.64 5.64 7 4 8.06
3 4 4 8.06 4 7
4 3 3 4 8.06 7
www.vtsurosevac.com 25
Primenom Christofides-ovog algoritma za
rešavanje problema trgovačkog putnika dobijena
je ruta:
B1 − 2 − 3 − B2 − 4 − 1 − 4 − B1
Ukupna dužina ove rute je 27.64.
Spajanjem kopija B1 i B2 u jednu tačku (tačku B)
dobijaju se 2 rute za 2 trgovačka putnika.
www.vtsurosevac.com 26
Rute 2 trgovačka putnika
1 2
4 B www.vtsurosevac.com 3 27
Finalne rute 2 trgovačka putnika
1 2
4 Bwww.vtsurosevac.com 3 28
Literatura:
www.vtsurosevac.com