56
1 Problem Problem trgovačkog trgovačkog putnika putnika Prototip problema Prototip problema kombinatorne kombinatorne optimizacije optimizacije

Problem trgovačkog putnika

  • Upload
    fayola

  • View
    67

  • Download
    1

Embed Size (px)

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

Citation preview

Page 1: Problem trgovačkog putnika

1

Problem Problem trgovačkog trgovačkog

putnikaputnikaPrototip problema Prototip problema

kombinatornekombinatorne optimizacijeoptimizacije

Page 2: Problem trgovačkog putnika

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

Page 3: Problem trgovačkog putnika

3

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

(1931)• Problem redoslijeda operacija u

proizvodnji• Problem tekuće vrpce

Page 4: Problem trgovačkog putnika

4

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

Grad2 Grad2

Grad 3Grad 3

Grad 1Grad 1

Page 5: Problem trgovačkog putnika

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…

Page 6: Problem trgovačkog putnika

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

Page 7: Problem trgovačkog putnika

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

Page 8: Problem trgovačkog putnika

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)

Page 9: Problem trgovačkog putnika

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.

Page 10: Problem trgovačkog putnika

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

Page 11: Problem trgovačkog putnika

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

Page 12: Problem trgovačkog putnika

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.

Page 13: Problem trgovačkog putnika

13

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

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

Page 14: Problem trgovačkog putnika

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

Page 15: Problem trgovačkog putnika

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.

Page 16: Problem trgovačkog putnika

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.

Page 17: Problem trgovačkog putnika

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

Page 18: Problem trgovačkog putnika

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

Page 19: Problem trgovačkog putnika

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

Page 20: Problem trgovačkog putnika

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

Page 21: Problem trgovačkog putnika

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.

• …

Page 22: Problem trgovačkog putnika

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

Page 23: Problem trgovačkog putnika

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

Page 24: Problem trgovačkog putnika

24

Primjer 2Primjer 2

Page 25: Problem trgovačkog putnika

25

Grafičko rješenjeGrafičko rješenje

Page 26: Problem trgovačkog putnika

26

Rješenje Rješenje

Page 27: Problem trgovačkog putnika

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.

Page 28: Problem trgovačkog putnika

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

Page 29: Problem trgovačkog putnika

29

Tablica Tablica

Page 30: Problem trgovačkog putnika

30

Optimalno rješenjeOptimalno rješenje

Page 31: Problem trgovačkog putnika

31

Optimalno rješenjeOptimalno rješenje

Page 32: Problem trgovačkog putnika

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.

Page 33: Problem trgovačkog putnika

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.

Page 34: Problem trgovačkog putnika

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.

Page 35: Problem trgovačkog putnika

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

Page 36: Problem trgovačkog putnika

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.

Page 37: Problem trgovačkog putnika

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

Page 38: Problem trgovačkog putnika

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

Page 39: Problem trgovačkog putnika

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.

Page 40: Problem trgovačkog putnika

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.

Page 41: Problem trgovačkog putnika

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.

Page 42: Problem trgovačkog putnika

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.

Page 43: Problem trgovačkog putnika

43

Page 44: Problem trgovačkog putnika

44

Page 45: Problem trgovačkog putnika

45

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

Page 46: Problem trgovačkog putnika

46

Page 47: Problem trgovačkog putnika

47

Uvodi se fiktivni grad 0Uvodi se fiktivni grad 0

Page 48: Problem trgovačkog putnika

48

Optimalno rješenjeOptimalno rješenje

Page 49: Problem trgovačkog putnika

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

Page 50: Problem trgovačkog putnika

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

Page 51: Problem trgovačkog putnika

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

Page 52: Problem trgovačkog putnika

52

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

Page 53: Problem trgovačkog putnika

53

Page 54: Problem trgovačkog putnika

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

Page 55: Problem trgovačkog putnika

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

Page 56: Problem trgovačkog putnika

56

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

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