ANALIZA TRANSPORTNIH MRE ŽA - Saobraćajni fakultet · mnogougao ” KORAK 1:Konstruisati...
Transcript of ANALIZA TRANSPORTNIH MRE ŽA - Saobraćajni fakultet · mnogougao ” KORAK 1:Konstruisati...
ANALIZA TRANSPORTNIH ANALIZA TRANSPORTNIH MREMREŽŽAA
PREDAVANJE VIII
Predavanje VIIPredavanje VII
� Christofides-ov heuristički algoritam zakonstrukciju rute trgovačkog putnika
� Clarke-Wright-ov algoritam “ušteda” zakonstrukciju rute TP
� Algoritam “ubacivanja u konveksan mnogougao”
� Problem m trgovačkih putnika
1. 1. ChristofidesChristofides--ovov heuristiheurističčkiki algoritamalgoritam zazakonstrukcijukonstrukciju ruterute TPTP
KORAK 1: Pronaći najkraće pripadajućedrvo koje spaja n čvorova. Označiti ovo
najkraće pripadajuće drvo sa A.
3
KORAK 2: Neka je k od n čvorova drveta Aneparnog 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 dobijenimsparivanjem sačinjavaju mrežu koju ćemooznačiti sa B. Nacrtati mrežu C kojapredstavlja uniju mreže B i mreže A.
4
1. 1. ChristofidesChristofides--ovov heuristiheurističčkiki algoritamalgoritam zazakonstrukcijukonstrukciju ruterute TPTP
KORAK 3: Mreža C ne sadrži čvorove neparnogstepena. 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ćeniviše od jednog puta i poboljšati rutu trgovačkogputnika dobijenu posleg trećeg korakauzimanjem u obzir nejednakosti:
d a b d a c d c b( ‚ ) ( , ) ( , )≤ +5
1. 1. ChristofidesChristofides--ovov heuristiheurističčkiki algoritamalgoritam zazakonstrukcijukonstrukciju ruterute TPTP
6
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
6
23
4
5
1
−−
−−
−−
3641543220
3628584130
4128322222
5458322236
3241222214
2030223614
7
6
2 3
4
5
1
−−
−−
−−
3641543220
3628584130
4128322222
5458322236
3241222214
2030223614
Korak 1. Odreñivanje najkraćeg pripadajućeg drveta
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
8
6
2 3
4
5
1
Korak II. Čvorovi neparnog stepena su 1,3,5,6
Korak III.Moguća sparivanja:
(1,3) i (5,6): 36+36 =72(1,5) i (3,6): 30+53 =84(1,6) i (3,5): 20+58 = 78
min {72,84,78} = 72
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
9
6
2 3
4
5
1
Korak 1VRuta (1,2,3,1,4,5,6,1)
Korak VPoboljšanje rute
d(6,2) ≤ d(1,2) + d(1,6)32 ≤ 14+ 2032 ≤ 34 ušteda 2
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
10
Poboljšanje ruted(4,2) ≤ d(1,2) + d(1,4)22 ≤ 14+2222 ≤ 36 ušteda 14
d(4,3) ≤ d(3,1) + d(1,4)32 ≤ 22+3632 ≤ 58 ušteda 26
d(6,3) ≤ d(1,3) + d(1,6)54 ≤ 36 + 20 ušteda 2
max{2,14,26,2} = 26 umesto (1,4) i (1,3) ubacujemo (3,4).
6
2 3
4
5
1
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
6
2 3
4
5
1
Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom ChristofidesChristofides--ovovogog algoritalgoritmama
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
i j
B
d(B, i) d(
B, j
)
i j
B
d(B, i) d(B
, j)
d(i, j)
(a) (b)
12
(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 ukupnorastojanje koje prevali trgovački putnik jednako je(pretpostavlja se da je d(i, j) = d(j, i), za (i, j)):
( ) ( ) 2 2d B i d B j, ,+
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
(b) Poboljšana strategija kretanja trgovačkogputnika. Ukupno rastojanje koje prevalitrgovački putnik je jednako:
14
( ) ( ) ( ) d B i d i j d B j, , ,+ +
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
� Ušteda s(i, j) koju ostvaruje trgovački putnikkada čvorove i i j spoji u jednu rutu je jednaka:
odnosno:
� Jasno je da što je veća veličina s(i, j), da jeutoliko bolje spojiti čvorove i i j u jednu rutu.
15
( ) ( ) ( ) ( ) ( ) ( )( ) s i j d B i d B j d B i d i j d B j, , , , , ,= + − + +2 2
( ) ( ) ( ) ( )jidjBdiBdjis ,,,, −+=
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
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.
16
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
KORAK 3: Pri razmatranju uštede s(i, j) odgovarajuću granu (i, j) uključiti u delimičnurutu, 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 nijesusedna početnoj tački B)
17
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
(c) su obe tačke i i j uključene u dve različitedelimične rute i nijedna od tih tačaka nijeunutrašnja u tim rutama (obe su spoljne) u komsluč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.
18
2. 2. ClarkeClarke--WrightWright--ovov algoritamalgoritam ““uušštedateda”” zazakonstrukcijukonstrukciju ruterute TPTP
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom
ClarkeClarke--WrightWright--ovov algoritalgoritmama““uušštedateda””
1
5
7
6
4
2
3
19
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
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
20
KORAK 1: Izračunati i rangirati uštede (Baza je čvor 1)s(i, j) = d(1, i) + d(1, j) - d(i, j)s(2,3)=d(1,2)+d(1,3)-d(2,3)=120s(2,4)=d(1,2)+d(1,4)-d(2,4)= 135......
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom
ClarkeClarke--WrightWright--ovov algoritalgoritmama““uušštedateda””
21
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom
ClarkeClarke--WrightWright--ovov algoritalgoritmama““uušštedateda””
-(2,5)
-(5,7)
-(3,5) .....
(1, 2, 3, 4, 5, 6, 7, 1)(2,3)
I 4 i 6 su uključeni(4,6)
Čvor 4 je unutrašnji(2,4)
(1, 3, 4, 5, 6, 7, 1)(6,7)
(1, 3, 4, 5, 6, 1)(3,4)
(1, 4, 5, 6, 1)(4,5)
(1, 5, 6, 1)(5,6)
Delimična rutaPar čvorova
1
5
7
6
4
2
3
22
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom
ClarkeClarke--WrightWright--ovov algoritalgoritmama““uušštedateda””
� Osnovna ideja algoritma sastoji se u konstrukcijikonveksnog mnogougla (delimična rutatrgovačkog putnika) čija temena predstavljaju nekeod čvorova koji treba da budu posećeni.
� U sledećem koraku vrši se proširivanje delimičnerute.
23
3. 3. AlgoritamAlgoritam ““ubacivanjaubacivanja u u konveksankonveksanmnogougaomnogougao””
AlgoritamAlgoritam zaza konstrukcijukonstrukciju konveksnogkonveksnog mnogouglamnogougla
KORAK 1: Čvorove koje treba da posetitrgovački putnik posmatrati u okviruDekartovog koordinatnog sistema. Odabratičvor kome odgovara najmanja vrednostx-koordinate. Ovaj čvor uključiti u konveksanmnogougao i označiti ga sa h1.
24
KORAK 2: Spojiti dužinama čvor h1 sa svimostalim čvorovima. Od uglova koji se dobijajuna ovaj način odabrati najveći ugao.
KORAK 3: Odabrati jedan od čvorova kojiodređuje najveći ugao, označiti ga sa h2 i uključiti ga u konveksan mnogougao.
AlgoritamAlgoritam zaza konstrukcijukonstrukciju konveksnogkonveksnog mnogouglamnogougla
KORAK 4: Koristeći duž koja spaja čvoroveh1 i h2 kao krak, konstruisati drugi krakodgovarajućih uglova spajanjem čvora h2 sapreostalim čvorovima. Izabrati najveći ugao,
odgovarajući čvor označiti sa h3 i uključitiga u konveksan mnogougao.
26
AlgoritamAlgoritam zaza konstrukcijukonstrukciju konveksnogkonveksnog
mnogouglamnogougla
KORAK 5: Ponavljati korak 4 onoliko puta kolikoje to potrebno, određujući najveći ugao između duži koja spaja čvorove hi-1 i hi sa dužima kojespajaju čvor hi sa preostalim čvorovima.
KORAK 6: Konveksan mnogougao je određen kada je sledeći kandidat za uključenje u konveksanmnogougao-čvor h1.
27
AlgoritamAlgoritam zaza konstrukcijukonstrukciju konveksnogkonveksnog mnogouglamnogougla
28
3. 3. AlgoritamAlgoritam ““ubacivanjaubacivanja u u konveksankonveksan
mnogougaomnogougao””
KORAK 1:Konstruisati konveksanmnogougao. Ovaj mnogougaoodređuje početnu delimičnu rututrgovačkog putnika.
KORAK 2: Odrediti čvor k koji nijeuključen u delimičnu rutu i granu (i, j) uključenu u rutu, tako da veličina
bude najmanja moguća.29
( ) ( )( )
d i k d k j
d i j
, ,
,
+
KORAK 3: Uključiti čvor k u delimičnu rutuizmeđu čvorova i i j .
KORAK 4: Ponavljati korake 2 i 3 dok se nedobije ruta trgovačkog putnika.
30
3. 3. AlgoritamAlgoritam ““ubacivanjaubacivanja u u konveksankonveksan
mnogougaomnogougao””
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom algoritmaalgoritma““ubacivanjaubacivanja u u konveksankonveksan mnogougaomnogougao””
1
5
7
6
4
2
3
31
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
Korak Korak II. . KonveksanKonveksan petougaopetougao ((popoččetnaetna delimidelimiččnana rutaruta))
1
5
7
6
4
2
3
32
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom algoritmaalgoritma““ubacivanjaubacivanja u u konveksankonveksan mnogougaomnogougao””
Trojka čvorova (i, k, j)
( ) ( )( )
d i k d k j
d i j
, ,
,
+
Trojka čvorova (i, k, j)
( ) ( )( )
d i k d k j
d i j
, ,
,
+
(1, 2, 3) 1.22 (1, 5, 3) 2.55
(3, 2, 4) 1.30 (3, 5, 4) 2.30
(4, 2, 6) 1.50 (4, 5, 6) 1.07
(6, 2, 7) 3.00 (6, 5, 7) 1.62
(7, 2, 1) 2.50 (7, 5, 1) 2.66
33
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom algoritmaalgoritma““ubacivanjaubacivanja u u konveksankonveksan mnogougaomnogougao””
DelimiDelimiččnana rutaruta trgovatrgovaččkogkog putnikaputnika (1,(1, 3,3, 4,4, 5,5, 6,6, 7,7, 1)1)
1
7
6
4
2
3
5
34
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom algoritmaalgoritma““ubacivanjaubacivanja u u konveksankonveksan mnogougaomnogougao””
Trojka čvorova (i, k, j)
( ) ( )( )
d i k d k j
d i j
, ,
,
+
Trojka čvorova (i, k, j)
( ) ( )( )
d i k d k j
d i j
, ,
,
+
(1, 2, 3) 1.22 (5, 2, 6) 3.83
(3, 2, 4) 1.30 (6, 2, 7) 3.00
(4, 2, 5) 1.77 (7, 2, 1) 2.50
35
1
7
6
4
2
3
5
Primer:Primer: Odrediti rutu TP primenom Odrediti rutu TP primenom algoritmaalgoritma““ubacivanjaubacivanja u u konveksankonveksan mnogougaomnogougao””
4. 4. Problem Problem mm trgovatrgovaččkihkih putnikaputnika
� Razmotrimo slučaj kada m trgovačkih putnika trebada poseti n tačaka, pri čemu svaka od m ruta počinjei završava u istoj tački. Označimo ovu tačku sa B.
� Neophodno je pronaći m ruta najmanje ukupnedužine koje nemaju zajedničkih grana, koje“pokrivaju” sve tačke koje treba obići i koje svezapočinju i završavaju u tački B.
36
� Neka su takođe rastojanja izmeñu tačaka-kopijai tačaka iz skupa od n tačaka jednakarastojanjima između originalne tačke B i pojedinih tačaka iz skupa od n tačaka koje trebaobići, tj. neka je
gde je a neki od čvorova koji treba da buduposećeni.
( ) ( ) ( ) ( ) d B a d B a d B a d B am1 2, , ... , ,= = = =
37
4. 4. Problem Problem mm trgovatrgovaččkihkih putnikaputnika
� Neka su rastojanja izmedju pojedinih tačaka-kopijabeskonačno velika
� Problem možemo sada da tretiramo kao klasičanproblem trgovačkog putnika, tj. kao problem u kome jedan trgovački putnik treba da obidje (m+n) tačaka tačno jedanput. Pri rešavanju ovog zadatkanikada posle nekog čvora Bi neće doći neki čvor Bjs obzirom da je
( ) d B B i j mi j, , , ,...,=∞ ∀ =1 2
( ) d B B i j mi j, , , ,...,=∞ ∀ =1 238
4. 4. Problem Problem mm trgovatrgovaččkihkih putnikaputnika