Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

Christofides-ov heuristički algoritam

za konstrukciju rute trgovačkog


putnika

KORAK 1: Pronaći najkraće


pripadajuće drvo koje
spaja n čvorova. Označiti ovo
najkraće pripadajuće drvo sa
A.

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:

d (a ‚b)  d (a, c) + d (c, b)


www.vtsurosevac.com 3
Primer:
3
1
2
7

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:

s (i, j )=d (B,i )+d (B, j )−d (i, j )


Jasno je da što je veća veličina s(i, j), da je utoliko
bolje spojiti čvorove i i j u jednu rutu.

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.

KORAK 2: Izvršiti rangiranje svih ušteda


i poređati ih po veličini. Napraviti listu
ušteda koja započinje sa najvećom
uštedom.
www.vtsurosevac.com 12
KORAK 3: Pri razmatranju uštede s(i, j)
odgovarajuću granu (i, j) uključiti u delimičnu
rutu, ukoliko:
(a) ni tačka i ni tačka j nisu bile
uključene ni u jednu delimičnu
rutu,
(b) je jedna od tačaka i ili j već
uključena u neku postojeću
delimičnu rutu i ukoliko ta tačka
nije unutrašnja tačka u ruti (tačka je
unutrašnja u ruti ukoliko nije susedna
početnoj tački B),

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.

KORAK 4: Kada je lista “ušteda”


potrošena do kraja završiti sa algoritmom.

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

(4,5) 165 (2,3) 120 (4,7) 45

(3,4) 150 (5,7) 120 (2,7) 15

(6,7) 150 (2,5) 75 (3,6) 15

(2,4) 135 (3,5) 60 (3,7) 15

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

Konačna ruta trgovačkog putnika glasi:


(1, 2, 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 )

gde je a neki od čvorova koji treba da budu


posećeni.
www.vtsurosevac.com 21
Neka su rastojanja između pojedinih tačaka-kopija
beskonačno velika

( )
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:

Dušan Teodorović, Transportne mreže,


Saobraćajni fakultet, Beograd, 2007. (str.
129-133 i 148-150).

www.vtsurosevac.com

You might also like