Upload
dubi001
View
798
Download
2
Embed Size (px)
Citation preview
Doktorska disertacija mr. sc. Tonči Carić 1-1
SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI
MR. SC. TONČI CARIĆ
UNAPREĐENJE ORGANIZACIJE TRANSPORTA PRIMJENOM HEURISTIČKIH METODA
DOKTORSKA DISERTACIJA
ZAGREB, 2004.
Doktorska disertacija mr. sc. Tonči Carić 1-2
PODACI I INFORMACIJE O DOKTORANTU
1. Ime i prezime: Tonči Carić 2. Datum, mjesto rođenja: 26.07.1969., Split 3. Naziv završenog fakulteta i datum diplomiranja: Elektrotehnički fakultet u
Zagrebu, 05.07.1993. 4. Naziv poslijediplomskog magistarskog znanstvenog studija: Jezgra
Računarstva 5. Naziv magistarskog znanstvenog rada: Objektno usmjerena programska
izvedba heurističkog modela usmjeravanja vozila 6. Fakultet na kojem je rad obranjen i datum obrane: Fakultet elektrotehnike i
računarstva, 05.07.2000. 7. Naziv doktorskog studija: Tehničko-tehnološki sustavi u prometu i transportu
INFORMACIJE O DOKTORSKOJ DISERTACIJI
1. Naslov disertacije: Unapređenje organizacije transporta primjenom heurističkih metoda
2. UDK 656.13 : 303.733.4 : 65.012.34 3. Fakultet na kojem je disertacija obranjena: Fakultet prometnih znanosti
POVJERENSTVA, OCJENA I OBRANA DOKTORSKE DISERTACIJE
1. Datum prijave disertacije: 26.11.2001. 2. Povjerenstvo za ocjenu podobnosti teme disertacije i doktoranda:
1) Prof.dr.sc. Slavko Šarić 2) Prof.dr.sc. Mario Anžek 3) Prof.dr.sc. Ivan Bošnjak 4) Prof.dr.sc. Ivan Županović
3. Datum prihvaćanja teme: 01.07.2002. 4. Mentori: 1) Prof.dr.sc. Hrvoje Gold
2) Prof.dr.sc. Ivan Županović 5. Povjerenstvo za ocjenu disertacije i obranu disertacije:
1) Prof.dr.sc. Hrvoje Gold 2) Prof.dr.sc. Ivan Županović 3) Prof.dr.sc. Husein Pašagić 4) Prof.dr.sc. Mladen Begović 5) Prof.dr.sc. Slavko Šarić
6. Datum obrane disertacije: 28.06.2004.
Doktorska disertacija mr. sc. Tonči Carić 1-3
SAŽETAK
Određivanje najpovoljnijeg puta, kojeg koristi grupa vozila prilikom posluživanja skupa
korisnika predstavlja problem na operativnoj razini tehnologije transporta. Promjenama planova
ruta vozila pri distribuciji dobara i usluga moguće je smanjiti transportne troškove. Zbog velikog
broja mogućih ruta, optimalnu rutu (osim za manji broj ruta) nije moguće pronaći egzaktnim
metodama.
Korištenjem heurističkih metoda moguće se je približiti optimalnom planu ruta. U
praktičnoj upotrebi, metode optimizacije je potrebno često modificirati i provjeravati njihovu
uspješnost. U radu je predložen programski jezik i razvojna okolina za izradu konstruktivnih
heurističkih algoritama.
Heurističke metode raspravljene su sa stanovišta njihove upotrebljivosti u praktičnoj
primjeni i testirane na standardnim ispitnim zadacima u novo razvijenom programskom
okruženju za konstrukciju, ispitivanje i parametrizaciju heurističkih algoritama. Metode su
uspoređene s vodećim heurističkim metodama i upotrebljene za rješavanje problema rutiranja
grupe vozila u realnom transportnom okruženju.
Programsko razvojno okruženje, povezano je s geoinformacijskim sustavom. Izrađen je i
programski sustav koji u realnom transportnom okruženju predlaže nove planove ruta. Analiza
rezultata optimizacije izvedena je na temelju usporedbe ruta koje se obavljaju prema radnim
nalozima u postojećem sustavu vožnje i ruta dobivenih heurističkim algoritmom. Rezultati
ukazuju na opravdanost upotrebe predloženog sustava za optimizaciju ruta grupe vozila u cilju
predlaganja novih ruta koje obavljaju isti posao uz vidne uštede.
Doktorska disertacija mr. sc. Tonči Carić 1-4
SUMMARY
Determining the optimal routes for a group of vehicles that serves a group of customers
represents a problem at the operative level of the transportation technology. It is shown that
optimizing delivery routes could significantly reduce the current transportation costs. However,
finding methods that would allow such changes has not been an easy task because the large
number of possible routes does not permit a use of exact methods. These exact methods can
only be applied if possible routes are very low in numbers.
In this dissertation a new approach has been taken to solve the optimization problem
with heuristic methods. These methods required to be “tailored” to the above problem. This
means that for their practical use, heuristic methods needed to be modified and their efficacy
tested. This dissertation proposed the program language and development environment needed
for construction of heuristic algorithms.
The practical use of heuristic methods has been heavily discussed here. These methods
have been tested in the developed environment through standardized tasks and compared with
the leading heuristic methods. Tested methods are used in real transportation circumstances.
Program development system was connected with a geo-information system. A newly
developed demonstration system was capable in a real transportation situation to compute and
propose new delivery routes. Data analysis was performed by comparing routes from a real life
with those derived using heuristic algorithms. The results obtained suggest that the proposed
model can be successfully used in optimizing vehicles delivery routes and in significant cost
reduction.
Doktorska disertacija mr. sc. Tonči Carić 1-5
SADRŽAJ
1. UVOD 1-7 1.1. SADRŽAJ RADA ...................................................................................................................................... 1-8 1.2. OPIS PROBLEMA USMJERAVANJA VOZILA (VRP) ............................................................................ 1-9
2. DEFINICIJA PROBLEMA USMJERAVANJA VOZILA 2-13 2.1. VRP S OGRANIČENJIMA KAPACITETA I NJEGOVE VARIJANTE ................................................... 2-13 2.2. VRP S VREMENSKIM OGRANIČENJIMA ........................................................................................... 2-15 2.3. VRP S DOSTAVOM I POVRATNIM PRIKUPLJANJEM ....................................................................... 2-16 2.4. VRP S PRIKUPLJANJEM I DOSTAVOM .............................................................................................. 2-17
3. OSNOVNI MODELI USMJERAVANJA VOZILA S OGRANIČENJIMA KAPACITETA 3-19
3.1. MODELI PROTOKA VOZILA ............................................................................................................... 3-20 3.2. MODELI PROTOKA TERETA .............................................................................................................. 3-23 3.3. MODELI PARTICIONIRANJA SKUPA .................................................................................................. 3-25 3.4. VRP S VREMENSKIM OGRANIČENJIMA MODELIRAN LINEARNIM PROGRAMOM .................... 3-26
4. PRISTUPI RJEŠAVANJU PROBLEMA USMJERAVANJA VOZILA 4-28 4.1. HEURISTIČKI PRISTUP RJEŠAVANJU PROBLEMA USMJERAVANJA VOZILA ................................ 4-30
4.1.1. Metoda umetanja najbližeg susjeda ...................................................................................................... 4-30 4.1.2. Metoda dodavanja ukupno najudaljenijeg susjeda ................................................................................ 4-30 4.1.3. Metoda najbližeg dodavanja ................................................................................................................ 4-32 4.1.4. Dvoprolazna Sweep metoda ................................................................................................................. 4-32 4.1.5. «Clark and Wright» metoda ............................................................................................................... 4-33
4.2. METAHEURISTIČKI PRISTUP RJEŠAVANJU PROBLEMA USMJERAVANJA VOZILA ...................... 4-34 4.2.1. Iterativna lokalna pretraga .................................................................................................................. 4-34 4.2.2. Simulirano kaljenje ............................................................................................................................. 4-37 4.2.3. Determinističko kaljenje ...................................................................................................................... 4-39 4.2.4. Tabu pretraga ..................................................................................................................................... 4-39 4.2.5. Genetički algoritmi .............................................................................................................................. 4-41 4.2.6. Neuronske mreže ................................................................................................................................ 4-42
Doktorska disertacija mr. sc. Tonči Carić 1-6
5. PROGRAMSKO OKRUŽENJE ZA RAZVOJ, ISPITIVANJE I PARAMETRIZIRANJE HEURISTIČKIH ALGORITAMA VENERA 5-45
5.1. OSNOVNA STRUKTURA OKRUŽENJA VENERA .............................................................................. 5-45 5.2. KORIŠTENJE OKRUŽENJA VENERA ................................................................................................. 5-47 5.3. NAREDBE PROGRAMSKOG JEZIKA MARS ....................................................................................... 5-48
5.3.1. SELECT naredba ............................................................................................................................. 5-50 5.3.2. Standardne programske strukture: petlje i uvjetne naredbe ................................................................... 5-52 5.3.3. Naredbe lokalne pretraga .................................................................................................................... 5-53
5.4. TIPOVI PODATAKA PROGRAMSKOG JEZIKA .................................................................................. 5-54
6. ALGORITMI HEURISTIČKIH METODA KODIRANI PROGRAMSKIM JEZIKOM MARS 6-57
6.1.1. 2OPT Algoritam lokalne pretrage ..................................................................................................... 6-57 6.1.2. Algoritam NNH metode umetanja najbližeg susjeda .......................................................................... 6-59 6.1.3. Algoritam FAH dodavanje ukupno najudaljenijeg susjeda .................................................................. 6-61 6.1.4. Algoritam NAH metode najbližeg dodavanja ..................................................................................... 6-63 6.1.5. Algoritam dvoprolazne Sweep metoda .................................................................................................. 6-64 6.1.6. Algoritam «Clark and Wright» metode ............................................................................................... 6-69
6.1.7. Algoritam λ lokalne pretrage .............................................................................................................. 6-71
7. PROGRAMSKI SUSTAV ZA OPTIMIZACIJU I PLANIRANJE RUTA 7-74 7.1. SUSTAV ZA PODRŠKU U ODLUČIVANJU PRI ZADAVANJU I PROMJENI PLANA RUTA ............... 7-75 7.2. PRIKUPLJANJE PODATAKA ................................................................................................................ 7-76 7.3. PRIPREMA PODATAKA GIS ALATOM ............................................................................................... 7-78
7.3.1. Aplikacija za unos i obradu podataka Miranda ................................................................................ 7-79 7.4. SIMULACIJA POSTOJEĆIH RUTA PRIJE PROCESA OPTIMIZACIJE .................................................. 7-82 7.5. IZRAČUN NOVIH PLANOVA RUTA NNH ALGORITMOM .............................................................. 7-87 7.6. IZRAČUN NOVIH PLANOVA RUTA NAH ALGORITMOM............................................................... 7-90 7.7. IZRAČUN NOVIH PLANOVA RUTA SWEEP ALGORITMOM ............................................................ 7-92 7.8. IZRAČUN NOVIH PLANOVA RUTA CLARK & WRIGHT ALGORITMOM ....................................... 7-95 7.9. ANALIZA REZULTATA IZRAČUNA NOVIH PLANOVA RUTA ......................................................... 7-98
8. ZAKLJUČAK 8-101
PRILOZI 103
LISTA KRATICA 117
LITERATURA 118
ŽIVOTOPIS 123
Doktorska disertacija mr. sc. Tonči Carić 1-7
1. Uvod
Transport kao značajna aktivnost ljudske zajednice omogućava i podupire mnoge druge
društvene djelatnosti. Za jasno razumijevanje funkcioniranja transportnog sustava potrebno je
poznavati složene međuovisnosti sudionika transporta kao i karakteristike potrebnih ljudskih
i materijalnih potencijala. Uspješno organiziranje transporta zahtijeva rješavanje raznorodnih
problema na strateškoj, taktičkoj i operativnoj razini [1]. U transportnom sustavu upravo je
operativna razina odraz uspješnosti cijelog sustava. Ako promatramo transportni sustav
distribucije dobara i usluga možemo smatrati da je odluka o pozicioniranju skladišta strateška
odluka, odabir grupe vozila taktička a odabir ruta vozila operativna odluka. Ovaj rad usmjeren
je na rješavanje problema organizacije transporta na operativnoj razini gdje se odabir ruta
vozila promatra kao kombinatorički problem optimizacije.
Uspješno izvedeno unapređenje prijevoznih procesa na operativnoj razini pri distribuciji
dobara i usluga donosi značajne uštede troškova prijevoza. Odabirom povoljnijih ruta vozila
postižu se direktne uštede smanjenjem prijeđenog puta i utrošenog vremena. Novim planom
ruta često je moguće obaviti isti posao uz manji broj vozila, a opterećenja pojedinih vozila
ujednačiti. Egzaktni odabir optimalnih planova ruta zahtijeva intenzivno računanje gdje za
realne situacije vrijeme računanje značajno nadilazi vremenski period u kojem se donosi
odluka o novim planovima ruta. Pošto se radi o takvim matematičkim problemima gdje
rastom broja sudionika vrijeme rješavanja raste eksponencijalno ili s faktorijelima, nužno je
uvesti aproksimativne ili heurističke metode rješavanja.
Postupak pronalaženja novog plana ruta vozila zasniva se na podacima koje
preuzimamo iz postojećeg transportnog sustava. Osim tih podataka u praktičnim situacijama
nužno je pribaviti podatke o geografskim i prometnim značajkama prostora na kojem se
odvija transport. Proces sagledavanja problema, pribavljanja podataka, stvaranja radne
okoline za evaluaciju postojećeg stanja plana ruta i dizajniranje novih planova ruta predstavlja
zahtijevan zadatak koji se može uspješno riješiti jedino poznavanjem multidisciplinarnog
pristupa prometne struke. Za razumijevanje samog transportnog procesa nužno je poznavati
tehnologiju prijevoza. Jezgra problema usmjeravanja vozila je kombinatorički problem
optimizacije NP teškog problema, pa je za samo sagledavanje problema potrebna
matematička apstrakcija problema. Za praktično pronalaženje novih planova ruta nužno je
Doktorska disertacija mr. sc. Tonči Carić 1-8
konstruirati i kodirati algoritme te povezati stvarne prostorne podatke s apstraktnim načinom
rješavanja, za što su potrebna znanja i vještine računarstva.
Temeljna teza u ovom radu jest da se unapređenje organizacije transportnog sustava
može brzo i učinkovito postići pomoću predloženog programskog sustava za podršku u
odlučivanju pri optimizaciji i planiranju planova ruta grupe vozila. Sustav je zasnovan na
uporabi novog koncepta interaktivnog razvoja algoritama u radnoj okolini prilagođenoj
problemu usmjeravanja vozila.
Provjera rada sustava izvedena je postupkom simulacije postojećih planova ruta i
predlaganjem novih planova ruta komunalnog poduzeća. Simulacija i izračun novih ruta
putem heurističkih algoritama izvedeni su u razvijenom programskom radnom okruženju.
1.1. Sadržaj rada
U poglavlju 1.2 opisan je problem usmjeravanja vozila i predstavljena tipična obilježja
korisnika, vozila i ruta. Opisane su i najčešće funkcije cilja koje se koriste prilikom rješavanja
problema. Formalna (matematička) definicija problema usmjeravanja vozila i njegovih
varijanti opisana je u poglavlju 2. U istom poglavlju izvršena je klasifikacija problema s
obzirom na dodatna ograničenja koja se često javljaju u praksi. U slijedećem poglavlju 3
opisani su pristupi modeliranju problema usmjeravanja vozila.
Načini rješavanja problema i opisi heurističkih i metaheurističkih načina njegovog
rješavanja opisani su u poglavlju 4. U poglavlju 5 predstavljeno je novo programsko
okruženje za razvoj, testiranje i parametriziranje heurističkih algoritama. Uz podroban opis
okruženja obrazloženi su novi koncepti pristupa razvoju heurističkih algoritama. U poglavlju
6 prikazani su programi izvedba heurističkih metode usmjeravanja vozila. Metode su ispitane
na standardnim ispitnim zadacima i uspoređene s vodećim metodama.
Sustav za optimizaciju i planiranje prijevoznih ruta koji pruža podršku odlučivanju pri
unapređenju organizacije transporta razrađen je u poglavlju 7. Osim razvojne okoline u istom
poglavlju opisan je i novo razvijeni GIS alat za obradu prostornih podataka. Na kraju
poglavlja komentirani su rezultati dobiveni upotrebom predloženog sustava na primjeru
planiranja ruta komunalnog poduzeća Čistoća Zagreb. U zadnjem poglavlju 8 provedena je
završna rasprava i dan zaključak.
Doktorska disertacija mr. sc. Tonči Carić 1-9
1.2. Opis problema usmjeravanja vozila (VRP)
Određivanje najpovoljnijeg puta, kojeg koristi grupa vozila prilikom posluživanja skupa
korisnika predstavlja problem usmjeravanja vozila, u daljnjem tekstu VRP (Vehicle Routing Problem).
Prvo spominjanje ovog prometnog problema zabilježeno je 1959. godine. Povod proučavanja
ovog kombinatoričko-optimizacijskog problema bio je unapređenje organizacije dostave
goriva benzinskim crpkama. Tada su Dantzig i Ramser prvi put predložili matematičku
interpretaciju problema i algoritamski pristup rješavanju [20].
Clark i Wright su 1964. g. predložili poboljšanje Dantzig-Ramserovog pristupa kroz
heuristička rješenja koja koriste "pohlepne" (greedy) algoritme. Na tragu ovih pristupa
razvijeno je više od stotinu modela i algoritama za dobivanje optimalnih i aproksimativnih
rješenja. Sa današnjim stanjem tehnologije i s trenutno najdjelotvornijim egzaktnim
algoritmima moguće je riješiti problem usmjeravanja vozila samo u slučajevima gdje imamo
manje od 50 korisnika, i to na način da se do optimuma kod najvećih problema može doći
samo za pojedine slučajeve. Realni problemi koje je potrebno rješavati imaju znatno više
korisnika, pa se pomoću egzaktnog pristupa ne mogu riješiti u prihvatljivom vremenu. Zato
se za rješavanje koristi heuristički pristup koji dovodi do približno optimalnog rješenja u
realnom vremenu.
Na osnovu iskustava u Europi i Sjevernoj Americi može se procijeniti da je uvođenjem
planiranja distribucijskih procesa računalom ostvarena ušteda od 5% do 20% ukupnih
transportnih troškova. Sustavi koji implementiraju neko od rješenja VRP-a ne rješavaju samo
probleme dostave i prikupljanje dobara, već i probleme kao što su usmjeravanje autobusa,
prijevoz hendikepiranih osoba, usmjeravanje trgovačkih putnika, servisnih ekipa itd.
Da bi definirali VRP za distribuciju ili prikupljanje dobara, potrebno je dati osnovna
ograničenja problema. U zadanom vremenu, skup vozila poslužuje skup korisnika. Vozila
kreću iz skladišta i pri transportu koriste mrežu prometnica. Rješenje problema predstavlja
skup ruta. Svaka ruta ima polaznu i završnu točku u skladištu vozila koje koristi rutu. Svi
zahtjevi korisnika moraju biti ispunjeni, a sva nametnuta ograničenja poštovana. Cilj je da
ukupni transportni trošak bude minimalan. Moguće je uvoditi različita ograničenja i ciljeve
koji mogu izravno utjecati na konstrukciju ruta prilikom optimizacijskog procesa. Mreža
prometnica koja se koristi za transport dobara najčešće se opisuje grafom čiji lukovi
predstavljaju prometnice, a točke raskrižja, skladišta ili korisnike. Lukovi mogu biti
jednosmjerni ili dvosmjerni, a uz svaki luk postoji cijena koja najčešće korespondira sa
Doktorska disertacija mr. sc. Tonči Carić 1-10
udaljenošću i vremenom putovanja koje je ovisno o tipu vozila. Informacije potrebne za
dobar opis korisnika pri rješavanju VRP su:
- polazna točka koja predstavlja skladište,
- količina dobara, moguće je da postoji više tipova dobara, koje je potrebno prikupiti ili
dostaviti,
- vremenski period (vremenski prozor) u kojem je potrebno poslužiti korisnika, npr.
određeni period kada je korisnik prometno dostupan ili pak korisnik želi dostavu baš u
određenom vremenskom periodu,
- vrijeme potrebno da se obavi dostava ili prikupljanje kod korisnika, vrijeme iskrcaja ili
ukrcaja koje ovisi o tipu vozila i primijenjenoj tehnologiji,
- podskup dostupnih vozila koja se mogu koristiti kod pojedinog korisnika obzirom na
mogući pristup za iskrcaj i ukrcaj.
Ponekad nije moguće u potpunosti zadovoljiti potrebe korisnika, tada količina dobara
može biti smanjena ili se podskupu korisnika može uskratiti posluživanje. Da bi se ovakvi
slučajevi što učinkovitije razriješili uvode se prioriteti ili kazne povezani s djelomičnim ili
potpunim uskraćivanjem posluživanja korisnika.
Rute kojima se poslužuju korisnici započinju i završavaju u jednom ili više skladišta.
Svako skladište je opisano brojem i tipovima vozila koji ga poslužuju, te s ukupnom
količinom dobara koja se skladišti u njemu. U praktičnim aplikacijama korisnici već unaprijed
imaju dodijeljena skladišta, a vozila se vraćaju u skladišta iz kojih su krenuli. U ovakvim
slučajevima cjelokupni problem se može dekomponirati u nekoliko odvojenih pod-problema,
tako da je svaki od njih povezan s pojedinim skladištem. Prijevoz dobara izvodi se pomoću
grupe vozila koja veličinom i karakteristikama zadovoljavaju korisnike. Tipične karakteristike
vozila su:
- početno skladište iz kojeg kreće vozilo i vjerojatnost da se nakon posluživanje korisnika
vozilo vrati u neko drugo skladište,
- kapacitet vozila izražen u maksimalnoj težini, volumenu ili broju paleta koje vozilo može
ukrcati,
- mogućnost vozila da teretni prostor preraspodijeli u komore određenog kapaciteta i
namjene ovisno o dobrima koje se utovaruju,
- raspoloživost uređaja za ukrcaj i iskrcaj tereta,
- podskup prometne mreže koji je prohodan za vozilo,
- troškovi povezani sa korištenjem vozila po prevaljenoj udaljenosti, po utrošenom
vremenu, po prevaljenoj ruti itd.
Doktorska disertacija mr. sc. Tonči Carić 1-11
Vozači moraju poštovati zahtjeve kao što su radno vrijeme, broj obveznih stanki,
maksimalno trajanje vožnje itd. Takvi zahtjevi prenose se na značajke vozila.
Rute moraju zadovoljavati operativne zahtjeve koje nameće priroda transporta, kvaliteta
usluge, te karakteristike vozila i korisnika. Tipični operativni zahtjevi su:
- pri vožnji na svakoj ruti vozilo ne smije imati više tereta u odnosu na nazivni kapacitet
koji je dopušten,
- korisnik može zahtijevati dostavu, prikupljanje ili i jedno i drugo,
- korisnik se poslužuje unutar vremenskog perioda koji zahtijeva korisnik a nije u
suprotnosti s radnim vremenom vozača.
Moguće je uvesti i ograničenje prednosti koje favorizira pojedine korisnike prilikom
odabira redoslijeda posluživanja korisnika. Jedan tip ograničenja prednosti je zahtjev da se
jedan korisnik posluži u ruti u kojoj se nalazi podskup drugih korisnika, te da se taj korisnik
posluži prije (ili kasnije) od podskupa korisnika. Ograničenje ovog tipa predstavlja problem
prikupljanja i dostave, gdje se dobra prikupljena kod jednog korisnika moraju istim vozilom
dostaviti drugom korisniku. Čest je zahtjev gdje se u jednoj ruti poslužuje više grupa
korisnika, a poznato je koju grupu korisnika treba prije poslužiti. Ako se na ruti provodi i
prikupljanje i dostava, a ograničenja su vezana za proces ukrcaja i iskrcaja gdje je nepoželjno
reorganiziranje tereta na ruti dolazimo do problema usmjeravanja vozila s dostavom i povratnim
prikupljanjem gdje se sva dostava mora obaviti prije prikupljanja.
Da bi utvrdili ukupni trošak transporta rutama potrebno je poznavati pojedinačne cijene
(vremena) na lukovima između pojedinih korisnika te između korisnika i skladišta. Prilikom
analize VRP-a mreža prometnica transformira se u potpuni graf, graf je potpun kada je svaki
par točaka povezan jednim lukom [9]. Točke grafa odgovaraju korisnicima i skladištu. Za
svaki par točaka i i j potpunog grafa definira se luk (i,j) s cijenom cij koja predstavlja cijenu
najkraćeg puta iz točke i u točku j na mreži prometnica. Vrijeme putovanja tij luka (i,j)
potpunog grafa predstavlja zbroj vremena potrebnih da se najkraćim putem mrežom
prometnica stigne iz točke i u točku j. U proračunu ruta umjesto originalne mreže prometnica
koristi se pripadni potpuni graf koji ovisno o matrici cijena i vremena može biti asimetričan i
simetričan.
Najčešće funkcije cilja za problem usmjeravanja vozila su:
- smanjenje broja vozila i vozača potrebnih da se posluže svi korisnici,
- smanjenje ukupnih troškova prijevoza koji direktno ovise o prevaljenom putu vozila i
fiksnim troškovima vozila i vozača,
- uravnoteženje ruta s obzirom na vrijeme putovanja na ruti i ukrcanih dobara,
Doktorska disertacija mr. sc. Tonči Carić 1-12
- smanjenje kazni zbog nemogućnosti posluživanja korisnika,
- kombinacija pojedinih ciljeva.
U realnim aplikacijama svako vozilo može odraditi više ruta u radnom vremenu ili rute
mogu trajati dulje od jednog dana. Ponekad je potrebno razmotriti neizvjesnu situaciju gdje
unaprijed nisu poznate sve osobitosti problema. Takve situacije nastaju kada nije unaprijed
poznata količina dobara koju zahtijeva korisnik ili pak nisu poznata cijene (vremena)
pojedinih lukova mreže.
Ako se korisnici ne nalaze u točkama grafa, već su distribuirani po lukovima tada se radi
o problemu usmjeravanja vozila na lukovima ARP (Arc Routing Problem). U slučaju da
raspolažemo samo jednim vozilom i ako ne postoje dodatna ograničenja tada VRP prelazi u
dobro poznati problem trgovačkog putnika TSP ( Traveling Salesman Problem) kada je potrebno
jednim vozilom obići sve točke grafa uz minimalnu cijenu (vrijeme).
Doktorska disertacija mr. sc. Tonči Carić 2-13
2. Definicija problema usmjeravanja vozila
2.1. VRP s ograničenjima kapaciteta i njegove varijante
Osnovni model problema usmjeravanja vozila je VRP s ograničenjima kapaciteta
CVRP (Capacitated VRP). U ovom problemu svi su korisnici i njihovi zahtjevi unaprijed
poznati, vozila su identična, a zajednička polazna točka im je u centralnom skladištu. Jedino
ograničenje koje postoji je kapacitet pojedinog vozila. Funkcija cilja izražava zahtjev za
minimiziranje ukupnog troška (npr. težinska funkcija broja ruta i njihove ukupne duljine ili
vremena) pri posluživanju svih korisnika.
CVRP se može izraziti korištenjem notacije teorije grafova na slijedeći način:
Neka je:
G=(V, A) potpuni graf
V= {0,...,n} skup vrhova
A skup lukova
Vrhovi i=1, ... , n predstavljaju korisnike. Vrh s indeksom 0 predstavlja skladište. Ne-
negativna cijena cij povezana je s lukom (i,j)∈A i predstavlja trošak prijevoza između korisnika
i i j. Uobičajeno je ne koristiti lukove (i,i) i pretpostavlja se da je cijena cii=+∞ za sve i∈V.
Ako je G usmjereni graf, matrica troškova c je asimetrična, pa se odgovaraujući problem
naziva asimetrični VRP s ograničenjima kapaciteta ACVRP (Asymetric CVRP). Ako su cij=cji
za svaki (i,j)∈A tada se problem naziva simetrični VRP s ograničenjima kapaciteta SCVRP
(Symetric CVRP). Pod pojmom CVRP najčešće se podrazumijeva SCVRP, dok se skup A
najčešće zamjenjuje sa skupom E koji sačinjavaju neusmjereni lukovi. Za očekivati je da će
matrica troškova zadovoljavati nejednakost trokuta.
cik + ckj ≥ cij za sve i,j,k∈V
Prisutnost ove nejednakosti ponekad je od izuzetne važnosti za neke od algoritama
rješavanja CVRP-a. Matrica troškova često je sastavljena od cijena minimalnog puta između
korisnika. U slučajevima kada vrhovi grafa odgovaraju koordinatama korisnika u ravnini
koristi se euklidska distanca gdje cijena cij za svaki luk (i,j)∈V odgovara udaljenosti vrhova i i j
u ravnini. U takvom slučaju matrica je simetrična, zadovoljava nejednakost trokuta a
rezultirajući problem naziva se euklidski SCVRP. Važno je primijetiti da učestalo
Doktorska disertacija mr. sc. Tonči Carić 2-14
zaokruživanje realnih cijena lukova na cjelobrojne vrijednosti može ugroziti relaciju
nejednakost trokuta.
Svaki korisnik i (i=1,...,n) povezan je s poznatim ne-negativnim zahtjevom di, dok
skladište ima fiktivni zahtjev d0=0. Za podskup S⊆ V postoji d(S)=∑i∈V di koji predstavlja
ukupni zahtjev skupa. U skladištu se nalazi skup od K identičnih vozila, svako sa kapacitetom
C. Da bi rješenje problema bilo izvedivo potrebno je da vrijedi di ≤ C za svaki i (i=1,...,n).
Svako vozilo može izvesti najviše jednu rutu. Pretpostavlja se da K nije manji od Kmin, gdje je
Kmin minimalni broj vozila potrebnih da se posluže svi korisnici. Vrijednost Kmin moguće je
odrediti rješavajući BPP problem (Bin Packing Problem), koji ovdje rješava minimalni broj
vozila kapaciteta C potrebnih da se ostvare svi zahtjevi di. Iako je sam problem naprtnjače
NP težak problem poznate su metode koje efikasno pronalaze optimum za nekoliko stotina
zahtijeva [8].
Rješavanje CVRP-a predstavlja određivanje K ruta (svaka ruta je povezana samo s
jednim vozilom) gdje ukupan trošak rute treba biti minimalna. Ukupan trošak dobiva se kao
suma cijena na svakom luku koji pripada ruti. Rješenje treba zadovoljavati ove uvjete:
- svaka ruta treba započeti i završiti u skladištu,
- svaki korisnik učestvuje u samo jednoj ruti,
- suma zahtijeva korisnika koji su posluženi u jednoj ruti ne smije biti veća od kapaciteta
vozila.
U literaturi je obrađeno više varijanti ovog problema. Prva varijanta odnosi se na broj
raspoloživih vozila K koji je veći od Kmin gdje je moguće ostaviti neka vozila neiskorištena.
Smanjenje troška može se postići tako da se uz minimiziranje ukupne cijene lukova, smanji i
broj ruta (odnosno vozila), te tako uštedi na troškovima vozila. Kada se ograničenje
kapaciteta zamjenjuje ograničenjem maksimalnog puta ili vremenskog trajanja VRP dobiva
varijantu koju zovemo problem usmjeravanja vozila ograničen udaljenošću DVRP (Distance
Constrained VRP). Udaljenost, odnosno vrijeme tij (gdje je (i,j) ∈ A), ne smije biti veće od
maksimalnog dozvoljenog prevaljenog puta na ruti odnosno vremena provedenog na ruti T.
Kada se duljina lukova izražava vremenom putovanja, tada se tom vremenu dodaje i vrijeme
posluživanja si koje je vezano za svakog korisnika i, a predstavlja vrijeme zadržavanja vozila
kod korisnika.
tij=t'ij+si/2+sj/2
t'ij je vrijeme kretanja na luku bez vremena zadržavanja kod korisnika.
Doktorska disertacija mr. sc. Tonči Carić 2-15
U varijanti u kojoj sva vozila nisu jednaka već imaju različite kapacitete Ck,, k=1,...,K ,
tada su maksimalni dozvoljeni putovi tj. vremena Tk, k=1,...,K.
Varijanta problema gdje su prisutna dva ograničenja: ograničenje kapaciteta i
ograničenje maksimalne dužine rute zovemo problem usmjeravanja vozila ograničen
udaljenošću i kapacitetom DCVRP (Distance–Constrained CVRP).
2.2. VRP s vremenskim ograničenjima
Problem usmjeravanja vozila s vremenskim ograničenjima VRPTW (VRP with Time
Windows), je proširenje CVRP gdje osim kapacitivnih ograničenja svakog vozila postoje i
vremenska ograničenja vezana za svakog korisnika. Posluživanje svakog korisnika mora
započeti u vremenskom prozoru [ai,bi], vozilo mora mirovati za vrijeme posluživanja si. U
slučaju da vozilo dođe do korisnika prije vremena ai, vozilu je u pravilu dozvoljeno da čeka do
trenutka ai, kada može započeti posluživanje. Osim tih vremena zadano je i vrijeme kada
vozilo izlazi iz skladišta, te vrijeme koje vozilo provede na svakom od lukova tij (i,j)∈A. Uobičajeno je da se matrica troškova i matrica putnih vremena podudaraju, a da su
vremenski prozori korisnika tako definirani da se pretpostavlja kako sva vozila napuštaju
skladište u vremenskom trenutku nula 0. Interesantno je primijetiti da vremenski prozori
utječu na orijentaciju rute iako je matrica simetrična. Rješenje VRPTW problema sastoji se u
pronalaženju K ruta sa minimalnim troškom i s zadovoljavanjem slijedećih uvjeta:
- svaka ruta započinje i završava u skladištu,
- svaki korisnik se posjećuje jednom,
- suma zahtijeva korisnika u ruti ne prelazi kapacitet vozila C koje poslužuje korisnike na
ruti,
- posluživanje svakog korisnika započinje u vremenskom prozoru [ai,bi] i vozilo je
zaustavljeno za vrijeme posluživanja si.
Doktorska disertacija mr. sc. Tonči Carić 2-16
2.3. VRP s dostavom i povratnim prikupljanjem
Problem usmjeravanja vozila s dostavom i povratnim prikupljanjem VRPB (VRP with
Backhauls) je proširenje CVRP gdje je skup korisnika V \{0} podijeljen na dva podskupa. Prvi
podskup predstavljaju korisnici u podskupu L koji sadrži n korisnika koji zahtijevaju određene
količine robe za isporuku. Drugi podskup B sadrži m korisnika kod kojih se zahtijeva
prikupljanje određene količine srodne robe. Korisnici su indeksirani na način da je L={1,...,n}
i B={n+1,...,n+m}.
U VRPB problemu postoji ograničenje prednosti posluživanja gdje se svi korisnici iz
skupa L moraju poslužiti prije korisnika u skupu B. Ne-negativni zahtjevi di dvoznačnog su
tipa, jedan za dostavu, a drugi za prikupljanje. Skladištu je pridružen fiktivni zahtjev d0. Kada
je matrica troškova asimetrična, problem se naziva asimetrični problem usmjeravanja vozila s
dostavom i povratnim prikupljanjem AVRPB (Asymetric VRP with Backhauls). Rješenja VRPB
i AVRPB problema sastoji se od pronalaženja K ruta s minimalnim troškovima, koje
zadovoljavaju ove uvjete:
- svaka ruta započinje i završava u skladištu,
- svaki korisnik se posjećuje točno jedanput,
- zbroj pojedinačnih zahtijeva korisnika iz podskupa L i podskupa B ne prelazi kapacitet
vozila C koje poslužuje korisnike na ruti,
- u svakoj ruti svi korisnici iz podskupa L su posluženi prije korisnika u podskupu B ako B
nije prazan skup.
Uobičajeno je da podskup L nije prazan skup, a implicitno se pretpostavlja da svaka
ruta sadrži članove iz L i B podskupa. Neka KL i KB označavaju minimalni broj vozila
potrebnih da se posluže svi članovi podskupova L i B. Ove vrijednosti mogu se izračunati
rješavajući BPP problem vezan za svaki pojedini podskup. Da bi se osigurala izvedivost
rješenja pretpostavlja se da broj vozila K nije manji od minimalnog broja vozila potrebnih da
se posluže svi korisnici odnosno K ≥ max{KL ,KB}.
Doktorska disertacija mr. sc. Tonči Carić 2-17
2.4. VRP s prikupljanjem i dostavom
U osnovnoj verziji VRP s prikupljanjem i dostavom VRPPD ( VRP with Pickup and
Delivery), svaki korisnik i povezan je s dvije vrijednosti di i pi. One predstavljaju vrijednosti
zahtijeva za dostavom i za prikupljanjem istovrsne robe. Ponekad se koristi samo jedna
vrijednost di=di-pi za svakog korisnika i i predstavlja razliku zahtijeva dostave i prikupljanja,
koja može biti i negativne vrijednosti. Svaki zahtjev definiran je s mjestom prikupljanja,
mjestom dostave i količinom robe koja će se transportirati. Da bi se takvi zahtjevi definirali
potrebno je za svakog korisnika i poznavati mjesto dostave Oi, mjesto prikupljanja Di, ako Oi i
Di nisu skladište.
Pretpostavlja se da je dostava izvršena prije posjete mjestu gdje treba biti izvršeno
prikupljanje. Rješenje VRPPD-a predstavlja pronalaženje ruta s minimalnim troškovima koje
zadovoljavaju i ove uvjete
- svaka ruta započinje i završava u skladištu,
- svaki korisnik se posjećuje samo jednom,
- količina tereta u vozilu uvijek mora biti broj između 0 i maksimalnog kapaciteta tog
vozila,
- za svakog korisnika i postoji u istoj ruti korisnik Oi, kada se on razlikuje od skladišta kojeg
treba poslužiti prije korisnika i ,
- za svakog korisnika i postoji u istoj ruti korisnik Di, kada se on razlikuje od skladišta,
kojeg treba poslužiti poslije korisnika i .
Uobičajeno je da se izvor i odredište zahtijeva nalaze u skladištu. Tada se radi o VRP-u
sa simultanom dostavom i prikupljanjem VRPSPD (Simultaneous Pickup and Delivery).
Doktorska disertacija mr. sc. Tonči Carić 2-18
Na slici (Slika 1) dan je pregled izvedenih problema koji nastaju iz CVRP problema kao
modifikacije VRP problema.
Slika 1. CVRP, ograničenja i izvedeni problemi
Doktorska disertacija mr. sc. Tonči Carić 3-19
3. Osnovni modeli usmjeravanja vozila s ograničenjima kapaciteta
CVRP može se opisati kao problem u teoriji grafova koji glasi ovako: Neka je:
G=(V,A) potpuni graf, V= {0,...,n} skup vrhova i A skup lukova. Vrhovi i=1, ... ,n
predstavljaju korisnike. Vrh s indeksom 0 predstavlja skladište. Ne-negativna cijena cij
povezana je s lukom (i,j)∈A i predstavlja trošak prijevoza između korisnika i i j. Za CVRP
kosite se tri pristupa modeliranja problema: model protoka vozila poglavlje (2.1), model
protoka tereta [26] i model particioniranja skupa (SP model) [15].
Najčešći način modeliranja problema usmjeravanja vozila je korištenjem cjelobrojnih
varijabli koje su povezane sa svakim lukom grafa. Varijable prebrojavaju koliko je puta bilo
koje od vozila koristilo luk. Ovakvi pristupi poznati su kao modeli protoka vozila. Ovo su
najčešće korišteni modeli i posebno su praktični u slučajevima kada se cijena rješenja može
jednostavno izraziti kao suma cijena lukova ili kada se najbitnija ograničenja mogu zadati
pomoću članova skupa lukova i pripadnih cijena. Slabost ovakvih modela vidljiva je kada je
cijena rješenja povezana sa cjelokupnim redoslijedom korisnika u ruti ili tipom vozila koje je
pridijeljeno ruti. Modeli protoka vozila nisu podesni ni za proces relaksacije linearnih
programa kada su dodatna ograničenja vrlo uska.
Druga porodica modela bazirana je na protoku tereta. Kod ovih modela dodaju se nove
cjelobrojne varijable koje su povezane s lukovima grafa i predstavljaju protok tereta duž ruta
po kojima se vozilo kreće. Tek odnedavno, rastom procesorske moći računala (super/
cluster/grid računala), ovakvi modeli postaju interesantni kao baza za egzaktno izračunavanje
optimalnog rješenja za CVRP.
SP modeli generiraju jednu binarnu varijablu za svaku ostvarivu rutu, a zatim čine
prelaze na problem particioniranja skupa SPP (Set Partitioning Problem). Glavna prednost ovih
modela je što omogućavaju vrlo općenito postavljanje troškova pojedinih ruta, tako da
troškovi mogu ovisiti o cijeloj sekvenci lukova i vrstama vozila na različite načine. Glavni
problem pri rješavanju je eksponencijalni rast broja binarnih varijabli.
Doktorska disertacija mr. sc. Tonči Carić 3-20
3.1. Modeli protoka vozila
Dvoindeksni model protoka vozila koristi binarne varijable x (njih O(n2)) koje
označavaju da li je vozilo koristilo luk u optimalnom rješenju ili ne. Varijabla xij poprima
vrijednost 1 ako luk (i,j)∈A (A je skup lukova)1 pripada optimalnom rješenju, a ako luk ne
pripada optimalnom rješenju xij poprima vrijednost 0. Model protoka vozila opisan je
slijedećim relacijama:
∑∑∈ ∈Vi Vj
ijij xcmin (3.1.1)
∑∈
=Vi
ijx 1 ∀ j∈ V \ {0} (3.1.2)
∑∈
=Vj
ijx 1 ∀ i∈ V \ {0} (3.1.3)
∑∈
=Vi
i Kx 0 (3.1.4)
∑∈
=Vj
j Kx0 (3.1.5)
∑∑∉ ∈
≥Si Vj
ij Srx )( ∀ S ⊆ V\{0}, S≠∅ (3.1.6)
{ }1,0∈ijx ∀ i,j∈V (3.1.7)
Ograničenja (3.1.2) i (3.1.3) ukazuju da jedno vozilo dolazi ka korisniku i da jedno
vozilo odlazi od korisnika. Sukladno tome ograničenja (3.1.4) i (3.1.5) ukazuju da K vozila
dolazi i odlazi iz skladišta. Dovoljan broj ograničenja je 2⎥V⎜-1 jer je zadnje ograničenje
implicitno određeno ostalim. Takozvano ograničenje kapacitivnog reza (3.1.6) CCC (Capacity
Cut Constrains) određuje povezanost i kapacitet rješenja. CCC ustanovljava da svaki rez (V\S,
S) definiran skupom korisnika S sječe lukove i da je broj presječenih lukova uvijek veći ili
jednak od r(S), tj. minimalnog broja vozila potrebnih da se posluži skup S (Slika 2).
Iz ograničenja (3.1.2) i (3.1.3), te (3.1.4) i (3.1.5) može se izvesti relacija (3.1.8). Relacija
(3.1.8) je vidljiva na primjeru (Slika 2) nakon izvedenog kapacitivnog reza.
1 Koristi se notacija definirana u 2.1 VRP s ograničenjima kapaciteta i njegove varijante
Doktorska disertacija mr. sc. Tonči Carić 3-21
Slika 2. Kapacitivni rez
∑∑∑∑∈ ∉∉ ∈
=Si Sj
ijSi Sj
ij xx ∀ S ⊆ V\{0}, S≠∅ (3.1.8)
Rez siječe lukove u oba smjera jednaki broj puta tako da je:
S)\(VrxSi Sj
ij ≥∑∑∉ ∈
∀ S ⊂ V, 0∈ S (3.1.9)
Alternativna formulacija vodi nas ka ograničenju uopćene eliminacije ruta GSEC
(Generalized Subtour Elimination Constrains) (Slika 3).
)(SrSxSi Sj
ij ⎜−≤⎥∑∑∈ ∈
∀ S ⊂ V\{0}, S≠∅ (3.1.10)
Ograničenja (3.1.6) i (3.1.10) imaju kardinalnost koja eksponencijalno raste s brojem
korisnika n. Zbog takvog rasta praktično je nemoguće riješiti problem usmjeravanja vozila u
općem slučaju direktnom relaksacijom linearnog programa.
Doktorska disertacija mr. sc. Tonči Carić 3-22
Slika 3. Ograničenje uopćene eliminacije ruta
Potencijalno je moguće razmotriti manji podskup ograničenja i postepeno dodavati ona
ograničenja koja su nužna koristeći neku od separacijskih procedura. Promatrana ograničenja
mogu se relaksirati na Lagrange-ov način [24] i [34] ili se mogu izravno rješavati relaksacijom
linearnog programa kao u «branch and cut» pristupu.
Doktorska disertacija mr. sc. Tonči Carić 3-23
3.2. Modeli protoka tereta
Model protoka tereta prvi put je predstavljen u radu [26] za problem distribucije nafte, a
kasnije je proširen u radovima [39], [40] na dvije varijante i to za TSP i VRP. U ovom VRP
modelu osim varijabli potrebnih za dvoindeksni model protoka vozila dodaje se novi skup
kontinuiranih varijabli povezanih sa svakim lukom. Model zahtijeva prošireni graf G'=(V',A')
nastao iz grafa G 2 dodavanjem korisnika n+1 koji je još jedna kopija skladišta. Rute
predstavljaju putevi povezanih lukova od korisnika 0 do korisnika n+1. Dvije nenegativne
varijable protoka yij i yji povezane su s lukom (i,j)∈A'. Ako se vozilo kreće iz i u j tada yij
predstavlja teret, a varijabla yji neiskorišteni kapacitet vozila duž luka (i,j). Očito da je odnos tih
dviju varijabli yji =C - yij . Uloge varijabli su izmijenjene ako vozilo putuje iz j u i. Zbog toga je
zadovoljena jednakost yji =C - yij za svaki (i,j)∈A'.
Slika 4. Primjer modela protoka tereta
Za svaku rutu koja predstavlja dio ostvarivog rješenja, varijable protoka definiraju dva
usmjerena puta. U jednom smjeru varijable predstavljaju teret, dok u drugom smjeru te iste
varijable predstavljaju neiskorišteni kapacitet. Tako možemo zamisliti vozilo koje kreće od
korisnika 0 do korisnika n+1, napuštajući korisnika 0 s dostatnim teretom kako bi se svakom
korisniku isporučila tražena količina tereta. Vozilo stiže kod korisnika n+1 prazno. Zamislimo
drugo vozilo koje kreće od korisnika n+1 prazno i prikuplja teret od svakog korisnika jednako
po količini njegovom zahtjevu. Na slici (Slika 4) prikazan je primjer s 3 korisnika i
kapacitetom vozila C=20, zahtjevi korisnika prikazani su brojem kraj svakog korisnika i,j i k.
Kao i u dvoindeksnom modelu protoka vozila koriste se binarne varijable x koje
označavaju da li je vozilo koristilo luk u optimalnom rješenju ili ne. Varijabla xij poprima
2 Koristi se notacija definirana u 2.1 VRP s ograničenjima kapaciteta i njegove varijante
Doktorska disertacija mr. sc. Tonči Carić 3-24
vrijednost 1 ako luk (i,j)∈A' pripada optimalnom rješenju, a ako luk ne pripada optimalnom
rješenju xij poprima vrijednost 0. Model kojim je opisan ACVRP može se zadati ovim
relacijama:
∑∈ ',
minAji
ijij xc (3.2.1)
∑∈
=−'
2)(Vi
iijji dyy (3.2.2)
∑+∈
+=1}n\{0,'0 1})n\{0,'(
Vjj Vdy (3.2.3)
∑+∈
+−=1}n\{0,'
0 1})n\{0,'(Vj
j VdKCy (3.2.4)
∑+∈
+ =1}n\{0,'
,1Vj
jn KCy (3.2.5)
yij + yji =C xij (i,j)∈A' (3.2.6)
∑∈
=+'
2)(Vi
jiij xx ∀ i ∈ V' \ {0,n+1} (3.2.7)
yij ≥ 0 (i,j)∈A' (3.2.8)
xij ∈ {0,1} (i,j)∈A' (3.2.9)
Ograničenja (3.2.2) ustanovljavaju da je razlika između sume varijabli protoka tereta
vezanih za dolazak i odlazak svakog od korisnika i jednaka dvostrukoj vrijednosti zahtijeva
svakog od korisnika. Ograničenja (3.2.3, 3.2.4, 3.2.5) osiguravaju ispravne vrijednosti varijabli
protoka tereta prema skladištu. Odnos među varijablama protoka tereta dan je relacijom
(3.2.6). Broj posjeta svakom od korisnika ograničen je relacijom (3.2.7).
Doktorska disertacija mr. sc. Tonči Carić 3-25
3.3. Modeli particioniranja skupa
Model particioniranja skupa SP (Set Partitioning) prvi put je predložen u radu [15] i
koristi potencijalno eksponencijalni broj binarnih varijabli. Svaka od varijabli povezana je sa
nekom od izvedivih ruta iz skupa svih ruta Ψ={H1,… Hq,} gdje je q=⎥ Ψ ⎜. Svaka ruta Hj ima
svoj trošak cj. Binarni koeficijent aij poprima vrijednost 1 ako je korisnik posjećen ili 0 ako
korisnik nije posječen. Binarna varijabla xj j=1,…,q jednaka je 1 ako i samo ako je ruta Hj dio
optimalnog rješenja. SP model opisan je slijedećim relacijama:
∑=
q
jjj xc
1
min (3.3.1)
∑=
=q
jjij xa
1
1 ∀ i ∈ V' \ {0} (3.3.2)
∑=
=q
jj Kx
1
(3.3.3)
xj ∈ {0,1} ∀ j=1,…,q (3.3.4)
Ograničenje (3.3.2) zahtijeva da svaki korisnik bude posjećen samo jednom u
optimalnom rješenju i da rješenje ima K ruta ograničenje (3.3.3). Ovo je uopćeni model, kojeg
je moguće proširiti novim ograničenjima. U slučaju da želimo modelirati VRPTW, potrebno
je započeti samo od skupa ruta koje zadovoljavaju ograničenje vremenskih prozora.
Glavni nedostatak modela je eksplicitno generiranje svih mogućih ruta, pa je za
rješavanje ovako postavljenog linearnog programa prikladno koristiti metodu «column
generation» .
Doktorska disertacija mr. sc. Tonči Carić 3-26
3.4. VRP s vremenskim ograničenjima modeliran linearnim programom
Kao primjer troindeksnog modela protoka vozila uzet ćemo VRPTW i prikazati njegov
linearni program. Polazni elementi matematičkog modela su skup identičnih vozila ν, skup
korisnika C i usmjereni graf koji međusobno povezuje korisnike, ali i neke od korisnika sa
skladištem. Kardinalni broj skupa C je n. Skladište je ujedno i krajnje odredište pa se ta dva mjesta
označuju kao 0-ti korisnik i n+1 korisnik. Lukovi u usmjerenom grafu predstavljaju veze među
korisnicima. Nijedan luk ne završava kod nultoga korisnika i nijedan luk ne započinje u n+1
korisniku. Za skup svih korisnika koji označujemo sa N, možemo kazati da je N = C ∪ {0,n+1}.
Cijena cij i vrijeme putovanja tij povezani su s lukom (i,j), i≠j odnosno ne postoji luk, cijena ili
vrijeme koji povezuju korisnika s njim samim. Vrijeme tij može sadržavati i vrijeme posluživanja
korisnika i. Ako se vozilo ne upotrebljava, t0,n+1=0, a c0,n+1 predstavlja trošak korištenja vozila.
Nepostojeći ili neostvarivi lukovi (i,j) mogu se modelirati koristeći veliki koeficijent cijene cij.
Svako vozilo ima kapacitet q, a svaki od korisnika ima svoje zahtjeve di , i∈C.
Posluživanje svakoga korisnika mora započeti u vremenskom prozoru [ai,bi], i∈C. Vozila
moraju napustiti polaznu točku u vremenskom prozoru [a0,b0] i vratiti se u vremenskom prozoru
[an+1,bn+1]. Vozilima je dopušteno da stignu do korisnika i prije početka vremenskog prozora i da
slobodno pričekaju do njegova početka, ali nije im dopušteno da stignu poslije vremena
određenog kao kraj vremenskog prozora. Model uključuje dvije vrste varijabli odluka. Varijabla
odluke xijk (definirana ∀i,j∈N, ∀k∈ν, i≠j, i≠n+1, j≠0) ima vrijednost 1 ako vozilo k vozi od
korisnika i do korisnika j, a u suprotnom poprima vrijednost 0. Vremenska varijabla sik (definirana
∀ i∈N, ∀k∈ν) označuje vrijeme kada vozilo k započinje posluživanje korisnika i. Može se
zaključiti da je varijabla s0k=0, dok je sn+1,k vrijeme dolaska vozila k u početno odnosno krajnje
mjesto.
Rješenje problema opisanog ovim modelom je skup ruta koji će uz minimalan trošak
poslužiti sve korisnike. Sam matematički VRPTW model dan je ovim relacijama:
Doktorska disertacija mr. sc. Tonči Carić 3-27
∑∑∑∈ ∈ ∈νk Ni Nj
ijkij xcmin (3.4.1)
∑∑∈ ∈
=νk Nj
ijkx 1 ∀ i∈C (3.4.2)
∑ ∑∈ ∈
≤Ci Nj
ijki qxd ∀ k∈ν (3.4.3)
∑∈
=Nj
jkx 10 ∀ k∈ν (3.4.4)
∑ ∑∈ ∈
=−Ni Nj
hjkihk xx 0 ∀ h∈C, ∀ k∈ν (3.4.5)
∑∈
+ =Ni
knix 1,1, ∀ k∈ν (3.4.6)
jkijkijik sxKts ≤−−+ )1( ∀ i∈N, ∀ j∈N, ∀ k∈ν (3.4.7)
iiki bsa ≤≤ ∀ i∈N, ∀ k∈ν (3.4.8)
{ }1,0∈ijkx ∀ i∈N, ∀ j∈N, ∀ k∈ν (3.4.9)
Rute moraju zadovoljavati kapacitet vozila i definirane vremenske intervale (prozore).
Funkcija cilja je minimiziranje cijene koja je definirana relacijom (3.4.1). Relacija (3.4.2) predstavlja
ograničenje kojim zahtijevamo da svaki korisnik bude poslužen samo jednim vozilom. Relacija
(3.4.3) je zahtjev da svako vozilo koje poslužuje korisnike u svojoj ruti svojim kapacitetom može
zadovoljiti ukupne zahtjeve svih pojedinačnih korisnika u ruti. Zahtjev u relaciji (3.4.4) osigurava
da sva vozila napuštaju početnu točku samo jednom, dok relacija (3.4.5) predstavlja zahtjev da sva
vozila koja napuštaju nekoga korisnika moraju i pristupiti tom korisniku. Da sva vozila završavaju
svoju rutu u mjestu n+1, osigurano je zahtjevom u relaciji (3.4.6). Zahtjev u relaciji (3.4.7) definira
da vozilo k ne može stići u j prije sik+tij ako se kreće od j do k. Broj K može biti bilo koji vrlo
veliki broj. Relacija (3.4.8) osigurava ispravnost vremenskih intervala, dok relacija (3.4.9) definira
skup vrijednosti varijable odluke xijk.
Doktorska disertacija mr. sc. Tonči Carić 4-28
4. Pristupi rješavanju problema usmjeravanja vozila
Pristupi rješavanju VRP-a i povijesni razvoj korištenih metoda mogu se pratiti kroz
četiri dekade dvadesetog stoljeća. Problem usmjeravanja vozila prvi put je predstavljen 1959.
godine [20]. Početkom šezdesetih mogli su se riješiti isključivo mali problemi koji su
uključivali od 10 do 20 korisnika. Clark i Wright algoritam [19] jedan je od uspješnijih
algoritama koji do rješenja dolazi konstrukcijom ruta, pa se zbog svoje djelotvornosti i danas
koristi. Krajem šezdesetih dogodio se bitan pomak uvođenjem 2OPT i 3OPT mehanizma
poboljšavanja ruta [18]. Algoritmi razvijeni do početka sedamdesetih, mogli su riješiti samo
neke od problema koji su sadržavali od 30 do 100 korisnika. U sedamdesetim uveden je
koncept dvoprolaznih algoritama, a sama brzina izvođenja algoritma postaje sve značajnija.
Veličine problema koji se rješavaju bitno rastu, tako da su riješeni i neki problemi od 1000
korisnika. U toj dekadi od 1970. do 1980. neki od problema od 25 do 30 korisnika rješavaju
se optimalno. Osamdesetih godina dvadesetog stoljeća započinje brz razvoj egzaktnog
rješavanja problema zasnovanog na linearnom programiranju. Osim egzaktnog predlažu se i
razvijaju i drugi pristupi rješavanju problema usmjeravanja vozila zasnovani na iskustvu.
Optimalno se rješavaju neki od problema s 50 korisnika. Na osnovu mnogo novouvedenih,
međusobno bitno različitih metoda, tijekom devedesetih formira se na općem nivou
rješavanja optimizacijsko kombinatoričkih problema novi koncept metaheuristike. Problemi
usmjeravanja vozila koji se optimalno rješavaju devedesetih dosežu veličinom i do 100
korisnika.
Suvremeni pristupi rješavanju VRP problema mogu se podijeliti prema različitim
motivacijama rješavanja problema kao na slici (Slika 5). Prvi pristup rješavanju je potraga za
egzaktnim rješenjem problema. Praktična primjena ovog pristupa vrlo je ograničena jer je
optimalna rješenja moguće pronaći tek za manji broj korisnika. Broj mogućih ruta za opći
slučaj usmjeravanja vozila raste iznimno brzo, pa nije moguće očekivati da ovaj pristup u
općem slučaju generira rješenja uporabljiva u realnom vremenu koja se zahtijevaju u praksi. U
slučaju hibridnih algoritama i u specijalnim slučajevima kada je bitno sužen skup mogućih
rješenja često se koriste egzaktni algoritmi «branch and cut», «column generation» i «lagrange
relaxation».
Doktorska disertacija mr. sc. Tonči Carić 4-29
Heuristički pristup predstavlja korištenje iskustva, intuicije i vlastite procjene prilikom
rješavanja nekog problema. Za razliku od egzaktnih metoda, heurističke metode ne
predstavljaju znanje o strukturi ili odnosima unutar modela problema koji rješavamo.
Heurističke metode predstavljaju pravila izbora, filtriranja i odbacivanja rješenja, a služe za
smanjivanje broja mogućih puteva u postupku rješavanja problema [41]. Heuristički algoritmi
često se zasnivaju na konstrukciji ruta gdje se konstruiranje i poboljšavanje ruta s obzirom na
ciljnu funkciju vrši iterativno. Predstavnici ovakvog pristupa konstruktivnim heurističkim
metodama koji daju aproksimativne rezultate su Clark and Wright, Sweep ili Christofides
Mignozi Toth algoritmi.
Slika 5. Pristupi rješavanju problema usmjeravanja vozila
Najnoviji pristup rješavanja NP-teških problema kombinatorne optimizacije je
metaheuristički, koji kao pojam u optimizaciji predstavlja skup koncepata koji definiraju
heurističke metode upotrebljive pri rješavanju velikog broja različitih problema.
Metaheuristika u praksi je skup algoritama koji se koriste pri rješavanju više različitih
optimizacijskih problema gdje se sam algoritam vrlo malo mijenja u ovisnosti o problemu koji
se rješava. Metaheuristički pristup rješavanja problema usmjeravanja vozila često se zasniva na
lokalnoj pretrazi vođenoj procesima koji se preuzeti iz prirode poput simuliranog kaljenja,
genetičkih algoritama i kolonije mravi.
Doktorska disertacija mr. sc. Tonči Carić 4-30
4.1. Heuristički pristup rješavanju problema usmjeravanja vozila
Heurističke metode za rješavanje VRP problema mogu se u većem broju slučajeva
adaptirati iz metoda koje rješavaju TSP problem [33]. TSP metode, umetanja najbližeg
susjeda, dodavanje ukupno najudaljenijeg susjeda i najbližeg dodavanja, mogu se uz preinake
iskoristiti i za rješavanje CVRP i DVRP problema. Prilikom primjene spomenutih metoda
važno je imati na umu da se kreiraju samo one rute koje su izvedive obzirom na razliku
između VRP i TSP problema.
4.1.1. Metoda umetanja najbližeg susjeda
Intuitivni heuristički način rješavanja VRP-a je konstruiranje rute po načelu umetanje
najbližeg korisnika NNH (Nearest Neighbour Heuristic). Početni korisnik rute odabire se po
proizvoljnom kriteriju (nasumce ili npr. najudaljeniji korisnik od skladišta). Svaki slijedeći
korisnik koji se umeće u rutu odabire se po kriteriju najbližeg susjeda od zadnje umetnutog
korisnika u rutu. Vrijeme izvršavanja NNH metode je O(n2), a garancija odstupanja od
optimalne vrijednosti u najgorem slučaju (Worst Case Guarantee) je prema [37].
⎡ ⎤ )1log(5.0)(/)( 2 +≤ NIOPTINNH .
Ova metoda preuzeta je iz heurističke metode za rješavanje problema trgovačkog
putnika [25]. Za prilagodbu algoritma VRP problemu potrebno je dodati kapacitivno
ograničenje kako bi svaki novo umetnuti korisnik mogao biti poslužen vozilom čiju rutu
konstruiramo. NNH algoritam kodiran je u programskom jeziku Mars poglavlje (6.1.2),
(Program 6.2).
4.1.2. Metoda dodavanja ukupno najudaljenijeg susjeda
Heuristika dodavanja najudaljenijeg susjeda FAH (Farthest Addition Heuristic) je
konstruktivni heuristički pristup izgradnje rute, gdje se korisnik koji je ukupno najudaljeniji od
svakog od članova ruta koja se konstruiraju, dodaje u rutu.
Promatranja izgleda ruta nakon prvih par iteracije (Slika 6), postaje jasno zašto je ova
ideja jedna od najučinkovitijih za rješavanje TSP problema. Dodavanje najudaljenijeg
korisnika, daje već u prvim itreacijama obrise rute s minimalnim prijeđenim putem.
Doktorska disertacija mr. sc. Tonči Carić 4-31
Prilagodba ovog algoritma VRP problemu daje dobre rezultate tek kod dvoprolaznih
heuristika kao što je Sweep poglavlje (4.1.4). Direktna primjena za VRP problem ne daje
dobre rezultate (Slika 7) jer se područja djelovanja svakog od vozila preklapaju, odnosno
svakom novom rutom (vozilom) pokušavamo riješiti cijeli problem premda kapacitet vozila
nije dovoljan za posluživanja svih korisnika problema. Ako koristimo ovu metodu samo za
konstrukciju rute jednog vozila, što nam omogućavaju dvoprolazne VRP heuristike, rezultati
FAH su vrlo dobri. Vrijeme izvršavanja FAH metode je O(n3). FAH metoda kodirana je u
programskom jeziku Mars poglavlje (6.1.3), (Program 6.3).
Slika 6. Riješenja FAH metodom za TSP problem
Slika 7. Riješenja FAH metodom za VRP problem
Doktorska disertacija mr. sc. Tonči Carić 4-32
4.1.3. Metoda najbližeg dodavanja
Ideju dodavanja najbližeg korisnika možemo proširiti zahtjevom dodavanja ukupno
najbližeg korisnika u odnosu na svakog od postojećih članova rute koju konstruiramo. Tim
zahtjevom usporavamo metodu na O(n3), ali očekujemo i bolje rezultate. Ovo proširenje
NNH metode predstavlja metodu najbližeg dodavanja NAH algoritam (Nearest Addition
Heuristic). Ovakvim pristupom konstruiramo više ruta istovremeno i proširujemo ocjenu
novog člana rute minimizirajući razliku udaljenosti (Slika 8).
Slika 8. Odabir korisnika kojeg umećemo u NAH alogirtmu
Nakon odabira člana kojeg želimo dodati brišemo luk između korisnika X i Z, a
dodajemo dva nova luka (X,Y) i (Y,Z). NAH metoda kodiran je u programskom jeziku Mars
poglavlje (6.1.4), (Program 6.4).
4.1.4. Dvoprolazna Sweep metoda
Jedan od pristupa rješavanja problema usmjeravanja vozila prvo grupira korisnike
prema određenom kriteriju, a zatim unutar grupe pronalazi najpovoljniji način obilaska
korisnika jednim vozilom. Grupe se mogu formirati, npr. za CVRP problem, tako da
zadovolje ograničenje kapaciteta (ukupan kapacitet korisnika koji se poslužuju ne smije
prelaziti kapacitet vozila). Drugi kriterij odabira grupa korisnika koristi «zraku» koja rotira oko
skladišta i spaja svakog od korisnika sa skladištem. Odabir korisnika u grupe vrši se prema
kriteriju najmanjeg kuta kojeg zatvara zraka i korisnik kao na slici (Slika 9).
Doktorska disertacija mr. sc. Tonči Carić 4-33
Slika 9. Grupiranje korisnika po kriteriju minimalnog kuta
Iako su počeci ove metode vezani uz rad [13], razvoj algoritma se pripisuje autorima
Gillettu i Milleru koji su algoritmu i dali ime «Sweep» [27]. Svaki korisnik predstavljen je
polarnim koordinatama (θi, ρi) gdje je θi kut, a ρi dužina zrake. Prvom korisniku i* pridružit će
se umjesto (x,y) koordinate, kut θ*=0 i dužina ρ* =1. Korisnici će formirati grupu prema
kriteriju najmanjeg kuta i preostalog kapaciteta vozila koje poslužuje grupu. Nakon formiranja
grupe, svaka se grupa promatra kao poznati TSP problem i s nekom od raspoloživih metoda
optimizira u drugom prolazu algoritma. Sweep algoritam kodiran je u programskom jeziku
Mars poglavlje (6.1.5), (Program 6.6, Program 6.7, Program 6.8).
4.1.5. «Clark and Wright» metoda
Clark Wright-ova metoda razvijena je za CVRP problem gdje je broj vozila
neograničen. Algoritam započinje od rješenja gdje svaka ruta ima samo skladište i jednog
korisnika. U svakoj iteraciji algoritma pokušavaju se sjediniti dvije rute prema kriteriju
maksimalne uštede. Algoritam se izvršava u O(n2log(n)) vremenu, ali njegova se kompleksnost
može reducirati koristeći prikladne podatkovne strukture [29]. Algoritam implicitno ne
uvažava fiksne troškove vozila i veličinu flote. Troškovi vozila mogu se lako uključiti
dodavanjem konstante na svaku cijenu luka. Unatoč povećanju troška može se postići rješenje
i s fiksnim brojem vozila. Clark and Wright-ov algoritam kodiran je u programskom jeziku
Mars poglavlje (6.1.6)(Program 6.9).
Doktorska disertacija mr. sc. Tonči Carić 4-34
4.2. Metaheuristički pristup rješavanju problema usmjeravanja vozila
Za rješavanje VRP-a metaheurističkim pristupom najčešće se upotrebljavaju slijedeće
metode: iterativna lokalna pretraga ILS (Iterated Local Search), simulirano kaljenje SA (Simulated
Annealing), determinističko kaljenje DA (Deterministic Annealing), tabu pretraga TS (Tabu Search),
genetički algoritmi GA (Genetic Algorithm), kolonije mrava AC (Ant Colony) i neuronske mreže
NN (Neural Networks). Iako sve metode imaju bitno različito vođenje pretrage, ipak se mogu
uočiti neka zajednička svojstva. Algoritmi SA, DA i TS kreću od početnog rješenja xt i u
svakoj iteraciji t pronalaze novo rješenje xt+1 u susjedstvu N(xt) rješenja xt. Ove metode mogu
prilikom iteriranja prihvatiti i ona rješenja koja su lošija od trenutnih i na taj način zaobilaziti
probleme lokalnih optimuma. Za njih je potrebno osigurati mehanizam izbjegavanja kruženja
između lokalnih optimuma [11]. TS, GA i AC bilježe informacije pri procesu pretrage i
koriste ih za poboljšanje rješenja problema [45].
4.2.1. Iterativna lokalna pretraga
Iterativna lokalna pretraga (ILS) je vrlo općenita heuristička metoda koja generira slijed
rješenja na osnovu heurističke pravilnosti. Pravilnost u generiranju rješenja vodi boljim
rješenjima nego nasumični pokušaj odabira novog rješenja. Lokalna pretraga ima jednostavne
postavke rada, lako se implementira, dugo je u upotrebi i daje dobre rezultate.
Algoritam lokalne pretrage (Algoritam 4.1) može se opisati u četiri koraka:
K1: Odabrati početno rješenje iz prostora pretrage, izračunati vrijednost ciljne funkcije, definirati početno rješenje kao trenutno rješenje.
K2: Na osnovu heurističke pravilnosti iz trenutnog rješenja generirati novo rješenje i izračunati vrijednost ciljne funkcije za novo rješenje.
K3: Ako je novo rješenje bolje od trenutnog rješenja tada novo rješenje postaje trenutno rješenje.
K4: Ponavljati korake 2 i 3 dok se primjećuje poboljšanje trenutnog rješenja.
Algoritam 4.1 Iterativna lokalna pretraga
Očito je da u ILS-u ključnu ulogu ima generiranje novih rješenja na osnovu heurističke
pravilnosti (K2: korak 2) i vođenje lokalne pretrage (K4: korak 4). Postoje dva krajnja slučaja,
jedan je da ILS generira rješenja tako da nakon određenog broja koraka sva moguća rješenja
Doktorska disertacija mr. sc. Tonči Carić 4-35
budu generirana, a drugi je da se na potpuno slučajan način generira novo rješenje. Oba
krajnja slučaja su neprihvatljiva. Pri prvom slučaju trenutno rješenje ni na koji način ne utječe
na slijedeće, a u drugom slučaju otvara se nepovoljna mogućnost pretrage kada više puta
ispitujemo isto rješenje. Upotrebljivi kompromis leži između ove dvije krajnosti, pa se
pretražuje područje oko trenutnog rješenja, a svako pronađeno bolje rješenje premješta žarište
pretrage na novo susjedstvo oko tog novog boljeg rješenja. U slučaju da je susjedstvo maleno
tada cijelo susjedstvo možemo pretražiti vrlo brzo, ali lako možemo upasti u zamku lokalnog
optimuma. U slučaju da je susjedstvo vrlo veliko, imamo manje problema s lokalnim
optimumom, ali je uspješnost pretrage manja. Način generiranja susjedstva kojeg
primjenjujemo na trenutno rješenje određuje veličinu susjedstva, tako da susjedstvo mora biti
odabrano sukladno sa svojstvima ciljne funkcije i reprezentacije našeg rješenja.
Jedna od najčešćih heurističkih pravilnosti generiranja susjedstva naziva se 2OPT. Može
započeti sa slučajno odabranom rutom T koju želimo poboljšati. Susjedstvo se definira kao
skup ruta koje nastaju izmjenom dvaju lukova kao npr. na slici (Slika 10) gdje isprekidane
linije predstavljaju lukove nad kojima se obavlja 2OPT zamjena.
Slika 10. a) Ruta prije 2OPT zamjene b) Ruta nakon 2OPT zamjene
Nova ruta T´ se prihvaća ako ima povoljniju vrijednost funkcije cilja. 2OPT algoritam
može se generalizirati kao k-OPT procedura gdje se k lukova promatra i izmjenjuje po
kriteriju najboljih izmjena. Upravo ovdje treba preko parametra k uravnotežiti veličinu
susjedstva s obzirom na ciljnu funkciju optimizacije. Broj članova susjedstva eksponencijalno
raste s brojem k, tako da se na ovako prikazan način generiranja susjedstva rijetko koristi
susjedstvo sa k>3. Lokalna pretraga djeluje nad nekim početnim rješenjem, te je uspjeh svake
iterativne lokalne pretrage određen efikasnošću mehanizma generiranja lokalnih promjena.
Lokalna pretraga 2OPT susjedstava kodirana je u programskom jeziku Mars poglavlje (6.1.1),
(Program 6.1).
Doktorska disertacija mr. sc. Tonči Carić 4-36
Po sličnim načelima rada k-OPT procedure za jednu rutu, predložen je i mehanizam
generiranja λ-zamjena (λ - interchange generation mechanism) za više ruta [44]. Ovaj
mehanizam generiranja susjedstva temelji se na zamjenama i premještanjima korisnika iz
jedne rute u drugu nad skupom parova ruta. Neka je rješenje skup S={R1,...,Rp,...,Rq,...,Rk}
gdje je RP skup korisnika posluženih jednim vozilom na ruti p. Promjena između para ruta Rp i
Rq je zamjena podskupa S1⊆ Rp veličine⏐S1⏐≤λ s drugim podskupom S2 ⊆ Rq veličine⏐S2⏐≤λ.
Na taj način dobivaju se dvije nove rute: Rp`=(Rp\S1)∪S2 i Rq`=(Rq\S2)∪S1 te novo susjedno
rješenje S`={R1,...,Rp`,...,Rq`,...,Rk}. Susjedstvo Nλ(S) danog rješenja S je skup svih susjeda S`
generiranih metodom λ zamjena za dani cjelobrojni λ. Lokalna pretraga susjedstava
generiranih λ-zamjena kodirana je u programskom jeziku Mars poglavlje (6.1.7), (Program
6.10, Program 6.11).
Lokalna pretraga je često samo jedna od karika u hibridnom lancu heurističkih metoda i
ona sama koristi rezultat mehanizma generiranja promjena među rutama kao područje
pretrage. Generiranje promjena predstavlja sustavnu izmjenu korisnika među rutama. Skup
svih ocjena ruta predstavlja ocjenu rješenja. Mehanizam generiranja susjednih rješenja i odabir
ciljne funkcije predstavlja temelj lokalne pretrage, ali i mnogih drugih metoda.
Doktorska disertacija mr. sc. Tonči Carić 4-37
4.2.2. Simulirano kaljenje
Metoda simuliranog kaljenja je stohastička relaksacijska tehnika, predložena u radu [31].
Naziv metode dolazi iz analogije koja se može uočiti s procesom kaljenja. Pri procesu kaljenja
krutina se zagrijava na visoku temperaturu, a zatim postupno hladi i kristalizira. Budući da
proces zagrijavanja dopušta slučajno gibanje atoma, naglo hlađenje sprječava proces
dosezanja potpune termalne ravnoteže atoma. Ako se krutina hladi polagano, daje se atomima
dovoljno vremena da oni postignu minimalno energetsko stanje formirajući pravilnu kristalnu
rešetku. Simulirano kaljenje koristi stohastički pristup vođenja pretrage. Ova metoda dopušta
da se pretraga nastavi u smjeru susjednih rješenja, iako funkcija cilja u tom smjeru daje lošije
rezultate.
U iteraciji t simuliranog kaljenja, rješenje x se odabire nasumce u okolini N(xt). Ako je
f(x) ≤ f(xt) tada se xt+1 postavlja na vrijednost x ; inače ,
(4.2.1)
U relaciji (4.2.1) pt je padajuća funkcija argumenata [t, f(x)-f(xt)]. Često se pt definira kao:
t
txfxf
t ep Θ−
−
=)()(
(4.2.2)
U relaciji (4.2.2) Θt je temperatura pri iteraciji t. Zakonitost po kojoj se mijenja Θt naziva
se raspored hlađenja. Uobičajeno je da je Θt ima padajući trend u svakoj slijedećoj iteraciji.
Temperatura Θt se u početku postavlja na vrijednost Θ1>0. Svakih T slijedećih koraka Θt se
množi sa faktorom α (0<α<1), tako da se vjerojatnost prihvaćanja lošijeg rješenja smanjuje s
vremenom. Kriteriji zaustavljanja najčešće su:
- promjena ciljne funkcije Δf1 ispod π1% nakon k1 uzastopnih ciklusa od T iteracija
- broj pomaka koji se prihvaćaju manji je od π1% od T za k2 uzastopnih ciklusa
- ukupno je izvršeno k3 ciklusa od T iteracija
Doktorska disertacija mr. sc. Tonči Carić 4-38
I. H. Osman proveo je uspješnu implementaciju simuliranog kaljena za rješavanje VRPa
uz lokalnu pretragu nad susjedstvima generiranim λ-zamjenama ruta [36], (Algoritam 4.2).
K1: /*Silazna pretraga faza 1*/ Generiraj početno rješenje Clarke i Wright algoritmom. Izvrši pretragu susjedstva generiranog λ-zamjenama dok ima poboljšanja (u slučaju poboljšanja funkcije cilja izvrši zamjenu).
K2: /*Pretraga simuliranim kaljenjem faza 2*/ Izvrši potpunu pretragu susjedstva generiranog λ-zamjenama bez stvarne izmjene ruta i pronađi ∆max i ∆min (najveće i najmanje apsolutne promjene ciljne funkcije), te parametar β koji predstavlja broj potencijalno ostvarivih λ-zamjena.
K3: Postavi Θ1=∆max, k=1, k3=3, t=1, t*=1 (ovo je iteracija pri kojoj je pronađeno najbolje rješenje unutar trenutnog ciklusa pretrage), x1 je trenutno rješenje, a x*=x1
K4: ZA SVAKI xt /*korak pretrage susjedstva generiranog λ-zamjenom. */
AKO je f(x)<f(xt)
xt+1=x
AKO je f(x)<f(x*)
x*=x; Θ* = Θk
INAČE xt+1 izračunaj koristeći (4.2.1.) i (4.2.2)
AKO je xt+1=x
Θt+1=max {Θt/2, Θ*}; k=k+1
INAČE Θt+1= Θt/[(nβ+nt0.5) ∆max ∆min]; t=t+1
AKO je k=k3
STOP
Algoritam 4.2 Simulirano kaljenje
Doktorska disertacija mr. sc. Tonči Carić 4-39
4.2.3. Determinističko kaljenje
Simulirano kaljenje koristi stohastički mehanizam prihvaćanja pojedinih rješenja. Kada
se stohastički mehanizam zamjeni determinističkim dobiva se determinističko kaljenje kao
varijanta simuliranog kaljenja. Razvijene su dvije standardne tehnike ovog metaheurističkog
koncepta: prihvaćanje praga, (treshold accepting) [21] i kretanje od rješenja do rješenja, (record to
record travel) [22]. Kod algoritma prihvaćanje praga, xt+1 se prihvaća ako je f(xt+1) < f(xt)+Θ1
gdje je Θ1 kontrolni parametar. U algoritmu kretanje od rješenja do rješenja, novo rješenje se
prihvaća ako je f(xt+1) < Θ2f(xt) gdje je Θ2 kontrolni parametar tek nešto malo veći od broja 1.
Θ2 je zadan kao postotak trenutno najboljeg rješenja odnosno zbroj broja 1 i devijacije Θ2=(1
+ k%). Devijacija je k% * f(xt), pa ova interpretacija upućuje na sličnost s prethodnim
algoritmom f(xt+1) < f(xt)+devijacija. Vidljivo je da se ove dvije tehnike tek neznatno razlikuju,
ali obje dopuštaju prihvaćanje i lošijih rezultata s različitim parametrima.
4.2.4. Tabu pretraga
Tabu pretraga, TS (Tabu Search) je metoda lokalne pretrage kod kombinatoričke
optimizacije koja pokazuje vrlo dobre rezultate pri rješavanje problema usmjeravanja vozila.
Česta uporaba ove metode rezultirala je s preko 10 uspješnih varijacija osnovne ideje, a sama
osnovna ideja je prvi puta predstavljena u radu [28]. Pristup TS-a temelji se na sprječavanju
kruženja između lokalnih optimuma uvođenjem memorijske strukture koja zabranjuje ili
kažnjava pomake prema rješenjima koji su označeni kao "tabu pomaci", a vode ka već
pronađenim lokalnim optimumima. Ostvarenje ove ideje u doslovnom smislu zahtijevalo bi
memoriju vrlo velikog kapaciteta u kojoj bi se bilježili nedozvoljeni pomaci, pa algoritmi često
rješavaju taj problem koristeći mehanizam kratkotrajne memorije (short term memory).
Mehanizam bilježi samo atribute pronađenih rješenja koja se žele zaobići, a svako rješenje
koje posjeduje zapamćene atribute odbacuje se u slijedećih Θ iteracija.
Bitne odrednice TS-a su svojstvo TS da pretražuje što raznolikija susjedstva
(diverzifikacija) i pretrage gdje se pod određenim okolnostima naglašava lokalna pretraga u
određenom susjedstvu (intenzifikacija). Potreba za diverzifikacijom proizlazi iz želje da se
izbjegne pretraga po samo jednom dijelu prostora rješenja. Diverzifikacija se postiže
vođenjem bilježaka o pronađenim lokalnim optimumima i kažnjavanjem prečesto izvođenih
pomaka ka tim područjima. Mehanizam bilježenja naziva se dugotrajna memorija, (long term
memory). Drugi pristup postizanja diverzifikacije je započinjanje potpuno nove pretrage što se
naziva slučajno odabrani ponovni početak, (random restart), u kojem se generiraju potpuno
nova nasumice odabrana rješenja.
Doktorska disertacija mr. sc. Tonči Carić 4-40
Intenzifikacija se sastoji u naglašavanju izvođenja pretrage u okolini najboljih rješenja.
Proces tabu pretrage stalno alternira između dva cilja. Jedan cilj je potraga za lokalnim
optimumom, a drugi cilj je napraviti pomak u "najbolje susjedstvo", iako možda trenutno
funkcija cilja u tom susjedstvu ima lošije vrijednosti od trenutno najboljeg lokalnog
optimuma. Treba riješiti problem da "najbolje susjedstvo" ne dovede pretragu do već
pronađenih lokalnih optimuma. Taj problem rješava se održavanjem tabu liste koja odbacuje
one pomake koji cijeli proces vode ka već pretraženom susjedstvu i poznatim lokalnim
optimumima. TS predviđa iznimke u situacijama kada postoje garancije da će nas zabranjeni
pomak ipak odvesti u novo dobro rješenje, a iznimke se definiraju preko aspiracijskih uvjeta,
(aspiration level conditions). TS je metoda koja koristi varijabilno susjedstvo što matematičkim
formalizmom možemo opisati na slijedeći način:
Neka je funkcija susjedstava N(s): S→2S definirana kao funkciju preslikavanja koja za
svako rješenje x daje podskup N(x) rješenja. Ako je T(s,k) tabu lista rješenja (rješenja koja se
žele zaobići) tada je N(s,k) = N(s)-T(s,k) odnosno N(s,k) je varijabilno susjedstvo rješenja s u
k-tom koraku. TS algoritma (Algoritam 4.3) može se opisati u dva koraka.
K1: Generiraj početno rješenje; k=1
K2: DOK nisu ispunjeni uvjeti zaustavljanja
Odredi N(s), skup susjeda
Odredi T(s,k), tabu listu
Odredi A(s,k), listu aspiracijskih uvjeta
Odaberi najbolji s'∈N(s,k)={N(s)-T(s,k) ∪A(s,k)}
Zapamti s' ako je bolje od do sada pronađenog najboljeg rješenja
s= s'; k=k+1
Algoritam 4.3 Tabu pretraga
Motivi za uvjete zaustavljanja su najčešće:
- pronađeno je optimalno rješenje prema određenim usvojenim kriterijima
- N(s,k)=∅, k je veći od maksimalno određenog broja koraka
- nema značajnih pomaka k boljem rješenju.
Doktorska disertacija mr. sc. Tonči Carić 4-41
4.2.5. Genetički algoritmi
Genetički algoritam GA, (Genetic Algorithm) je tehnika globalne pretrage koja rješava
probleme oponašajući evolucijske procese u prirodi. Paradigma rješavanja problema
genetskim algoritmom predstavljena je prvi puta u radu [6]. Osnovni GA je generička tehnika
rješavanja problema koja koristi vrlo malo heurističkih znanja iz domene problema kojeg
rješava. Zbog takve odlike GA ima vrlo široke mogućnosti uporabe, posebice za rješavanje
probleme koji se teško definiraju. GA razvija populaciju grupe bitova ili kromosoma, u kojoj
svaki kromosom predstavlja jedno od rješenja problema. Sama evolucija populacije odvija se
primjenom operatora koji oponašaju fenomene operacija nad genima poput (reprodukcije,
rekombinacije s recipročnim izmjenama, mutacije, …).
K1: Generiraj nasumce početnu populaciju kromosoma X1={X11, . . .,X1
N}
K2: ZA t=1 DO T
ZA k=1 DO N/2
/*reprodukcija*/ odredi dva roditelja-kromosoma iz Xt
/*rekombinacija*/ generiraj dva potomka odabranih roditelja operatorom rekombinacije s recipročnim izmjenama
/*mutacija*/ primjeni operator mutacije s vrlo malom vjerojatnošću nad kromosomom svakog od potomaka
/*zamjena generacija*/ kreiraj Xt+1 iz Xt tako da 2k najlošijih rješenja zamijeniš s 2k novih potomaka
Algoritam 4.4 Genetski algoritam
U genetskom algoritmu (Algoritam 4.4) parametar T predstavlja broj generacija, a k broj
selekcija u generaciji. Najbolje rješenje nakon T generacija je konačni rezultat ovog algoritma.
U koraku (K2 /*reprodukcija*/) vjerojatnosna funkcija odabira roditelja ugođena je u korist
kromosoma s većom vrijednošću ciljne funkcije. U koraku (K2 /*rekombinacija*/) novi
potomci stvaraju se izmjenom podskupova bitova među roditeljima. Prilikom koraka (K2
/*mutacija*/) svaki od potomaka može biti neznatno izmijenjen promjenom jednog bita
(zatečena jedinica se mijenja u nulu, ili zatečena nula u jedinicu) na svakoj poziciji kromosoma
s vrlo malom vjerojatnošću. Na kraju drugog koraka algoritma dolazi do smijene generacije.
Ponavljanjem koraka 2 ovog algoritma očekuje se da nasumce izabrana populacija, svakim
korakom generira potomke sa sve "boljim" rezultatima ciljne funkcije, pošto se roditelji s
Doktorska disertacija mr. sc. Tonči Carić 4-42
lošijim vrijednostima ciljne funkcije u zadnjem koraku algoritma zamjenjuju svojim "boljim"
potomcima. Teoretska razmatranja ovog procesa optimizacije nalaze se u radovima [5],[6][5].
4.2.6. Neuronske mreže
Neuronske mreže predstavljanju model koji je sastavljen od jedinki neurona (procesnih
jedinica) koje su međusobno povezane težinskim vezama (sinapsama), poput neurona u
ljudskom mozgu. Signal koji se šalje vezom od jedne jedinke k drugoj dodatno se modulira
srazmjerno pridijeljenoj težini pojedine veze koja prenosi signal. Pokazalo se da neuronske
mreže mogu učiti na temelju primjera i «donositi» opće koncepte postupkom ugađanja težina
veza. Ovakav pristup računanju uveden je pri rješavanju zadataka vezanim za ljudsku
inteligenciju (umjetni vid i prepoznavanje govora) gdje su se tradicionalne metode računanja
pokazale teško prilagodljive. U radu [30] prvi puta se primjenjuju neuronske mreže pri
rješavanju kombinatoričkih problema. Problem trgovačkog putnika rješavan je korištenjem
modela elastičnih mreža EN (Elastic Net), [23] i samoorganizirajućih mapa SOM (Self-
Organizing Map), [7]. Oba modela su značajno različita od klasičnih neuronskih mreža, ali
daju bitno bolje rezultate pri rješavanju TSP-a od klasičnog Hopfield-Tank modela
neuronskih mreža. U usporedbi s drugim metaheurističkim modelima spomenuti modeli još
uvijek lošije rješavaju probleme u odnosu na ostale metaheuristike.
Modifikacija rada neuronskih mreža pri rješavanju TSP problema prvenstveno je vezana
za geometrijska svojstva TSP-a nad kojim se koristi model podešavanja težine veza. Načela
rada elastičnih mreža i samoorganizirajućih mapa prikazan je slikom (Slika 11). Bijeli krugovi
su korisnici, a crni kružići su jedinke modela. Jedinke su povezane u prsten. Pozicija jedinki se
neprestano ugađa (poput težina veza kod klasičnih neuronskih mreža) dok jedinke ne postanu
dovoljno blizu korisnicima koje treba obići trgovački putnik. Na kraju procesa svakom se
korisniku pridružuje najbliža jedinka. Prilikom pridruživanja, poredak jedinki u prstenu
predstavlja i smjer obilaska korisnika u TSP problemu. Elastične mreže i samoorganizirajuće
mape rade prema istim načelima, jedino se razlikuju u načinu kontrole približavanja jedinke
modela korisnicima TSP problema.
Doktorska disertacija mr. sc. Tonči Carić 4-43
Slika 11. Prikaz rada algoritma nad EN i SOM modelima a) početna pozicija jedinki b) ugađanje veza i približavanje
c) jedinke i kriteriji pridruživanja d) pridruživanje jedinki korisnicima
Vidljivo je da će prikazani koncepti dobro funkcionirati u Euklidskom TSP-u, ali svako
dodavanje dodatnih ograničenja poput ograničenje kapaciteta ili vremena obilaska rute, remeti
geometrijsko obilježje problema i vodi ka teškoj primjenjivosti spomenutih modela. U radu
[3] izrađena je varijanta SOM-a koja rješava VRP problem.
Transformacija opisanih modela s TSP problema na VRP problema izvedena je
uvođenjem više struktura jedinki odnosno prstenova, za svaku od ruta po jedna nova
struktura. Pošto se pojavljuje više prstenova istovremeno, javlja se novi problem
ravnomjernog pridruživanja istog broj korisnika svakom prstenu.
Vjerojatnosti odabira pojedinih prstenova u gore navedenom primjeru (Algoritam 4.5)
dinamički se ugađaju tijekom odvijanja algoritma. Dominantni kriterij odabira u početku
odvijanja algoritma predstavlja udaljenost između korisnika i jedinke. Važnost pri odabiru
prstena, daje se kriteriju ispunjavanja ograničenja kapaciteta, ali tek nešto kasnije. Tada se,
jedinke koje narušavaju ograničenje kapaciteta, odabiru s manjom vjerojatnošću. Pri kraju
procesa jedino prstenovi koji zadovoljavaju ograničenju imaju značajniju vjerojatnost odabira.
Doktorska disertacija mr. sc. Tonči Carić 4-44
K1: /* natjecanje prstenova i migracija jedinki*/
PONAVLJAJ DOK postoji jedinka koja nije dovoljno blizu korisnicima
odaberi slijedećeg korisnika
odredi vjerojatnost odabira pojedinog prstena
odaberi trenutni prsten
pridijeli trenutnom korisniku najbližu jedinku trenutnog prstena
pomakni jedinku, kao i ostale članove prstena bliže trenutnom korisniku
K2: pridjeli svakom korisniku najbližu jedinku i generiraj rješenje
Algoritam 4.5 Elastične mreže
Doktorska disertacija mr. sc. Tonči Carić 5-45
5. Programsko okruženje za razvoj, ispitivanje i parametriziranje heurističkih algoritama Venera
Razvijanje heurističkih algoritama za rješavanje problema usmjeravanja vozila je
dugotrajan istraživački i inženjerski posao. Svaka od ideja najčešće se razvija od samog
početka, pa skoro svaki autor ima svoj način pseudokodiranja, svoje rutine i svoju radnu
okolinu. U knjizi [12] predlaže se validacija i upotreba postojećeg koda te organiziranje
zajedničkog okvira za razvoj metaheurističkih algoritama.
Zbog nepotrebnog ponavljanja razvoja programskog koda iste funkcionalnosti u ovom
radu predložen je novi pristup problemu razvoja heurističkih algoritama. Oblikovani su i
izgrađeni programska radna okolina Venera i programski jezik Mars. Venera objedinjuje
grafičko sučelje za interaktivnu definiciju problema i vizualnu prezentaciju rješenja.
Programski jezik Mars specijaliziran je za pisanje algoritama koji rješavaju probleme
usmjeravanja vozila. Jezik raspolaže sa transportnim tipovima podatkovnih struktura i
naredbama za raznovrsne lokalne pretrage i neproceduralno minimiziranje i maksimiziranje
ciljne funkcije. Venera i Mars izrađeni su u objektnom programskom jeziku Java [38].
5.1. Osnovna struktura okruženja Venera
Algoritam je apstraktna forma procedure rješavanja nekog problema. Algoritam
prilagođen za izvođenje na računalu predstavlja program [4]. Svaki program pisan je u
izvornom programskom jeziku, te je njegov opis izvršavanja definiran izvornim kodom. Da
bi se neki izvorni kod izvršio potrebno je programsko okruženja koje povezuje programski
jezik i strojni jezik. Povezivanje napisanog izvornog koda i izvršnog strojnog koda može biti
ostvareno pomoću jezičnog prevoditelja «compiler» ili preko jezičnog tumača «interpreter».
Ako se koristi jezični prevoditelj, izvorni kod programa samo se jednom prevede u izvršni
kod zapisan u strojnom jeziku i zatim izvršava potreban broj puta. Kod jezičnog tumača,
prevođenje se vrši pri svakom izvođenju programa bez znanja korisnika da se prevođenje
programa uopće dogodilo.
Doktorska disertacija mr. sc. Tonči Carić 5-46
Osnovni modul Venere je jezični tumač programskog jezika Mars prilagođen za
interaktivno razvijanje, izvršavanje i testiranje algoritama koji rješavaju problem usmjeravanja
vozila. Venera u svojoj osnovi predstavlja razvojno okruženje s grafičkim prikazom podataka
u kojem korisnik interaktivno razvija i ispituje algoritme upotrebom programskog jezika Mars
(Slika 12).
Slika 12. Razvojno programsko okruženje Venera
Programski jezik Mars opisan je sa simbolima, pravilima kombiniranja tih simbola i
formalizmom koji opisuju sintaksu jezika. U tijeku prevođenja napisanog programa u strojni
jezik izvode se leksička i sintaktička analiza (Slika 13).
Prilikom leksičke analize odstranjuju se komentari i znakovi praznina, a sam tekst
programa razdjeljuje se u osnovne jezične jedinice. Gramatika programskog jezika određuje
dozvoljene strukture leksičkom analizom prepoznatih osnovnih jezičnih jedinica (naredbi,
identifikatora, brojeva, zagrada itd …). Sintaktički ispravan program nije uvijek i program koji
je prihvatljiv ili radi upravo ono što želimo. Takav program zadovoljava samo formalnu
sintaksu koja predstavlja dozvoljenu strukturu programa.
Doktorska disertacija mr. sc. Tonči Carić 5-47
Slika 13. Princip rada jezičnog tumača
Sintaktički analizator (parser) jezičnog tumača programskog jezika Mars izveden je
tehnikom rekurzivnog spusta. Tehnika rekurzivnog spusta je tehnika implementacije
sintaktičkog analizatora gdje se upotrebom samopozivanja modula koristi pozicija na stogu
kao pokazivač na trenutnu dubinu sintaktičke analize [10].
5.2. Korištenje okruženja Venera
Nakon pokretanja razvojnog okruženja Venera, stvara se radni prostor od četiri prozora
prikazana na slici (Slika 14). U prozoru 1 vidi se usmjereni graf kao grafička interpretacija
skupa transportnih varijabli kojeg čine vozilo (VEHICLE), korisnik (CUSTOMER) i veza
(ARC). Svaka izmjena skupa transportnih varijabla uočava se i u prikazu usmjerenog grafa. U
ovom prozoru mogu se obaviti promjene atributa korisnika uz pomoć alata iz alatne trake.
Moguće je brisati i dodavati položaj korisnika ili veza. U prozoru 1 (Slika 14) stvaraju se,
brišu ili izmjenjuju ne samo korisnici već i veze među korisnicima. Svaka akcija nad
korisnicima ili vezama automatski mijenja sadržaj skupa transportnih varijabli CUSTOMER,
VEHICLE i ARC. Obnavljanje podataka u ovom prozoru moguće je ostvariti i za vrijeme
rada programa naredbom (obnovi crtež) REPAINT.
Korisnici se mogu upisivati, brisati i pregledavati i u prozoru 2 (Slika 14), gdje su
dostupna sva polja skupa transportnih varijabli CUSTOMER. U prozoru 3 (Slika 14) mogu
se dodavati i brisati vozila, te mijenjati njihovi kapaciteti i boje, koje su vezane za prikaz ruta
na zaslonu. Promjena u jednom prozoru automatski obnavlja i sadržaj preostala dva. Četvrti
prozor je mjesto gdje se unosi tekst programa ili tekst interaktivnih naredbi jezičnom tumaču.
U trenutku pokretanja programa, taj prozor predstavlja i zaslon na kojem se ispisuju podaci
vezani za tijek programa.
Doktorska disertacija mr. sc. Tonči Carić 5-48
Slika 14. Izgled radnog okruženja Venera
5.3. Naredbe programskog jezika Mars
Programski jezik Mars koristi rezervirane riječi vozilo (VEHICLE), korisnik
(CUSTOMER) i veza (ARC) koje predstavljaju transportne varijable posebnog tipa. Stanja
varijabli i njihove promjene varijabli mogu se vidjeti u prozorima 1, 2 i 3 (Slika 14). Nad
transportnim skupom varijabli Mars definira specifične naredbe (MOVE, ADDARC,
DELARC, SELECT) koje bitno pojednostavljuju kodiranje klasičnih heurističkih algoritama,
tako da kod postaje čitak i kratak.
Rezervirane riječi programskog jezika predstavlja riječi koju nije moguće iskoristi u neke
druge svrhe (npr. kao ime varijable), jer je takva riječ osnovna jezična jedinica gramatike
programskog jezika te predstavlja naredbu ili dio naredbe, deklaraciju ili neke drugu
dozvoljenu jezičnu konstrukciju.
Doktorska disertacija mr. sc. Tonči Carić 5-49
Kako bi se opisala sintaksa jezika, odnosno same naredbe, često se upotrebljavaju dva
formalizma: Backus Naur Form (BNF) i sintaksni dijagrami [35]. Iz BNF-a mogu se dobiti
sintaksni dijagrami koji predstavljaju grafički prikaz jezičnog formalizma. Većina autora
novijih programskih jezika za definiranje jezika koriste proširenu Backus Naur Formu
notaciju EBNF (Enhenced Backus Naur Form) koja uključuje više operatora i time daje
kompaktniji opis jezika s manje mogućnosti gramatičkih konflikata.
Naredba MOVE prikazana je slijedećim sintaktičkim dijagramom.
Ovom naredbom gradi se ruta, tako da vozilo od zadnje posjećenog korisnika krene k
navedenom korisniku. Ako do trenutka korištenja ove naredbe vozilo nije bilo korišteno,
onda se do navedenog korisnika kreće iz početne točke CUSTOMER (0) koje predstavlja
skladište. Gradnja rute može se ostvariti i naredbom ADDARC, a brisanje pojedinog luka
rute naredbom DELARC. Spomenute naredbe imaju sintaktički dijagram oblika:
Prilikom korištenja naredbe ADDARC koja kreira vezu između dva zadana korisnika,
polje POSITION zadanog vozila poprima vrijednost odredišnog korisnika.
Naredba DELARC koja bi brisala npr. vezu između drugog korisnika CUSTOMER(2) i
trećeg korisnika CUSTOMER(3) izgledala bi ovako:
DELARC ARC(CUSTOMER(2),CUSTOMER(3))
Nakon njenog izvršavanja polje POSITION vozila koje obavlja tu rutu poprima
vrijednost korisnika 2.
Doktorska disertacija mr. sc. Tonči Carić 5-50
5.3.1. SELECT naredba
Naredba selekcije (SELECT) je glavni iskorak programskog jezika Mars u odnosu na
klasu proceduralnih jezika u koju se Mars može svrstati. SELECT naredba djeluje kao upit, a
ne kao element slijedne strukture koja predstavlja sekvencijalni opis koraka algoritma. Ovom
naredbom traži se rješenje za zadane uvijete, bez opisa kako do rješenja doći. Naredba upita
slične je sintakse kao istoimena naredba selekcije kod SQL (Structured Query Language)
jezika za postavljenje upita sustavu za upravljanje bazama podataka. Zadatak naredbe selekcije
jest pretraga svih korisnika, vozila ili veza koji zadovoljavaju navedene logičke izraze. Za sve
odabrane varijable može se tražiti dodatna pretraga u cilju minimiziranja ili maksimiziranje
navedene ciljne funkcije. Potpuna sintaksa naredbe selekcije opisana je sintaktičkim
dijagramom (Slika 15).
Slika 15. Sintaksa naredbe SELECT
Naredba selekcije započinje s rezerviranom riječi SELECT iza koje se mora deklarirati
jedna ili više varijabli tipa CUSTOMER, VEHICLE ili ARC, a varijable trebaju biti odvojene
zarezima. Kod deklaracije, ispred svake varijable mora se nalaziti rezervirana rječi
(CUSTOMER, VEHICLE ili ARC) koja ovisi o tipu koji želimo deklarirati. Primjeri naredbe
SELECT:
Doktorska disertacija mr. sc. Tonči Carić 5-51
SELECT CUSTOMER c WHERE ... ili SELECT ARC vez, CUSTOMER kor WHERE ... ili SELECT CUSTOMER c1, CUSTOMER c2, VEHICLE vozilo WHERE ...
Nakon deklaracije obvezna je rezervirana riječ WHERE iza koje se nalaze logički izrazi
po kojima se radi selekcija deklariranih varijabli iz skupa svih transportnih varijabli. Ako se
želi napraviti dodatna pretraga iza deklaracijskog i uvjetnog dijela SELECT naredbe dodaje se
funkcija cilja.
Pretraživati se može prema kriteriju minimuma ili maksimuma funkcije cilja. Takvo
pretraživanje je dano kao opcija i tada se izdvajaju oni članovi skupa transportnih varijabli koji
zadovoljavaju kriterij maksimuma ili minimuma funkcije cilja. Ovakva struktura uvjeta
pretraživanja je izuzetno korisna pri razvoju i kodiranju heurističkih algoritama. SELECT
naredbom Mars automatizira pretragu po dijelu susjedstva koje je opisano u WHERE dijelu
naredbe SELECT (Slika 15). Opcijama MINIMISE i MAXIMISE odabire su upravo ona
varijabla koja se nalazi u odabranom dijelu susjedstava, a ujedno daje željeni minimalni ili
maksimalni rezultat funkcije cilja.
U slijedećem primjeru prikazan je način pronalaženja korisnika koji do sada nije
posjećen, a ispunjava uvjet da postoji vozilo koje ima dostatni kapacitet da tog korisnika
posluži. Ako ima više takvih vozila i korisnika, selekcija se zaustavi na prvom korisniku i
vozilu koje pronađe.
SELECT VEHICLE v, CUSTOMER c
WHERE
c.TIMESVISITED = 0 v.CAPACITYLEFT - c.Q >= 0 MINIMISE DISTANCE(v.POSITION, c) ENDSELECT
U primjeru je postavljen i dodatni uvjet da se među svim selektiranim vozilima odabere
ono vozilo i onaj korisnik koji su najbliži. Ako takvih vozila i korisnika ima više, a na
identičan način zadovoljavaju uvjete, SELECT odabire onog korisnika i ono vozilo koji su
prvi pronađeni.
Doktorska disertacija mr. sc. Tonči Carić 5-52
5.3.2. Standardne programske strukture: petlje i uvjetne naredbe
EBNF notacija za prikaz naredbi ponavljanja i uvjetnih naredbi programskog jezika
Mars dana je u (Prilogu 6).
Ovdje su prikazani sintaksni dijagrami samo za često korištenu uvjetnu struktura IF i
tri vrste petlje:
- FOR struktura
- DO WHILE struktura
- WHILE ENDWHILE struktura
- IF ELSE struktura
Doktorska disertacija mr. sc. Tonči Carić 5-53
5.3.3. Naredbe lokalne pretraga
Programski jezik Mars omogućava lokalnu pretragu u 2OPT i λ okolini poglavlje (4.2.1)
kao i implementaciju pojedinih strategija pretrage poglavlje (6.1.7). Lokalna pretraga je
huristička metoda za rješavanje problema, koja zahtijeva da u svakom trenutku raspolažemo
jednim dopustivim rješenjem problema. To tekuće rješenje nastoji se poboljšati. Promatra se
susjedstvo tekućeg rješenja, odnosno skup rješenja koja su blizu tekućem rješenju u smislu da
se susjedna rješenja mogu dobiti nekom jednostavnom transformacijom tekućeg rješenja.
Tijekom pretrage bira se najbolje rješenje iz okoline strategijom ukupno najbolji GB (Global
Best ) (Program 6.10) ili rješenje koje je bolje od tekućeg strategijom prvi najbolji FB (First
Best) (Program 6.11). Postupak se nastavlja dok god je moguće, odnosno sve dok ne dobijemo
tekuće rješenje u čijoj okolini nema boljeg rješenja [43]. Prema ovako postavljenom opisu
lokalne pretrage izrađene su naredbe programskog jezika Mars i to naredbe za pretrage u λ i
2OPT okolini.
Na početku pretrage λ susjedstva definira se parametar λ, naredbom INITLAMBDA n,
gdje je parametar n dubina pretrage. Najčešće n iznosi 2, pa se slijednim odabirom [42],
generiraju ovi operatori (0,1), (1,0), (1,1), (0,2), (2,0), (2,1), (1,2) i (2,2). Svakim pozivanjem
naredbe LAMBDANEXT generira se novo rješenje iz susjedstva na način da se modificira
trenutno rješenje djelovanjem operatora odnosno izmjenama nad transportnim varijablama
ARC. Kako bi se mogla odrediti veličina susjedstva, nakon pokretanje naredbe
INITLAMBDA rezerviranoj varijabli sustava LAMBDACOUNT, sustav pridjeljuje
vrijednost broja iteracija potrebnih da se pretraži cijela okolina. Rezervirana varijabla sustava
je varijabla koje se ne deklarira na početku programa, već njen sadržaj upisuje i po potrebi
obnavlja sustav i rezervirana je isključivo kao varijabla čiji se sadržaj programski čita, a samoj
varijabli nije moguće programski pridijeliti vrijednost. Rezervirana varijabla sustava
LAMBDAEND predstavlja zastavicu koja ima vrijednost 1 u trenutku kada se u potpunosti
pretraži cijelo susjedstvo. Zastavica predstavlja binarnu logičku varijablu koja signalizira da li
se određeni uvjet ispunio ili ne. Da bi se omogućilo što fleksibilnije vođenje pretrage
metahurističkim metodama (gdje se uzimaju u obzir i rješenja koja ne ispunjavaju sve uvijete)
sadržaj rezervirane varijable sustava CAPACITYOK obnavlja se nakon svake iteracije i služi
za kontrolu ispunjavanja uvjeta CVRP-a; odnosno kontrolira se da li sva vozila poslužuju
korisnike na način da ukupni kapacitet potreban vozilu za posluživanje korisnika u ruti ne
prelazi definirani kapacitet samog vozila. U trenutku kada je pretraga susjedstva gotova
Doktorska disertacija mr. sc. Tonči Carić 5-54
potrebno je naredbom LAMBDAFINISH osloboditi zauzete resurse računala potrebne da bi
se generirala pretraga susjedstva.
Pretraga 2OPT susjedstva poglavlje (4.2.1) započinje se naredbom INITTWOOPT.
Rezervirana varijabla sustava TWOOPTCOUNT nakon inicijalizacije pretrage sadrži broj
iteracija potrebnih da se pretraži cijela 2OPT okolina. Zastavica TWOOPTEND postavlja se
na vrijednost 1 u trenutku kada je cijela 2OPT okolina pregledana, a svaka slijedeća iteracija
generira se naredbom TWOOPTNEXT. U trenutku kada je pretraga 2OPT susjedstva
gotova potrebno je naredbom TWOOPTFINISH osloboditi zauzete resurse računala
potrebne da bi se generirala pretraga susjedstva.
Za privremeno pohranjivanje tekućeg rješenja odnosno skupa ruta koristi se naredba
PUTSOLUTION varijabla, a za učitavanje pohranjenih ruta u sustav koristi se naredba
GETSOLUTION varijabla.
5.4. Tipovi podataka programskog jezika
Mars podržava šest tipova podataka od kojih su tri tipa usko vezana za problem
usmjeravanja vozila i zbog specifičnosti uporabe ta tri tipa se nazivaju tipovi podataka
transportnih varijabli. Preostala tri tipa podataka su tipovi NUMBER, STRING i SOLUTION.
Svaku varijablu je potrebno deklarirati prije upotrebe, najčešće radi preglednosti, na početku
programa.
Jezični tumač pisan je u programskom jeziku Java. Java je objektno usmjereni
programski jezik nove generacije, opće prihvaćen i u upotrebi od 1995. godine. Svojom
pojavom definirao je novi pristup programiranju koji je neovisan od operativnog sustava i
strojnog koda računala na kojem se programi pisani u Java programskom jeziku izvršavaju.
Tip podataka NUMBER pohranjuje realni broj s 15 značajnih znamenaka u rasponu od
10-324 do 10308 u 64 bitnu kodnu riječ, što odgovara u Javi tipu double. Tip podataka STRING
predstavlja po volji velik niz slovno brojčanih znakova koji završava terminirajućim znakom.
U varijablu tipa SOLUTION pohranjuje se rješenje problema, odnosne sve transportne
varijable.
Tipovi transportnih varijabli CUSTOMER, VEHICLE i ARC predstavljaju korisnike,
vozila i usmjerene lukove između pojedinih korisnika odnosno minimalne prevaljene putove
između dva korisnika koje prelazi određeno vozilo. Sadržaj ovih varijabli u pravilu se zadaje
Doktorska disertacija mr. sc. Tonči Carić 5-55
prije izvršavanja programa u samom radnom okruženju preko grafičkog sučelja ili
učitavanjem konkretnog VRP problema iz datoteke. Varijable CUSTOMER, VEHICLE i
ARC koje dohvaćamo preko indeksa, npr. (CUSTOMER (0), VEHICLE (1), ARC (
CUSTOMER(0), CUSTOMER (1)) ), nije potrebno deklarirati jer predstavljaju već definirani
VRP problem.
Za potrebe programa moguće je povećati broj varijabli, tipa CUSTOMER, VEHICLE i
ARC, i dodatno ih deklarirati. Tako deklarirane varijable neće biti vidljivi u Venerinom
grafičkom radnom okruženju (Prilog 2), jer predstavljaju pomoćne varijable, a ne sadržaj
samog VRP problema koji se rješava. Takve transportne varijable dohvaćamo preko imena
koje navedemo u deklaraciji i one imaju svoje vrijednosti samo za vrijeme izvršavanja
programa. U slučaju da želimo izvršiti neku jednostavnu strukturu naredbi sastavljenu od
SELECT naredbe ili FOR petlje, moguće je zaobići deklariranje pomoćnih varijabli, jer te
dvije programske strukture po potrebi provode inicijalizaciju i deklaraciju samostalno. Takvim
pristupom moguće je napraviti brzu interakciju između sustava i korisnika sustava i dobiti
odgovor na jednostavne upite sustavu bez potrebe deklariranja varijabli.
Tip varijabli CUSTOMER i VEHICLE ukazuje na numeričke podatke koji su usko
vezani za definiciju VRP, CVRP, DVRP i VRPTW problema. Karakteristike polja prikazane
su u tablici (Tablica 1) za tip CUSTOMER i u (Tablica 2) za tip VEHICLE. Treći tip skupa
transportnih varijabli je tip ARC koji predstavlja luk u usmjerenom grafu i koristi se najčešće
u programima putem naredbi dodavanja luka ADDARC, brisanja luka DELETEARC ili
indirektno s naredbom pomicanja vozila MOVE VEHICLE (i). Karakteristike tipa ARC
prikazane su u tablici (Tablica 3).
POLJE TIP OPIS
X NUMBER X koordinata Y NUMBER Y koordinata Q NUMBER zahtjev za dostavom/prikupljanjem T1 NUMBER najranije vrijeme početka posluživanja T2 NUMBER najkasnije vrijeme završetka posluživanja T3 NUMBER trajanje posluživanja INDEX NUMBER indeks korisnika (redni broj) TIMESVISITED NUMBER broj posjeta korisniku
Tablica 1. CUSTOMER – transportna varijabla koja predstavlja korisnika
Doktorska disertacija mr. sc. Tonči Carić 5-56
POLJE TIP OPIS
CAPACITY NUMBER kapacitet vozila CAPACITYLEFT NUMBER preostali kapacitet vozila ROUTELENGTH NUMBER ukupan pređeni put vozila INDEX NUMBER indeks vozila (redni broj) POSITION CUSTOMER korisnik u kojem se vozilo trenutno nalazi
Tablica 2. VEHICLE – transportna varijabla koja predstavlja vozilo
POLJE TIP OPIS
LENGTH NUMBER duljina veze FROM CUSTOMER polazni korisnik TO CUSTOMER odredišni korisnik VEHICLE VEHICLE vozilo koji je vlasnik veze
Tablica 3. ARC – transportna varijabla koja predstavlja luk usmjerenog grafa
Doktorska disertacija mr. sc. Tonči Carić 6-57
6. Algoritmi heurističkih metoda kodirani programskim jezikom Mars
Heurističke metode opisane u poglavljima (od 4.1.1 do 4.2.1) kodirane se u
programskom jeziku Mars i testirane na standardnim ispitnim zadacima za probleme
usmjeravanja vozila s kapacitivnim ograničenjima (Tablica 4): E051-05e, E076-10e i E101-08e
[2]. Ulazni podaci za standardni ispitni zadatak E051-05e nalazi se u (Prilog 4 i 5) Svi dobiveni
rezultati uspoređeni su s do sada najboljim objavljenim heurističkim rješenjima [11].
ISPITNI ZADATAK
KAPACITETVOZILA
BROJKORISNIKA
NAJBOLJE RJEŠENJE
E051-05e 160 50 524,61 E076-10e 140 75 835,26 E101-08e 140 100 826,14
Tablica 4. Standardni ispitni CVRP zadaci
6.1.1. 2OPT Algoritam lokalne pretrage
Jedna od najefikasnijih metoda lokalne pretrage je 2OPT lokalna pretraga poglavlje
(4.2.1). U programskom jeziku Mars implementirane su naredbe opisane u poglavlje (5.3.3) za
obavljanje lokalne pretrage u 2OPT okolini. Program 6.1 pretražuje cijelo 2OPT susjedstvo i
u slučaju pronalaska rješenje koje je izvedivo, s obzirom na kapacitet vozila i predstavlja manji
ukupni prijeđeni put s obavljenim svim postavljenim zadacima posluživanja, zamjenjuje
tekuće rješenje s novo pronađenim rješenjem.
Pretraga susjedstva je brza, te se najčešće koristi kao zadnji korak nakon svake
heurističke metode. Rezultati izvedenih heurističkih algoritama, nad standardnim ispitnim
zadacima, dodatno su poboljšani 2OPT algoritmom (Program 6.1).
Doktorska disertacija mr. sc. Tonči Carić 6-58
'-----------------------------------------------------------------------------------' 'naziv algoritma : 2OPT ALGORITAM ' '-----------------------------------------------------------------------------------' SOLUTION savedsolution, bestsolution NUMBER foundbetter=0 ' da li je uopce nadjeno ijedno bolje rjesenje NUMBER better=1 NUMBER iteracija=0, bestcost=0,COUNT=0 PUTSOLUTION savedsolution WHILE better=1 iteracija=iteracija+1 bestcost=TOTALLENGTH INITTWOOPT MESSAGE "pretraga duzine: "+TWOOPTCOUNT COUNT=0 better=0 ' postoji li bolje rjesenje WHILE NOT TWOOPTEND IF TOTALLENGTH < bestcost AND CAPACITYOK PUTSOLUTION bestsolution bestcost=TOTALLENGTH better=1 MESSAGE "poboljsanje: "+bestcost REPAINT ENDIF TWOOPTNEXT REPAINT COUNT=COUNT+1 ENDWHILE MESSAGE "pretrazeno: "+COUNT TWOOPTFINISH IF better=1 ' postavljam trenutni solution na nadjeni GETSOLUTION bestsolution REPAINT MESSAGE "novi najbolji ("+iteracija+"):"+TOTALLENGTH foundbetter=1 ENDIF ENDWHILE IF foundbetter=0 GETSOLUTION savedsolution ELSE GETSOLUTION bestsolution ENDIF
Program 6.1 Algoritam 2OPT lokalne pretrage
Doktorska disertacija mr. sc. Tonči Carić 6-59
6.1.2. Algoritam NNH metode umetanja najbližeg susjeda
Metoda umetanja najbližeg susjeda NNH (Nearest Neighbour Heuristic) opisana je u
poglavlju (4.1.1) kao konstruktivna heuristička metoda. Prilikom kodiranja ovog algoritma
(Program 6.2) korištena je upravljačka struktura izbora SELECT, kako bi se pronašao
korisnik koji je najbliži u odnosu na zadnjeg u rutu umetnutog korisnika.
'----------------------------------------------------------------------------------' 'naziv algoritma : UMETANJA NAJBLIŽEG SUSJEDA ' '----------------------------------------------------------------------------------' WHILE NOT SOLVED SELECT VEHICLE v, CUSTOMER c WHERE NOT EQUALS(v.POSITION, c) c.TIMESVISITED = 0 v.CAPACITYLEFT - c.Q >= 0 MINIMISE DISTANCE(v.POSITION, c) ENDSELECT IF NOT FOUND(c) BREAK ENDIF MOVE v, c ENDWHILE FOR i = 0 TO VEHICLECOUNT-1 MOVE VEHICLE(i), CUSTOMER(0) ENDFOR
Program 6.2 Algoritam NNH metode umetanja najbližeg susjeda
Kroz upravljačku strukturu SELECT zahtijeva se od podrške za heurističke
optimizacije programskog okruženja pronalaženje neposjećenog korisnika c
(c.TIMEVISITED=0) i rute odnosno vozila v dostatnog kapaciteta (v.CAPACITYLEYFT-
c.Q >= 0), koji su minimalno udaljeni od zadnje umetnutog korisnika rute (MINIMISE
DISTANCE (v.POSITION,c)).
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO NNH
RJEŠENJE
NNHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:01 5 696 618 524,61 15% E076-10e 00:04 11 1134 1073 835,26 22% E101-08e 00:08 11 1232 1135 826,14 27%
Tablica 5. Rezultati izvođenja NNH i 2OPT algoritma nad standardnim ispitnim zadacima
Doktorska disertacija mr. sc. Tonči Carić 6-60
U tablici (Tablica 5) prikazani su rezultati primjene metode najbližeg susjeda, odnosno
NNH algoritma, pri rješavanju standardnih ispitnih zadataka za probleme usmjeravanja vozila
s kapacitivnim ograničenjima. Prosječno odstupanje rezultata ove metode u odnosu na
najbolje postignute rezultate svih do sada u literaturi testiranih metoda, za ovu grupu testova
je oko 21%. Najbolji rezultat je postignut za ispitni zadatak E051-05e, gdje je u odnosu na
početno rješenje uz primjenu 2OPT algoritma rezultat poboljšan za 11% (Slika 16). Prosječno
poboljšanje koje se postiže 2OPT lokalnom pretragom nad početnim NNH rješenjem iznosi
7,5%.
Slika 16. Izgled rješenja ispitnog zadatka E051-05e a) prije i b) poslije 2OPT optimizacije
Doktorska disertacija mr. sc. Tonči Carić 6-61
6.1.3. Algoritam FAH dodavanje ukupno najudaljenijeg susjeda
Metoda dodavanja najudaljenijeg susjeda FAH (Farthest Adition Heuristic) opisana je u
poglavlju (4.1.2) kao konstruktivna heuristička metoda. Implementacija ove metode u
dvoprolaznom Sweep algoritmu provedena je u poglavlju (6.1.5), (Program 6.3). Rezultati
direktno primijenjene FAH metode nad ispitnim rezultatima ispod su prosječnih rezultata
(Tablica 6) za uobičajene konstruktivne heurističke algoritme. Međutim sami algoritam je
predložak za naredbu TSPOPT programskog jezika Mars, koja daje dobre rezultate kao druga
faza Sweep algoritma. Razlog ovako selektivne uspješnosti metode proizlazi iz same ideja
konstrukcije rute dodavanjem najudaljenijih susjeda koja dobro funkcionira samo u TSP
okruženju. Uspoređivanjem rezultata dobivenih primjenom NNH i FAH algoritma, može se
primijetiti da su rezultati NNH algoritma značajno bolji, ali je FAH algoritam riješio problem
E076-10e s jednim vozilom manje.
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO FAH
RJEŠENJE
FAHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 01:35 5 783 783 524,61 33% E076-10e 08:05 10 1397 1387 835,26 40% E101-08e 28:01 11 1714 1714 826,14 52%
Tablica 6. Rezultati izvođenja FAH algoritma nad ispitnim zadacima
Doktorska disertacija mr. sc. Tonči Carić 6-62
'-----------------------------------------------------------------------------------' 'naziv algoritma : DODAVANJE UKUPNO NAJUDALJENIJEG SUSJEDA ' '-----------------------------------------------------------------------------------' CLEAR CUSTOMER skladiste=CUSTOMER(0),c ARC st_no, novi NUMBER count_veh, best_len, best_index, best_veh, solvedx, temp_len, count_veh=0 '---konstrukcija pocetne rute---------- SELECT CUSTOMER c WHERE MAXIMISE DISTANCE(skladiste, c) ENDSELECT MOVE vehicle(0), c MOVE vehicle(0), skladiste '---konsturiranje ostalih ruta--------- WHILE NOT SOLVED best_len = 0 best_index=0 best_veh=0 solvedx=0 FOR no_veh = 0 TO count_veh 'zapocinje petlja za sve nerutirane korisnike FOR j= 0 TO CUSTOMERCOUNT-1 temp_len=0 IF CUSTOMER(j).TIMESVISITED = 0 AND VEHICLE(no_veh).CAPACITYLEFT >=
CUSTOMER(j).Q 'postavljamo st_no na vezu koja pocinje u skladistu i koristi vozilo u no_veh SELECT ARC st_no WHERE st_no.FROM.INDEX=0 st_no.VEHICLE.INDEX=no_veh ENDSELECT novi = st_no DO temp_len=temp_len + DISTANCE(novi.FROM, CUSTOMER(j)) '---novi ARC je onaj koji se nastavlja u ruti iza st_no--------- SELECT ARC novi WHERE EQUAL VEHICLE (st_no.VEHICLE, novi.VEHICLE) EQUAL CUSTOMER (novi.FROM,st_no.TO) ENDSELECT st_no= novi LOOPIF NOT EQUAL CUSTOMER (novi.FROM, skladiste) IF (temp_len > best_len) best_len = temp_len best_index =j best_veh=no_veh solvedx=1 ENDIF ENDIF ENDFOR ENDFOR IF solvedx=0 count_veh = count_veh+1 SELECT CUSTOMER c WHERE c.TIMESVISITED = 0 VEHICLE(count_veh).CAPACITYLEFT - c.Q >= 0 MAXIMISE DISTANCE(skladiste, c) ENDSELECT MOVE VEHICLE(count_veh), c MOVE VEHICLE(count_veh), skladiste ELSE SELECT ARC veza WHERE veza.VEHICLE.INDEX=best_veh MINIMISE DISTANCE (veza.FROM, CUSTOMER(best_index))+ DISTANCE (veza.TO, CUSTOMER (best_index)) -veza.LENGTH ENDSELECT ADDARC VEHICLE(best_veh), veza.FROM, CUSTOMER (best_index) ADDARC VEHICLE(best_veh), CUSTOMER (best_index), veza.TO DELARC veza solvedx=1 ENDIF ENDWHILE
Program 6.3 Algoritam FAH dodavanje ukupno najudaljenijeg susjeda
Doktorska disertacija mr. sc. Tonči Carić 6-63
6.1.4. Algoritam NAH metode najbližeg dodavanja
Metoda najbližeg dodavanja opisana je u poglavlju (4.1.3) i predstavlja proširenje
metode umetanja najbližeg korisnika gdje se umeće ukupno najbliži korisnik u odnosu na sve
već umetnute korisnike rute. Prilikom konstrukcije algoritma za ovu metodu koriste se dvije
upravljačke strukture izbora SELECT. Prva struktura SELECT prema kriteriju odabira (Slika
8) izabire onu vezu i korisnika koji imaju najmanju cijenu umetanja. Druga SELECT
struktura započinje novu rutu odabirom novog najbližeg korisnika spremištu, ako svi
korisnici nisu posluženi. Kodirani NAH algoritam (Program 6.4) je unatoč nešto složenijoj
strukturi u odnosu na prethodne programe kodiran pregledno i čitko. U ovom programu
SELECT naredbe su korištene dvojako; za pronalaženje minimalne vrijednosti i za provjeru
postojanja neposjećenih korisnika.
'-----------------------------------------------------------------------------------' 'naziv algoritma : ALGORITAM NAJBLIŽEG DODAVANJA ' '-----------------------------------------------------------------------------------' CLEAR NUMBER brojvoz=-1, kreiraj =1 WHILE NOT SOLVED IF kreiraj =1 brojvoz=brojvoz+1 SELECT CUSTOMER susjed1 WHERE susjed1.TIMESVISITED = 0 MINIMISE DISTANCE(susjed1, CUSTOMER(0)) ENDSELECT IF NOT FOUND (susjed1) BREAK ELSE kreiraj=0 MOVE VEHICLE(brojvoz), susjed1 MOVE VEHICLE(brojvoz), CUSTOMER(0) ENDIF ENDIF SELECT CUSTOMER korisnik, ARC veza WHERE korisnik.TIMESVISITED = 0 VEHICLE (brojvoz).CAPACITYLEFT - korisnik.Q >= 0 veza.VEHICLE.INDEX=brojvoz MINIMISE DISTANCE(veza.FROM, korisnik) + DISTANCE(veza.TO, korisnik) -
veza.LENGTH ENDSELECT IF NOT FOUND(korisnik) kreiraj = 1 ELSE ADDARC VEHICLE(brojvoz), veza.FROM, korisnik ADDARC VEHICLE(brojvoz), korisnik, veza.TO DELARC veza ENDIF ENDWHILE
Program 6.4 Algoritam NAH metode najbližeg dodavanja
U tablici (Tablica 7) prikazani su rezultati dobiveni primjenom NAH algoritma.
Prosječno odstupanje rezultata ove metode, u odnosu na najbolje postignute rezultate svih do
sada u literaturi testiranih metoda, za ovu grupu testova je oko 30%, što je za 9% lošije od
NNH algoritma.
Doktorska disertacija mr. sc. Tonči Carić 6-64
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO NAH
RJEŠENJE
NAHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:04 5 686 783 524,61 24% E076-10e 00:12 10 1186 1165 835,26 28% E101-08e 00:40 11 1350 1324 826,14 38%
Tablica 7. Rezultati izvođenja NAH algoritma nad ispitnim zadacima
6.1.5. Algoritam dvoprolazne Sweep metoda
Dvoprolazna Sweep metoda opisana je u poglavlju (4.1.4) i kodirana u programskom
jeziku Mars (Program 6.5, Program 6.6, Program 6.7, Program 6.8). Sva tri programa imaju
jednaku prvu faza Sweep algoritma u kojoj se vrši grupiranje korisnika po kriteriju
minimalnog kuta (Slika 9) i dostatnog kapaciteta vozila potrebnog da posluži sve korisnike u
grupi.
Za sve tri implementacije algoritma karakteristični je dio koda (Program 6.5) odnosno
prva faza algoritma i korištenje procedure ObrisiNekoristenaVozila. U prvoj fazi algoritma
naredbom INITPOLAR prelazi se na računanje u polarnim koordinatama, a uz pomoć
naredbi SELECT i GETANGLE vrši se grupiranje korisnika. U drugom prolazu koriste se
više metoda pronalaženja najboljeg slijeda obilaska korisnika pojedinim vozilom. Može se
uočiti da se prvom fazom Sweep algoritma, VRP problem razložio na više TSP problema, što
predstavlja potencijalnu mogućnost distribuirane izvedbe Sweep alogritma.
'-------------' ' PRVI PROLAZ ' '-------------' CUSTOMER skladiste = CUSTOMER (0) NUMBER test = 1, testx, brojvoz=0, kapacitet = VEHICLE(0).CAPACITYLEFT INITPOLAR DO SELECT CUSTOMER najmanjikut, VEHICLE slobodan WHERE najmanjikut.TIMESVISITED = 0 slobodan.CAPACITYLEFT - najmanjikut.Q >= 0 MINIMISE GETANGLE (najmanjikut) ENDSELECT IF FOUND (najmanjikut) MOVE slobodan, najmanjikut ELSE test = 0 ENDIF LOOPIF test=1 PROCEDURE ObrisiNekoristenaVozila FOR i=VEHICLECOUNT-1 TO 0 STEP -1 IF VEHICLE(i).CAPACITY = VEHICLE(i).CAPACITYLEFT DELVEHICLE VEHICLE(i) ENDIF ENDFOR ENDPROCEDURE
Program 6.5 Zajednički dio koda porodice Sweep algoritama
Doktorska disertacija mr. sc. Tonči Carić 6-65
Prvi pristup rješavanja TSP problema (Program 6.6) u drugoj fazi Sweep metode
motiviran je intuitivnim i najbržim načinom konstrukcije rute odnosno dodavanja najbližeg
susjeda. Već poznati NNH algoritam (Program 6.2) prilagođen je za potrebe konstrukcije rute
jednog vozila tj. za rješavanje TSP problema.
'----------------------------' ' DRUGI PROLAZ ' ' MODIFICIRANI NNH ALGORITAM ' '----------------------------' ObrisiNekoristenaVozila brojvoz= USEDVEHICLECOUNT FOR i = 0 TO brojvoz testx = 1 DO SELECT ARC veza WHERE veza.VEHICLE.INDEX=i ENDSELECT IF NOT FOUND (veza) testx = 0 BREAK ELSE DELARC veza ENDIF LOOPIF testx = 1 WHILE NOT SOLVED SELECT VEHICLE v, CUSTOMER c WHERE NOT EQUAL CUSTOMER (v.POSITION, c) c.TIMESVISITED = 0 v.CAPACITYLEFT - c.Q >= 0 MINIMISE DISTANCE(v.POSITION, c) ENDSELECT IF NOT FOUND(c) BREAK ENDIF MOVE v, c ENDWHILE ENDFOR FOR jx = 0 TO VEHICLECOUNT-1 MOVE vehicle(jx), skladiste ENDFOR
Program 6.6 Sweep algoritam i modificirani NNH algoritam
U tablici (Tablica 8) prikazani su rezultati dobiveni primjenom Sweep NNH algoritma
nad ispitnim zadacima.
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO SNNH
RJEŠENJE
SNNHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:12 5 685 609 524,61 14% E076-10e 00:44 10 1068 948 835,26 12% E101-08e 01:52 11 1350 1244 826,14 34%
Tablica 8. Rezultati izvođenja Sweep - NNH algoritma
Doktorska disertacija mr. sc. Tonči Carić 6-66
Ako koristimo modificirani NAH algoritam (Program 6.4), gdje se umeće ukupno
najpovoljniji korisnik s obzirom na do tada umetnute korisnike u novoj ruti (Slika 8),
Poglavlje (4.1.3), ukupni rezultat se može dodatno poboljšati. Ovakav pristup rješavanja TSP
problema koristi se u (Program 6.7).
'----------------------------' ' DRUGI PROLAZ ' ' MODIFICIRANI NAH ALGORITAM ' '----------------------------' ObrisiNekoristenaVozila brojvoz= USEDVEHICLECOUNT FOR i = 0 TO brojvoz-1 testx = 1 DO SELECT ARC veza WHERE veza.VEHICLE.INDEX=i ENDSELECT IF NOT FOUND (veza) testx = 0 BREAK ELSE DELARC veza ENDIF LOOPIF testx = 1 SELECT VEHICLE v, CUSTOMER c WHERE NOT EQUAL CUSTOMER (v.POSITION, c) c.TIMESVISITED = 0 v.CAPACITYLEFT - c.Q >= 0 v.index=i MINIMISE DISTANCE(v.POSITION, c) ENDSELECT MOVE v, c MOVE v, skladiste testx = 1 WHILE testx=1 SELECT CUSTOMER korisnik, ARC veza WHERE korisnik.TIMESVISITED = 0 VEHICLE (i).CAPACITYLEFT - korisnik.Q >= 0 veza.VEHICLE.INDEX=i MINIMISE DISTANCE(veza.FROM, korisnik) + DISTANCE(veza.TO, korisnik) -
veza.LENGTH ENDSELECT IF NOT FOUND(korisnik) testx=0 ELSE ADDARC VEHICLE(i), veza.FROM, korisnik ADDARC VEHICLE(i), korisnik, veza.TO DELARC veza ENDIF ENDWHILE ENDFOR
Program 6.7 Sweep algoritam i modificirani NAH algoritam
U tablici (Tablica 9) prikazni su rezultati Sweep NAH algoritam postignuti nad ispitnim
zadacima:
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO SNAH
RJEŠENJE
SNAHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:18 5 618 588 524,61 11% E076-10e 01:11 10 1087 1072 835,26 22% E101-08e 03:24 11 1287 1254 826,14 34%
Tablica 9. Rezultati izvođenja Sweep - NAH algoritma
Doktorska disertacija mr. sc. Tonči Carić 6-67
Kada za rješavanja TSP problema u drugoj fazi Sweep algoritma upotrijebimo FAH
algoritam, dodatno ubrzan direktnom implementacijom FAH algoritma naredbom TSPOPT
programskog jezika Mars, dobivaju se najbolji rezultati.
'----------------------------' ' DRUGI PROLAZ ' ' MODIFICIRANI FAH ALGORITAM ' '----------------------------' ObrisiNekoristenaVozila brojvoz= USEDVEHICLECOUNT FOR i = 0 TO brojvoz testx = 1 DO SELECT ARC veza WHERE veza.VEHICLE.INDEX=i ENDSELECT IF NOT FOUND (veza) testx = 0 BREAK ELSE DELARC veza ENDIF LOOPIF testx = 1 ' WHILE NOT SOLVED SELECT VEHICLE v, CUSTOMER c WHERE NOT EQUAL CUSTOMER (v.POSITION, c) c.TIMESVISITED = 0 v.CAPACITYLEFT - c.Q >= 0 MINIMISE DISTANCE(v.POSITION, c) ENDSELECT IF NOT FOUND(c) BREAK ENDIF MOVE v, c ENDWHILE ENDFOR FOR jx = 0 TO VEHICLECOUNT-1 MOVE vehicle(jx), skladiste TSPOPT vehicle (jx) ENDFOR
Program 6.8 Sweep algoritam i modificirani FAH algoritam
U tablici (Tablica 10) prikazni su rezultati Sweep FAH algoritam postignuti nad ispitnim
zadacima:
ISPITNI ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO SFAH
RJEŠENJE
SFAHI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:10 5 589 589 524,61 11% E076-10e 00:45 10 951 948 835,26 12% E101-08e 1:54 11 1255 1254 826,14 34%
Tablica 10. Rezultati izvođenja Sweep - FAH algoritma
Doktorska disertacija mr. sc. Tonči Carić 6-68
Ukupni rezultati koje postižu sva tri Sweep algoritma prikazani su u tablici (Tablica 11)
ALOGORITAM
UKUPNO VRIJEMEIZVRŠAVANJA
(MIN:SEC)
UKUPAN ZBROJ
VOZILA
UKUPAN ZBROJ
RJEŠENJA
PROSJEČNO ODSTUPANJE OD
NAJBOLJEG
Sweep -NNH 02:48 26 2801 20% Sweep -NAH 04:53 26 2914 22% Sweep -FAH 02:49 26 2791 19%
Tablica 11. Rezultati izvođenja Sweep algoritama
Slika 17. Odnos ukupnih duljina ruta i vremena potrebnih za izvođenje algoritama
Rezultati koje postižu Sweep algoritmi prikazani su na slici (Slika 17). Najsporiji je
Sweep algoritam koji u drugoj fazi rješava TSP problem NAH metodom poglavlje (4.1.3).
Rezultati koje postiže ovaj algoritma na ispitnim zadacima su u prosjeku 22% lošiji od do
sada najboljih objavljenih rezultata (Tablica 4). Nešto bolje rezultate postiže Sweep algoritam
koji u drugom prolazu algoritma rješava TSP probleme konstrukcijom rute po kriteriju
dodavanje najbližeg korisnika odnosno NNH metodom poglavlje (4.1.1). Rezultati ovog
algoritma odstupaju 20% od najboljih objavljenih rezultata. Najbolji rezultati (19%
odstupanja od najboljih rezultata) postignuti su kada se TSP problem rješava FAH metodom
poglavlje (4.1.2). Ova je metoda je zbog složenosti najsporija, ali je direktnim kodiranjem kroz
naredbu TSPOPT značajno ubrzana i po vremenu izvođenja usporediva sa ostalim
implementacijama.
Doktorska disertacija mr. sc. Tonči Carić 6-69
6.1.6. Algoritam «Clark and Wright» metode
Ideja rada "Clark and Wright" metode opisane su u poglavlju (4.1.5). Ova metoda
kodirana je u programskom jeziku Mars (Program 6.9).
'-----------------------------------------------------------------------------------' 'naziv algoritma : ALGORITAM CLARK-WRIGHT METODE ' '-----------------------------------------------------------------------------------' CLEAR DodajVozila CUSTOMERCOUNT, 160 CUSTOMER depot = CUSTOMER(0) NUMBER kraj, kraj0=0 FOR i = 1 TO CUSTOMERCOUNT-1 ADDARC VEHICLE (i-1), depot, CUSTOMER (i) ADDARC VEHICLE (i-1), CUSTOMER (i), depot ENDFOR DO SELECT ARC arc1, ARC arc2 WHERE EQUAL CUSTOMER (arc1.TO, depot) EQUAL CUSTOMER (arc2.FROM, depot) NOT EQUAL VEHICLE(arc1.VEHICLE, arc2.VEHICLE) arc2.VEHICLE.CAPACITY-arc2.VEHICLE.CAPACITYLEFT <
arc1.VEHICLE.CAPACITYLEFT MAXIMISE arc1.LENGTH + arc2.LENGTH - DISTANCE(arc1.FROM, arc2.TO) ENDSELECT IF FOUND (arc1) MESSAGE "MAX saving -> " + arc1.FROM.INDEX + " na " + arc2.TO.INDEX kraj = 0 DO SELECT ARC arc3 WHERE NOT EQUAL ARC (arc3, arc2) EQUAL VEHICLE (arc3.VEHICLE, arc2.VEHICLE) ENDSELECT IF FOUND (arc3) ADDARC arc1.vehicle, arc3.FROM, arc3.TO DELARC arc3 ELSE kraj = -1 ADDARC arc1.VEHICLE, arc1.FROM, arc2.TO DELARC arc1 DELARC arc2 ENDIF LOOPIF kraj = 0 ELSE kraj0=-2 ENDIF LOOPIF kraj0 = 0 ObrisiNekoristenaVozila PROCEDURE DodajVozila(NUMBER broj, NUMBER kapacitet) ObrisiSvaVozila FOR i=0 TO broj-1 ADDVEHICLE kapacitet ENDFOR ENDPROCEDURE PROCEDURE ObrisiNekoristenaVozila FOR i=VEHICLECOUNT-1 TO 0 STEP -1 IF VEHICLE(i).CAPACITY = VEHICLE(i).CAPACITYLEFT DELVEHICLE VEHICLE(i) ENDIF ENDFOR ENDPROCEDURE PROCEDURE ObrisiSvaVozila FOR i=VEHICLECOUNT-1 TO 0 STEP -1 DELVEHICLE VEHICLE(i) ENDFOR ENDPROCEDURE
Program 6.9 Clark & Wright algoritam
Doktorska disertacija mr. sc. Tonči Carić 6-70
U prvom dijelu programa FOR strukturom ponavljanja stvara se onoliko ruta koliko
ima i korisnika, svaka od ruta sastoji se samo od spremišta i jednog korisnika. Nakon
inicijalizacije, prva SELECT naredba odabire one rute koje imaju dovoljni kapacitet jednog
od vozila da se izvrši ujedinjenje ruta, a da se pri tome maksimalno uštedi u duljini ukupno
prijeđenog puta vozila. Slijedeća SELECT naredba ujedinjuje dvije rute i smanjuje broj
potrebnih vozila za 1. Odabiri i ujedinjenje ruta obavljaju se dok je god moguće postići
uštedu.
ISPITNI
ZADATAK
VRIJEME IZVRŠAVANJA
(MIN:SEC)
BROJVOZILA
POČETNO CW
RJEŠENJE
CWI
2OPT
NAJBOLJE RJEŠENJE
ODSTUPANJEOD
NAJBOLJEG E051-05e 00:13 6 592 592 524,61 11% E076-10e 00:42 10 904 893 835,26 6% E101-08e 02:15 11 1037 1031 826,14 20%
Tablica 12. Rezultati izvođenja Clark & Wright algoritma nad ispitnim zadacima
Clark & Wright metoda postiže prosječno 12% lošije rezultate u odnosu na najbolje
postignute rezultate svih do sada u literaturi testiranih metoda, za ovu grupu testova (Tablica
12). Jedan od rezultata (Slika 19) za ispitni zadatak E076-10e približio se na 6% odstupanja od
do sada objavljenih rezultata. Vrijeme izvršavanja ovog algoritma je približno istog reda
veličine kao i kod svih ostalih prikazanih algoritama.
Slika 18. Rješenja ispitnog zadatka E076-10e dobivenog Clark & Wright algoritma i 2OPT optimizacije
Doktorska disertacija mr. sc. Tonči Carić 6-71
6.1.7. Algoritam λ lokalne pretrage
Lokalna pretraga λ okoline [44], uz dubinu pretraga λ=2 predstavlja poboljšanje
konstruktivnih heurističkih algoritama gdje se izmjenama ili preseljenjem pojedinog segmenta
jedne rute u drugu generira susjedstvo u kojem se vrši pretraga. '-----------------------------------------------------------------------------------' 'naziv algoritma : ALGORITAM λ LOKALNE PRETRAGE STRATEGIJOM UKUPNO NAJBOLJI ' '-----------------------------------------------------------------------------------' SOLUTION savedsolution SOLUTION bestsolution PUTSOLUTION savedsolution NUMBER foundbetter=0, pocetak = TOTALLENGTH, better=1, iteracija=0, prolaz = 1,
brojac=0, linija=25 NUMBER ogranicenje=1000001, jedanesest=0, bestcoast = 0 MESSAGE " starategija SILAZNI SPUST, ogranicenje --> " + ogranicenje WHILE better=1 bestcoast=TOTALLENGTH INITLAMBDA 2 ' inicijaliziram lambda pretragu dubine 2 better=0 ' postoji li bolje rjesenje jedanesest=jedanesest+1 message "Biti ce ukupno iteracija --> " + LAMBDACOUNT WHILE (NOT LAMBDAEND AND jedanesest < ogranicenje) iteracija=iteracija+1 jedanesest=jedanesest+1 IF TOTALLENGTH<bestcoast IF (CAPACITYOK) PUTSOLUTION bestsolution bestcoast=TOTALLENGTH better=1 ENDIF ELSE brojac= brojac +1 ENDIF LAMBDANEXT ENDWHILE LAMBDAFINISH jedanesest=0 IF better=1 ' postavljam trenutni solution na nadjeni foundbetter=1 prolaz=prolaz+1 iteracija = 0 GETSOLUTION bestsolution ENDIF ENDWHILE IF foundbetter=0 GETSOLUTION savedsolution REPAINT MESSAGE "("+iteracija+"): "+TOTALLENGTH + "NEMA POBOLJSANJA" ELSE GETSOLUTION bestsolution REPAINT MESSAGE "("+iteracija+"): "+TOTALLENGTH + " !najbolje rjesenje!" ENDIF
Program 6.10 Pretraga po λ okolini sa strategijom ukupno najboljeg rješenja (Glolbal Best) ograničena brojem iteracija
U programu (Program 6.10) koriste se naredbe lokalne pretrage opisane u poglavlju
(5.3.3) i strategija pronalaženja ukupno najboljeg rješenja (Globala Best). S obzirom da je λ
okolina vrlo velika postavlja se ograničenje na broj iteracija u jednom prolazu. Kada broj
iteracija u jednom prolazu prijeđe broj koji je postavljen kao ograničenje, tada se u slučaju da
je pronađeno više boljih rješenje od trenutnog čija se okolinu pretražujemo, nastavlja pretraga
Doktorska disertacija mr. sc. Tonči Carić 6-72
u susjedstvu novog najboljeg rješenja. Ako nije pronađeno ni jedno bolje rješenje pretraga se
zaustavlja. '-----------------------------------------------------------------------------------' 'naziv algoritma : ALGORITAM λ LOKALNE PRETRAGE STRATEGIJOM PRVI NAJBOLJI ' '-----------------------------------------------------------------------------------' SOLUTION savedsolution SOLUTION bestsolution PUTSOLUTION savedsolution NUMBER foundbetter=0, pocetak = TOTALLENGTH, better=1, iteracija=0, prolaz = 1,
brojac=0, NUMBER bestcoast = 0, nasaoboljeg=0 MESSAGE "Ukupna startna duljina rute: "+TOTALLENGTH MESSAGE "*! starategija SILAZNI SPUST, ogranicenje --> 1e6 *!" WHILE better=1 AND iteracija < 1000001 bestcoast=TOTALLENGTH INITLAMBDA 2 ' inicijaliziram lambda pretragu dubine 2 better=0 ' postoji li bolje rjesenje message "Biti ce ukupno iteracija --> " + LAMBDACOUNT WHILE (NOT LAMBDAEND AND nasaoboljeg =0) iteracija=iteracija+1 IF TOTALLENGTH<bestcoast IF (CAPACITYOK) PUTSOLUTION bestsolution bestcoast=TOTALLENGTH REPAINT better=1 nasaoboljeg=1 ENDIF ELSE brojac= brojac +1 ENDIF LAMBDANEXT ENDWHILE LAMBDAFINISH nasaoboljeg=0 IF better=1 ' postavljam trenutni solution na nadjeni foundbetter=1 prolaz=prolaz+1 MESSAGE "Prelazimu u novi prolaz" MESSAGE "prije CURENTSOLUTION-a -->" +TOTALLENGTH GETSOLUTION bestsolution MESSAGE "poslije CURENTSOLUTION-a -->" +TOTALLENGTH CLS ENDIF ENDWHILE IF foundbetter=0 GETSOLUTION savedsolution REPAINT MESSAGE "("+iteracija+"): "+TOTALLENGTH + "NEMA POBOLJSANJA" ELSE GETSOLUTION bestsolution REPAINT MESSAGE "("+iteracija+"): "+TOTALLENGTH + " !najbolje rjesenje!" ENDIF
Program 6.11 Pretraga po λ okolini sa strategijom prvi najbolji (First Best) ograničena brojem iteracija
Za razliku od strategije ukupno najboljeg rješenja, često se bolji rezultati mogu postići
sa strategijom odabira prvog najboljeg rješenja kao trenutnog rješenja s kojim se započinje
pretraga novog λ susjedstva program (Program 6.11). Pri ovoj strategiji potrebno je također
odrediti ograničenje broja iteracija pošto su susjedstva vrlo velika. Ako broj iteracija u
trenutnom prolazu prijeđe broj ograničenja, tada se zaustavlja pretraga; u slučaju prvog boljeg
Doktorska disertacija mr. sc. Tonči Carić 6-73
rješenja, broj iteracija se postavlja na nulu i prelazi u novu pretragu susjedstva netom
pronađenog rješenja.
Lokalna pretraga zahtjeva početno rješenje, nad kojim se dalje vrši lokalna pretraga. U
tablici (Tablica 13) prikazani su rezultati lokalne pretrage s različitim početnim rješenjima
prethodno testiranih algoritama nad standardnim ispitnim zadatkom E051-05e. Za svako od
početnih rješenja varira se ograničenje broja iteracija (1e5 i 1e6) i strategija pretrage (ukupno
najbolji GB i prvi najbolji FB). POČETNO RJEŠENJE
GB1e5
GB1e6
FB1e5
FB 1e6
Sweep – NNH 554 545 559 559 Sweep – NAH 540 540 540 533 Sweep – FAH 553 544 546 539
Clark & Wright 576 566 567 557
Tablica 13. Rezultati izvođenja Clark & Wright algoritma nad standardnim ispitnim zadatkom E051-05e
Najbolji rezultat (Slika 19) postignut je za početno rješenje Sweep-NAH, uz strategiju
prvi najbolji i za ograničenje od 1E6 iteracija. To rješenje je ujedno i vrlo blizu do sada
najboljem objavljenom rješenju ispitnog zadatka E051-05e koje iznosi 524. Odstupanje
rješenja dobivenog izbedbom Clark & Wright algoritma naredbama programskog jezika Mars
u odnosu na najbolje rješenja ispitnog zadatka E051-05e iznosi 1,7%.
Slika 19. Rješenje standardnog ispitnog zadataka E051-05e Clark & Wright algoritmom
Doktorska disertacija mr. sc. Tonči Carić 7-74
7. Programski sustav za optimizaciju i planiranje ruta
Rješavanje problema usmjeravanja vozila je zahtjevan matematički problem, ali same
matematičke metode i modeli nisu dostatni za njegovo praktično rješavanje. Neophodno je
povezati VRP model i stvarno okruženje u prometnom poduzeću čiju organizaciju transporta
se želi unaprijediti npr. sugestijom promjena transportnih ruta (itinerera). Geografski
informacijski sustavi poglavlje (7.3) nameću se kao jedno od obveznih sučelje između metoda
razvijenih na VRP matematičkom modelu i stvarne radne okoline prijevoznog poduzeća sa
svim njegovim specifičnostima poslovanja (Slika 20).
Slika 20. Potrebni računarski resursi za unos stvarnih prostornih podataka i optimizaciju ruta
Doktorska disertacija mr. sc. Tonči Carić 7-75
7.1. Sustav za podršku u odlučivanju pri zadavanju i promjeni plana ruta
Sustav za podršku u odlučivanju pri zadavanju i promjeni plana ruta razvijen je,
primijenjen i ispitan za usmjeravanja vozila stvarnog radnog okruženje komunalnog poduzeća
Čistoća iz Zagreba. Prikupljanje otpada u gradovima je komunalna aktivnost koja se sa
stanovišta odabira najpovoljnih ruta može vrlo dobro opisati ACVRP problemom poglavlje
(2.1). Sustav objedinjava skup programskih rješenja sa ciljem predlaganje novih ruta
prikupljanja otpada.
Poboljšanje organizacije transporta moguće je izvršiti promjenom planova ruta, tako da
se zadrže postojeća mjesta prikupljanja. U slučaju da postoje namjera i dostatna novčana
sredstva za promjene pozicija mjesta prikupljanja moguće je predložiti nova mjesta
prikupljanja s obzirom na promjene naseljenosti i distribuciju otpada [17].
Ako je unapređenje organizacije transporta usmjereno samo na ostvarenje uštede
promjenom redoslijeda obilaska pojedinih mjesta prikupljanja, tada će intervencija u
poslovanje komunalnog poduzeća biti minimalne. Promjene se svode na izmjenu plana ruta, a
sama mjesta prikupljanja ostaju ista. Odabir novih ruta rješava se kao problem usmjeravanja
vozila, a funkcija cilja je smanjenje ukupnog prijeđenog puta vozila koja prikupljaju otpad.
Skraćivanjem ukupne duljine puta postiže se i smanjenje ukupnog vremena obavljanja
prikupljanja, odnosno smanjenje ukupnih troškova poslovanja. S obzirom da sustav
transporta ne dopušta brze promjene [14], opravdano je prvo smanjiti troškove izmjenom
planova ruta, a tek nakon takve analize planirati dodavanje novih i (ili) preraspodijeliti
postojeća mjesta prikupljanja. Očekivane uštede koje donose samo promijene planova ruta su
oko 20 posto [16].
S obzirom da je VRP matematički model, potrebno je iz poduzeća prikupiti podatke
koji će što vjernije preslikati stvarno stanje transporta u model prikupljanja otpada. Opis
transportnog procesa u razvijenom programskom sustavu za planiranje i optimizaciju ruta
izveden je uz određena pojednostavljenja. Naglašena je veza između predloženih
matematičkih rješenja VRP-a i potrebnog računarskog okruženja za programiranje i unos
geografskih podataka koji dolaze iz realnog transportnog sustava (Slika 20).
Doktorska disertacija mr. sc. Tonči Carić 7-76
Sustav objedinjava pet postupaka:
- prikupljanje podataka,
- obrada podataka GIS alatom,
- analiza postojećih ruta,
- interaktivno generiranje novih planova ruta korištenjem heurističkih metoda,
- prikazivanje rezultata.
Za unos i obradu prikupljenih podataka izrađen je program Miranda opisan u poglavlju
(7.3.1), a za analizu postojećih ruta, interaktivno generiranje novih planova ruta i prikazivanje
rezultata koristi se razvijeno radno okruženje Venera opisano u poglavlju (5.2).
7.2. Prikupljanje podataka
Podaci su prikupljeni na temelju radnih naloga i obradom podataka iz statističkih
izvještaja komunalnog poduzeća Čistoća. Obuhvaćeno je 169 mjesta prikupljanja otpada u
području Novog Zagreba (Slika 22).
Slika 21. Područje Novog Zagreba na kojem su prikupljeni podaci o 169 mjesta prikupljanja otpada
Doktorska disertacija mr. sc. Tonči Carić 7-77
Prilagođenje izvornih podataka modelu podataka sustava Miranda izvedeno je
korištenjem standardnog modela opisa entiteta i njihovih veza odnosno ER (Entity
Relationship) modela. Prikupljeni podaci mogu se grupirati u dva entiteta baze i jednu vezu
tipa 1 : n (Slika 22).
Slika 22. ER model prikupljenih podataka
Entitete predstavljaju vozilo i mjesto prikupljanja dok vezu predstavlja zapis rute koja
povezuje jedno vozilo s n mjesta prikupljanja i jedno mjesto prikupljanja samo s jedinim
vozilom. U (Prilogu 3) nalazi se tablica svih mjesta prikupljanja.
Kako bi se podaci o prikupljanju otpada, opisani ER modelom (Slika 22), prilagodili
potrebama ACVRP modela uvedena su slijedeća pojednostavljenja:
- pretpostavlja se da svaka ruta započinje i završava na istom mjestu, odlagalištu Jakuševac,
- ruta se ne prekida već se odvoz otpada obavlja točno prema radnom nalogu s jednim
dovozom otpada na odlagalište po jednoj ruti,
- sve rute obavljaju se vozilima istog kapaciteta odnosno svako vozilo raspolaže s 16 m3
prostora za prikupljanje,
- otpad se sabija "Faun rotopres" tehnologijom što prema podacima iz komunalnog
poduzeća Čistoća odgovara maksimalnoj masi od 6000 kg prikupljenog otpada.
Doktorska disertacija mr. sc. Tonči Carić 7-78
7.3. Priprema podataka GIS alatom
Geografski informacijski sustav GIS (Geographic Information System) je sustav za
rukovanje prostornim podacima i predstavlja skup programskih alata koji se koriste za unos,
pohranu, manipulaciju, analizu i prikaz geografskih odnosno prostornih podataka. Za razliku
od drugih sustava za upravljanje bazama podataka i grafičkih računarskih sustava, GIS za sve
prostorne podatke ima geografsku referencu (npr. geografsku širinu i dužinu). Prostorni
podaci mogu se transformirati iz jednog koordinatnog sustava u drugi i objediniti neovisno o
različitosti izvora i koordinatnih sustava u jedinstvenu bazu podataka koristeći GIS aplikacije.
Pronalaženja novih planova ruta (Slika 23) izvedeno je u tri faze:
- priprema podataka GIS alatom,
- simulacija transporta odvoza otpada prema postojećim radnim nalozima,
- predlaganje novih planovi ruta hurističkim metodama.
U fazi pripreme podataka GIS alatom izvodi se unos prostornih podataka u bazu
podataka pomoću aplikacije Miranda poglavlje (7.3.1)
Slika 23. Faze pronalaženja novih planova ruta
Doktorska disertacija mr. sc. Tonči Carić 7-79
7.3.1. Aplikacija za unos i obradu podataka Miranda
Za unos i obradu podataka izrađena je posebna GIS aplikacija prilagođena problemu
usmjeravanja vozila i podacima komunalnih poduzeća za prikupljanje otpada. Aplikacija je
izrađena u suradnji s tvrtkom Mireo d.o.o.. GIS aplikacija Miranda izrađena je uporabom
postojećih komponenata: GIS modula, modula za crtanje i modula za navigaciju. Nad
postojećim geoinformacijskim razinama (mreža gradskih prometnica, usmjerenost ulica)
izrađena je nova geoinformacijska razina minimalnih puteva. Podaci o mreži prometnica
grada Zagreba izvedeni su vektorizacijom orto-foto snimaka Zagreba iz zraka. Osnovna
funkcionalnost sustava zasnovana je na postojećim rutinama iz GIS biblioteke razvijene na
osnovu GDF (Geographic Data Files) standarda.
GDF je relativno novi standard zapisa prostornih podataka koji je 1995. usvojen od
strane Europskog tijela za normizaciju CEN-a (Central European Normalisation). GDF je
razvijen kao format za prezentaciju i razmjenu prostornih podataka zapisanih u digitalnom
obliku unutar projekta izrade digitalne karte europskih prometnica EDRM (European Digital
Road Map). Format služi kao osnova za pohranjivanje podataka pri opisivanju mreže
prometnica i podataka vezanih za same prometnice. U njemu se spremaju i podaci potrebni
za rutiranje, uporabu lokacijskih servisa i aplikacija GPS-a. GDF daje pravila o zahvaćanju
podataka, njihovom atributiranju i stvaranju veza među podacima. Na iskustvima prvih
korisnika ovog formata iz područja transporta: Bosch, Philips i Volvo, pokazalo se da je GDF
pogodan kao informacijska podloga za sustave navigacije u automobilima. GDF format
dobro je prihvaćen i u aplikacijama upravljanja voznim parkom, upravljanja distribucijom
proizvoda, analize i upravljanja prometom i automatskog lociranja vozila. Interesantno je da
se sam GDF format ne koristi direktno već se transformira u novi format ovisno o aplikaciji.
Prosječna veličina GDF datoteka prostornih podataka je oko 20 MB i sam format je prilično
složen. Podataka unutar GDF datoteka obično ima puno više no što je za pojedinu aplikaciju
potrebno, pa je nužno filtrirati podatke ovisno o aplikaciji.
Aplikacija Miranda pribavlja podatke o prometnoj mreži iz GDF formata i stvara dvije
odvojene baza podataka u koje posprema dobivene podatke. Jedna baza je prilagođena za
numeričku obradu podataka odnosno proračunavanje najkraćeg puta, dok je druga
prilagođena prikazivanje podataka na zaslonu. Proračun najkraćeg puta izvodi se
modificiranim Dijkstra algoritmom. Dijkstra algoritam je jedan od najčešće upotrebljavanih
algoritama za proračun najkraćeg puta koji u usmjerenom grafu pronalazi put od početnog
čvora do svih ostalih čvorova po kriteriju minimalnog zbroja težina grana unutar grafa.
Doktorska disertacija mr. sc. Tonči Carić 7-80
Prilikom izračunavanja minimalnog puta aplikacija uzima u obzir smjernost prometnica. S
obzirom na postojanje jednosmjernih prometnica i zabrana pojedinih skretanja, udaljenost
između dvije pozicije može biti različita ovisno o tome koju poziciju odaberemo kao početnu.
Aplikacija generira asimetričnu matricu udaljenosti najkraćeg puta za sve odabrane pozicije.
Na osnovu odabranih pozicija i redoslijeda obilazaka pozicija u ruti aplikacija izračunava
ukupnu duljinu tražene rute u metrima. Vjerodostojnost proračuna najviše ovisi o ažurnosti
podataka smjernosti prometnica, a ne o primijenjenim programskim rješenjima.
Aplikacija Miranda izrađena je prvenstveno kao GIS alat sa funkcijom unosa mjesta
prikupljana otpada. Podaci o mjestima prikupljanja otpada unose se na temelju radnog naloga
kojeg dobiva vozač vozila prilikom svakog odlaska na rutu prikupljanja (Prilog 1). Svaki radni
nalog sadrži adresu mjesta prikupljanja i broj kontejnera koje treba isprazniti.
Koordinator na osnovi adrese i kućnog broja pronalazi mjesto prikupljanja na
vektoriziranom prikazu mreže prometnica (Slika 24) i započinje unos atributa u GIS sustav.
Nakon odabira pozicije na zaslonu, Miranda određuje geografsku širinu i dužinu pozicija
prikupljanja otpada. Slijedi unos podataka adresnog modula (odnosno kućni broj odabrane
ulice), broj kontejnera čiji sadržaj treba prikupiti na toj poziciji, ime korisnika usluge odvoza
otpada i identifikatora radnog naloga, (Slika 24).
Slika 24. Aplikacija za unos i obradu podataka
Doktorska disertacija mr. sc. Tonči Carić 7-81
Osim datoteke pozicija generira se i asimetrična matrica međusobnih najkraćih
udaljenosti između svih pozicija i između svih pozicija i odlagališta. Stvarna mjesta
prikupljanja otpada u gradu pretvaraju se u datoteku pozicija s geografskim dužinama i
širinama (Prilog 3). Osim datoteke pozicija generira se i asimetrična matrica međusobnih
najkraćih udaljenosti između svih pozicija prikupljanja uključivši i odlagalište. S tako
stvorenim geografskim opisom i matricom udaljenosti formira se ACVRP model
usmjeravanja vozila i nastavlja računanje optimalnih ruta.
Tijekom eksperimentalnog dijela rada utvrđeno je nekoliko pogrešaka u korištenoj
digitalnoj karti Zagreba. Okom teško primjetne pogrešake u vektorizaciji orto-foto snimke
uzrokovale su prometnu nedostupnost manjih područja grada. Nedostupnost se očitovala
nemogućnošću izračunavanja minimalnog puta do pojedinih mjesta prikupljanja otpada.
Pogreška je utvrđena i otklonjena pregledom asimetrične matrice udaljenosti prilikom
razjašnjavanja loših rezultata rada pojedinih algoritama.
Doktorska disertacija mr. sc. Tonči Carić 7-82
7.4. Simulacija postojećih ruta prije procesa optimizacije
GIS alat Miranda omogućava prikaz mreže prometnica, računanje minimalnih
udaljenosti pojedinih pozicija i unos podataka u bazu. U Mirandi se unose pozicije pojedinih
kontejnera, kućni brojevi ulica u kojima se kontejneri nalaze i broj kontejnera na pojedinim
mjestima prikupljanja (Slika 24).
Analiza postojećih ruta zasniva se na simulaciji transporta (odvoza otpada) na osnovu
postojećih radnih naloga (Slika 23). Rezultat obrade prostornih podataka Mirandom je
matrica najkraćih putova između svih kontejnera međusobno (prilog 7), između svih
kontejnera i odlagališta, te između odlagališta i pojedinog kontejnera. Podaci o poziciji nalaze
se u datoteci «cistoca.txt», a proračunata asimetrična matrica svih udaljenosti u datoteci
«matrica.txt». Te dvije datoteke učitavaju se iz Venerinog radnog okruženja (Slika 25) i
smještaju se u prostor usmjerenog grafa.
Slika 25. Prijenos podataka iz Mirande u Veneru
Doktorska disertacija mr. sc. Tonči Carić 7-83
Veze između korisnika u grafu (Slika 25) predstavljaju tek simbolički redoslijed
obilazaka korisnika vozilom jer se udaljenost između dvije točke grafa ne računa euklidskom
distancom već se uzimaju vrijednosti iz matrice. Svi algoritmi implementirani u Veneri koriste
naredbu izračunavanja udaljenosti DISTANCE (customer(x), customer(y)), koja vraća stvarnu
udaljenost najkraćeg puta kroz prometnice grada s poštivanjem smjernosti prometnice. Te
stvarne vrijednosti udaljenosti izračunate su u pripremnoj fazi GIS sustavom Miranda i
prenesene su u Veneru putem datoteke «matrica.txt». Veze prikazane na slici (Slika 26)
označavaju smjer obilaska vozila i pripadnosti pojedinog korisnika određenoj ruti.
Upisivanjem podataka s radnih naloga u Mirandu, izračunom matrice udaljenosti,
prijenosom Mirandinih podataka u radnu okolinu Venera pomoću datoteka «cistoca.txt» i
«matirca.txt», te izvršavanjem programa simulacje vožnje prema planu ruta s radnih naloga
(Program 7.1) dobiveni su slijedeći podaci za pojedine postojeće rute (Tablica 14).
Redni broj
Početnapozicija
Krajnjapozicija
Broj kontejnera
Udaljenost(m)
1 1 36 157 16640 2 37 47 150 6677 3 48 60 153 11747 4 61 83 174 17147 5 84 108 149 31150 6 109 129 123 17998 7 697 735 156 39573 ∑ 140932
Tablica 14. Podaci o pređenom putu na odabranim rutama radnog naloga
Odstupanje rezultata od stvarnog pređenog puta direktno ovisi od:
- pridržavanja posade vozila ruti radnog naloga,
- točnosti pozicioniranja mjesta prikupljanja,
- točnosti podataka o smjernosti prometnica.
Sedam odabranih vozila izvršilo je prikupljanje na 169 pozicija. Svako je vozilo
prosječno prikupilo 152 kontejnera i prevalilo put od oko 20 km. Ukupni prevaljeni put za
prikupljanje na svih sedam ruta iznosi 140 932 m. Na slici (Slika 26) prikazano je svih sedam
ruta koje se obave prema radnim nalozima. Obojani kvadrati (R1-R7) naglašavaju područja na
kojima pojedina vozila vrše prikupljanje. Radi bolje preglednosti na slici nije prikazana veza
između odlagališta i prvog korisnika, kao ni veza između zadnjeg korisnika i odlagališta.
Pošto je unos podataka o mjestima prikupljanja izrađen prema radnim nalozima, mjesta
prikupljanja poredana su u slijedu prema rutama. Programsko okruženje Venera omogućava
Doktorska disertacija mr. sc. Tonči Carić 7-84
interaktivni rad u kojem se prema programu (Program 7.1) pokrene vozilo koje obilazi
korisnike prema radnim nalozima.
'-------------------------------------------------------------' ' PROGRAM SIMULACIJE VOŽNJE PREMA PLANU RUTA RADNIH NALOGA ' '-------------------------------------------------------------' 'ruta 1 73A SETCAPACITY VEHICLE(0),180 FOR i=0 TO 36 MOVE VEHICLE (0), CUSTOMER (i) ENDFOR MOVE VEHICLE (0), CUSTOMER (0) MESSAGE 180 - VEHICLE(0).CAPACITYLEFT 'ruta 2 74A SETCAPACITY VEHICLE(1),180 MOVE VEHICLE (1), CUSTOMER (0) FOR i=37 TO 47 MOVE VEHICLE (1), CUSTOMER (i) ENDFOR MOVE VEHICLE (1), CUSTOMER (0) MESSAGE 180 - VEHICLE(1).CAPACITYLEFT 'ruta 3 76A SETCAPACITY VEHICLE(2),180 MOVE VEHICLE (2), CUSTOMER (0) FOR i=48 TO 60 MOVE VEHICLE (2), CUSTOMER (i) ENDFOR MOVE VEHICLE (2), CUSTOMER (0) MESSAGE 180 - VEHICLE(2).CAPACITYLEFT 'ruta 4 77A SETCAPACITY VEHICLE(3),180 MOVE VEHICLE (3), CUSTOMER (0)' FOR i=61 TO 83 MOVE VEHICLE (3), CUSTOMER (i) ENDFOR MOVE VEHICLE (3), CUSTOMER (0) MESSAGE 180 - VEHICLE(3).CAPACITYLEFT 'ruta 5 84A SETCAPACITY VEHICLE(4),180 MOVE VEHICLE (4), CUSTOMER (0) FOR i=84 TO 108 MOVE VEHICLE (4), CUSTOMER (i) ENDFOR MOVE VEHICLE (4), CUSTOMER (0) MESSAGE 180 - VEHICLE(4).CAPACITYLEFT 'ruta 6 86A SETCAPACITY VEHICLE(5),180 MOVE VEHICLE (5), CUSTOMER (0) FOR i=109 TO 129 MOVE VEHICLE (5), CUSTOMER (i) ENDFOR MOVE VEHICLE (5), CUSTOMER (0) MESSAGE 180 - VEHICLE(5).CAPACITYLEFT 'ruta 7 73B SETCAPACITY VEHICLE(6),180 MOVE VEHICLE (6), CUSTOMER (0) FOR i=130 TO 168 MOVE VEHICLE (6), CUSTOMER (i) ENDFOR MOVE VEHICLE (6), CUSTOMER (0) MESSAGE 180 - VEHICLE(6).CAPACITYLEFT
Program 7.1 Generiranje ruta prema radnim nalozima
Doktorska disertacija mr. sc. Tonči Carić 7-85
Slika 26. Prikaz ruta koje se obavljaju prema radnim nalozima
Doktorska disertacija mr. sc. Tonči Carić 7-86
Radno okruženje nakon izvršenog programa daje informacije o pređenom putu, broju
posluženih kontejnera i grafički prikaz rute (Prilog 2). Generiranje svake rute može se izvršiti i
pojedinačno, pošto novo izvršeni programski kod uvijek obavlja promjene nad zadnjim
stanjem podataka u transportnom skupu podataka CUSTOMER, VEHICLE i ARC.
Doktorska disertacija mr. sc. Tonči Carić 7-87
7.5. Izračun novih planova ruta NNH algoritmom
Algoritam umetanja najbližeg susjeda NNH (Nearest Neighbour Heuristic) opisan je u
poglavlju (4.1.1). NNH algoritam je konstruktivni algoritam koji dodaje novog korisnika u
rutu prema kriteriju umetanja najbližeg korisnika u odnosu na zadnje umetnutog korisnika.
Prema NNH algoritmu, odnosno programom (Program 6.2) kodiranim u programskom
jeziku Mars unutar programskog okruženja Venera izvršeno je generiranja novih planova ruta
za odabrani zadatak prikupljanja otpada u Novom Zagrebu. Rezultat NNH algoritma korišten
je kao početno rješenje za daljnju 2OPT optimizaciju i lokalne pretrage sa različitim
strategijama pretrage i ograničenjima na broj iteracija. Korištene su strategije pretrage ukupno
najbolji i prvi najbolji. Ograničenje na broj iteracija izvedeno je za 1E5 i 1E6 iteracija. Ova
grupa rezultata izvedena iz početnog rješenja NNH algoritmom karakteristična je po
neosjetljivosti na promjene parametra ograničenja maksimalnog broja iteracija što je vidljivo
iz prikaza rezultata (Tablica 15) i (Slika 28). Najbolji rezultat od 99672 m prijeđenog puta na
novom planu ruta dobivenom NNH algoritmom, što je poboljšanje od 29% u odnosu na
ukupni prijeđeni put prema radnim nalozima, prikazan je na slici (Slika 27).
LOKALNA
PRETRAGA VRIJEME
IZVRŠAVANJAUKUPNI
PUT POBOLJŠANJE
U ODNOSU NA 2OPT
2OPT 367 s 106917 m - Ukupno najbolji GB 1E5 5773 s 99672 m 6,8% Ukupno najbolji GB 1E6 56726 s 99672 m 6,8% Prvi najbolji FB 1E5 931 s 102443 m 4,2% Prvi najbolji FB 1E6 2673 s 102443 m 4,2%
Tablica 15. Rezultati lokalne pretrage s početnim rješenjem algoritma umetanja najbližeg susjeda
Doktorska disertacija mr. sc. Tonči Carić 7-88
Slika 27. Izgled ruta koje generira NNH algoritam umetanja najbližeg susjeda
Doktorska disertacija mr. sc. Tonči Carić 7-89
99000
100000
101000
102000
103000
104000
105000
106000
107000
108000
100 1000 10000 100000
Vrijeme izvođenja lokalne pretrage (s)
Uku
pna
udal
jeno
st (m
)
2opt
FB 1E5 FB 1E6
GB 1E5 GB 1E6
Slika 28. Odnos ukupne udaljenosti i vremena izvođenja lokalne pretrage s početnim rješenjem koje daje algoritam umetanja
najbližeg susjeda
Doktorska disertacija mr. sc. Tonči Carić 7-90
7.6. Izračun novih planova ruta NAH algoritmom
Algoritam najbližeg dodavanja NAH (Nearest Addition Heuristic) opisan je u poglavlju
(4.1.3) i kodiran u programskom jeziku Mars (Program 6.4). NAH algoritam je konstruktivni
heuristički algoritam koji dodaje novog korisnika u rutu prema kriteriju umetanja ukupno
najbližeg korisnika u odnosu na svakog od postojećeg člana rute koju konstruiramo. Grupa
rezultata (Tablica 16) izvedena lokalnim pretragama iz početnog rješenja dobivenog NAH
algoritmom ističe se među svim izvedenim metodama najboljim rezultatom. Šest vozila
obavilo bi zadatak na način da prijeđe put od 97804 m, što je za 30,6 % manji prijeđeni put u
odnosu na plan ruta koji se obavlja prema radnim nalozima. Ovaj rezultat dobiven je
strategijom ukupno najbolji sa ograničenjem broja iteracija u jednom prolazu ne prelazi 1E5
iteracija. Interesantno je primijetiti da su preostale tri lokalne pretrage dale isti rezultat od
101119 m. LOKALNA
PRETRAGA VRIJEME
IZVRŠAVANJAUKUPNI
PUT POBOLJŠANJE
U ODNOSU NA 2OPT
2OPT 670 s 101688 m - Ukupno najbolji GB 1E5 1031 s 97804 m 3,8% Ukupno najbolji GB 1E6 2128 s 101119 m 0,6% Prvi najbolji FB 1E5 569 s 101119 m 0,6% Prvi najbolji FB 1E6 2115 s 101119 m 0,6%
Tablica 16. Rezultati lokalne pretrage s početnim rješenjem algoritma najbližeg dodavanja
97500
98000
98500
99000
99500
100000
100500
101000
101500
102000
100 1000 10000
Vrijeme izvođenje lokalne pretraga (s)
Uku
pna
udal
jnos
t (m
)
2opt
FB 1E5
FB 1E6
GB 1E5
GB 1E6
Slika 29. Odnos ukupne udaljenosti i vremena izvođenja lokalne pretrage s početnim rješenjem koji daje algoritam najbližeg
dodavanja
Doktorska disertacija mr. sc. Tonči Carić 7-91
Slika 30. Izgled ruta koje generira NAH algoritam najbližeg dodavanja
Doktorska disertacija mr. sc. Tonči Carić 7-92
7.7. Izračun novih planova ruta Sweep algoritmom
Sweep algoritam je dvoprolazni algoritam kod kojeg se u prvoj fazi grupiraju korisnici, a
u drugoj kreiraju i optimiraju rute grupiranih korisnika. Sweep metoda opisana je u poglavlju
(4.1.4) i kodirana u programskom jeziku Mars u tri izvedbe (Program 6.5, Program 6.6,
Program 6.7, Program 6.8), koje se razlikuju pa načinu rješavanja TSP problema na kojeg se
svodi VRP problem nakon grupiranja korisnika. Rezultati prve grupe rješenja koji započinju
lokalnu pretragu nad rezultatima prva izvedbe Sweep - NNH algoritma prikazani su u tablici
(Tablica 17).
LOKALNA
PRETRAGA VRIJEME
IZVRŠAVANJAUKUPNI
PUT POBOLJŠANJE
U ODNOSU NA 2OPT
2OPT 660 s 132564 m - Ukupno najbolji GB 1E5 3640 s 121523 m 8,3% Ukupno najbolji GB 1E6 43168 s 118689 m 10,5% Prvi najbolji FB 1E5 1436 s 125739 m 5,1% Prvi najbolji FB 1E6 9026 s 123608 m 6,8%
Tablica 17. Rezultati lokalne pretrage s početnim rješenjem prve izvedbe (Sweep - NNH algoritma)
Rezultati druge grupe rješenja koji započinju lokalnu pretragu nad rezultatima druge
izvedbe Sweep - NAH algoritma prikazani su u tablici (Tablica 18).
LOKALNA
PRETRAGA VRIJEME
IZVRŠAVANJAUKUPNI
PUT POBOLJŠANJE
U ODNOSU NA 2OPT
2OPT 3180s 135744 m - Ukupno najbolji GB 1E5 3016 s 125310 m 7,7% Ukupno najbolji GB 1E6 32202 s 125529 m 7,5% Prvi najbolji FB 1E5 697 s 130208 m 4,1% Prvi najbolji FB 1E6 2851 s 129842 m 4,3%
Tablica 18. Rezultati lokalne pretrage s početnim rješenjem druge izvedbe (Sweep - NAH algoritma)
Rezultati treće grupe rješenja koji započinju lokalnu pretragu nad rezultatima treće
izvedbe Sweep - FAH algoritma prikazani su u tablici (Tablica 19).
Doktorska disertacija mr. sc. Tonči Carić 7-93
LOKALNA PRETRAGA
VRIJEMEIZVRŠAVANJA
UKUPNIPUT
POBOLJŠANJE U ODNOSU
NA 2OPT 2OPT 357s 127698 m - Ukupno najbolji GB 1E5 3797 s 116614m 8,68% Ukupno najbolji GB 1E6 37463 s 116614 m 8,68% Prvi najbolji FB 1E5 922 s 121650 m 4,74% Prvi najbolji FB 1E6 3377 s 117881m 7,69%
Tablica 19. Rezultati lokalne pretrage s početnim rješenjem treće izvedbe (Sweep - FAH algoritma)
Svi rezultati Sweep porodice algoritama zajedno su prikazani na slici (Slika 31).
Usporedbom rezultata može se zaključiti da strategija lokalne pretrege "ukupno najbolji"
(Global Best) postiže bolje rezultate od strategije "prvi najbolji" (First Best) za sve slučajeve
gdje početno rješenje predstavlja rezultat nekog od Sweep algoritama. Nabolje početno
rješenje koje je dao Sweep - FAH algoritam bio je najbitniji preduvjet za dobre rezultate
lokalne pretrage. Grupiranje rezultata lokalne pretrage (Slika 31) upravo je određeno
početnim rješenjem, tako da iako ponekad lokalna pretraga poboljšava rezultat i do 10,5%
kao u slučaju (SNNH GB 1E6), (Tablica 17), prednost dobrog početnog rješenja nije moguće
nadoknaditi. Najbolji rezultat ukupno, među Sweep porodicom algoritama postiže SFAH GB
1E5 (Slika 32).
115000
120000
125000
130000
135000
140000
100 1000 10000 100000
Vrijeme izvođenja lokalne pretrage (s)
Uku
pna
udal
jeno
st (m
)
2opt SFAH
2opt SNAH
2opt SNNH
GB 1E5 SNNH
GB 1E5 SNAH
GB 1E5 SFAH
GB 1E6 SNAH
GB 1E6 SNNH
GB 1E6 SFAH
FB 1E5 SNNH
FB 1E5 SNAH
FB 1E5 SFAH
FB 1E6 SNAH
FB 1E6 SNNH
FB 1E6 SFAH
Slika 31. Rezultati sve tri izvedbe algoritma Sweep
Doktorska disertacija mr. sc. Tonči Carić 7-94
Slika 32. Izgled ruta koje generira Sweep SFAH GB 1E5 algoritam
Doktorska disertacija mr. sc. Tonči Carić 7-95
7.8. Izračun novih planova ruta Clark & Wright algoritmom
Clark & Wright algoritam poglavlje (4.1.5) kodiran u programskom jezikom Mars
unutar radnog okruženja Venera (Program 6.9) poglavlje (6.1.6), daje najbolje rezultate u
grupi početnih rješenja (Tablica 20) konstruktivnih heurističkih algoritama i početne 2OPT
pretrage kojom su rješenja pripremljena za daljnju lokalnu pretragu. Iz tablice (Tablica 20)
vidljivo je da Sweep algoritmi daju za oko 30% lošije rezultate od konstruktivnih heurističkih
algoritama, a da Clark & Wright-ov algoritam daje najbolje početno rješenje.
KONSTRUKTIVNI HEURISTIČKI ALGORITMI
VRIJEMEIZVRŠAVANJA
UKUPNI PUT
ODSTUPANJE U ODNOSU
NA C&W Umetanja najbližeg susjeda NNH 367 s 106917 5,5% Najbliže dodavanja NAH 670 s 101688 0,4% Clark & Wright C&W 1689 s 101306 - Sweep - NNH 660 s 132564 30,9% Sweep - NAH 3180 s 135744 34,0% Sweep - FAH 357 s 127698 26,1%
Tablica 20. Rezultati heurističkih algoritama koji predstavljaju početno rješenje za daljnju lokalnu pretragu
Nakon što se završi 2OPT pretraga nad početnim rješenjem dobivenim Clark &
Wright-ov algoritam, vrši se lokalnu pretragu gdje se varira broj iteracija i strategija pretrage
(Tablica 21).
LOKALNA PRETRAGA
VRIJEMEIZVRŠAVANJA
UKUPNIPUT
POBOLJŠANJE U ODNOSU
NA 2OPT 2OPT 1689 s 101306 m - Ukupno najbolji GB 1E5 2803 s 98739 m 2,53% Ukupno najbolji GB 1E6 27925 s 98739 m 2,53% Prvi najbolji FB 1E5 2555 s 98751 m 2,52% Prvi najbolji FB 1E6 2555 s 98751 m 2,52%
Tablica 21. Rezultati lokalne pretrage s početnim rješenjem Clark & Wright algoritma
Clark & Wright-ov algoritam daje najbolji početni rezultat za lokalnu λ pretragu, pa su
prosječni rezultati same pretrage očekivano najbolji (Slika 34). Svi planovi ruta imaju ukupno
prijeđeni put ispod 100000 m i praktički sve strategije završavaju u istom lokalnom
optimumu. Na slici (Slika 33) prikazano je najbolje rješenje dobiveno primjenom Clark &
Wright-ov algoritma koje od ukupno najboljeg rješenja (Slika 30) dobivenog GB 1E5
lokalnom pretragom s početnim rješenjem NAH algoritmom najbližeg dodavanja, iznosi
nešto manje od 1%.
Doktorska disertacija mr. sc. Tonči Carić 7-96
Slika 33. Izgled ruta koje generira Clark & Wright algoritam
Doktorska disertacija mr. sc. Tonči Carić 7-97
Kao i za grupu rezultata izvedenu iz početnog rješenja NNH algoritmom i za ovu grupu
rješenja (Tablica 21) karakteristična je neosjetljivost na promjenu parametra ograničenja
maksimalnog broja iteracija.
98500
99000
99500
100000
100500
101000
101500
1000 10000 100000
Vrijeme izvođenja lokalne pretrage (s)
Uku
pna
udal
jeno
st (m
)
2opt
GB 1E5 GB 1E6FB 1E5
FB 1E6
Slika 34. Rezultati Clark & Wright algoritma
Doktorska disertacija mr. sc. Tonči Carić 7-98
7.9. Analiza rezultata izračuna novih planova ruta
Novi planovi ruta za prikupljanje otpada u području Novog Zagreba izračunati su
primjenom heurističkih algoritama kodiranih uz programskom jeziku Mars unutar
programskog okruženja Venera. Poboljšanja koja donose novi planovi ruta za postojeće
pozicije prikupljanja odnose se na smanjenje ukupne duljine ruta i broja vozila potrebnih za
prikupljanje otpada. Svi primijenjeni modeli rješavanja uspijevaju smanjiti broj vozila za jedno
vozilo. Smanjenje broja vozila vidi se na planovima ruta po kojima se obavlja prikupljanje
otpada. Za plan ruta prikupljanja otpada prema radnim nalozima (Slika 26) potrebno je sedam
vozila. Kod svih predloženih planova (Slika 27, Slika 30, Slika 32 i Slika 33) isti posao je
moguće obaviti sa šest vozila. Modeli rješavanja razlikuju se po odabiru metoda (algoritama)
koji se ulančavaju tako da rješenje jedne metode postaje početno rješenje druge metode.
Izračun novih planova ruta odnosno model rješavanja izveden je na slijedeći način.
Nad podacima prikupljenim iz radnih naloga komunalnog poduzeća, korištenjem GIS alata
Miranda, stvorena je lista mjesta prikupljanja otpada i zahtijevanih kapaciteta vozila (Prilog 3),
te generirana prometna matrica najkraćih puteva. Matrice najkraćih puteva (Prilog 7) između
svaka dva mjesta prikupljanja otpada kao i od odlagališta i svakog od mjesta prikupljanja
odražava prometna obilježja prostora na kojem je potrebno obaviti odabrani posao. Tako
priređeni podaci preneseni su razmjenom datoteka u razvojno okruženje Venera. Za provjeru
postupka prikupljanja otpada u stvarnom prometnom okruženju izvedena je simulacija
prikupljanja na osnovi radnih naloga (Tablica 14).
Algoritmi izračuna ruta provjereni nad ispitnim zadacima kodirani u jedanaest programa
(od Program 6.1 do Program 6.11) korišteni su kao elementi modela rješavanja. Početno
rješenje generira se na osnovu konstruktivnih heurističkih algoritama: (umetanje najbližeg
susjeda, najbliže dodavanja, Clark & Wright, Sweep-NNH, Sweep-NAH i Sweep-FAH).
Kako bi se izvršila lako uočljiva poboljšanja (Slika 10) i postigli što bolji rezultati, nad svim
rezultatima konstruktivnih heurističkih algoritama izvršena je brza lokalna pretraga nad 2OPT
okolinom. Tako dobivena rješenja postaju početna rješenja za λ lokalnu pretragu s
parametrom (λ=2), gdje se variraju strategije prvi najbolji (FB) i ukupno najbolji (GB), te
parametar maksimalnog dozvoljenog broja iteracija 100.000 (1E5) i 1.000.000 (1E6). Upravo
ovako opisani slijed korištenja alata i algoritama odabran je za model rješavanja odabira plana
ruta prikupljanja otpada. U tablici (Tablica 22) izdvojeni su najbolji rezultati za pojedinu
Doktorska disertacija mr. sc. Tonči Carić 7-99
grupu dobivenih rješenja iz istog početnog rješenja odnosno najbolji rezultati za svaku od
tablica (Tablica 15, Tablica 16, Tablica 17, Tablica 18, Tablica 19 i Tablica 21).
POČETNA RJEŠENJA SKRAĆENO IME
STRATEGIJA PRETRAGE
BROJ ITERACIJA
VRIJEME IZVRŠAVANJA
UKUPNIPUT
Umetanje najbližeg susjeda NNH GB 1E5 5773 s 99672 Najbliže dodavanja NAH GB 1E5 1031 s 97804 Clark & Wright CW GB 1E5 2803 s 98739 Sweep-NNH SNNH GB 1E6 43168 s 118689 Sweep-NAH SNAH GB 1E5 3016 s 125310 Sweep-FAH SFAH GB 1E5 3797 s 116614
Tablica 22. Najbolja konačna rješenja lokalne pretrage za pojedine grupe početnih rješenja
Ovako objedinjeni rezultati (Tablica 22) svih najboljih rješenja daju jasnu sliku da za
proračun planova ruta za problem prikupljanja otpada u Novom Zagrebu treba odabrati
strategiju lokalne pretrage ukupno najbolji (GB), jer ni u jednoj grupi rješenja nisu postignuti
bolji rezultat primjenom strategije prvi najbolji (FB). Varirajući broj dozvoljenih iteracija u
jednom prolazu pretrage, samo se u jednom slučaju povećavanjem maksimalnog broja
dozvoljenih iteracija (i to kada se koriste rezultati početnog rješenja Sweep - NNH) dobivaju
najbolji rezultati za neko početno rješenje. S obzirom na predočene rezultate utemeljeno je
tvrditi da je, odabir strategije pretrage ukupno najbolji i ograničavanje maksimalnog broja
iteracija na 1E5 iteracija najbolji odabir parametara λ lokalne pretrage za zadatak prikupljanja
otpada u Novom Zagrebu. Analiza ovisnosti konačnog rješenja λ lokalne pretrage o
početnom rješenju može se provesti nad prikupljenim podacima (Tablica 23) i (Slika 35).
HEURISTIČKI ALGORITMI
POČETNA RJEŠENJA
ODSTUPANJEOD
CW GB1E5
VRIJEMEIZVR.
KRAJNJA RJEŠENJA
ODSTUPANJEOD
NAH GB1E5 NNH GB1E5 106917 5,5% 5773 s 99672 1,91% NAH GB1E5 101688 0,4% 1031 s 97804 - CW GB1E5 101306 - 2803 s 98739 0,96% SNNH GB1E6 132564 30,9% 43168 s 118689 21,35% SNAH GB1E5 135744 34,0% 3016 s 125310 28,12% SFAH GB1E5 127698 26,1% 3797 s 116614 19,23%
Tablica 23. Usporedba početnih rješenja lokalne pretrage, njihovih odstupanja od najboljih rješenja i konačnih rješenja
lokalne pretrage, te njihovih odstupanja od najboljih rješenja
Pregledom rezultata jasno se uočavaju dvije grupe rješenja. Prva grupa rješenja ima
odstupanja od najboljeg početnog rješenja za maksimalno 5,5% i rezultat je primjene
porodice jednoprolaznih konstruktivnih heurističkih algoritama (umetanje najbližeg susjeda,
najbliže dodavanja i Clark & Wright metoda). Druga grupa rezultata ima odstupanje od
Doktorska disertacija mr. sc. Tonči Carić 7-100
najboljeg početnog rezultata od 26% do 34% i rezultat je primjene porodice dvoprolaznih
sweep algoritama (Sweep - NNH, Sweep - NAH i Sweep - FAH). Za razliku od rezultata nad
standardnim ispitnim zadacima gdje su dvoprolazni Sweep algoritmi postizali bolje rezultate
ovdje se "neuspjeh" Sweep porodice algoritama može objasniti prostorno drugačijim
smještajem odlagališta (Slika 19) i (Slika 26). U (Tablica 23) jasno se vidi da je rezultat λ
lokalne pretrage jako ovisan o početnom rješenju, pa dvije navedene grupe rezultata osim
jasnog obilježja dvoprolaznosti, odnosno jednoprolaznosti dijele i velike razlike pripadnih
početnih rješenja.
95000
100000
105000
110000
115000
120000
125000
1000 10000 100000
Vrijeme izvođenja lokalne pretrage (s)
Uku
pna
udal
jeno
st (m
)
NNH NAH CW GB1E5
SNNH GB1E6
SNAH GB1E5
SFAH GB1E5
Slika 35. Odnos ukupna duljina ruta i vrijeme potrebno za izvođenje algoritma rutiranja
Na osnovi rezultata prikazanih na slici (Slika 35), najuspješniji plan ruta dobiva se
korištenjem modela rješavanja (NAH GB1E5), odnosno postupkom izračuna početnog
rješenja NAH algoritmom najbližeg dodavanja, poboljšanog lokalnom pretragom u 2OPT
susjedstvu i zatim lokalnom pretragom u λ susjedstvu, uz strategiju pretrage ukupno najbolji i
ograničenjem maksimalnog broja iteracija na 100.000 iteracija u jednom prolazu. Ovaj model
rješavanja skraćenog naziva NAH GB1E5 pozicioniran je u donjem lijevom kutu dijagrama
prikazanog na slici (Slika 35), što znači da taj model ima najmanje vrijeme izračunavanja 2803
sekunde i najmanju ukupnu udaljenost 97804 m za grupu od 6 vozila, što je za 29 posto
manje od prijeđenog puta izvedenog prema radnim nalozima odnosno 140 932 m za grupu
od 7 vozila (Tablica 14). Za izračun plana ruta ovog modela rješavanja u radnom okruženju
Venera potrebno je 46 minuta na standardom PC računalu karakteristika (Pentium 3, 800
MHz, 128 MB RAM, Windows 2000, razvojni alat J Builder X).
Doktorska disertacija mr. sc. Tonči Carić 8-101
8. Zaključak
Uvođenje potpuno novih tehnologija transporta nužnost je gospodarskog napretka, ali
se zbog skupih infrastrukturnih ulaganja takvi veliki tehnološki pomaci događaju rijetko.
Nasuprot tome, postoje mogućnosti poboljšanja postojećih rješenja koja ne iziskuju
infrastrukturne promjene, ali zahtijevaju rješavanje složenih matematičkih problema
metodama heurističkih optimizacija i upotrebu modernih računalskih tehnologija za
modeliranje i optimiranje.
Unapređenje tehnologije prijevoza pri distribuciji i prikupljanju dobara postavlja niz
raznovrsnih zahtijeva za njegovo ostvarenje. Djelotvorno unapređenje takvog transporta
ostvaruje se osmišljavanjem tehnološkog modela zasnovanog na korištenju geografskog
informacijskog sustava, matematičkih metoda optimiranja i sustava za upravljanje bazama
podataka.
Za rješavanje problema distribucije ili prikupljanja potrebno je opise tehnoloških
procesa približiti opisu matematičkog problema. Sam problem distribucije i prikupljanja
dobara razmatra se kao prošireni problem usmjeravanja vozila s kapacitivnim ograničenjima
(Capacitated Vehicle Routing Problem - CVRP). Taj se matematički kombinatorno
optimizacijski problem, osim za slučaj manjeg broja vozila, ne može općenito i egzaktno
riješiti u prihvatljivom vremenu. Do praktičnih rješenja dolazi se aproksimativnim metodama
koje su najčešće heurističke prirode. Objedinjavanjem geografskog informacijskog sustava,
matematičkih metoda i baza podataka značajno se povećava upotrebna vrijednost postojećih
optimizacijskih metoda odnosno algoritama, pošto se provjera novih planova ruta i simulacija
postojećih planova ruta može brzo izvesti. Kako bi se zahtjev za čestim modifikacijama i
provjerama uspješnosti metoda odnosno algoritama zadovoljio, predložen je novi programski
sustav za optimizaciju i planiranje ruta grupe vozila.
Tijekom istraživanje mogućih unapređenja tehnologije transporta izrađeno je razvojno
programsko okruženje za rješavanja problema usmjeravanja vozila primjenom heurističkih
algoritama (Venera). Razvojno okruženje povezano je sa geoinformacijskim programskim
sustavom (Miranda) i zajedno s njim čini cjelovit računalom podržani sustav. Heurističke
metode usmjeravanja vozila (Clark-Wright, Sweep, Nearest Neighbour Heuristic - umetanje
najbližeg susjeda, Farthest Addition Heuristic - dodavanje najudaljenijeg susjeda, Nearest
Addition Heuristic - najbliže dodavanje, 2OPT i λ lokalna pretraga) raspravljene su sa
stanovišta njihove upotrebljivosti u praktičnoj primjeni, ispitane na standardnim ispitnim
zadacima, ispitane s obzirom na njihovo međusobno povezivanje odnosno ulančavanje,
Doktorska disertacija mr. sc. Tonči Carić 8-102
ispitane s obzirom na variranje parametara i strategije pretrage, uspoređene s vodećim
heurističkim metodama i upotrebljene u realnom transportnom okruženju. Prilikom testiranja
algoritama nad standardnim ispitnim zadacima postignuta su dva iznimna rezultata.
Standardni ispitni zadatak E076-10e riješen je sa svega 6% odstupanja od najboljeg
objavljenog rješenja, a zadatak E051-05e odstupa svega 1,7% od najboljeg objavljenog
rješenja.
Osnovni modul okruženja Venere je programski jezik Mars sa sposobnošću izražavanja
transportnih veličina (KORISNIK, VOZILO, LUK) putem odgovarajućih tipova podataka.
Programsko okruženje i jezik predstavljaju izvorno rješenje za optimizaciju problema
usmjeravanja vozila s kapacitivnim ograničenjem (Capacitated Vehicle Routing Problem –
CVRP) i problema usmjeravanja vozila s ograničenjima vremenskih prozora (Vehicle Routing
Problem with Time Windows – VRPTW). Jedna od bitnih prednosti predloženog sustava je
uvođenje deklarativnog karaktera temeljne upravljačke strukture, strukture izbora. Ona na
neproceduralni način obavlja pretraživanje prostora rješenja problema usmjeravanja vozila,
korištenjem ugrađene podrške za heurističke optimizacije. Ovakvim pristupom upotrebe
novo razvijenog koncepta generiranja budućih ruta na analitičkim principima uspoređivanje
postojećih i potencijalno ostvarivih ruta, postavlja se dobra početna osnova za optimizaciju i
planiranje ruta grupe vozila u stvarnom vremenu.
Postavljena teza o učinkovitom unapređenju tehnologije prijevoza optimizacijom
usmjeravanja vozila primjenom heurističkih metoda provjerena je kroz upotrebu razvijenog
programskog sustava za usmjeravanje vozila s ograničenjima kapaciteta u realnom
transportnom prostoru poslovanja komunalnog poduzeća za prikupljanje otpada. Analiza
rezultata optimizacije postignute algoritmima sastavljenim u programskom jeziku Mars
izvedena je na temelju usporedbe ruta koje se obavljaju prema radnim nalozima u postojećem
sustavu vožnje i ruta dobivenih heurističkim algoritmima. Rezultati ukazuju na opravdanost
upotrebe predloženog modela sustava za planiranje ruta u cilju predlaganja novih ruta koje
obavljaju isti posao uz vidne uštede. Predloženi su novi planovi ruta u realnom okruženju
prikupljanja otpada u gradu koji ukazuju na moguće uštede i do 29 % u prijeđenom putu uz
smanjenje broja vozila.
Doktorska disertacija mr. sc. Tonči Carić 8-103
POPIS PRILOGA
PRILOG 1. Radni nalog vozilu za prikupljanje otpada
PRILOG 2. Prikaz informacija o prijeđenom putu, broju posluženih kontejnera i generiranih ruta u programskom okruženju Venera
PRILOG 3. Baza podatka o poziciji, adresi i broju kontejnera na mjestu prikupljanja otpada
PRILOG 4. Standardni ispitni zadatak E051-05e
PRILOG 5. Grafički prikaz ispitnog zadatka E051-05e
PRILOG 6. Definicija sintakse programskog jezika Mars(isječak)
PRILOG 7. Asimetrična matrica minimalnih puteva (isječak)
PRILOG 8. Popis slika, tablica, algoritama i programa
Doktorska disertacija mr. sc. Tonči Carić 8-104
PRILOG 1. Radni nalog vozilu za prikupljanje otpada
Doktorska disertacija mr. sc. Tonči Carić 8-105
PRILOG 2: Prikaz informacija o prijeđenom putu, broju posluženih kontejnera i generiranih ruta u programskom okruženju Venera
Doktorska disertacija mr. sc. Tonči Carić 8-106
PRILOG 3: Baza podatka o poziciji, adresi i broju kontejnera na mjestu prikupljanja otpada
Doktorska disertacija mr. sc. Tonči Carić 8-107
Doktorska disertacija mr. sc. Tonči Carić 8-108
Doktorska disertacija mr. sc. Tonči Carić 8-109
Doktorska disertacija mr. sc. Tonči Carić 8-110
PRILOG 4: Standardni ispitni zadatak E051-05e
E051-05e
VEHICLE NUMBER CAPACITY 50 160 CUSTOMER
CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
0 30 40 0 0 0 0 1 37 52 7 0 0 0 2 49 49 30 0 0 0 3 52 64 16 0 0 0 4 20 26 9 0 0 0 5 40 30 21 0 0 0 6 21 47 15 0 0 0 7 17 63 19 0 0 0 8 31 62 23 0 0 0 9 52 33 11 0 0 0 10 51 21 5 0 0 0 11 42 41 19 0 0 0 12 31 32 29 0 0 0 13 5 25 23 0 0 0 14 12 42 21 0 0 0 15 36 16 10 0 0 0 16 52 41 15 0 0 0 17 27 23 3 0 0 0 18 17 33 41 0 0 0 19 13 13 9 0 0 0 20 57 58 28 0 0 0 21 62 42 8 0 0 0 22 42 57 8 0 0 0 23 16 57 16 0 0 0 24 8 52 10 0 0 0 25 7 38 28 0 0 0 26 27 68 7 0 0 0 27 30 48 15 0 0 0 28 43 67 14 0 0 0 29 58 48 6 0 0 0 30 58 27 19 0 0 0 31 37 69 11 0 0 0 32 38 46 11 0 0 0 33 46 10 23 0 0 0 34 61 33 26 0 0 0 35 62 63 17 0 0 0 36 63 69 6 0 0 0 37 32 22 9 0 0 0 38 45 35 15 0 0 0 39 59 15 14 0 0 0 40 5 6 7 0 0 0 41 10 17 27 0 0 0 42 21 10 13 0 0 0 43 5 64 11 0 0 0 44 30 15 16 0 0 0 45 39 10 10 0 0 0 46 32 39 5 0 0 0 47 25 32 25 0 0 0 48 25 55 17 0 0 0 49 48 28 18 0 0 0 50 56 37 10 0 0 0
Doktorska disertacija mr. sc. Tonči Carić 8-111
PRILOG 5: Grafički prikaz ispitnog zadatka E051-05e
Doktorska disertacija mr. sc. Tonči Carić 8-112
PRILOG 6: Definicija sintakse programskog jezika Mars (isječak) ostale_lek_jed ::= Identifikator. identifikator ::= slovo {slovo | broj}. leksicka_jedinka ::= uvijet | petlja | selekcija | naredbe_luk | naredbe_zaslon |
ostale_naredbe. uvijet ::= ('IF' logicki_izraz) \ (blok) \ (['ELSE' Blok])\('ENDIF'). petlja ::= while | do | for. do ::= ('DO')\ (blok) \ ('WHILE' logicki_izraz). while ::= ('WHILE' logicki_izraz) \ (blok) \ ('ENDWHILE' ). for ::= ('FOR' var_iden '=' num_izraz 'TO' num_izraz) \ ( ['STEP' num_izraz]) \
('ENDFOR'). naredbe_luk ::= move | addarc | delarc. move ::= 'MOVE' vozilo ',' korisnik. selekcija ::= ('SELECT' (('CUSTOMER' korisnik |'VEHICLE' vozilo | 'ARC'
veza)// ',')) \ ('WHERE' {logicki_izraz}+ ) \ (['MINIMISE' funkcija_cilja | 'MAXIMISE' funkcija_cilja ])\('ENDSELECT').
addarc ::= 'ADDARC' vozilo ',' korisnik ',' korisnik '. delarc ::= 'DELARC' veza. leksi_jedin_broj ::=broj. Broj ::= {znamenka}. program ::= blok. blok ::= {Naredba}. naredba ::= leksicka_jedinka | pridruzivanje. pridruzivanje ::= id '=' vrijednost. vrijednost ::= id | broj. leksicka_jedinka ::= naredba | broj | string | korisnik | veza | vozilo. tip ::= broj | rijec | znak | string.
Doktorska disertacija mr. sc. Tonči Carić 8-113
PRILOG 7. Asimetrična matrica minimalnih puteva (isječak)
Doktorska disertacija mr. sc. Tonči Carić 8-114
PRILOG 8. Popis slika
Slika 1. CVRP, ograničenja i izvedeni problemi ............................................................................... 2-18 Slika 2. Kapacitivni rez .......................................................................................................................... 3-21 Slika 3. Ograničenje uopćene eliminacije ruta .................................................................................... 3-22 Slika 4. Primjer modela protoka tereta ................................................................................................ 3-23 Slika 5. Pristupi rješavanju problema usmjeravanja vozila ............................................................... 4-29 Slika 6. Riješenja FAH metodom za TSP problem ........................................................................... 4-31 Slika 7. Riješenja FAH metodom za VRP problem .......................................................................... 4-31 Slika 8. Odabir korisnika kojeg umećemo u NAH alogirtmu .......................................................... 4-32 Slika 9. Grupiranje korisnika po kriteriju minimalnog kuta ............................................................. 4-33 Slika 10. a) Ruta prije 2OPT zamjene b) Ruta nakon 2OPT zamjene ............................................ 4-35 Slika 11. Prikaz rada algoritma nad EN i SOM modelima .............................................................. 4-43 Slika 12. Razvojno programsko okruženje Venera ............................................................................ 5-46 Slika 13. Princip rada jezičnog tumača ............................................................................................... 5-47 Slika 14. Izgled radnog okruženja Venera ......................................................................................... 5-48 Slika 15. Sintaksa naredbe SELECT .................................................................................................... 5-50 Slika 16. Izgled rješenja ispitnog zadatka E051-05e a) prije i b) poslije 2OPT optimizacije ....... 6-60 Slika 17. Odnos ukupnih duljina ruta i vremena potrebnih za izvođenje algoritama .................. 6-68 Slika 18. Rješenja ispitnog zadatka E076-10e , Clark & Wright algoritma i 2OPT optimizacije 6-70 Slika 19. Rješenje standardnog ispitnog zadataka E051-05e Clark & Wright algoritmom .......... 6-73 Slika 20. Potrebni računarski resursi za unos stvarnih prostornih podataka i optimizaciju ruta 7-74 Slika 21. Područje Novog Zagreba na kojem su prikupljeni podaci ............................................... 7-77 Slika 22. ER model prikupljenih podataka.......................................................................................... 7-77 Slika 23. Faze pronalaženja novih planova ruta ................................................................................. 7-78 Slika 24. Aplikacija za unos i obradu podataka .................................................................................. 7-80 Slika 25. Prijenos podataka iz Mirande u Veneru .............................................................................. 7-82 Slika 26. Prikaz ruta koje se obavljaju prema radnim nalozima ....................................................... 7-85 Slika 27. Izgled ruta koje generira NNH algoritam umetanja najbližeg susjeda ............................ 7-88 Slika 28. Odnos ukupne udaljenosti i vremena izvođenja pretraga, umetanja najbližeg susjeda 7-89 Slika 29. Odnos ukupne udaljenosti i vremena izvođenja pretrage, najbližeg dodavanja ............ 7-90 Slika 30. Izgled ruta koje generira NAH algoritam najbližeg dodavanja ........................................ 7-91 Slika 31. Rezultati sve tri izvedbe algoritma Sweep ........................................................................... 7-93 Slika 32. Izgled ruta koje generira Sweep SFAH GB 1E5 algoritam .............................................. 7-94 Slika 33. Izgled ruta koje generira Clark & Wright algoritam .......................................................... 7-96 Slika 34. Rezultati Clark & Wright algoritma ..................................................................................... 7-97 Slika 35. Odnos ukupna duljina ruta i vrijeme potrebno za izvođenje algoritma rutiranja ....... 7-100
Doktorska disertacija mr. sc. Tonči Carić 8-115
Popis tablica
Tablica 1. CUSTOMER – transportna varijabla koja predstavlja korisnika ................................. 5-55 Tablica 2. VEHICLE – transportna varijabla koja predstavlja vozilo ........................................... 5-56 Tablica 3. ARC – transportna varijabla koja predstavlja luk usmjerenog grafa ............................. 5-56 Tablica 4. Standardni ispitni CVRP zadaci ......................................................................................... 6-57 Tablica 5. Rezultati izvođenja NNH i 2OPT algoritma nad standardnim ispitnim zadacima .... 6-59 Tablica 6. Rezultati izvođenja FAH algoritma nad ispitnim zadacima ........................................... 6-61 Tablica 7. Rezultati izvođenja NAH algoritma nad ispitnim zadacima .......................................... 6-64 Tablica 8. Rezultati izvođenja Sweep - NNH algoritma ................................................................... 6-65 Tablica 9. Rezultati izvođenja Sweep - NAH algoritma ................................................................... 6-66 Tablica 10. Rezultati izvođenja Sweep - FAH algoritma .................................................................. 6-67 Tablica 11. Rezultati izvođenja Sweep algoritama ............................................................................. 6-68 Tablica 12. Rezultati izvođenja Clark & Wright algoritma nad ispitnim zadacima ....................... 6-70 Tablica 13. Rezultati izvođenja Clark & Wright algoritma nad zadatkom E051-05e ................... 6-73 Tablica 14. Podaci o pređenom putu na odabranim rutama radnog naloga .................................. 7-83 Tablica 15. Rezultati lokalne pretrage , umetanja najbližeg susjeda ................................................ 7-87 Tablica 16. Rezultati lokalne pretrage s početnim rješenjem algoritma najbližeg dodavanja ...... 7-90 Tablica 17. Rezultati lokalne pretrage, (Sweep - NNH algoritma) .................................................. 7-92 Tablica 18. Rezultati lokalne pretrage, (Sweep - NAH algoritma) .................................................. 7-92 Tablica 19. Rezultati lokalne pretrage, (Sweep - FAH algoritma) ................................................... 7-93 Tablica 20. Rezultati heurističkih algoritama, početno rješenje za daljnju lokalnu pretragu ....... 7-95 Tablica 21. Rezultati lokalne pretrage s početnim rješenjem Clark & Wright algoritma ............. 7-95 Tablica 22. Najbolja konačna rješenja lokalne pretrage za pojedine grupe početnih rješenja ..... 7-99 Tablica 23. Usporedba početnih rješenja, odstupanja, konačnih rješenja, odstupanja rješenja .. 7-99
Doktorska disertacija mr. sc. Tonči Carić 8-116
Popis algoritama
Algoritam 4.1 Iterativna lokalna pretraga ........................................................................................... 4-34 Algoritam 4.2 Simulirano kaljenje ........................................................................................................ 4-38 Algoritam 4.3 Tabu pretraga ................................................................................................................. 4-40 Algoritam 4.4 Genetski algoritam ........................................................................................................ 4-41 Algoritam 4.5 Elastične mreže.............................................................................................................. 4-44
Popis programa
Program 6.1 Algoritam 2OPT lokalne pretrage ................................................................................. 6-58 Program 6.2 Algoritam NNH metode umetanja najbližeg susjeda ................................................. 6-59 Program 6.3 Algoritam FAH dodavanje ukupno najudaljenijeg susjeda ....................................... 6-62 Program 6.4 Algoritam NAH metode najbližeg dodavanja ............................................................. 6-63 Program 6.5 Zajednički dio koda porodice Sweep algoritama ........................................................ 6-64 Program 6.6 Sweep algoritam i modificirani NNH algoritam ......................................................... 6-65 Program 6.7 Sweep algoritam i modificirani NAH algoritam ......................................................... 6-66 Program 6.8 Sweep algoritam i modificirani FAH algoritam .......................................................... 6-67 Program 6.9 Clark & Wright algoritam ............................................................................................... 6-69 Program 6.10 Pretraga po λ okolini (Glolbal Best) ograničena brojem iteracija .......................... 6-71 Program 6.11 Pretraga po λ okolini (First Best) ograničena brojem iteracija ............................... 6-72 Program 7.1 Generiranje ruta prema radnim nalozima .................................................................... 7-84
Doktorska disertacija mr. sc. Tonči Carić 8-117
LISTA KRATICA
ACVRP (Asymetric CVRP) - Asimetrični VRP s ograničenjima kapaciteta
AVRPB (Asymetric VRP with Backhauls) - ACVRP s dostavom i povratnim prikupljanjem
BPP (Bin Packing Problem) - Problem naprtnjače
CCC (Capacity Cut Constrains) - Ograničenje kapacitivnog reza
CVRP (Capacitated VRP) - VRP s ograničenjima kapaciteta
DA (Deterministic Annealing) - Determinističko kaljenje
DVRP (Distance Constrained VRP) - Problem usmjeravanja vozila ograničen udaljenošću
DCVRP (Distance–Constrained CVRP) - VRP ograničen udaljenošću i kapacitetom
GA (Genetic Algorithm) - Genetički algoritmi
GSEC (Generalized Subtour Elimination Constrains) - Ograničenju uopćene eliminacije
NN (Neural Networks) - Neuronske mreže
SA (Simulated Annealing) - Simulirano kaljenje
SP (Set Partitioning) - Problem particioniranja skupa
TS (Tabu Search) - Tabu pretraga
TSP (Traveling Salesman Problem) - Problem trgovačkog putnika
VRP (Vehicle Routing Problem) - Problem usmjeravanja vozila
VRPB (VRP with Backhauls) - VRP s dostavom i povratnim prikupljanjem
VRPSPD (Simultaneous Pickup and Delivery) - VRP-u sa simultanom dostavom i prikupljanjem
Doktorska disertacija mr. sc. Tonči Carić 8-118
LITERATURA
KNJIGE
[1] Bodin L., Golden B., Assad A., Ball M.: Routing and Scheduling of Vehicles and
Crews – the State of the Art, Pergamon Press 1983.
[2] Christofides N., Mingozzi A., Toth P.: The Vehicle Routing Problem, Christofides N.,
Mingozzi A., Toth P., Sandi C., editors, Combinatiorial optimization, Wiley,
Chichester, UK, 1979, 12:568-581,1964.
[3] Ghaziri H.: Supervision in the self-organizing feature map: Application to the vehicle
routing problem, Osman I. H., Kelly J.P., editors, Meta-Heuristic: Theory and
Applications, Kluwer, Boston, MA, 641-660, 1996.
[4] Gold H., Kovačević D., Kavran Z.: Informatika u prometnom inženjerstvu 1, Fakultet
prometnih znanosti, Sveučilište u Zagrebu, Zagreb, 2001.
[5] Goldberg D.E.: Genetic Algorithms in Search, Optimization and Machine Learning,
Addison-Wesley, Reading MA, 1989.
[6] Holland J.H.: Adaptation in Natural and Artificial Systems, The University of
Michigan Press, AnnArbor, 1975.
[7] Kohonen T.: Self-Organization and Associative Memory, Springer, Berlin 1988.
[8] Martello S., Toth P.: Knapsack Problems: Algorithms and Computer Implementations,
Wiley, Chichester, UK, 1990.
[9] Pašagić H.: Matematičko modeliranje i teorija grafova, Fakultet prometnih znanosti,
Sveučilište u Zagrebu, Zagreb, 1998.
Doktorska disertacija mr. sc. Tonči Carić 8-119
[10] Srbljić S.: Jezični procesori 1: Uvod u teoriju formalnih jezika, auomata i gramatika,
Element, Zagreb, 2000.
[11] Toth P., Vigo D.: The Vehicle Routing Problem, SIAM, Philadelphia, 2002.
[12] Voss S., Woodruff D.: Optimization Software Class Libraries, Kluwer, Boston, 2002.
[13] Wren A.: Computers in Transport Planning and Operation, Ian Allan, London, 1971.
[14] Županović I.: Tehnologija cestovnog prijevoza, Fakultet prometnih znanosti,
Sveučilište u Zagrebu, Zagreb, 2002.
ČLANCI
[15] Balinski M., Quandt R.: On a integer program for a delivery problem, Operations
Research, 12:300-304,1964.
[16] Canen A.G., Scott L.G.: Bridging theory and practice in VRP, Journal of the
Operational Research Society 46-1, 1-9, 1995.
[17] Chang N., Lu H.Y.: GIS technology for vehicle routing and scheduling in solid waste
collection systems, Journal of Environmental Engineering 123-9, 901-911,1997.
[18] Christofides N., Elion S.: An Algorithm for the Vehicle Dispatching Problem,
Operational Research Quarterly 20, 309-318,1969.
[19] Clarke G., Wright J.W: Scheduling of vehicles from a central depot to a number of
delivery points, Operations Research 12, 568-581,1964.
[20] Dantzig G., Ramser J.: The Truck Dispatching Problem, Managment Science 6, 81-
91,1959.
Doktorska disertacija mr. sc. Tonči Carić 8-120
[21] Dueck G., Scheurer T.: Threshold accepting: A general purpose optimization
algorithm, Journal of Computational Physics 90, 161-175,1990.
[22] Dueck G., The great deluge algorithm and the record-to-record travel, Journal of
Computational Physics 104, 86-92,1993.
[23] Durbin R., Willshaw D.: An Analogue approach to the traveling salesman problem
using an elastic net method, Nature 326, 689-691, 1987.
[24] Fisher M.L.: Optimal solution of vehicle routing problem using k-trees, Operations
Research 42,626-642, 1994.
[25] Flood M.M, The Traveling Salesman Problem, Operations Research 4, 61-75,1953.
[26] Gavrin W.M., Crandall H.W., John J.B., Spellman R.A.: Applications of linear
programming in oil industry, Management Science, 3,407-430,1957.
[27] Gillett B., Miller L.: A heuristic algorithm for the vehicle dispatch problem,
Operations Research 22, 340-349, 1974.
[28] Glover F., Future Paths for Integer Programming and Links to Artificial Intelligence,
Computer & Operations Research 13, 533-549, 1986.
[29] Golden B.L., Magnanti T.L., Nguyen H.Q.: Implementing Vehicle Routing Algorithms,
Networks 7, 113-148, 1997.
[30] Hopfield J.J., Tank D.W.: Neural computation of decisions in optimization problems,
Biological Cybernetics 52, 141-152, 1985.
[31] Kirkpatrick S., Gelatt Jr C.D., Vecchi M.P.: Optimization by simulated annealing,
Science 220, 671-680, 1983.
[32] Laporte G.: The Vehicle Routing Problem: An overview of exact and approximative
algorithms, European Journal of Operational Research 59, 345-358, 1992.
Doktorska disertacija mr. sc. Tonči Carić 8-121
[33] Laporte G.: The traveling salesman problem: An overview of exact and approximate
algorithms, European Journal of Operational Research 59, 231-248, 1992.
[34] Miller D.L.: A matching based algorithm for capacitated vehicle routing problems,
ORSA Jounal on Computing 7,1:1-9, 1995.
[35] Nauer P.: Revised Report on the Algorithmic Language ALGOL 60, Communication
of the ACM 3, 5, 299-341, 1960.
[36] Osman I.H.: Metastrategy simulated annealing and tabu search for the vehicle routing
problem, Annals of Operations Research 41, 421-451, 1993.
[37] Rosenkrantz D.J., Sterans R.E., Lewis. II P.M.: An analysis for several heuristics for
the traveling salesman problem, SIAM J. Comput. 6, 563-581, 1977.
OSTALI IZVORI (doktorske disertacije, diplomski radovi, autorizirana predavanja, ...)
[38] Galić A.: Model poboljšanja prijevoznih procesa preusmjeravanjem vozila, Diplomski
rad, Fakultet prometnih znanosti, Sveučilište u Zagrebu, Zagreb, 2004.
[39] Gavish B., Graves S.: The traveling salesman problem and related problems, Working
Paper 7905, Graduate School of Management, University of Rochester, Rochester, NY
1979.
[40] Gavish B., Graves S., Scheduling and routing in transportation and distributions
systems: Formulations and new relaxation, Working Paper, Graduate School of
Management, University of Rochester, Rochester, NY 1982.
[41] Gold H.: Doprinos sigurnosti prometa primjenom inteligentnih informacijsko-
komunikacijskih modula, Doktorska disertacija, Fakultet prometnih znanosti
Sveučilišta u Zagrebu, 1994.
Doktorska disertacija mr. sc. Tonči Carić 8-122
[42] Kenny Z. Q.: Heuristic Methods For Vehicle Routing Problem with Time Windows,
Bachelor Degree Theses, National University of Singapore, 1999.
[43] Manger R.: Algoritmi za rješavanje NP-teških problema kombinatorne optimizacije,
Autorizirana predavanja poslijediplomskog kolegija, PMF Matematički odjel, Zagreb,
2004.
[44] Osman I.H., Christofides N.: Simulated Annealing and Descent Algorithms for
Capacitated Clustering Problem, Research Report, Imperial College, University of
London, Presented at EURO-X Conference, Beograd, Yugoslavia, 1989.
[45] Taillard E.D., Gambardella L.M., Gandreau M., Potvin J.Y.: Adaptive memory
programming: A unified view of metaheuristics, Research Rerport IDSIA/19-98
IDSIA, Lugano, Switzerland, 1998.
Doktorska disertacija mr. sc. Tonči Carić 8-123
Životopis
Rođen sam 26. srpnja, 1969. u Splitu. Maturirao sam u Matematičko-informatičkom
obrazovnom centru u Splitu. Studij na Elektrotehničkom fakultetu u Zagrebu završio sam 1993.
godine. Nakon studija radio sam u tvrtkama IN Servis i Teserak. Sudjelovao sam u pokretanju i
vođenju informatičkog časopisa BUG, gdje sam i danas aktivan.
Godine 1995. počeo sam raditi na Fakultetu prometnih znanosti na radnom mjestu
mlađeg asistenta na Katedri za informacije i komunikacije kod prof. dr. Frane Jelušića.
Magistrirao sam na Fakultetu elektrotehnike i računarstva 5. srpnja, 2000. Doktorski studij na
Fakultetu prometnih znanosti započeo sam 2001 godine. Sudjelujem u nastavi i znanstvenim
istraživanjima u području primjene elektrotehnike i računarstva u tehnologiji prometa.