problem trgovačkog putnika

Post on 12-Jan-2016

63 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Problem trgovačkog putnika. Prototip problema kombinatorne optimizacije. Opis problema. Trgovački putnik krene iz jednog grada, na svom putu posjeti preostale gradove točno jednom i vrati se u mjesto polaska. Potrebno je naći kružni put minimalne duljine. n broj gradova - PowerPoint PPT Presentation

TRANSCRIPT

1

Problem Problem trgovačkog trgovačkog

putnikaputnikaPrototip problema Prototip problema

kombinatornekombinatorne optimizacijeoptimizacije

2

Opis problemaOpis problema• Trgovački putnik krene iz jednog

grada, na svom putu posjeti preostale gradove točno jednom i vrati se u mjesto polaska. Potrebno je naći kružni put minimalne duljine.

• n broj gradova

• cij direktna udaljenost grada i od grada j

3

Važnost problemaVažnost problema• Karl Menger- problem glasnika

(1931)• Problem redoslijeda operacija u

proizvodnji• Problem tekuće vrpce

4

Jedan kružni put između tri Jedan kružni put između tri gradagrada

Grad2 Grad2

Grad 3Grad 3

Grad 1Grad 1

5

Ako imamo tri grada, imamo Ako imamo tri grada, imamo dva kružna putadva kružna puta

• 1-2-3-1• Grad 1 je

prethodnik od grada 2, grad 2 je sljedbenik od grada1…

• Još se koristi terminologija otac-sin

• 1-3-2-1• Grad 1 je

prethodnik od grada 3, grad 3 je sljedbenik od grada1…

6

Broj kružnih putovaBroj kružnih putova• n gradova • (n-1)! kružnih putova • 0.5 (n-1)! kružnih putova ako je

matrica udaljenosti simetrična

7

Bez gubitka općenitosti Bez gubitka općenitosti pretpostavljamo da je grad1pretpostavljamo da je grad1

mjesto polaskamjesto polaska

• 1 - 2 - 3 - 4 -…- n – 1• 1 - 3 - 2 - 4 -…- n – 1• …• 1 - n - … - 3 – 2 – 1

8

Varijabla odlukeVarijabla odluke

• x ij = 1 ako je grad i direktni prethodnik grada j

• x ij = 0 ako grad i nije direktni prethodnik grada j

(inače)

9

OgraničenjaOgraničenja

• Prva grupa- svaki grad je direktni prethodnik točno jednog grada.

• Druga grupa- svaki grad je direktni sljedbenik točno jednog grada.

• Treća grupa- sprečavanje zatvaranja kružnog puta prije nego što su se obišli svi gradovi.

Matematički model

),(},1,0{

),...,(

,,1...

),...,1(,1

),...,1(,1

min

1

1

1

11

121

jix

Pii

nrrxx

njx

nix

xc

ij

r

iiii

n

iij

n

jij

n

jijij

n

i

r

Pojašnjenje

• (i1,…,ir) je jedna permutacija brojeva

(1,…,r)• P je skup svih permutacija brojeva (1,

…,r)• Velik broj ograničenja u trećoj grupi

12

Primjedbe Primjedbe • Razlikuje se od problema asignacije

jer ima više ograničenja (treća grupa ograničenja)

• Svako moguće rješenje problema trgovačkog putnika je moguće rješenje problema asignacije, ali ne vrijedi obratna tvrdnja.

13

Primjer 1Primjer 1• Izračunajte duljinu najkraćeg kružnog

puta između četiri grada ako je poznata tablica njihovih direktnih udaljenosti.

14

Tablica direktnih udaljenostiTablica direktnih udaljenostigradovi 1 2 3 4

1 20 20 32

2 14 10 6

3 20 10 8

4 32 6 8

15

Postupak…prva reducirana Postupak…prva reducirana matricamatrica

• Ako želimo spriječiti neku vezu među gradovima stavljamo na odgovarajuće polje velik pozitivan broj (M ili ∞).

• Tražimo najmanji broj u svakom retku (ui), potom od svakog retka oduzmemo njegov minimalni element.

16

……• Tražimo najmanji broj u svakom

stupcu (vj), potom od svakog stupca oduzmemo njegov minimalni element.

• Izračunamo cij-(ui+vj), za svako (i,j)

• Dobivamo prvu reduciranu matricu koja ima barem jednu nulu u svakom retku i svakom stupcu.

17

……• Polja s nulama su

kandidati za uspostavljanje direktne veze među gradovima.

• Donja ograda na duljinu svih kružnih putova je

4

1

4

1 jj

ii vu

18

Postupak Postupak Grad 1 2 3 4 ui

1 ∞ 20 20 32 20

2 14 ∞ 10 6 6

3 20 10 ∞ 8 8

4 32 6 8 ∞ 6

vj 8 0 0 0 48

19

Prva reducirana matrica Prva reducirana matrica Grad 1 2 3 4 ui

1 ∞ 0 0 12 20

2 0 ∞ 4 0 6

3 4 2 ∞ 0 8

4 18 0 2 ∞ 6

vj 8 0 0 0 ()

20

Pridruživanje… polja s Pridruživanje… polja s **Grad 1 2 3 4 ui

1 ∞ 0 0* 12 20

2 0* ∞ 4 0 6

3 4 2 ∞ 0* 8

4 18 0* 2 ∞ 6

vj 8 0 0 0 ()

21

……• Ako na kandidatima (polja s nulama)

za uspostavljanje veze među gradovima dobijemo kružni put, on je minimalne duljine i ta duljina je 48.

• …

22

Rješenje Rješenje • Optimalan kružni put je 1-3-4-2-1.• Duljina optimalnog kružnog puta je 20+8+6+14=48

23

Tablica i rješenjeTablica i rješenjegradovi 1 2 3 4

1 20 20* 32

2 14* 10 6

3 20 10 8*

4 32 6* 8

24

Primjer 2Primjer 2

25

Grafičko rješenjeGrafičko rješenje

26

Rješenje Rješenje

27

Primjer3Primjer3• Na jednom stroju treba obaviti 5 poslova u

jednom proizvodnom ciklusu. Nakon obavljenog jednog posla stroj treba podesiti (prilagoditi) za obavljanje drugog posla. Vrijeme podešavanja (set-up time) dano je u tablici. Odredite redoslijed obavljanja ovih 5 poslova tako da ukupno vrijeme podešavanja bude najmanje.

• Napomena: nakon jednog ciklusa nastavlja se drugi s istim redoslijedom poslova.

28

TablicaTablicaP1 P2 P3 P4 P5

P1 0 15 10 8 30

P2 20 0 9 14 8

P3 12 7 0 40 8

P4 11 15 32 0 25

P5 35 22 13 16 0

29

Tablica Tablica

30

Optimalno rješenjeOptimalno rješenje

31

Optimalno rješenjeOptimalno rješenje

32

Broj kružnih putova jeBroj kružnih putova je(n-1)!(n-1)!

• Problem trgovačkog putnika rješavamo metodom grananja i ograđivanja (Branch and Bound).

• Traveling Salesman Problem.

33

Ideja metode grananja i Ideja metode grananja i ograđivanjaograđivanja

• Skup svih mogućih kružnih putova podijeli se u dva podskupa koji imaju prazan presjek. Za svaki od njih izračuna se donja ograda na duljinu kružnog puta.

• Podskup s manjom donjom ogradom dijeli se na dva podskupa…

• Proces podjele se nastavlja dok se ne nađe kružni put čija donja ograda nije veća od donjih ograda ostalih kružnih putova.

34

……• Dobiveni kružni put je optimalan a

njegova duljina najkraća. • Skupovi kružnih putova prikazani su

kao čvorovi jednog stabla a proces podjele kao njihovo grananje.

• Ovo stablo zove se stablo odlučivanja.

35

1. Ako želimo spriječiti neku vezu među gradovima na odgovarajuće polje stavljamo velik pozitivan broj (M)

2. Potom računamo prvu reduciranu matricu -(kao kod problema asignacije)- tražimo minimalan broj u svakom retku (ui) te od svakog retka oduzmemo njegov minimalni element. Nakon toga tražimo minimalan broj u stupcu (vj) i od svakog stupca oduzmemo njegov minimalni element. Ovim postupkom smo dobili barem jednu nulu u svakom retku i svakom stupcu. Polja s nulama su kandidati za uspostavljanje veza među gradovima.

3. Donja ograda na duljinu svih kružnih putova je u1+ u2+…+un+v1+v2+…+vn

36

Kazne Kazne • Za svako polje s nulom računa se

kazna za nekorištenje predložene veze među gradovima.

• Kazna na polju (i,j)= minimalan broj u retku i bez polja (i,j)+ minimalan broj u stupcu j bez polja (i,j).

• Prvo pridruživanje gradova je na polju s maksimalnom kaznom.

37

Razne verzije TSPRazne verzije TSP

• i je direktni prethodnik od j (xij=1)

• i je početni grad, obiđu se svi gradovi točno jednom i ne vraća se u grad i

• Polazi iz bilo kojeg grada, obiđu se svi gradovi točno jednom i ne vraća se u mjesto polaska

38

Primjer Primjer • Problem

trgovačkog putnika dan je tablicom.

• Koliko ovaj problem ima kružnih putova?

• Odredite najkraći kružni put.

1 2 3

1 4 7

2 5 10

3 7 8

39

Odgovori Odgovori • Ima dva kružna puta• 1-2-3-1, duljina je 4+10+7=21.• 1-3-2-1, duljina je 7+8+5=20.

40

Još malo pitanja…Još malo pitanja…• Odredite najkraću duljinu puta ako

se svaki grad mora posjetiti točno jednom i trgovački putnik se ne vraća u mjesto polaska.

1. Ako polazi iz grada 1.2. Ako polazi iz grada 2.3. Ako polazi iz grada 3.4. Ako polazi iz bilo kojeg grada.

41

Odgovori…Odgovori…• 1-2-3, duljina je 14.• 1-3-2, duljina je 15.• …• Umjesto nabrajanja svih mogućih putova,

stavljamo ci1=0 i koristimo

postupak za problem trgovačkog putnika s povratkom u grad 1.

• Ostali problemi rješavaju se analogno, osim zadnjeg.

42

4. Ako polazi iz bilo kojeg 4. Ako polazi iz bilo kojeg grada…grada…

• Uvodimo fiktivni grad 0, direktna udaljenost grada 0 do svakog od preostalih gradova je 0, odnosno

• c0j=0, (j=1,…,n) i svodimo na prethodni problem.

• Riješimo problem trgovačkog putnika s n+1 gradova.

43

44

45

Polazi iz grada 1 i ne vraća Polazi iz grada 1 i ne vraća se u grad 1se u grad 1

46

47

Uvodi se fiktivni grad 0Uvodi se fiktivni grad 0

48

Optimalno rješenjeOptimalno rješenje

49

Riješite problem tako da je Riješite problem tako da je 22 sljedbenik sljedbenik od od 11

• Tablica direktnih udaljenostiP1 P2 P3 P4 P5

P1 0 15 10 8 30

P2 20 0 9 14 8

P3 12 7 0 40 8

P4 11 15 32 0 25

P5 35 22 13 16 0

50

Priprema za… Priprema za…

• x12=1, iz 1 ide u 2, izostavljamo prvi redak i drugi stupac.

• Sprečavamo zatvaranje kružnog puta prije nego što su se posjetili svi

gradovi.• Na polje u kojem iz grada 2 se ide u

grad 1 stavljamo velik broj (M).

51

Brišemo prvi redak i drugi stupac i Brišemo prvi redak i drugi stupac i polje polje (2,1)(2,1) ima veliku duljinu ima veliku duljinu

P1 P2 P3 P4 P5

P1 0 15 10 8 30

P2 1000 0 9 14 8

P3 12 7 0 40 8

P4 11 15 32 0 25

P5 35 22 13 16 0

52

Riješimo problem s 4 gradaRiješimo problem s 4 grada

53

54

Moramo preimenovati Moramo preimenovati čvorove i dobivamo…čvorove i dobivamo…

• 1-2-5-3-4-1, duljina je 15+72 =87• 15+8+13+40+11=87

55

PrimjerPrimjer

Koliko kružnih putova ima slijedeći problem?Koliko kružnih putova ima slijedeći problem?

gradovi

1 2 3 4 5

1 - - 2 - -

2 3 - 8 7 3

3 2 - - 4 4

4 - 1 - - -

5 1 2 7 - -

56

Odgovor Odgovor • Jedan je kružni put, 1-3-4-2-5-1,

njegova duljina je 2+4+1+3+1=11

top related