View
0
Download
0
Category
Preview:
Citation preview
PROBLEM TRGOVAČKOG PUTNIKA
(24.5.2017.)
Doc. dr. sc. Tunjo Perić
1. Pojam i model problema trgovačkog putnika
• Problem trgovačkog putnika javlja se u situacijama kad je potrebno
odabrati najpovoljniju rutu (rutu s najmanjim troškovima
putovanja) kojom se treba kretati osoba (trgovački putnik) koja
obilazi više gradova krećući se iz jednog grada u drugi, a da pri
tome svaki grad posjeti samo jedanput.
• Kao troškove putovanja obično uzimamo udaljenosti između
gradova izražene u km, mada to mogu biti i cijene voznih karata
javnog prijevoza.
• Pretpostavimo da problem trgovačkog putnika sadrži 1, 2, ... , N
gradova. Neka je cij udaljenost od grada i do grada j, a neka je cii =
M izrazito veliki broj. cii = M osigurava nam da u grad i ne idemo
odmah čim napustimo grad i.
• Neka je 1 ako osoba ide iz grada u grad
0 u ostalim slučajevima ij
i jx
9.5.2017. 2
• Rješenje problema trgovačkog putnika može se naći rješavanjem
sljedećeg modela cjelobrojnog linearnog programiranja
• Funkcija cilja (1) daje ukupnu udaljenost između gradova
uključenih u rutu. Ograničenje (2) osigurava da osoba u svaki grad
stigne samo jedanput, dok ograničenje (3) osigurava da osoba svaki
grad napusti samo jedanput. Ograničenje (4) je ključno u modelu a
ono osigurava sljedeće:
min ij ij
i j
z c x
1
p.o. 1 ( 1,..., )n
ij
i
x j n
1
1 ( 1,..., )n
ij
j
x i n
1 (za ; , 2,3,..., )i j iju u nx n i j i j n
0 ili 1, , 0.ij i jx u u
(1)
(2)
(3)
(4)
(5)
9.5.2017. 3
1. Bilo koji skup xij koji sadrži podrutu bit će nemoguć (narušit će
ograničenje (4)).
2. Bilo koji skup xij koji formira rutu (sa svim gradovima) bit će
moguć (tu će postojati skup od uj) koji zadovoljava (4)).
• Pokažimo na sljedećem primjeru da će bilo koji skup od xij koji
sadrži podrutu narušiti ograničenje (4). Pretpostavimo da osoba
treba obići 5 gradova i da imamo x15 = x21 = x43 = x34 = x52 = 1.
Ova ruta sadrži dvije podrute 1-5-2-1 i 3-4-3. Odaberimo podrutu
koja ne sadrži grad 1 (3-4-3) i napišimo ograničenja u (4) koja
odgovaraju pravcima u toj podruti. Dobivamo u3 – u4 + 5x34 4, i
u4 – u3 +5x43 4. Zbrajanjem tih ograničenja dobivamo 5(x34 +
x43) 8. Jasno je da ovo isključuje mogućnost da je x43 = x34 = 1.
• Sada pokažimo da za bilo koji skup od xij koji ne sadrži podrutu
postoje vrijednosti za uj koje će zadovoljiti ograničenja u (4).
• Pretpostavimo da je grad 1 prvi koji će posjećen. Neka je ti =
pozicija u ruti gdje je grad i posjećen.
9.5.2017. 4
• Onda stavljajući ui = ti bit će zadovoljena sva ograničenja u (4).
• Razmotrimo rutu 1-3-4-5-2-1. Odabirom u1 = 1, u2 = 5, u3 = 2, u4
= 3, u5 = 4 treba pokazati da će s ovim odabirom za ui sva
ograničenja u (4) biti zadovoljena.
• Prvo razmotrimo bilo koje ograničenje koje odgovara pravcu koji
ima xij = 1. Na primjer ograničenje koje odgovara x52 je u5 – u2 +
5x52 4. Pošto grad 2 odmah slijedi grad 5, u5 – u2 = -1. Onda se
ograničenje za x52 u (4) reducira na -1 + 5 4, što je istinito.
• Sada razmotrimo ograničenje koje odgovara onom xij za koji je xij
= 0. Za x32 dobivamo ograničenje u3 – u2 + 5x32 4. Ovo se
reducira na u3 – u2 4. Pošto je u3 5 a u2 > 1, u3 – u2 ne može
nadmašiti 5 – 2.
• Ovo pokazuje da formulacija definirana modelom (1) do (5)
eliminira iz razmatranja sve nizove od N gradova koji počinju u
gradu 1 i uključuju podrutu. Pokazali smo također da ova
formulacija ne eliminira iz razmatranja bilo koji niz od N gradova
koji počinju u gradu 1 a ne uključuju podrutu.
9.5.2017. 5
• Model (1) do (5) može se riješiti primjenom metode grananja i
ograđivanja za rješavanje cjelobrojnih linearnih programa s 0-1
varijablama.
• Ovdje ćemo za rješavanje problema trgovačkog putnika prikazati
algoritam metode grananja i ograđivanja koji uključuje mađarsku
metodu za nalaženje optimalne asignacije.
• Algoritam metode ćemo prikazati na 2 primjera.
• Primjer 1. Poduzeće “X” locirano u Zagrebu ima predstavništva u
sljedeća 4 grada: Varaždin, Osijek, Rijeka i Split. Glavni menadžer
poduzeća jednom mjesečno obilazi sva svoja predstavništva.
Odrediti optimalnu rutu putovanja. Udaljenosti između gradova u
km dane su u sljedećoj tablici:
9.5.2017. 6
2. Metoda grananja i ograđivanja za rješavanje problema trgovačkog
putnika
• Potrebno je odrediti redoslijed posjećivanja gradova tako da
minimiziramo ukupan broj prijeđenih km, a da svaki grad
posjetimo jedanput.
• Definirajmo
• Za i j, cij = razdaljina između gradova i i j, a cii = M, gdje je M
izrazito veliki pozitivni broj.
ZG VŽ OS RI ST
ZG 0 120 350 190 400
VŽ 120 0 450 300 500
OS 350 450 0 550 750
RI 190 300 550 0 400
ST 400 500 750 400 0
Tablica 1
1 ako osoba odlazi iz grada i putuje prema gradu
0 u ostalim slučejevima ij
i jx
9.5.2017. 7
• Model trgovačkog putnika podsjeća nas na problem asignacije.
Razlika je jedino u tome što optimalna asignacija može imati
podrute.
• Algoritam rješavanja problema trgovačkog putnika sastoji se iz
nekoliko koraka.
• Korak 1. Početni problem označiti kao podproblem 1. Primjenom
mađarske metode pronaći najpovoljniju asignaciju za taj
podproblem. Ako se u dobivenom rješenju ne pojavljuju podrute,
dobiveno rješenje je optimalno, a ako se pojavljuju podrute, prijeći
na korak 2.
• Korak 2. Arbitrarno blokirati jednu podrutu i formirati dva
podproblema. Potom mađarskom metodom pronaći optimalnu
asignaciju jednog podproblema. Ako dobivena asignacija nema
podrute, računamo vrijednost funkcije cilja za to rješenje i to
rješenje zapisujemo kao potencijalno optimalno rješenje problema
trgovačkog putnika. Zatim računamo optimalnu asignaciju za drugi
podproblem. 9.5.2017. 8
• Ovdje također provjeravamo ima li dobivena optimalna asignacija
podrute i ako nema izračunatu vrijednost funkcije cilja
uspoređujemo s potencijalnim optimalnim rješenjem. Asignacija s
manjom vrijednošću je optimalno rješenje problema trgovačkog
putnika. Međutim, ako optimalna asignacija ima podrute, tada je
potrebno formirati dva nova podproblema s jednom arbitrarno
blokiranom rutom. Postupak se nastavlja sve dok se ne dobiju
optimalne asignacije za sve podprobleme koji nemaju podrute.
Optimalno rješenje je ona optimalna asignacija koja nema podrute,
a daje najmanju vrijednost funkcije cilja.
• Optimalna asignacija našeg problema prikazana je u tablici 2.
ZG VŽ OS RI ST
ZG M 0 0 70 70
VŽ 0 M 0 80 70
OS 0 0 M 100 90
RI 100 110 130 M 0
ST 100 100 120 0 M
Tablica 2
9.5.2017. 9
• Optimalna asignacija podproblema 1 ima dvije podrute :
1-2-3-1 i 4-5-4. z = 1720 km.
• Sada ćemo arbitrarno odabrati i blokirati jednu podrutu. Neka je to
podruta 4-5-4. Formirajmo dva podproblema.
• Podproblem 2 = podproblem 1 + (x45 = 0 i c54 = M)
• Podproblem 3 = podproblem 1 + (x54 = 0 i c45 = M).
• Optimalna asignacija za podproblem 2 izgleda ovako:
ZG VŽ OS RI ST
ZG M 0 0 0 70
VŽ 0 M 0 10 70
OS 0 0 M 30 90
RI 100 110 80 M 0
ST 0 0 20 M M
Tablica 3
9.5.2017. 10
• Dobiveno je rješenje 1-4-5-2-3-1. Ovo rješenje nema podrute.
Vrijednost funkcije cilja za ovo rješenje iznosi z = 1890 km. Ovo
rješenje zapisujemo kao potencijalno optimalno rješenje našeg
problema trgovačkog putnika.
• Rješavanje nastavljamo pronalaženjem optimalne asignacije za
podproblem 3. Optimalna asignacija za podproblem 3 prikazana je
u sljedećoj tablici.
ZG VŽ OS RI ST
ZG M 0 0 70 0
VŽ 0 M 0 80 0
OS 0 0 M 100 20
RI 0 10 30 M M
ST 100 100 120 0 M
Tablica 4
9.5.2017. 11
• Dakle, rješenje podproblema 3 je 1-3-2-5-4-1, koje nema podrute s
vrijednošću funkcije cilja z = 1890 km. Ako usporedimo ovo
rješenje s potencijalno optimalnim rješenjem dobivenim
rješavanjem podproblema 2, vidimo da oba rješenja imaju istu
vrijednost funkcije cilja. Oba rješenja su optimalna. Drugo rješenje
je identično prvom kad se ruta čita s desna na lijevo. Ovo se uvijek
dešava kad je početna matrica simetrična
• Grafički prikaz algoritma rješavanja problema dan je kako slijedi:
Podproblem 1
z = 1720 km
x12 = x23 = x31 = x45 =
x54 = 1
Podproblem 3
z = 1890
x13 = x25 = x32 = x41 = x54
= 1
Podproblem 2
z = 1890
x14 = x23 = x31 = x45 = x52
= 1
c54 = M c45 = M
9.5.2017. 12
• Primjer 2. Odrediti optimalnu rutu za problem trgovačkog putnika
prikazan u sljedećoj tablici. Udaljenosti su izražene u km.
• Iz tablice 5 formiramo podproblem 1 koji na glavnoj dijagonali
umjesto nula ima broj M, dok se ostali elementi ne mijenjaju.
• Optimalna asignacija dobivena rješavanjem podproblema 1 izgleda
kako slijedi:
Tablica 5
1 2 3 4 5
1 0 62 108 82 30
2 62 0 145 100 40
3 108 145 0 56 152
4 82 100 56 0 98
5 30 40 152 98 0
9.5.2017. 13
• Optimalna asignacija ima dvije podrute: 1-2-5-1 i 3-4-3. Vrijednosti
varijabli su: x12 = x25 = x34 = x43 = x51 = 1. Vrijednost funkcije cilja z
= 290 km.
• Blokirat ćemo podrutu 3-4-3. Formiramo dva podproblema:
• Podproblem 2 = podpeoblem 1 + (x43 = 0 i c34 = M)
• Podproblem 3 = podproblem 1 + (x34 = 0 i c43 = M).
Tablica 6
1 2 3 4 5
1 M 0 56 30 0
2 0 M 83 38 0
3 52 79 M 0 118
4 26 34 0 M 64
5 0 0 122 68 M
9.5.2017. 14
• Optimalna asignacija za podproblem 2 izgleda kako slijedi:
• Vrijednost varijabli su: x14 = 1, x25 = 1, x31 = 1, x43 = 1, x52 = 1, a
vrijednost funkcije cilja je: z = 326 km.
• Ovdje imamo dvije podrute:
1-4-3-1 i 2-5-2.
• Rješavanje nastavljamo blokiranjem podrute 2-5-2. Formiramo dva
nova podproblema:
Tablica 7
1 2 3 4 5
1 M 22 78 0 0
2 22 M 105 8 0
3 0 27 M M 44
4 26 34 0 M 42
5 0 0 122 16 M
9.5.2017. 15
• Podproblem 4 = podproblem 2 + (x52 = 0 i c25 = M)
• Podproblem 5 = podproblem 2 + (x25 = 0 i c52 = M).
• Optimalna asignacija za podproblem 4 izgleda ovako:
• Vrijednosti varijabli su: x15 = 1, x24 = 1, x31 = 1, x43 = 1, x52 = 1.
Vrijednost funkcije cilja je: z = 334. Navedena asignacija nema
podrute pa je možemo sačuvati kao potencijalno optimalno rješenje
našeg problema trgovačkog putnika.
• Rješavanje nastavljamo nalaženjem optimalne asignacije za
podproblem 5.
Tablica 8
1 2 3 4 5
1 M 22 78 14 0
2 0 M 83 0 M
3 0 27 M M 44
4 26 34 0 M 42
5 0 0 122 30 M
9.5.2017. 16
• Optimalna asignacija za podproblem 5 izgleda ovako:
• Vrijednosti varijabli su: x14 = 1, x25 = 1, x32 = 1, x43 = 1, x51 = 1.
Vrijednost funkcije cilja je: z = 353. Navedena asignacija nema
podrute, a odbacujemo je pošto ima veću vrijednost funkcije cilja
od potencijalnog optimalnog rješenja našeg problema trgovačkog
putnika.
• Rješavanje nastavljamo nalaženjem optimalne asignacije za
podproblem 3.
Tablica 9
1 2 3 4 5
1 M 0 78 0 0
2 27 M 105 8 0
3 0 0 M M 39
4 27 12 0 M 42
5 0 M 117 11 M
9.5.2017. 17
• Optimalna asignacija za podproblem 3 izgleda ovako:
• Vrijednosti varijabli su: x13 = 1, x25 = 1, x34 = 1, x41 = 1, x52 = 1.
Vrijednost funkcije cilja je: z = 326. Navedena asignacija ima dvije
podrute:
1-3-4-1 i 2-5-2.
• Blokiramo podrutu 2-5-2 i formiramo nova dva podproblema:
• Podproblem 6 = podproblem 3 + (x52 = 0 i c25 = M)
• Podproblem 7 = podproblem 3 + (x25 = 0 i c52 = M).
Tablica 10
1 2 3 4 5
1 M 22 0 52 0
2 22 M 27 60 0
3 52 79 M 0 96
4 0 8 M M 16
5 0 0 44 68 M
9.5.2017. 18
• Optimalna asignacija za podproblem 6 izgleda ovako:
• Vrijednosti varijabli su: x15 = 1, x23 = 1, x34 = 1, x41 = 1, x52 = 1.
Vrijednost funkcije cilja je: z = 353. Navedena asignacija nema
podrute, a odbacujemo je pošto ima veću vrijednost funkcije cilja
od vrijednosti funkcije cilja potencijalnog optimalnog rješenja
našeg problema trgovačkog putnika.
• Rješavanje nastavljamo nalaženjem optimalne asignacije
podproblema 7.
Tablica 11
1 2 3 4 5
1 M 22 0 52 0
2 0 M 0 33 M
3 57 79 M 0 96
4 0 3 M M 11
5 5 0 44 68 M
9.5.2017. 19
• Optimalna asignacija za podproblem 7 izgleda ovako:
• Vrijednosti varijabli su: x13 = 1, x25 = 1, x34 = 1, x42 = 1, x51 = 1.
Vrijednost funkcije cilja je: z = 334. Navedena asignacija nema
podrute, a ima istu vrijednost funkcije cilja kao i potencijalno
optimalno rješenje našeg problema trgovačkog putnika. U stvari
pošto je početna matrica simetrična, dobili smo dva optimalna
rješenja, koja se razlikuju jedino po tome kako čitamo redoslijed
putovanja (s lijeva na desno ili s desna na lijevo).
Tablica 12
1 2 3 4 5
1 M 14 0 52 0
2 22 M 27 60 0
3 52 71 M 0 96
4 0 0 M M 16
5 0 M 44 68 M
9.5.2017. 20
Grafički prikaz algoritma rješavanja dan je kako slijedi:
Podproblem 1
x12 = x25 = x34 =
x43 = x51 = 1, z =
290, podrute
Podproblem 2
x14 = x25 = x31 =
x43 = x52 = 1, z =
326, podrute
Podproblem 3
x13 = x25 = x34 =
x41 = x52 = 1, z =
290, podrute
Podproblem 4
x15 = x24 = x31 =
x43 = x52 = 1, z =
334, pot. opt. rj.
Podproblem 5
x14 = x25 = x32 =
x43 = x51 = 1, z =
353, odbač. rj.
Podproblem 6
x15 = x23 = x34 =
x41 = x52 = 1, z =
353, odbač. rj.
Podproblem 7
x13 = x25 = x34 =
x42 = x51 = 1, z =
334, optim. rj.
x43 = 0 x34 = 0
x52 = 0 x25 = 0 x52 = 0 x25 = 0
9.5.2017. 21
3. Heuristika za rješavanje problema trgovačkog putnika
• Kad je potrebno pronaći najpovoljniju rutu za problem koji sadrži
veliki broj gradova, upotreba metode grananja i ograđivanja uzima
puno vremena i računalima s najboljim performansama.
• Zbog toga su u rješavanju problema trgovačkog putnika velikih
dimenzija sve popularnije heurističke metode koje se zasnivaju na
principu pokušaj – pogreška. Primjena ovih metoda uvijek ne
dovodi do optimalnog rješenja.
• Međutim, one se primjenjuju zbog toga što daju zadovoljavajuće
rješenje za puno kraće vrijeme.
• Jedna od heurističkih metoda koja se često koristi u rješavanju
problema trgovačkog putnika je najbliža susjedna heuristika
(NNH).
• Ova heuristika radi na taj način da se najprije izabere grad iz kojeg
se kreće na put. Potom se kreće prema gradu koji mu je najbliži.9.5.2017. 22
• Zatim se iz tog grada ide prema najbližem gradu vodeći računa da se
ne vratimo u grad iz kojeg smo krenuli. Postupak se nastavlja sve
dok trgovački putnik ne obiđe sve gradove.
• Postupak rješavanja našeg primjera 2 izgleda ovako: trgovački
putnik kreće iz grada 1. Najbliži mu je grad 5 pa imamo rutu 1-5.
Gradu 5 je najbliži grad 2 pa je ruta 1-5-2. Gradu 2 je najbliži grad 4
pa imamo 1-5-2-4. Gradu 4 najbliži je (jedini ostao) grad 3 pa
imamo 1-5-2-4-3. Ruta se završava kad trgovački putnik iz grada 3
dođe u grad 1. Dobili smo rutu 1-5-2-4-3-1 koja ima z = 334, koja je
identična optimalnoj ruti dobivenoj metodom grananja i ograđivanja.
• Međutim, rješenje primjenom heuristike NNH ovisi o tome iz kojeg
grada kreće trgovački putnik. Tako, ako u našem primjeru 2
trgovački putnik krene iz grada 3, ova metoda daje rutu 3-4-1-5-2-3
sa z = 353, a to nije optimalno rješenje.
• Rješenje ovog problema nalazi se tako da se izračunaju heuristike u
kojima se svaki grad uzme kao početni, a potom se izabere ruta koja
ima najmanje troškove. 9.5.2017. 23
Recommended