580 likes | 866 Views
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
E N D
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 • cij direktna udaljenost grada i od grada j
Važnost problema • Karl Menger- problem glasnika (1931) • Problem redoslijeda operacija u proizvodnji • Problem tekuće vrpce
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
Broj kružnih putova • n gradova • (n-1)! kružnih putova • • 0.5 (n-1)! kružnih putova ako je matrica udaljenosti simetrična •
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
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
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.
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
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.
Primjer 1 • Izračunajte duljinu najkraćeg kružnog puta između četiri grada ako je poznata tablica njihovih direktnih udaljenosti.
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.
… • 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.
… • Polja s nulama su kandidati za uspostavljanje direktne veze među gradovima. • Donja ograda na duljinu svih kružnih putova je
… • 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. • …
Rješenje • Optimalan kružni put je 1-3-4-2-1. • Duljina optimalnog kružnog puta je 20+8+6+14=48
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.
Broj kružnih putova je(n-1)! • Problem trgovačkog putnika rješavamo metodom grananja i ograđivanja (Branch and Bound). • Traveling Salesman Problem.
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.
… • 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.
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
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.
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
Primjer • Problem trgovačkog putnika dan je tablicom. • Koliko ovaj problem ima kružnih putova? • Odredite najkraći kružni put.
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.
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.
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.
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.
Riješite problem tako da je 2 sljedbenik od 1 • Tablica direktnih udaljenosti
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).