1 / 56

Problem trgovačkog putnika

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

fayola
Download Presentation

Problem trgovačkog putnika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problem trgovačkog putnika Prototip problema kombinatorne optimizacije

  2. 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 • cij direktna udaljenost grada i od grada j

  3. Važnost problema • Karl Menger- problem glasnika (1931) • Problem redoslijeda operacija u proizvodnji • Problem tekuće vrpce

  4. Jedan kružni put između tri grada

  5. 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… Ako imamo tri grada, imamo dva kružna puta

  6. Broj 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 pretpostavljamo da je grad1mjesto polaska • 1 - 2 - 3 - 4 -…- n – 1 • 1 - 3 - 2 - 4 -…- n – 1 • … • 1 - n - … - 3 – 2 – 1

  8. Varijabla 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) varijabla je binarna

  9. Ogranič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.

  10. Matematički model

  11. 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 • 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 1 • Izračunajte duljinu najkraćeg kružnog puta između četiri grada ako je poznata tablica njihovih direktnih udaljenosti.

  14. Tablica direktnih udaljenosti

  15. Postupak…prva reducirana matrica • 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

  18. Postupak

  19. Prva reducirana matrica

  20. Pridruživanje… polja s *

  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 • 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šenje

  24. Primjer 2

  25. Grafičko rješenje

  26. Rješenje

  27. Primjer3 • 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. Tablica

  29. Tablica

  30. Optimalno rješenje

  31. Optimalno rješenje

  32. Broj kružnih putova je(n-1)! • Problem trgovačkog putnika rješavamo metodom grananja i ograđivanja (Branch and Bound). • Traveling Salesman Problem.

  33. Ideja metode grananja i ograđ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. Ako želimo spriječiti neku vezu među gradovima na odgovarajuće polje stavljamo velik pozitivan broj (M) 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. Donja ograda na duljinu svih kružnih putova je u1+ u2+…+un+v1+v2+…+vn

  36. 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 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 • Problem trgovačkog putnika dan je tablicom. • Koliko ovaj problem ima kružnih putova? • Odredite najkraći kružni put.

  39. 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… • 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. • Ako polazi iz grada 1. • Ako polazi iz grada 2. • Ako polazi iz grada 3. • Ako polazi iz bilo kojeg grada.

  41. 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 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. Polazi iz grada 1 i ne vraća se u grad 1

  44. Uvodi se fiktivni grad 0

  45. Optimalno rješenje

  46. Riješite problem tako da je 2 sljedbenik od 1 • Tablica direktnih udaljenosti

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

More Related