40
ANALIZA TRANSPORTNIH ANALIZA TRANSPORTNIH MRE MREŽA ŽA PREDAVANJE VII 1

ANALIZA TRANSPORTNIH MREMREŽŽAA - nastava.sf.bg.ac.rs · Prožždrljivi (Greedy) heuristi drljivi (Greedy) heurističčki algoritmiki algoritmi Proždrljivi (Greedy) algoritmi generišu

  • Upload
    ngodiep

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

ANALIZA TRANSPORTNIH ANALIZA TRANSPORTNIH MREMREŽAŽA

PREDAVANJE VIIPREDAVANJE VII

1

PREDAVANJE VIIPREDAVANJE VII� Problem trgovačkog putnika

� Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika

� Heuristički algoritmi za rešavanje problema trgovačkog putnika

� Proždrljivi (Greedy) heuristički algoritmi � Proždrljivi (Greedy) heuristički algoritmi

� Algoritam “najbližeg suseda” za konstrukciju rute trgovačkog putnika

� Algoritam “najbližeg ubacivanja” za konstrukciju rute trgovačkog putnika

2

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

� Pretpostavimo da trgovački putnik želi da obidjeizvestan broj gradova. Kojim redosledomtrgovački putnik treba da obilazi gradove, tako dasvaki grad obidje jedanput, da se po obilasku svihgradova vrati u početni grad i da pri tome predjenajmanje moguće rastojanje?najmanje moguće rastojanje?

� Naznačeni problem poznat je u literaturi kao problem trgovačkog putnika.

3

� Neka trgovački putnik treba da obiñe n gradova.Kada zeli da napusti početni čvor trgovački putse susreće sa dilemom u koji od (n-1) gradovada se uputi.

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

� U sledećem koraku trgovački putnik treba da seodluči za jedan od preostalih (n-2) gradova, i td.

� Ukupan broj različitih ruta koje može dageneriše trgovački putnik je jednak (n-1)!/2

4

� Sa problemom trgovačkog putnika susrećemo sepri vršenju distribucije, sakupljanja ili neke drugeopsluge na transportnoj mreži.

� Pod trgovačkim putnikom mogu da se

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

� Pod trgovačkim putnikom mogu da sepodrazumevaju avioni, brodovi, kamioni, autobusi,posade itd.

� U čvorovima koje posećuju saobraćajna sredstvamogu se isporučivati ili preuzimati roba ili putniciitd.

5

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

� Dantzig, Fulkerson i Johnson su 1954 godinerešili problem trgovačkog putnika koji je imao49 gradova.

� Pedeset godina kasnije (2004 godine), D.Applegate, R. Bixby, V. Chvátal, W. Cook i K.Helsgaun su uspeli da reše problem trgovačkogputnika sa 24978 gradova.

6

� Problem TP je jedan od najznačajnijih problemakombinatorne optimizacije.

� Problem kombinatorne optimizacije podrazumevanalaženje minimuma funkcije f na skupu S, tj.:

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

gde je S diskretan, konačan ili prebrojivo beskonačan skup.Skup S se naziva dopustivim skupom, funkcija fkriterijumskom funkcijom, a tačke x dopustivimrešenjima.

7

)(min xfSx∈

� Razmotrimo asimetrični problem TP-a (Uasimetričnom problemu TP-a rastojanje d(i,j) izmeñučvorova i i j je različito od rastojanja d(j,i)).

� Neka je broj gradova koje treba da poseti TP jednak m.

1. Problem trgova1. Problem trgovaččkog putnikakog putnika

� Redosled kojim TP obilazi gradove naziva se rutomtrgovačkog putnika.

� Prilikom konstruisanja rute TP neophodno je sprečitistvaranje ciklusa koji ne predstavljaju potpunu rutuTP-a.

8

1. Problem trgovačkog putnika1. Problem trgovačkog putnika

� Uvedimo u razmatranje promenljivu xij koju ćemo definisati na sledeći način:

9

=slucajurotnomu

putnikatrgovackogturiojoptimapripadajigranaukolikoxij

sup0

ln),(1

MinimiziratiMinimizirati

xd ij

m

i

m

jij∑ ∑

= =1 1

1. Problem trgovačkog putnika1. Problem trgovačkog putnika

pri ograničenjima:

10

mixm

jij ,...,2,11

1

==∑=

mjxm

iij ,...,2,11

1

==∑=

{ }mSSxSjSi

ij ,...,2,11,

⊂−≤∑∈∈

1. Problem trgovačkog putnika 1. Problem trgovačkog putnika

gde je S bilo koji podskup gradova 1,2,…,m.

11

jiilixij ,10 ∀=

� Prva dva ograničenja vode računa o kretanju TP-ai ukazuju da iz svakog čvora koji poseti TP možeda izlazi samo jedna grana, odnosno da u svakičvor u ruti TP-a moze da dolazi samo jedna grana.

1. Problem trgovačkog putnika 1. Problem trgovačkog putnika

� Ograničenje

sprečava stvaranje ciklusa koji ne predstavljajupotpunu rutu TP.

12

{ }mSSxSjSi

ij ,...,2,11,

⊂−≤∑∈∈

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

� Sve algoritme kojima se rešavaju problemikombinatorne optimizacije možemo u osnovipodeliti na egzaktne i heurističke.podeliti na egzaktne i heurističke.

� Uz pretpostavku da imamo na raspolaganjudovoljno računarskog vremena, primenom nekogod egzaktnih algoritama dobićemo uvek optimalnorešenje.

13

� Naziv “heuristički” ima koren u grčkoj reči(`ευρισκω) koja znači otkriti ili pronaći.

Heuristički algoritam podrazumeva pronalaženje

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

� Heuristički algoritam podrazumeva pronalaženjemetoda koji će da u okviru “prihvatljivog”vremena rada računara proizvede “dobro” rešenjeblisko optimalnom.

14

� Heuristički algoritmi se primenjuju za rešavanjeproblema u slučajevima kada bi, zbog dimenzijaproblema, egzaktni algoritam doveo doeksponencijalnog vremena rada računara.

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

eksponencijalnog vremena rada računara.

� Ukoliko, na primer, u razmatranom problemu imamo1000 binarnih promenljivih (koje mogu da uzmuvrednost 0 ili 1), ukupan broj svih mogućih resenja jejednak .

15

21000

� U odreñenim situacijama troškovi korišćenjaegzaktnog algoritma znatno veći odpotencijalnih koristi od iznalaženja optimalnog

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

potencijalnih koristi od iznalaženja optimalnogrešenja. Samim tim, u ovakvim situacijamaistraživači koriste različite heurističke algoritme.

16

� Neka je, na primer, broj čvorova u odrñenoj mrežijednak n. Broj čvorova n je najčešći reprezentantdimenzija razmatranog problema. Pretpostavimo

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

dimenzija razmatranog problema. Pretpostavimoda je ukupan broj elementarnih operacija E, kojeje potrebno obaviti prilikom primene odreñenogalgoritma jednak:

17

E n n n= + + +4 5 2 74 3

� Za veće vrednosti n najveći uticaj na ukupan brojelementarnih operacija ima n4. “Računarskasloženost algoritma” je proporcionalna n4,odnosno “da je algoritam O(n4)” (čita se kao “o od

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

odnosno “da je algoritam O(n4)” (čita se kao “o odn na četvrti”).

� Uz pretpostavku da svaka elementarna operacijazahteva jednu jedinicu vremena možemo dakažemo da algoritam zahteva O(n4) vremena.

18

� Pod “lošim” algoritmima podrazumevaju seeksponencijalni (ne-polinomijalni) algoritmi.(algoritmi koji zahtevaju O(3n) ili O(n!) vremena).

2. Računarska složenost i kvalitet algoritama za 2. Računarska složenost i kvalitet algoritama za

rešavanje problema trgovačkog putnikarešavanje problema trgovačkog putnika

� Kvalitet generisanih rešenja i vreme radaračunara predstavljaju dva dominantna kriterijumana osnovu kojih se vrednuju svi heurističkialgoritmi.

19

3. Heuristički algoritmi za rešavanje problema 3. Heuristički algoritmi za rešavanje problema trgovačkog putnikatrgovačkog putnika

� Trgovački putnik koji započinje i završava svojuturu u odredjenom čvoru, mora da poseti n-1 čvor.

� Transportna mreža koja povezuje ovih n čvorova je� Transportna mreža koja povezuje ovih n čvorova jepotpuno povezana. Drugim rečima, u ovoj mrežije moguće iz svakog čvora stići u bilo koji čvor,direktno bez prolaženja kroz ostale čvorove.

� Najkraća rastojanja izmedju pojedinih čvorovajednaka su dužini grana izmedju tih čvorova.

20

3. Heuristicki algoritmi zasnovani na slu3. Heuristicki algoritmi zasnovani na sluččajnom ajnom

izboruizboru

Korak 1: Proizvoljno odabratipočetni čvor rute.

Korak 2: Na slučajan način odabratisledeći čvor i uključiti ga usledeći čvor i uključiti ga urutu.

Korak 3: Ponavljti korak 2 sve dokse svi čvorovi ne uključe urutu. Spojiti prvi i poslednjičvor rute.

21

3. Heuristicki algoritmi zasnovani na slu3. Heuristicki algoritmi zasnovani na sluččajnom ajnom

izboruizboru

22

4. Pro4. Prožždrljivi (Greedy) heuristidrljivi (Greedy) heurističčki algoritmiki algoritmi

� Proždrljivi (Greedy) algoritmi generišu rešenjeuočenog problema u proceduri “korak pokorak”. U svakom koraku “greedy” algoritamase jednoj od promenljivih dodeljuje vrednost.se jednoj od promenljivih dodeljuje vrednost.

23

� Ovi algoritmi biraju u svakomkoraku odgovarajućupromenljivu i odgovarajućuvrednost tako da maksimalnomoguće u okviru tog koraka

4. Pro4. Prožždrljivi (Greedy) heuristidrljivi (Greedy) heurističčki algoritmiki algoritmi

24

moguće u okviru tog korakapovećaju (u problemimamaksimizacije), odnosno smanje(u problemima minimizacije)trenutnu vrednost definisanekriterijumske funkcije.

5. Algoritam “najbližeg suseda” za 5. Algoritam “najbližeg suseda” za

konstrukciju rute trgovačkog putnikakonstrukciju rute trgovačkog putnika

KORAK 1: Proizvoljno odabrati početni čvor rute.KORAK 2: Pronaći čvor najbliži poslednjem

čvoru uključenom u rutu. Ovajnajbliži čvor uključiti u rutu.najbliži čvor uključiti u rutu.KORAK 3: Ponavljti korak 2 sve dok se svi

čvorovi ne uključe u rutu. Spojitiprvi i poslednji čvor rute.

25

Primer: Odrediti rutu TP primenom algoritma Primer: Odrediti rutu TP primenom algoritma “najbližeg suseda”“najbližeg suseda”

1

72

3

5

6

4

26

Matrica rastojanja:1 2 3 4 5 6 7

1 0 75 135 165 135 180 90

Primer: Odrediti rutu TP primenom algoritma “najbližeg suseda”

27

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

1

72

3

Primer: Odrediti rutu TP primenom algoritma “najbližeg suseda”

5

6

4

28

6. Algoritam “ubacivanja” za konstrukciju rute 6. Algoritam “ubacivanja” za konstrukciju rute

trgovačkog putnikatrgovačkog putnika

� Rosenkrantz, Stearns i Lewis (1977) su razvili većibroj heurističkih algoritama za rešavanje problematrgovačkog putnika.

� U k-tom prolazu algoritma “ubacivanja” ovi autorisu razmatrali delimičnu rutu trgovačkog putnikasastavljenu od k čvorova i odredjivali sledeći čvorkoji treba “ubaciti” u rutu i poziciju u ruti gde ovajčvor treba da bude ubačen.

29

KORAK 1: Konstruisati podgraf koji se sastojisamo od čvora i.

KORAK 2: Naći čvor k za koji je veličina ciknajmanja (c predstavlja rastojanje

6. Algoritam “ubacivanja” za konstrukciju rute 6. Algoritam “ubacivanja” za konstrukciju rute

trgovačkog putnikatrgovačkog putnika

najmanja (cik predstavlja rastojanjeizmeñu čvora i i čvora k). Drugimrečima, pronaći čvor k najbliži čvoru i.Formirati delimičnu rutu trgovačkogputnika. Ova ruta glasi (i, k, i).

30

KORAK 3: Pronaći čvor k koji nije uključenu delimičnu rutu trgovačkog putnikakoji je najbliži delimičnoj ruti. (Čvor jenajbliži delimičnoj ruti ukoliko je

6. Algoritam “ubacivanja” za konstrukciju rute 6. Algoritam “ubacivanja” za konstrukciju rute

trgovačkog putnikatrgovačkog putnika

najbliži delimičnoj ruti ukoliko jerastojanje izmeñu njega i njemunajbližeg čvora već uključenog urutu manje od bilo kog rastojanjaizmedju čvorova koji nisu uključeniu rutu i njima najbližih čvorovauključenih u rutu).

31

KORAK 4: Pronaći granu (i, j) koja je deodelimične rute za koju je najmanjavrednost veličine cik + ckj - cij. Ubaciti čvor k

izmedju čvorova i i j.

6. Algoritam “ubacivanja” za konstrukciju rute 6. Algoritam “ubacivanja” za konstrukciju rute

trgovačkog putnikatrgovačkog putnika

KORAK 5:Završiti sa algoritmom kada su svičvorovi uključeni u rutu. U slučaju dapostoji još čvorova koji nisu uključeni u rututrgovačkog putnika vratiti se na korak 3.

32

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

6 4

5

− 2030223614

33

6

23

41

−−

−−

−−

3641543220

3628584130

4128322222

5458322236

3241222214

2030223614

6 4

5

−−

5458322236

3241222214

2030223614

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

34

6

2

3

41

−−

−−

3641543220

3628584130

4128322222

5458322236

Delimična ruta (1, 2, 1)

−−

5458322236

3241222214

2030223614

Posmatra se čvor najbliži čvorovima 1 i 2.

3 - min {36, 22} = 22 sledi 3 - 2

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

35

−−

−−

3641543220

3628584130

4128322222

54583222363 - min {36, 22} = 22 sledi 3 - 24 - min {22, 22} = 22 sledi 4 - 1(2)5 - min {30, 41} = 30 sledi 5 - 16 - min {20, 32} = 20 sledi 6 - 1

min {22,22,30,20} = 20 sledi da je sledeći čvor koji se ubacuje u rutu čvor 6.

6 4

5

−−

5458322236

3241222214

2030223614

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

36

6

2

3

41

−−

−−

3641543220

3628584130

4128322222

5458322236

Delimična ruta (1,2,6,1). Ovde se bira proizvoljan smer, tj. moguće je i (1,6,2,1).

−−

5458322236

3241222214

2030223614Posmatra se čvor najbliži čvorovima 1,2 i 6.

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

37

−−

−−

3641543220

3628584130

4128322222

54583222363 - min {36, 22,54} = 22 sledi 3 - 24 - min {22, 22,41} = 22 sledi 4 - 1(2)5 - min {30, 41,36} = 30 sledi 5 - 1

min {22,22,30} = 22 , sledi da je sledeći čvor koji se ubacuje u rutu čvor 3.

−−

5458322236

3241222214

2030223614

=−+ ijkjik CCC

(1,2,6,1)

3

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

38

−−

−−

3641543220

3628584130

4128322222

545832223644142236123213 =−+=−+ CCC

44325422263623 =−+=−+ CCC

70205354613163 =−+=−+ CCC

=−+ ijkjik CCC

min {44,44,70} = 44, sledi da se uključuje izmeñu čvorova 1 i 2.

6 4

5

−−

5458322236

3241222214

2030223614

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

39

6

2

3

41

−−

−−

3641543220

3628584130

4128322222

5458322236

Nova delimična ruta (1,3,2,6,1)

6 4

5

−−

5458322236

3241222214

2030223614

Primer: Odrediti rutu TP primenom Primer: Odrediti rutu TP primenom

algoritma algoritma “najbližeg ubacivanja”“najbližeg ubacivanja”

40

6

2

3

41

−−

−−

3641543220

3628584130

4128322222

5458322236

Konačna ruta (1,5,4,3,2,6,1)