You are on page 1of 21

Problem

trgovačkog
putnika
Problem 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.
NP-teški problemi
• Problem trgovačkog putnika spada
u skupinu NP – teških problema
(neodređeno polinominalno vrijeme).

• Najčešće su složenosti O(N!), O(2N) i sl.

• Klasičan algoritam je jednostavan:


provjeri sva moguća rješenja da bi našao
pravo, ali je neizvediv osim za male N.
NP-teški problemi

• NP-teški problemi ne omogućuju jednostavnu


provjeru dobivenog rješenja i ne znamo da li postoji bolje.
• Npr. Neki problem ima općenitu kompleksnost za uzetih n objekata
O[(n-1)!]
• Ako uzmemo 400 , to znači da je kompleksnost 199!
što iznosi 3.94 x 10372 mogućih kombinacija.
Problem trgovačkog putnika
• Pitanje je kojim bi redoslijedom trgovački putnik morao obilaziti
gradove, a da ukupna duljina puta bude minimalna.
• Na prvi pogled ovaj se problem i ne čini preteškim.
• Ali ako se uzme u obzir da ima faktorijelnu složenost, tj. da se najkraći
put između N gradova nalazi negdje unutar prostora stanja koji je velik
N!/2N, odnosno ((N-1)!)/2

Računanjem se dobije da već za 11 gradova postoji 1 814 400


mogućih redoslijeda obilazaka!
Primjeri rješenih problema
• Prvi veliki problem trgovačkog putnika koji je bio riješen je bio problem
sa 49 gradova, koje su riješili Dantzig, Fulkerson i Johnson.
Primjeri rješenih problema
• Grötschel i Holland su 1987. riješili problem sa 666 gradova u Europi.
Primjeri rješenih problema
• 2004. su godine su Applegate, Bixby, Chvátal, Cook i Helsgaun riješili
problem sa 24 978 gradova u Švedskoj
Matematička formulacija
• Matematička formulacija problema trgovačkog putnika je sljedeća:

Zadan je težinski graf G=(V;E), gdje je težina 𝑐𝑖𝑗 između čvorišta 𝑖, j ne-
negativna vrijednost.
• Potrebno je pronaći Hamiltonov – razapinjujući – put, odnosno put koji
sadrži sve vrhove grafa, na način da je ukupna cijena puta minimalna.
Težinski graf
• Pojam grafa može biti proširen dodavanjem osobine težine svakoj grani.
• Ovakvi grafovi se zovu težinski grafovi i oni su zgodni za predstavljanje
nekih problema, na primjer mreže puteva gdje se težina odnosi na
dužinu puta između dva čvora.
• Težinski graf koji je usmjeren zove se mreža.

• -> Graf sa 6 čvorova i 7 grana.


Graf broja obilazaka unatoč broju
gradova
Rješavanje
• Jedini potpuno siguran način za rješavanje ovog problema je
sveobuhvatno pretraživanje kompletnog prostora rješenja,
odnosno provjeravanje svakog rješenja iz skupa rješenja koje se
bazira na linearnom programiranju.
• Zbog „prostranosti“ prostora rješenja nemoguće pretražiti u
polinomskom vremenu pa su se metode za rješavanje problema
trgovačkog putnika razvijale u smjeru približnih metoda.
Rješavanje
Algoritmi za rješavanje :
- algoritam najbližeg susjeda (engl. Nearest neighbour algorithm)
- pohlepni algoritam (engl. Greedy algorithm), simulirano kaljenje, i dr.
Jedni od algoritama su i genetski algoritmi zasnovani na evolucijskim
strategijama.
Primjena problema trg. putnika
• Osim što predstavlja veliki izazov za rješavanje, problem trgovačkog
putnika je široko primjenjiv na različite probleme usmjeravanja i
uspoređivanja :
• Jedna od prvih primjena bilo je raspoređivanje putova školskih autobusa
koji su vozili djecu,
• U novije vrijeme ovim problemom se modelira raspoređivanje servisnih
posjeta, dovoženje hrane osobama koje su nepokretne, usmjeravanje
transportnih kamiona, itd.
Primjena problema trg. putnika
• Još jedan klasičan primjer za to je raspored bušenja rupa na tiskanoj
pločici.
• Stroj koji obavlja bušenje rupa mora obići veliki broj mjesta na pločici da
bi obavio bušenje – zadatak naći obilazak čiji su utrošak ili potrebno
vrijeme najmanji.
• U industriji ovo može višestruko smanjiti troškove proizvodnje. Sličan
primjer je raspored pomicanja glave stroja koja otiskuje spojeve na
tiskanoj pločici.
Eksperiment
• Za primjer eksperimenta uzet ćemo eksperiment Marije Vištica u
diplomskom radu „Problem trgovačkog putnika” na PMF- u u Splitu.
Eksperiment
• Marija je u svom programu koji je implementirala pomoću C#
programskog jezika pokušala dobiti informacije za rješenje problema
trgovačkog putnika koji je sačinjen od 200 gradova.
Eksperiment
• Računalo na kojem je testirana aplikacije je Intel(R) Core(TM) i3 2.40GHz
s 3.00 GB RAM-a. Eksperimenti su izvođeni na problemu od 200 gradova
za koji postoji 1.97 x 10𝟑𝟕𝟐 mogućih rješenja.
• Ako pretpostavimo da za stvaranje jedne staze od 200 gradova treba
stotinka milisekunde, tada bi nam za pretraživanje cjelokupnog prostora
rješenja trebalo 6.25 x 10359 godina.
Zapamtimo !
• Problem TP je jedan od najznačajnijih problema kombinatorne
optimizacije.
• Moguće ih je riješiti, ali nikad nismo sigurni je li to najbolje rješenje.
• Ukupan broj različitih ruta koje može generira trgovački putnik je jednak
(n-1)!/2
• Redoslijed kojim TP obilazi gradove naziva se rutom trgovačkog
putnika.
• Pod trgovačkim putnikom mogu se predstaviti avioni, brodovi, kamioni,
autobusi itd.
Pitanja/Zadaci
• 1. Izračunajte broj mogućih kombinacija ruta trgovačkog

putnika koji mora obići 5 gradova

• 2. U koju skupinu problema spada problem TP ?


• 3. Navedite primjenu problema TP.
HVALA NA PAŽNJI !
• Nives Kolec,
• Mario Brbot,
• Ivan Franjić,
• Karlo Lokner,
• Antonio Supan

You might also like