tonci caric optimizacija prometnih procesa
DESCRIPTION
Optimizacija transportnih procesaTRANSCRIPT
-
1
OPTIMIZACIJA PROMETNIH
PROCESA
(nastavni tekst)
izv. prof. dr. sc. Toni Cari
Fakultet prometnih znanosti
Sveuilite u Zagrebu
2014.
-
2
OSNOVNI POJMOVI U TEORIJI GRAFOVA 4
1 UVOD 4
1.1 Definicija grafa 5
1.1.1 Usmjereni i neusmjereni grafovi 5
1.1.2 Stupanj vrha u grafu 7
1.2 Specijalni grafovi 9
OPTIMIZACIJE NA GRAFU 11
2 GIBANJE PO GRAFU 11
2.1 Teinski grafovi i njihov matrini prikaz 11
2.2 Definicija etnje, staze, puta i ciklusa 13
2.3 Eulerovi i Hamiltonovi grafovi 14
2.4 Problem kineskog potara 16
2.4.1 Definicija problema kineskog potara 16
2.4.2 Eulerova tura i problem kineskog potara 16
2.4.3 Rjeavanja problema kineskog potara dodavanjem umjetnih bridova 18
2.4.4 Mogui naini dodavanja umjetnih bridova 19
2.4.5 Algoritam rjeavanja problema kineskog potara 20
2.4.6 Hierholzerov algoritam pronalska Eulerove ture 22
2.5 Razapinjue stablo 23
2.5.1 Kruskalov algoritam 24
2.5.2 Primov algoritam 24
2.6 Problem trgovakog putnika 25
2.7 Metode rjeavanja problema trgovakog putnika 27
2.7.1 Heuristika najblieg susjeda 27
2.7.2 Umetajue heuristike 28
2.8 Egzaktne metode 29
2.9 Aproksimacijske metode 29
2.10 Heuristike metode 30
2.11 Metaheuristike metode 30
2.11.1 Simulirano kaljenje 31
2.11.2 Genetski algoritmi 31
2.11.3 Optimizacija kolonijom mrava 31
2.11.4 Optimizacija rojem estica 31
-
3
2.12 Iterativna lokalna pretraga 32
2.12.1 Operatori poboljanja kod lokalne pretrage 33
2.12.2 Bijeg iz lokalnog optimuma 34
LOKACIJSKO ALOKACIJSKI PROBLEM 36
3 ODREIVANJA LOKACIJE OBJEKATA UNUTAR PROMETNE MREE 36
3.1 Povijesni razvoj 36
3.2 Weberov problem 38
PROBLEM PAKIRANJA U POSUDE 40
4 UVOD 40
4.1 Definicija problema 40
4.2 Jednodimenzionalni problem pakiranja u posude 41
4.3 Problem dvodimenzionalnog pakiranja u posude 41
4.3.1 Heuristiki pohlepni jednofazni algoritmi 41
4.3.2 Strategije popunjavanja polica 42
4.3.3 Jedno-fazni algoritmi za rjeavanje problema dvodimenzionalnog pakiranja u posude 43
4.3.4 Dvofazni algoritmi za rjeavanje problema 2D pakiranja u posude 45
PROBLEM RASPOREIVANJA 49
5 UVOD 49
5.1 Matematika interpretacija problema 49
5.1.1 Problem rasporeivanja poslova na identine strojeve 50
5.1.2 Rasporeivanje poslova na tekuoj vrpci 51
5.1.3 Problem rasporeivanja (notacija) 51
5.1.4 Linerani program za (Pm|prmp|Cmax) 53
-
4
Osnovni pojmovi u teoriji grafova
1 UVOD
Za prikazivanje pojedinih geografskih lokacija i veza meu lokacijama esto se koriste toke i
poveznice meu njima. Dvije toke i linija koja povezuje te toke mogu na primjer predstavljati
direktnu zranu liniju izmeu dva grada. Upotrebna vrijednost strukture gdje toka predstavlja neku
geografsku lokaciju, a linija na primjer put od jedne do druge geografske lokacije dobra je motivacija
za uvoenje matematike strukture koju nazivamo graf.
Prvi rad u kojem se koristi graf za prikaz odnosa geografskih lokacija i njihovih poveznica
objavio je 1741. vicarski matematiar Leonhard Euler (1707.1783.) u asopisu Commentarii
academiae scientiarum Petropolitanae, u kojem je formulirao i rijeio problem Sedam Knigsberkih
mostova. Problem koji je rjeavao Leonhard Euler je interesantan zbog pristupa u kojem je za
rjeenje problema bitna samo enumeracija objekata problema i njihova meusobna povezanost, a
ne stvarne topoloke dimenzije postavljenog problema. Problem Sedam Knigsberkih mostova je
nastao kada su stanovnici Kaliningrada (tadanjeg Knigsberga) pokuavali pronai nain da prijeu
svih sedam mostova tako da svaki most prijeu tono jedanput i da se vrate u polaznu toku, ali
bezuspjeno. Sami mostovi su izgraeni s obje strane rijeke Pregel i na dva rijena otoka (slika1.1
Problem Sedam Knigsberkih mostova ). Sedam mostova povezuje obje strane rijeke i otoke. Euler
je dokazao da na eljeni nain nije mogue obii svih sedam mostova.
1.1 Problem Sedam Knigsberkih mostova
Euler je problem pojednostavnio tako da je kopna i otoke zamijenio je tokama A, B, C, D i
povezao ih linijama koje u stvarnosti predstavljaju mostove. Na taj nain dobio je strukturu koju
danas nazivamo graf, 1.2.
-
5
1.2 Graf naglaava odnose povezanost objekata u prostoru
1.1 Definicija grafa
Pojam grafa je vrlo openit. Osnovna karakteristika grafa je da se sastoji od dva skupa. Svaki graf
definiran je skupovima V i E. Skup V (engl. Vertex) predstavlja vrhove grafa. Skup E (engl. Edge)
predstavlja bridove grafa. Graf G definiran je skupovima V i E. Skupovi V i E imaju konaan broj
elemenata.
DEFINICIJA 1.1
Graf je ureena trojka G=(V,E,), gdje je V=V(G) neprazan skup ije elemente nazivamo
vrhovima, E=E(G) je skup disjunktan s V, ije elemente nazivamo bridovima, a je funkcija koja
svakom bridu e iz E pridruuje par {u,v}, ne nuno razliitih vrhova iz V. Graf skraeno oznaavamo
G=(V,E) ili samo G.
, 1.1
Graf G (1.1) , sastoji se od skupa vrhova V i skupa parova vrhova koje nazivamo bridovi. Ako
su u i v dva vrha, tada par {u,v} predstavlja brid e. Kaemo da e povezuje vrhove u i v ili da je e brid
izmeu vrhova u i v. Kaemo da su vrhovi u i v incidentni bridu e i da je brid e incidentan i vrhu u i
vrhu v.
Ako se vrhovi u i v u paru {u,v} ne razlikuje, tada takav brid nazivamo petlja. Za par vrhova u i
v kaemo da su susjedni ako postoji brid e kojih ih povezuje. Dva brida ili vie bridova koji povezuju
iste vrhove zovu se viestruki bridovi.
1.1.1 Usmjereni i neusmjereni grafovi
Bridovi grafa mogu biti usmjereni ili ne. Ako su svi bridovi u grafu usmjereni, tada takav graf
zovemo usmjereni graf, u suprotnom, zovemo ga neusmjereni. U grafu, za koji inicijalno
pretpostavljamo da je neusmjeren, brid od vrha u do vrha v identificira se s bridom od vrha v do vrha
u. U digrafu (skraeno za usmjereni graf), ta dva smjera smatraju se razliitim bridovima.
DEFINICIJA 1.2
Usmjereni graf (digraf) je ureena trojka G=(V,E,), gdje je V=V(G) neprazan skup ije elemente nazivamo vrhovima, E=E(G) je skup usmjerenih bridova, a funkcija je funkcija incidencije, koja svakom bridu e iz E pridruuje ureeni par (u,v), ne nuno razliitih vrhova iz V, koje brid e spaja. Vrh u je poetni, a v krajnji vrh od e.
-
6
Jednostavni graf je graf koji ne sadri petlje ni viestruke bridove. Multigraf je graf koji
dozvoljava viestruke bridove, ali ne dozvoljava petlje. Pseudograf je (multi)graf koji dozvoljava
viestruke petlje. Odnosi izmeu jednostavnih grafova, multigrafova i pseudografova prikazani su na
slici 1.3.
1.3 Vrste grafova ovisno o tome da li dozvoljavaju petlje i viestruke bridove
Primjer 1.1
Na slici 1.5 prikazan je usmjereni, a na slici 1.4 neusmjereni graf s jednakim skupom vrhova
V, ali razliitim skupom E.
Slika 1.4
1.5 Primjer usmjerenog i neusmjernog grafa
-
7
Primjer 1.2
Na slici 1.6 prikazan je jedan multigraf u kojem postoje viestruki bridovi, a na slici
pseudograf koji osim viestrukih bridova ima i jednu petlju.
1.6 Primjer grafa koji je multigraf
1.7 Primjer grafa koji je pseudograf
1.1.2 Stupanj vrha u grafu
Stupanj vrha u grafu predstavlja broj bridova koji su incidentni s vrhom iji stupanj mjerimo
kao to je prikazano na slici 1.8. Slikovito stupanj vrha moemo odrediti tako da oko svakog vrha
opiemo krunicu malog radijusa, broj presijecanja takve krunice s bridovima predstavlja stupanj
vrha.
1.8 Broj presijecanja krunice s bridovima predstavlja stupanj vrha
-
8
U raunanju stupnja vrha koji ima petlju, petlja doprinosi poveanju stupnja vrha za dva.
DEFINICIJA 1.3
Stupanj vrha (ili valencija vrha) grafa G je broj dG(v) bridova u G incidentnih sa v.
Za jednostavne grafove G stupanj vrha je jednak broju susjednih vrhova vV(G) i esto se definira kao
kardinalni broj skupa NG(v), pri emu je NG(v) skup svih susjeda od v. Ako je dG(v) jednak 0 onda
kaemo da je vrh v izolirani vrh grafa G. est je sluaj da umjesto izraza V(G) koristimo samo V, a
umjesto dG(v) samo d(v).
TEOREM 1.1
Za svaki graf vrijedi:
= 2||
DOKAZ:
Stupanj svakog vrha denira se kao broj bridova incidentnih tom vrhu. Kako svaki brid ima dva
kraja, broj stupnjeva u grafu mora biti jednak dvostrukom broju bridova.
TEOREM 1.2
U svakom je grafu broj vrhova neparnog stupnja paran broj.
DOKAZ:
Prema teoremu TEOREM 1.1 suma svih stupnjeva u grafu je paran broj. Neka su V1 i V2 redom
skupovi vrhova neparnog i parnog stupnja u zadanom grafu i neka vrijedi V1 U V2 = V. Tada je:
+
= = 2||
Kako je broj paran, slijedi da i mora biti paran broj pa je || paran broj.
TeoremTEOREM 1.2 esto se zove i lema rukovanja (engl. hadshaking lemma) jer je dokaz jednostavno
prikazati situacijom u kojoj se neparni broj ljudi meusobni uvijek rukuje paran broj puta.
-
9
1.9 Lema rukovanja
1.2 Specijalni grafovi
Prazan graf je graf u kojem nema bridova, 1.10.
1.10 Prazan graf
Put sa n vrhova Pn je jednostavni graf definiran sa skupom vrhova V(Pn)={v1,v2,,vn} i skupom bridova
E(Pn)={ {vi,vi+1} : i=1,,n-1 }, 1.11
1.11 Graf put
Ciklus s n vrhova Cn je jednostavni graf definiran s vrhovima V(Cn)={v1,v2,,vn} i skupom bridova
E(Cn)={ { v1,v2}, { v2,v3}, , {vn-1,vn}, {vn,v1}}, 1.12
-
10
1.12 Graf ciklus
Potpuni graf je jednostavan graf u kojem je svaki par vrhova spojen bridom. Oznaka za potpuni graf s
n vrhova je Kn , 1.13.
1.13 Potpuni graf
Primjer 1.3
Neka je G=(V,E) potpuni graf. Skup V sastoji se od vrhova {0,1,2,3}. Skup bridova potpunog
grafa moe se predstaviti u opem sluaju:
E={(i,j): i,j V, i
-
11
Optimizacije na grafu
2 Gibanje po grafu
Jednostavnost strukture grafa omoguava da praktine probleme u prometu i transportu
moemo preslikati u probleme gdje je stvarni svijet prometnica apstrahiran u grafove, a na grafovima
moemo primijeniti poznate dokazane teoretske spoznaje i algoritme. U zranom prometu simetrini
teinski graf dobro oslikava kvantitativne odnose parametra putovanja kao to su vrijeme putovanja,
udaljenosti ili cijene transporta izmeu zranih luka. Iste te parametre kao to su udaljenost, vrijeme i
cijena transporta u cestovnom prijevozu u visoko urbaniziranim podrujima velikih gradova ne
moemo pohraniti u simetrine matrice koje opisuju simetrini graf.
Za prikaz jednosmjernih ulica i kompleksne prometne regulacije simetrini graf nije dobro
rjeenje. Visoki nivo asimetrije udaljenosti izmeu toke A i toke B, gdje je u jednom smjeru
udaljenost manja nego u drugom rjeava se na nain da teinske grafove opiemo asimetrinim
matricama i pripadajuim grafovima.
Neovisno o tome da li je graf simetrian ili ne, struktura grafa jo uvijek je najbolja podloga za
prikaz prostornih odnosa na kojem se odvija prijevoz robe ili transport putnika.
2.1 Teinski grafovi i njihov matrini prikaz
Neka zrakoplovni prijevoznik povezuje est gradova C1, C2, C3, C4, C5 i C6, Slika 2.1. Cijena
prijevoza od grada Ci to Cj dana je kao lan (i,j) matice (2.1) . Na primjer cijena karte od C1 do C2 iznosi
250, ali od C1 do C6 iznosi . Takve cijene su vidljive u matrici (2.1) gdje je lan matrice (1,2) jednak 250, a lan matrice (1,6) ima iznos . S obzirom da je udaljenost od C1 do C2 jednaka udaljenosti od C2 do C1 i lanovi matrice (1,2) i (2,1) imaju jednaku vrijednost, kao i lanovi (1,6) i (6,1). Matrica (2.1)
je simetrina matrica.
Slika 2.1
-
12
0 250 200 180 250 0 300 250 200 0 350 300 300 350 0 180 250 300 0 180 180 0
2.1
DEFINICIJA 2.1
Teinski graf je ureeni par (G, ), gdje je G graf i : E(G) funkcija koja svakom bridu e iz G pridruuje nenegativni broj (e). Vrijednost (e) nazivamo teinom brida e.
Za matrini prikaz grafova najee se koristi matrica susjedstva (teinska matrica) nalik matrici
(2.1).
Za prikaz grafova, koji nemaju teine moe se koristiti matrica incidencije koja se tvori tako da
su u redcima vrhovi, a u stupcima bridovi. Ako je vrijednost elementa matrice 1, tada je taj vrh
incidentan (povezan) s tim bridom, ako incidencija vrha i brida ne postoji, vrijednost elemenata
matrice je 0 tj.
G=(V,E) preslikavanje A:V x E -> {0,1}
Ova vrsta prikaza je rjee u upotrebi.
U sluaju da udaljenosti izmeu dvije prostorne lokacije nisu jednake, ve ovise o smjeru kao na
slici 2.2, nuno je ovakve odnose prikazati asimetrinim usmjerenim grafom. Prostorno prometni
odnosi ove dvije lokacije opisuju se asimetrinim usmjerenim grafom i asimetrinom matricom Slika
2.3.
2.2 Primjer kada udaljenosti izmeu dvije lokacije ovise o smjeru
-
13
0 22003200 0
Slika 2.3
2.2 Definicija etnje, staze, puta i ciklusa
esto je na grafu potrebno pronai najkrai put izmeu dva vrha. Ovisno o karakteristikama
grafa, mogue je da traeni put niti ne postoji. Da bi mogli prikazati gibanje po grafu definiramo
openiti pojam etnje (engl. walk). etnja izmeu vrhova grafa v i q je konani niz vrhova i bridova
koji alterniraju npr. ( v=v0, e1, v1, e2, v2, e3, , en, vn=q ) i moemo je zapisati i na krai nain kao
v0e1v1e2v2e3 envn. etnja je zatvorena ako je v = q. Broj bridova u etnji predstavlja duinu etnje.
DEFINICIJA 2.2
etnja u grafu G je konaan niz W = v0e1v1e2v2 . . . gdje se izmjenjuju vrhovi v i bridovi e, na nain da
su krajevi od ei vrhovi vi-1 i vi, za svaki i, 1 i k.
DEFINICIJA 2.3
Ako su svi bridovi u etnji W meusobno razliiti, onda se W zove staza.
DEFINICIJA 2.4
Ako se etnja W sastoji od meusobno razliitih bridova i vrhova, onda se W zove put.
DEFINICIJA 2.5
etnja u kojoj su svi bridovi i vrhovi osim poetnog i krajnjeg razliiti zove se ciklus.
Primjer 2.1
Slika 2.4
-
14
Za etnju W kaemo da je (v0, vk) etnja ili etnja od poetnog vrha v0 do krajnjeg vrha vk. Sam indeks
k, predstavlja duljinu etnja. Na slici Slika 2.4 prikazani su osim etnje, primjer staze (engl. trail),
primjer puta (engl. path) i primjer ciklusa.
2.3 Eulerovi i Hamiltonovi grafovi
Kako je i opisano u prethodnom poglavlju, problem sedam Knigsberkih mostova je nastao
kada su stanovnici Kaliningrada (tadanjeg Knigsberga) pokuavali pronai nain da prijeu svih
sedam mostova tako da svaki most prijeu tono jedanput i da se vrate u polaznu toku, ali
bezuspjeno. Sedam mostova povezuje obje strane rijeke i otoke. Ako upotrebimo do sada definirane
pojmove, ovaj problem moemo postaviti i na ovaj nain: Postoji li u zadanom multigrafu staza koja
sadri sve njegove bridove?, Slika 2.5.
Slika 2.5
Euler je svoje zakljuke prezentirao na Akademiji znanosti u St. Petersburg 1735. godine.
Formirao je tri glavna zakljuka: Ako je bilo koje kopno (obala ili otok) povezano s nekim drugim
kopnom neparnim brojem mostova, tada kruno putovanje koje prelazi svaki most tono jedanput
nije mogue. Da bi zavrio kruno putovanje oko obala prelazei svaki most tono jedanput, za svaki
ulazni most mora postojati jedan izlazni.
Ako je broj mostova neparan za tono dva kopna, tada je putovanje koje prelazi svaki most tono
jedanput mogue samo ako putovanje poinje u jednom, a zavrava u drugom kopnu.
Ako nema kopna povezanog s neparnim brojem mostova putovanje moe poeti iz bilo kojeg
kopna i zavriti u tom istom kopnu. Danas se ovi zakljuci oituju na ovaj nain:
DEFINICIJA 2.6
Eulerova staza grafa G je staza koja prolazi svakim bridom od G, znai da sadri svaki brid tono
jednom.
DEFINICIJA 2.7
Eulerova tura je zatvorena Eulereva staza
DEFINICIJA 2.8
Graf G je Eulerov ako doputa Eulerovu turu.
-
15
Za sluaj Sedam knigsberkih mostova, odnosno za multigraf nije mogue pronai Eulerovu turu
jer se ne moe nai zatvorena Eulerova staza.
Slika 2.6
TEOREM 2.1
Povezan graf G je Eulerov ako i samo ako su svi vrhovi od G parnog stupnja.
Parni stupanj vrha prema (DEFINICIJA 1.3) znai da se svaki vrh nalazi na parnom broju bridova.
Povezani graf je graf u kojem za svaka dva vrha na grafu postoji put koji iz jednog vrha vodi u drugi.
Ako prebacimo fokus s bridova na vrhove, moemo definirati :
DEFINICIJA 2.9
Hamiltonov put na grafu G je put koji sadri sve vrhove.
DEFINICIJA 2.10
Hamiltonov ciklus na G je ciklus na G koji sadri sve vrhove do G.
DEFINICIJA 2.11
Graf G je Hamiltonov ako sadri Hamiltonov ciklus.
Ne postoji direktna veza izmeu Hamiltonovog i Eulerovog grafa.
-
16
2.4 Problem kineskog potara
Potar raznosi potu u jednom dijelu grada (oblasti). Potar ima zadatak obii sve ulice u
oblasti barem jednom. Obilazak svih ulica moe napraviti vie ili manje dobro. Postavlja se
optimizacijski problem, kojim putem treba potar raznosti pisma, a da bude to uspjeniji. Preciznije:
Kojom rutom potar treba obii svoju oblast na nain da barem jednom obie svaku ulicu i da pri
tome prijee to manji put i da se vrati na mjesto odakle je krenuo?.
2.4.1 Definicija problema kineskog potara
Ovakav problem moemo postaviti za razne djelatnosti kao to su: odreivanje ruta vozila za
pranje ulica, sakupljanje otpada, prijevoz uenika ili drugih komunalnih slubi poput zimskih slubi
(ienja snijega).
Za neusmjereni graf G=(V,E) gdje su duine bridova d(i,j)>0, (i,j E)problem kineskog potara
moemo formulirati, tako da vrijedi
, ,
2.1
gdje je sij broj prolazaka bridom.
Slijedom prethodnih definicija moemo kazati da je graf Eulerov ako sadri Eulerovu turu.
Eulerova tura je zatvorena Eulerova staza. Eulerova staza prolazi svakim bridom grafa, znai da sadri
svaki brid tono jednom. Ako na Eulerovom grafu rjeavamo problem kineskog potara, moemo
zakljuiti da je rjeenje trivijalno jer predstavlju Eulerovu turu. Suma duljina bridova grafa je duljina
put koju treba prei potar jer e posjetiti sve bridove samo jednom i vratiti se u poetni vrh grafa.
Ako graf nije Eulerov tada potar treba posjetiti neke od bridova vie puta.
2.4.2 Eulerova tura i problem kineskog potara
Promotrimo tri razliita grafa. Pronalazak Eulerove ture moemo poistovjetiti s pokuajem
crtanja grafa na nain da u jednom potezu bez podizanja olovke nacrtamo bridove grafa. Za prvi graf
na slici (2.7 Graf 1) nije mogue pronai redoslijed crtanja bridova na nain da emo sve bridove
nacrtati u jednom potezu bez podizanja olovke s papira. Moemo zakljuiti da se graf na slici (2.7 Graf
1) nije Eulerov graf.
2.7 Graf 1
-
17
Za drugi graf slika (2.8 Graf 2) mogue je nacrtati sve bridove u jednom potezu olovke bez
podizanja olovke s papira, ali poetak i kraj crtanje nikada nisu ista toka, pa ni ovaj graf nije Eulerov
graf.
2.8 Graf 2
Za trei graf na slici (2.9 Graf 3) mogue je nacrtati sve bridove u jednom potezu olovke bez
podizanja olovke s papira. Graf 3 je Eulerov graf. U emu se razlikuju izmeu grafova (Graf 1, Graf 2 i
Graf 3) ?
2.9 Graf 3
Ako usporedimo stupnjeve vrhova u svakom od grafova vidimo pravilonost koja je povezana s
teoremom (TEOREM 2.1). U tablici (Tablica 2.1) je vidljivo da svi vrhovi Grafa 3 imaju paran stupanj, pa
je mogue nacrtati Eulerovu turu odnosno u neprekinutom nizu posjetiti sve bridove bez ponovnog
posjeivanja nekog od bridova i vratiti se u poetni vrh. Kod Grafa 2 mogue je napraviti Euleorovu
stazu, ali ne i turu. Razlika u turi i stazi je to su kod staze poetni i zavri vrh razlikuju i to su kod
Grafa 2 upravo vrhovi s neparnim stupnjevima. Kod Grafa 1 nije mogue napraviti ni Eulerovu stazu
niti turu.
-
18
Tablica 2.1
VRHOVI Grafa 1
Stupnjevi VRHOVI
Grafa 2 Stupnjevi
VRHOVI Grafa 3
Stupnjevi
A 3 A 3 A 4
B 3 B 4 B 4
C 3 C 4 C 4
D 3 D 3 D 4
E 2 E 2
F 2
2.4.3 Rjeavanja problema kineskog potara dodavanjem umjetnih bridova
Pretpostavimo da je graf na kojem potar treba razdijeliti potu graf na slici (Slika 2.6). Brid
odgovara ulici gdje se pota rasporeuje u potanske sanduie a vrh je mjesto gdje potar moe
promijeniti smjer i krenuti u neku novu ulicu koja je povezana s prethodnom. Potar mora proi
svakom ulicom, ali eli minimizirati broj ponovnih prolazaka kroz ulicu koji se konkretno za graf (Slika
2.6) ne mogu izbjei jer graf nije Eulerov. Da bi odredili najkrai put potrebno je uzeti u obzir duljinu
ulica ili vrijeme potrebno za prolazak tim ulicama, pa graf (Slika 2.6) moramo obogatiti parametrima
(duljinom ili vremenom) i na taj nain dobiti teinski graf (DEFINICIJA 2.1).
Da bi rijeili problem kineskog potara na grafu koji nije Eulerov, potrebno je proiriti postojei
graf umjetnim bridovima. Dodavanjem tih novih umjetnih bridova stupanj vrhova se moe dovesti do
parnog broja. Tako bi graf (Slika 2.6) preoblikovali u novi graf (Slika 2.10) koji je Eulerov i koji ima
Eulerovu turu. U novom grafu mogue su traene potareve staze, npr. staza (DEFINICIJA 2.3) W (2.2).
W = de4ae1be2ae3be6ce7be5de8be9d 2.2
Slika 2.10
-
19
U stazi W (2.2) koriste se oba umjetno dodana brida e1 i e9 koji omoguavaju parnost svih
vrhova i pretvaraju graf, (Slika 2.6) u Eulerov graf (DEFINICIJA 2.8) odnosno u graf, (Slika 2.10).
2.4.4 Mogui naini dodavanja umjetnih bridova
Da bi potar putovao stazom (definicija 2.3) na grafu koji nije Eulerov i vratio se na poetni vrh
od kojeg je zapoeo putovanje, nueno je umetanje novih umjetnih bridova izmeu pojedinih vrhova.
Broj novo umetnutih bridova izmeu dva vrha odgovara broju ponovnih prolazaka kroz originalni brid
izmeu ta dva vrha. Svaki novo umentuti brid postoji iskljuivo zato da bi prebrojali prolaske kroz
originalni brid. Na koliko je naina mogue dodati umjetne bridove, a da oni zadovolje opisanu
motivaciju umetanja?
Umjetni brid povezuje vrhove neparnog stupnja. Ako imamo dva takva vrha u grafu, mogue ih
je povezati samo na jedan nain. S obzirom na teorem TEOREM 1.1 koji kae da je u svakom grafu broj
vrhova neparnog stupnja paran broj, sljedei mogui broj vrhova neparnog stupnja je etiri. Za Graf 1
na slici (2.7 Graf 1) moguu su tri naina povezivanja etiri vrha neparnog stupnja koji su prikazani na
slici 2.11.
2.11 Naina povezivanja etiri vrha Grafa 1
Nadalje za est vrhova neparnog stupnja, broj mogui naina povezivanje vrhova moemo
prebrojati i uoiti pravilonst. Za est vrhova ABCDEF neparnog stupnja, vrh A moemo povezati sa
preostalih pet, a preostalih etiri moemo povezati na tri naina. Znai za est vrhova neparnog
stupnja mogue je 5 x 3 x 1 naina povezivanja. Slino razmatranje moemo provesti za osam i vie
vrhova neparnog stupnja. Pravilnost moemo uoiti promatrajui tablicu (Tablica 2.2).
Tablica 2.2
Broj vrhova neparnog stupnja Broj moguih povezivanja parova vrhova
2 1
4 3 x 1 = 3
6 5 x 3 x 1 = 15
8 7 x 5 x 3 x 1 = 105
10 9 x 7 x 5 x 3 x 1 = 945
n (n-1) x (n-3) x (n-5) x ... x 1
-
20
2.4.5 Algoritam rjeavanja problema kineskog potara
Da bih pronali turu potara s minimalnom ukupnom udaljenou potreban je algoritam koji
e za sluaj da graf nije Eulerov umetnuti, na najbolji mogui nain, umjetne bridove. Koraci potrebni
za rjeavanje problema kineskog potara na nusmjernom grafu prikazani su u algoritmu (Algoritam
2.1)
Algoritam 2.1. Algoritam rjeavanja problema kineskog potara
1: Prebroji sve vrhove neparnog stupnja 2: Prebroji sva mogua povezivanja parova vrhova neparnog stupnja 3: Pronai povezivanje vrhova s najmanjom teinom umjetnih bridova 4: Na originalni graf dodaj pronaeno povezivanje s minimalnom teinom 5: Ukupna teina ture je zbroj teina svih bridova grafa
Primjer 2.2
ZADATAK: Za graf na slici (Slika 2.12) potrebno je pronai turu kineskog potara
Slika 2.12
PRIMJER Algoritma rjeavanja problema kineskog potara graf na slici (Slika 2.12)
1: Jedini vrhovi s neparnim stupnjem su vrhovi A i H 2: Ova dva vrha se mogu spojiti samo na jedan nain 3: Najkrai put spajanja od A do H je stazom bridova AB,BF,FH i ukpuna teina je 160 4: Novi umjetni bridovi prikazani su na slici (Slika 2.13) 5: Ukupna tura koju potar treba prei je 1000, to je zbroj svih bridova 840 uvean za 160
-
21
Slika 2.13
Za izraunatu ukupnu vrijednost teina 1000, ture u primjeru (Primjer 2.2) mogue je pronai
velik broj tura. Pronalazak koliko se pojedinih vrhova ponavlja u turi mogue je pronai algoritmom
(Algoritam 2.2)
Algoritam 2.2.
1: Rjei problem algoritmom (Algoritam 2.1) 2: Izradi tablicu (Tablica 2.3) svih vrhova i njihovih stupnjeva 3: Broj pojavljivanja svakog od vrhova u turi jednak je polovici njegovog stupnja, osim za prvi vrh
Tablica 2.3
Vrh Stupanj vrha Broj pojavljivanja vrha
A 4 2
B 6 3
C 4 2
D 4 2
E 2 1
F 6 3
G 2 1
H 4 2
Ture potara koje imaju izraunatu minimalnu teinu 1000 moraju imati broj pojavljivanja pojedinih
vrhova kako je navedeno u tablici (Tablica 2.3).
-
22
2.4.6 Hierholzerov algoritam pronalska Eulerove ture
Da bi doli do konkretne ture koja je rjenje problema kineskog potara potrebno je pronai
Euleoruv ture u Eulerovom grafu. Hierholzerov algoritam konstruira uzastopne zatvorene staze ijim
se spajanjima u konanici dobije Eulerova tura (staza). Drugi naziv ovog algoritma je End-Pairing
Algorithm. Ulaz u algoritam je Eulerov graf.
Na poetku se konstruira staza sa poetnim vrhom 1 koji moe biti proizvoljan, korak a) na
slici (2.14). Nadalje se proizvoljno bira incidentan brid vrhu 1 i dodaje se u stazu. Isti postupak se
ovbaljva dok staza ne postane zatvorena. Kada staza postane zatvorena ispituje se sadri li staza
jednak broj bridova kao i ulazni graf. Tim se nainom detektira da li je algoritam pronaa konano
rjeenje. Ako broj bridova nije jednak ukupnom broju bridova kao u koraku algoritma d) slika (2.14),
tada se iz liste bridova Trenutno zadnji dodatni brid prebacuj u listu Zavrno i tako redom dok se ne
doe do vrha u kojem je mogue nasumino odabirati neposjeene bridove. Kada su svi bridovi
posjeeni, trenutna lista bridova posprema se u zavrnu i algoritam zavrava s radom, a duljina
Euleorva ture jednaka je sumi svih bridova.
2.14
-
23
2.5 Razapinjue stablo
Razapinjue stablo (engl. spanning tree) na grafu je podraf koji sadri sve njegove vrhove i
stablo je. Stablo je graf koji ne sadri ciklus. Jedan graf sadri vie razapinjujuih stabala. Na slici
(2.15) je prikazan primjer dva razapinjua stabla (desno) od grafa G (lijevo).
2.15
DEFINICIJA 2.12
Minimalno razapinjue stablo (engl. minimum spanning tree) (MST) teinskog grafa je razapinjue stablo ija je suma teina svih bridova manja od bilo kojeg drugog razapinjueg stabla na razmatranom grafu.
Minimalno razapinjue stablo se najee razmatra na teinskom grafu gdje teine
predstavljaju ovisno o njegovoj primjeni udaljenost vrijeme, troak, itd. Primjer minimalnog
razapinjueg stabla na teinskom grafu prikazan je na slici 2.16. Bitno je napomenuti da na istom
grafu moe postojati vie razliitih minimalnih razapinjuih stabala odnosno razapinjujuih stabala
koja se sastoje od razliitog skupa bridova sa jednakom ukupnom sumom teina.
2.16
Iako je pronalazak minimalnog stabla tema istraivanja istraivaa jo od 1920-tih godina jo
uvijek se istrauju bolji i efikasniji algoritam. Razlog je to algoritmi za pronalazak minimalnog
razapinjueg stabla ima jako puno vanih primjena, to direktnih kao to je prostiranje elektrine
mree, ienje prometnica izmeu bitnih javnih ustanova (bolnice, kole, vatrogasci) od oborina i
jo mnogih drugih. Osim direktnih aplikacija pronalazak minimalnog razapinjueg stabla u grafu,
-
24
vana ulogu ima kao i dio mnogih algoritama za rjeavanje optimizacijskih problema. Poznata
primjena je kod Cristofidesova aprokismacijskog algorima za rjeavanje TSP problema gdje se u
njegovu inicijalnom koraku trai pronalazak minimalnog razapinjueg stabla u grafu.
Kalsini algoritmi za pronalazaka minimalnoga razapinjueg su Krukalov algoritam i Primov
algoritam. Oba algoritma spadaja u pohlepna algoritme i pronalaze rjeenje u polinmnom vremenu.
2.5.1 Kruskalov algoritam
Prvi algoritam koji se razmatra je objavljen 1956. Godine u radu "On the shortest spanning
subtree of a graph and the traveling salesman problem" od strane Joseph Bernarda Kruskala (1928
2010). Kruskalov algoritam (Algoritam 2.3) u inicijalnom koraku kreira umu stabala, gdje svaki vrh
promatranog grafa predstavlja jedno stablo ume. uma je skup meusobno disjunktnih stabala, a
stablo je graf koji ne sadri ciklus, gdje su svaka dva vrha povezana putem. U poetku svako stablo se
sastoji samo od jednog vrha bez iti jednog brida koji mu pripada. Nakon toga se svi bridovi sortiraju
prema teini, a najei izbor za strukturu podataka koja se koristi za to je prioritetni red. U svakom
koraku algoritma dohvaa se sljedei najmanji brid iz prioritetnog reda i dodaje se u umu to
zapravo znai da e se napraviti unija dva stabla iz inicijalne ume. U sluaju kada brid koji je sljedei
na redu za dodavanje tvori ciklus odnosno spaja dva vrha koja se ve nalaze u istom stablu, taj brid se
ne dodaje.
Algoritam 2.3 Kruskalov algoritam
1: Kreiraj umu stabala - gdje je svaki vrh jedno odvojeno stablo 2: Spremi sve bridove u prioritetni red 3: dok postoje bridovi u prioritetnom redu 4: Dohvati brid s najmanjom teinom iz prioritetnog reda 5: ako brid tvori ciklus 6: Nemoj dodati brid u umu 7: inae 8: Dodaj brid u umu // Dodavanjem brida u umu napravi se unija dva stabla
Kritini dio ovog algoritma je detektiranje da li e brid koji je sljedei na redu za dodavanje
tvoriti ciklus. Ovaj korak je dosta spor osim u sluaju kada se koristi struktura podataka disjunktni
skupovi (engl. disjoint sets).
2.5.2 Primov algoritam
Primov algoritam (u literaturi se jo naziva DJP algoritam, Jarnkov algoritam ili PrimJarnkov
algoritam) razvijen je 1930 godine od strane ekog matematiara Vojtch Jarnka, a kasnije 1957
godine neovisno je otkriven od Robert C. Prima dok ga je na kraju opisao i Edsger Dijkstra 1959
godine. Primov algoritam (Algoritam 2.4) radi na nain da se kreira podgraf originalnog grafa sa
jednim proizvoljno odabranim vrhom. Zatim se trai incidentan brid vrhu iz novog grafa koji ima
najmanju teinu i dodaje se u novi graf dok se taj brid uklanja iz starog grafa. Ovaj postupak se
ponavlja sve dok stari graf ostane bez vrhova s tim da se trai najmanji brid bilo kojem vrhu iz novog
grafa. Na ovaj nain u svakoj iteraciji se dodaje jedan novi vrh to e na kraju rezultirati da e novo
kreirani graf biti podgraf originalnog grafa i njegovo najmanje razapinjue stablo.
-
25
Algoritam 2.4 Primov algoritam
1: Kreiraj novi graf sa jednim vrhom iz originalnog grafa 2: dok originalni graf sadri vrhove 3: Pronai vrh iz originalnog grafa sa najmanjom teinom brida prema novom grafu 4: Dodaj vrh u novi graf 5: Izbrii vrh iz originalnog grafa
Za razliku od Kruskalova algoritma Primov ne mora traiti da li e se kreirati ciklus na novom
grafu jer algoritam radi sa vrhovima, a ne bridovima.
2.6 Problem trgovakog putnika
Problem trgovakog putnika (engl. Travelling Salesman Problem (TSP)) su W.R. Hamilton i T.
Kirkman poetkom 19 stoljea definirali kao rekreativnu zagonetku baziranu na pronalaenju
Hamiltonovog ciklusa (DEFINICIJA 2.10). Graf predstavlja mreu gradova, bridovi su mogui putni
pravci izmeu gradova a teine bridova su udaljenosti gradova. Ovaj se problem moe predstaviti kao
putovanje trgovakog putnika s ciljem da obie sve gradove samo jednom, ali da prevali ukupno
najkrai put i vrati se upravo u onaj grad odakle je putovanje zapoeo. TSP problem je NP teki
problem u matematikoj teoriji. Svojstvo takvih problema je da pronalazak egzaktnog rjeenja
problema iznimno dugo traje jer algoritmi rjeavanja imaju veliku raunalnu sloenost. Sloenost
problema se vidi kada prebrojimo sva mogua rjeenja problema trgovakog putnika i usporedimo
rast broja rjeenja s rastom broja bridova na kojem se rjeava TSP problem.
TSP problem promatrat emo na potpunim grafovima gdje su svaka dva vrha povezana bridom,
za prikaz takvog grafa koristit emo teinsku matricu susjedstva. Veze izmeu bridova nee se crtati
ve se podrazumijeva da se od svakog vrha moe doi do bilo kojeg drugog vrha. Kolika je udaljenost
izmeu vrhova bit e vidljivo iz matrice, a te udaljenosti ne moraju nuno predstavljati i geometrijske
odnose udaljenosti izmeu pojedinih vrhova.
2.17
Kako je vidljivo iz slike (2.17), za ne usmjereni graf matrica susjedstva je simetrina, u sluaju
da je matrica nesimetrina u matrici nee postojati zrcaljenje s obzirom na dijagonalu matrice.
-
26
Svako pojedino rjeenje TSP problema bit e opisanom ciklus na primjer 1-2-3-4 , slika (2.18).
2.18
Ako elimo prebrojiti na koliko je naina mogue obii etiri lokacije, odnosno koliko je
moguih hamiltonovih ciklusa u jednom potpunom grafu od 4 vrhta, moemo prve etiri ispisati, a
zatim ih kao hamiltonvoe cikluse ispisati slika (2.19). Svaki od hamiltonovih ciklusa ima svoju duljinu
puta.
2.19
Ako elimo prebrojati koliko ima ukupno moguih ciklusa za potpuni graf s 4 vrha. Tada u
opem sluaju moemo kazati da imamo (n-1)! razliitih ciklusa, odnosno u sluaju n=4, je (4-
1)!=3*2*1=6 ciklusa. Za graf koji ima zrcalnu matricu kao na slici 2.17, moemo uoiti da su ciklusi 1-
2-3-4-1 i 1-4-3-2-1 potpuno jednaki slika (2.20), pa je za takve grafove broj moguih obilazaka
(hamiltonovih ciklusa) jedank (n-1)!/2.
2.20
-
27
2.7 Metode rjeavanja problema trgovakog putnika
Heuristike metode ili krae heuristike su u opem smislu metode rjeavanja problema koje
se temelje na iskustvu. Veinu heuristika koje se pojavljuju u literaturi moemo intuitivno podijeliti na
konstruktivne heuristike koje iterativno konstruiraju jedno rjeenje gradei ga od samog poetka ili
enumeracijske heuristike koje ispituju cijeli skup rjeenja i odabiru najbolje. Konstruktivne heuristike
vezane su za specifini problem koji rjeavaju i esto imaju polinomijalno vrijeme izvravanja.
Konstruktivne heuristike esto imaju jednostavnu strukturu i predstavljaju pohlepne algoritme koji
zapoinju graditi rjeenje od jednog ili vie jednostavnih fragmenata rjeenja. Za razliku od njih
enumeracijske heuristike predstavljaju metode koje na openitiji nain pristupaju pronalasku rjeenja
i moraju se prilagoditi specifinom problemu. Vrijeme izvoenja enumeracijskih heuristika vezano je
za veliinu skupa rjeenja kojeg heuristika ispituje, a veliina skupa je esto eksponencijalno ovisna o
veliini problema. Rjeenja dobivena konstruktivnim heuristikama esto predstavljaju poetno
rjeenje za enumeracijske heuristike
Heuristike esto pronalaze rjeenja problema upotrebljiva u praksi u kraem vremenskom
roku u odnosu na vrijeme potrebno egzaktnim metodama. Za heuristike ne postoje nikakve procjene
o kvaliteti rjeenja ili o vremenu izvravanje metode pod krajnje nepovoljnim uvjetima iako heuristike
koje koristimo, esto brzo vraaju upotrebljiva rjeenja. U pravilu nije mogue odrediti koliko su
rjeenja dobivena heuristikim metodama, udaljena od optimalnih rjeenja problema. Problemi za
koje moemo dokazati da su NP teki problemi, danas se u praktinim primjenama u pravilu rjeavaju
heuristikama jer trenutno ne postoji bolji pristup.
Metode rjeavanja TSP problema mogu se podjeliti u etiri glavne skupine: egzaktne,
aproksimacijske, heuristike i metaheuristike. Najednostavnije su heuristike konstruktive heuristke
koje grade obilaske (Hamiltonove cikluse) od poetka, a njihova rjeenja se kasnije mogu poboljati
lokalnim pretragama.
2.7.1 Heuristika najblieg susjeda
Heuristika najblieg susjeda (NNH) je jedan od prvih algoritama za rjeavanje TSP problema, a
dosta se esto koristi kao inicijalno rjeenje za testiranje popravljajuih heuristika, dosta je brza, ali su
rjeenja uvijek daleko od optimalnih. NNH algoritam (Algoritam 2.5 NNH algoritam)radi na nain da
iz skupa gradova sluajno odabere poetni grad, doda ga u rutu i oznai kao posjeenog. Zatim iz
skupa neposjeenih gradova pronade najblii grad od prethodno dodanog i doda ga u rutu te ga
oznai da je posjeen. Ovaj korak se ponavlja sve dok svi gradovi ne budu posjeeni .
Algoritam 2.5 NNH algoritam
1: Sluajno odaberi poetni vrh i oznai ga kao posjeenog 2: dok ima neposjeenih vrhova 3: Pronadi vrh koji je najblii zadnjem posjeenom vrhu 4: Dodaj ga u rutu i oznai kao posjeenog 5: Dodaj prvi vrh u rutu
-
28
2.7.2 Umetajue heuristike
Postoje etiri umetajue heuristike koje rade na slinom principu. Sve se sastoje od tri
koraka: inicijalizacije, selekcije i umetanja.
2.7.2.1 Heuristika ubacivanje sluajno odabranog grada
Heuristika ubacivanja sluajno odabranog grada (engl. Random/arbitrary insertion) radi na
nain da konstruira parcijalnu rutu u kojoj se nalazi samo jedan sluajno odabran grad. Zatim u
svakom sljedeem koraku se vri sluajni odabir sljedeeg grada koji e se dodati u ve konstruiranu
rutu. Ubacivanje se radi na nain da se pronae brid na grafu ije e uklanjanje i dodavanje sluajno
odabranog grada minimizirati ukupnu udaljenost. Algoritam (Algoritam 2.6)zavrava kada se svi
gradovi nalaze u konstruiranoj ruti.
Algoritam 2.6. Heuristika ubacivanja sluajno odabranog grada
1: Inicijalizacija 2: Kreiraj parcijalnu rutu sa samo jednim sluajno odabranim gradom i 3: Pronadi grad j za koji vrijedi da je cij minimalan i izgradi parcijalnu rutu (i, j) 4: Selekcija 5: Sluajno odaberi jedan grad k koji se jo ne nalazi u parcijalnoj ruti 6: Umetanje 7: Pronadi brid i, j koji pripada parcijalno konstruiranoj ruti i koji minimizira cik + ckj - cij 8: Ubaci k izmedu i i j 9: Ako su svi gradovi dodani u rutu onda zavri algoritam, u protivnom idi na korak 2
2.7.2.2 Heuristike najblieg i najdaljeg ubacivanja
Heuristika najblieg ubacivanja (engl. Nearest insertion heuristic) i heuristika najdaljeg
ubacivanja (engl. Farthest Insertion Heuristic) su sline i imaju samo jedan detalj koji ih razlikuje. Obje
zapoinju sa parcijalnom rutom koja ima samo jedan grad sluajno odabran. Jedina razlika izmedu
ove dvije heuristike je u koraku selekcije tj. pri odabiru grada gdje se za heuristiku najblieg
ubacivanja ckj minimiziran, a kod heuristike najdaljeg ubacivanja ckj se maksimizira. Algoritam
(Algoritam 2.7) zavrava kada se svi gradovi nalaze u konstruiranoj ruti.
Algoritam 2.7. Heuristika najblieg/najdaljeg ubacivanja
1: Inicijalizacija 2: Kreiraj parcijalnu rutu sa samo jednim sluajno odabranim gradom i 3: Pronadi grad j za koji vrijedi da je cij minimalan i izgradi parcijalnu rutu (i, j) 4: Selekcija 5: Pronadi gradove k i j (gdje j pripada parcijalno konstruiranoj ruti dok k ne pripada) 6: iji je ckj minimiziran/maksimiziran 7: Umetanje 8: Pronadi brid i, j koji pripada parcijalno konstruiranoj ruti a iji je cik + ckj - cij najmanji 9: Ubaci k izmedu i i j 10: Ako su svi gradovi dodani u rutu onda zavri algoritam, u protivnom idi na korak 2
-
29
2.7.2.3 Heuristika najeftinijeg ubacivanja
Heuristika najeftinijeg ubacivanja (engl. Cheapest insertion) radi na nain da konstruira
parcijalnu rutu u kojoj se nalazi samo jedan sluajno odabran grad. Selekcija sljedeeg grada se vri
na nain da se biraju dva grada koja su ve u ruti te jedan koji nije dodan u rutu, a da su udaljenosti
izmedu njih minimizirane. Algoritam (Algoritam 2.8) zavrava kada se svi gradovi nalaze u
konstruiranoj ruti.
Algoritam 2.8. Heuristike najeftinijeg ubacivanja
1: Inicijalizacija 2: Kreiraj parcijalnu rutu sa samo jednim sluajno odabranim gradom i 3: Selekcija 4: Pronadi gradove k, i i j (gdje i i j pripadaju konstruiranoj turi dok k ne pripada) gdje je 5: cij + ckj + cij minimalan 6: Umetanje 7: Ubaci k izmedu i i j 8: Ako su svi gradovi dodani u rutu onda zavri algoritam, u protivnom idi na korak 2
2.8 Egzaktne metode
Egzaktne metode pronalaze optimalno rjesenje, ali zbog svoje velike raunalne sloenosti
ogranieni su na manje probleme. Najjednostavniji egzaktni algoritam bio bi da se ispituju sve
mogue kombinacije i izabere se najpovoljnija. Ova metoda se naziva gruba sila (Brute Force) i
neefikasna je ak i za instance problema od 15 toaka. Sljedei metoda je dinamiko programiranje
koja svoju najznaajniju primjenu ima u odredivanju donje granice rjeenja. Donja granica rjeenja je
vrijednost ispod koje se sigurno ne nalazi optimalno rjeenje TSP problema. Osim spomenutih tu su
jo linearno programiranje, metode pretraivanja s vraanjem (Backtracking), metoda grananja i
ograniivanja (Branch & Bound), te metoda grananja i rezanja (Branch & Cut).
2.9 Aproksimacijske metode
Aproksimacijske metode daju u polinomijalnom vremenu priblino tzv. sub-optimalno rjeenje
uz garanciju da je to rjeenje blizu optimalnom. Aproksimacijski algoritmi razlikuju se po obliku
garancije dobrote za rjeenja koja daju. Tako ih dijelimo na apsolutno aproksimacijske, relativne
aproksimacijske i aproksimacijske sheme. Najpoznatijji aproksimacijski algoritam je Christofidesov
algoritam koji se najee koristi za konstrukciju rjeenja i daje rjeenja koja su priblino 10% od
optimalnog. Christofidesov algoritam radi na nain da na zadanom grafu koji opisuje problem
pronade minimalno razapinjujue stablo, te zatim iz njega se pronau vrhovo koji su neparnog
stupnja. Stupanj vrha odreden je brojem bridova sa kojima je incidentan. Zatim se nad tim vrhovima
pronade minimalno savreno uparivanje koje je jedan od najteih kombinatornih problema koji se
mogu rjeiti u polinomnom vremenu.
-
30
2.10 Heuristike metode
Heuristike su obino zasnovane na nekoj intuitivno prihvatljivoj strategiji za koju je lako
provjeriti da u veini sluajeva daje dobre rezultate. Dvije osnovne strategije su pohlepni pristup i
lokalno pretraga. Pohlepna greedy heuristika konstruira rjeenja u nizu koraka (faza). U svakom
koraku biramo mogunost koja je lokalno optimalna u nekom smislu i nadamo se da emo doi do
globalnog optimuma. Kada pohlepni pristup primijenimo na NP teki problem ponekad je mogue
dobiti priblini algoritam. Lokalna pretraga je heuristika strategija rjeavanja problema koja
zahtijeva da u svakom trenutku raspolaemo jednim dopustivim rjeenjem problema. Tekue rjeenje
nastoji se poboljati. Promatramo okolinu (susjedstvo) tekueg rjeenja i skup dopustivih rjeenja
koja su blizu tekuem. Blizu u tom smislu da se susjedstvo generira jednostavnom transformacijom
tekueg rjeenja. Biramo najbolje rjeenje iz okoline, na nain da svako novo rjeenje koje je bolje od
tekueg proglaavamo novim tekuim. Opisani postupak se nastavlja dok god je mogue, tj. sve dok
ne dobijemo tekue rjeenje u ijoj okolini nema boljeg rjeenja. Glavni nedostatak lokalne pretrage
je to moe zastati u lokalnom optimumu. Za voenje lokalne pretrage nuno je osigurati mehanizam
bijega iz lokalnog optimuma.
2.11 Metaheuristike metode
Prve metahuristike javljaju se 80-ih godina 20-tog stoljea, a pojam je prvi uveo Fred Glover
1986. Metaheuristike su iterativne procedure rjeavanja kombinatornih optimizacijskih problema
koje kao jedan korak procedure mogu sadravati i tradicionalne heuristike (npr. lokalnu pretragu).
Bitno svojstvo metahuristika je da koriste neku strategiju pronalaska globalnog optimuma. Ponekad
metaheuristike dozvoljavaju prihvaanje loijih rjeenja ciljne funkcije kako bi se ostvario bijeg iz
lokalnog optimuma. Dozvoljeno je i prihvaanje rjeenja koja kre ogranienje kako bi se lokalna
pretraga mogla voditi u nekom novom tee dostupnom susjedstvu tekueg rjeenja. Garancije
pronalaska optimalnog rjeenja ne postoje, ali metahuristike esto pronalaze prihvatljivo rjeenje u
kratkom vremenu i generalno su primjenjive na velikom broju kombinatornih optimizacijskih
problema. Metaheuritike pokuavaju pronai ravnoteu izmeu diversifikacije i intenzifikacije lokalne
pretrage. Mehanizam diversifikacija ostvaruje namjeru strategije da se istrai to vei prostor rjeenja
(susjedstva). Mehanizam intenzifikacija ostvaruje namjeru da se to bolje ispita pojedino podruje u
potrazi za lokalnim optimumima. Balans ova dva mehanizma teko je ostvariti jer zadravati pretragu
u pojedinom podruju nije dobro, ali s druge strane nije dobro ni prebrzo dozvoliti naputanje
pojedinog podruje bez da se pronae lokalni ekstrem.
Mnogi metaheuristike algoritme uzimaju kao podvrstu heuristikih metoda. Ove metode kao i
heuristike ne daju garanciju pronalaska optimalnog rjeenja, a takoder daju zadovoljavajua rjeenja
relativno brzo. Jedina razlika je to metaheuristike nalaze inspiraciju u prirodi ija iskustva
preuzimaju, simuliraju i na taj nain daju rjeenja. Za njihov rad je potrebno koristiti neku od
konstruktivnih heuristika, a ponekad koriste i spomenute heuristike motode lokalne pretrage za
poboljavanje rjeenja. Najpoznatiji primjeri su simulirano kaljenje (engl. Simulated Annealing),
genetski algoritmi (engl. Genetic Algorithm), te metode optimizacije mravljom kolonijom (engl. Ant
Colony Optimization, skraeno ACO). ACO spada u metaheuristike kolektivne inteligencije ili jata
(Swarm Intelligence) koje postaju sve popularnije jer daju konkurentne rezultate. Osim ACO metode
njega vrijedi jo spomenuti algoritme inspiriane ponaanjem roja estica (Particle Swarm) ponaanje
-
31
pela (Artificial bee colony), krijesnica (Glowworm swarm optimization), imunolokog sustava
(Artificial immune systems), i dr.
2.11.1 Simulirano kaljenje
Na osnovu Metropolisov algoritma koji oponaa termodinamike procese koji se odvijaju u
metalurgiji prilikom kaljenja metala osamdesetih je godina predloen za rjeavanje problema iz
podruja kombinatorne optimizacije. Kaljenja u metalurgiji koristi se za postizanje stanja minimalne
unutarnje energije koja se dobije formiranjem pravilne kristalne reetke. Kada je metal zagrijan atomi
su stohastiki organizirani, a brzim hladenjem ostaju u nepravilnim poloajima koje predstavljaju
energetski lokalni optimum. Da bi se dobio energetski globalni optimum odnosno struktura metala
bez nepravilnosti koristi se postupag sporog hladenja ili kaljenja. Ako se temperatura iskoristi kao
parametar u rjeavanju kombinatornih problema koji kontrolira diverzifikaciju i intenzikaciju
pretrage, vea temperatura e znaiti veu diverzifikaciju odnosno bolje istraivanje cjelokupnog
prostora rjeenja, a manja temperatura veu intenzifikaciju odnosno veu eksploataciju uskog
podruja rjeenja u kojem se pretraga nalazi.
2.11.2 Genetski algoritmi
Genetski algoritmi podskup su evolucijskih algoritama. Inspiracija ovakvih algoritama
pronadena je u prirodnom produktu evoluciji. Jedinke koje se bolje prlagode okoliu imaju vee
izglede za preivaljavanje od onih koje se slabije prilagode. Samim time i njihov se genetski materijal
prenosi s generacijama. Osim ovog bitna je karakteristika medusobno natjecanje, prirodna selekcija
te mutacije koje su najee loe ali mogu biti i korisne. Algoritam radi na nain da simulira evoluciju
na nain da za trenutno rjeenje uzima najbolje kromosome od roditelja, da se povremeno u jednoj
od generacija dogodi mutacija te da postupkom prirodne selekcije preivljavaju najbolje jedinke.
Najbolje jedinke se odreduju prema funkciji cilja koja je kod TSP najkrai put.
2.11.3 Optimizacija kolonijom mrava
ACO metaheuristika je inspirirana ponaanjem kolonija mrava u prirodi. Ova metoda je jo
uvijek relativno mlada i predloena je od strane Doriga u njegovoj disertaciji 1992. godine. Sve
varijante ACO metode rade na principu stigmergije, odnosno mehanizmom neizravne komunikacije
izmedu jedinki iste vrste putem tragova koje ostavljaju u okoliu. Glavna ideja u primjeni ovog
ponaanja u rjeavanju kombinatornih problema je da jedinke (umjetni mravi) pretrauju prostor u
svim smjerovima i da ostavljaju feromone koji lagano isparavaju. Oni mravi koji pronadu krai put
ostavljaju vie feromona na putu, tako da se s vremenom na najkraem putu nakupi najvea
koncetracija feromona.
2.11.4 Optimizacija rojem estica
Pripada skupini algoritama inteligencije roja koja se temelje na socioloko-psiholokim
principima. Kada se promatra jato ptica ili riba te kako jedinke unutar jata mjenjaju poloaj u potrazi
za hranom postoji velika vjerovatnost da e cijelo jato slijediti jedinku koja je osjetila ili pronala izvor
hrane. U jatu svaka jedinka ima i vlastiti instikt za hranom te se povremeno odvaja od jata u potrazi
za izvorem hrane. Pronalaskom boljeg hranilita, pomae sebi i cijelom jatu jer e je ostale ptice
-
32
pratiti i preseliti se na bolje hranilite. Algoritam optimizacije rojem estica radi na nain da u potrazi
za rjeenjem kreu samostalne jedinke (estice) te s vremenom mijenjaju svoju poziciju. Vanost
pojedine estice se vrednuje tako da se pozicija estice uvrsti u funkciju cilja koja kao izlaz estici daje
realnu vrijednost. estice koje vie vrijede te njihove pozicije daju najkrai put u rjeavanju TSP-a .
2.12 Iterativna lokalna pretraga
Iterativna lokalna pretraga (engl. Iterated Local Search, skraeno ILS) je pojam u primjenjenoj
matematici i raunarstvu, te oznaava metodu za pretraivanje susjedstva za rjeavanje problema
diskretne optimizacija. Odlikuju je jednostavnost implementacije, robusnost i uinkovitost. Metoda je
bazirana na pretpostavci da se potraga za optimalnim rjeenjem ne treba voditi u itavom prostoru
rjeenja, ve da se treba usmjeriti na podruja u blizini lokalnih optimuma do kojih ILS jako brzo
dolazi. Na slici (2.21) je prikazan pojednostavljeni prostor rjeenja S. Potraga za rjeenjem u blizini
lokalnih optimuma naziva se intenzifikacija, dok se bijeg iz lokalnih optimuma i potraga za rjeenjem
na nekom drugom mjestu naziva diverzifikacija.
2.21
Uspjenost ILS ovisi o izboru i nainu implementacije tri osnovna elementa od kojih se
metoda sastoji: lokalnoj pretrazi, bijegu iz lokalnog optimuma, te mehanizmu odluivanja o
prihvaanju rjeenja. Pseudokod ILS metode prikazan je u algoritmu. U ILS-u sa procedurom
GenerirajPocetnoRjesenje se inicijalno konstruira ruta jednim od konstrukcijskih algoritama opisanih
prethodno. Zatim se poziva procedura LokalnaPretraga koja operatorima lokalne (2-Opt ili 3-Opt)
pretrage poboljava trenutno rjeenje do zaglavljivanja u lokalnom optimumu. Zatim se poziva
procedura naziva PromjeniSusjedstvo koja radi bijeg iz lokalnog optimuma. LokalnaPretraga i
PromjeniSusjedstvo se poziva onoliko puta koliko je to unaprijed zadano uvjetom prekida koji je
definiran u proceduri UvjetPrekida. Obino se radi o unaprijed zadanom broju iteracija, a moe to biti
i neki drugi uvijet kao to je primjerice vrijeme trajanja algoritma. Uvjet prihvaanja rjeenja definiran
je sa # , gdje se uvijek uzima najbolje trenutno rijeenje dok se prethodno odbacuje. Sa ovim korakom se moe jako puno ekperimentirati jer je mogue pamtiti prethodna stanja rjeenja u
obliku tabu liste i na taj nain usmjeriti ILS.
-
33
2.12.1 Operatori poboljanja kod lokalne pretrage
Trenutno rijeenje u ILS-u se poboljava jednostavnim operacijama (procedura
LokalnaPretraga u algoritmu 5) zamjene redosljeda toki/bridova, ime se postie minimizacija ciljne
funkcije. Operatori koji se koriste za poboljanje rjeenja su 2-Opt i 3-Opt. 2-Opt je prvi put
predstavljen u radu [8], a radi na nain da brie dva brida iz rjeenja i pokuava ih prespojiti na nain
prikazan slikom (2.22).
2.22
Operator 3-Opt radi isto kao i 2-Opt samo to brie 3 brida i pokuava ih prespojiti na sve
mogue naine, slika (2.23). Uvijek se izabire ono rijeenje koje je najbolje od etiri mogua. Logian
nastavak bi bio 4-Opt operator, ali on ne daje dobre rezultate jer je previe moguih pokreta, pa to
znaajno usporava ILS. Postoje razne varijacije implementacije ovih operatora jedna koju treba
istaknuti je 2.5-Opt operator koji je neto izmedu 2-Opta i 3-Opta [15].
-
34
2.23
2.12.2 Bijeg iz lokalnog optimuma
Lokalna pretraga zavrava u lokalnom optimumu kada se ne moe pronai susjedno rjeenje koje
je bolje od trenutne vrijednosti funkcije cilja. Kod bijega iz lokalnog optimuma svjesno se pokvari
rijeenje kako bi u sljedeoj iteraciji lokalna pretraga pokuala izbjei zaglavljivanje u istom lokalnom
optimumu to bi bilo pogubno za funkciju cilja. Kod implementacije metode za bijeg i lokalnog
optimuma potrebno ja paziti na sljedee stvari:
Modificiranje postojeeg rjeenja u manjoj mjeri esto rezultira povratkom u isti lokalni
optimum nakon to se lokalna pretraga ponovo provede;
Modificiranje postojeeg rjeenja u veoj mjeri rezultira prevelikim udaljavanjem od
postojeeg susjedstva to ponekad nije poeljno budui da se optimum moe nalaziti u blizini
postojeeg rjeenja.
2.24
-
35
Koriten operator za bijeg iz lokalnog optimuma u ovom seminaru je double bridge koji je
jednostavan za implementirati, a pritome je jako efikasan. Radi na nain da presjee etiri brida na
rijeenju i prespoji ih drugaijim redosljedom kao to je prikazano na slici (2.24) Ako je rjeenje ilo
redosljedom A->B->C->D->E->F->G->H->A nakon primjene double bridga operatora odnosno bijega iz
lokalnog optimuma rijeenje e izgledati A->B->G->H->E->F->C->D->A.
-
36
Lokacijsko alokacijski problem
3 Odreivanja lokacije objekata unutar prometne mree
Odreivanja lokacije jednog ili vie objekata unutar prometne mree optimizacijski je
problem koji se ve dugo prouava u okviru operacijskih istraivanja. Ako promatramo okruenje u
kojem na bilo kojem mjestu moemo pozicionirati objekt ili uslugu tada lociranje izvodimo u
kontinuiranom prostoru. U sluaju da samo pojedine pozicije objekata mogu biti prihvatljive, radi se o
lociranju u diskretnom prostoru. U sluaju velikih prometnih mrea sasvim je prihvatljivo diskretni
prostor zamijeniti kontinuiranim i dobiti sugestiju u kojem geografskom podruju postiemo bolje
rezultate lociranjem pojedinog objekta, dok je ponekad nuno odabirati poziciju iz unaprijed
odreenih prihvatljivih pozicija. Vano je naglasiti kako je lociranje unutar kontinuiranog prostora
znaajno lake u sluaju velike prometne mree i da je vrijedno razmotriti gubitak preciznosti u
svrhu izraunljivosti. Najbolji poloaj objekta ovisi o mnogo razliitih kriterija kao to su: udaljenost,
kapacitet objekta ili mogunosti pruanja usluge, gustoa stanovnika itd. Lokacijsko alokacijski
problem moe biti zasnovan na jednom kriteriju kao to je udaljenost ili razliitim kombinacijama
kriterija kao to su udaljenost i kapacitet centra, ili kapacitet centra i optimalan troak. Cilj rjeavanja
lokacijsko alokacijskih problema je pronalaenje lokacija za jedan ili vie objekata na temelju jednog
ili vie kriterija kako bi postigli to viu korisnost.
3.1 Povijesni razvoj
Prvi znaajan korak u rjeavanju lokacijskih problema uinio je francuski matematiar Pierre de Fermat (1601-1665). Za tri proizvoljne toke u ravnini elio je pronai etvrtu, za koju bi suma udaljenosti do sve tri zadane toke bila minimalna slika (3.1).
3.2
-
37
Torricelli i Bonaventura Francesko Cavalieri radei na Fermat-ovom problemu, primijetili su
da se krugovi opisani oko jednakostraninih trokuta konstruiranih na stranicama trokuta kojeg ine
tri zadate toke, sijeku u traenoj toki, slika (3.3)
3.3
Thomas Simpson (1710-1761) generalizirao je ovaj problem 1750. godine, odredivi
optimalnu toku za koju je suma oteanih rastojanja do tri zadane toke minimalna. Giovanni
Francesco de Toschi Fagnano (1715-1797) proirio je ovaj problem zadajui etiri toke u ravnini i
traei petu optimalnu toku, imajui u vidu isti kriterij optimalnosti kao i njegovi prethodnici
Poetak modernog pristupa problemu lociranja vezuje se za ime Alfreda Webera (1868 -
1958), koji je dao znaajan doprinos razvoju modela za rjeavanje problema lociranja teke industrije.
U cilju minimiziranja transportnih trokova, u nekim granama industrije proizvodne je pogone
potrebno pribliiti izvorima sirovina (na primjer, koliine sirovina u industriji elika vee su od koliine
gotovih proizvoda), a u nekim drugim, proizvodne pogone potrebno je locirati to blie tritu, tj.
korisnicima.
S pojavom i razvojem raunalne tehnike uinjen je znaajan napredak u poveanju
mogunosti rjeavanja lokacijskih zadataka postojeim modelima, metodama i algoritmima, ali i u
razvijanju novih. Postavke lokacijskih problema postaju realnije i sloenije. U razvoju algoritama
poklanja se sve vie panje implementaciji u praksi.
U praktinim poslovima se esto pojavljuju problemi o tome kako opskrbiti, na to bolji
nain, grupu destinacija koje imaju fiksnu i poznatu lokaciju. U ovim problemima je potrebno odrediti
broj, lokaciju te veliinu centra koji bi to ekonominije mogli opskrbiti grupu destinacija s
materijalima ili uslugom.
Problem se moe opisati na slijedei nain. Zadani podaci su lokacija svake destinacije,
zahtjev od svake destinacije, trokovi dostave za regiju od interesa. Potrebno je utvrditi: broj izvora,
lokacija svakog izvora , kapacitet svakog izvora.
-
38
Problem koji je tu opisan je teak, ne samo sa teoretskog stajalita nego i sa raunskog.
Egzistencija i upotreba raunala ostavljaju trag na problemima kombinatorne optimizacije, ali se neki
problemi jo uvijek ne mogu rijeiti niti upotrebom raunala. Tradicionalne egzaktne metode ne
mogu rijeiti lokacijsko alokacijski problem uspjeno.
3.2 Weberov problem
Osnovi Weberov problem moe se slikovito opisati potrebom pronalaska lokacije npr. skladita
ako su poznata fiksna mjesta isporuke. Svaka od lokacija isporuke osim svoje fizike pozicije opisana
je i svojom teinom koja opisuje njenu vanost (npr. prosjenu koliinu isporuene robe) te
pribliavanjem skladita pojedinoj teoj lokaciji smanjuje se troak transporta. Potrebno je pronai
lokaciju koja e ukupni troak transporta od skladita do svih mjesta isporuke smanjiti na najmanju
vrijednost . Funkcija troka transporta mora uzeti u obzir sve teine privlaenje ali i Euklidsku
udaljenost fiksne lokacije od skladita. Opisani primjer samo je jedna od interpretacija Weberovog
problema jer Euklidska udaljenost je samo jedna od metrika izraunavanja udaljenosti koja se koristi.
Matematika interpretacija problema
( ) ( ) ( )
( ) ( ) ( )( ) },axw{=xfmin
ax,dw=xfmin
m
=j
ijji
n
=i
n
=iii
21
1
2
1
1
f(x) predstavlja funkciju cilja koja mora dati minimalnu vrijednost. Parametar wi predstavlja
teinski faktor (cijenu transporta) za vezu izmeu vora ai i optimalne toke navedenog problema.
-
39
Indeks i predstavlja broj vora [1, 2, 3...n], dok j predstavlja pojedinanu koordinatu sustava.
Weiszfeldova metoda se koristi za izraun lokacije X zadane pomou x i y koordinata.
(j = 1, 2). Slika 1 prikazuje primjer primjene Weiszfeldove metode unutar jedne ravnine u prostoru,
gdje su sve koordinate toaka ai i x definirane pomou dvije koordinate (x i y).
-
40
Problem pakiranja u posude
4 Uvod
Problem pakiranja u posude (eng. Bin Packing) predstavlja problem gdje je potrebno smjestiti
objekte razliitih dimenzija u posude na takav nain da broj upotrjebljenih posuda bude minimalan.
Postoje mnoge varijante ovog problema kao to su linearno pakiranje, dvodimenzionalno pakiranje ili
na primjer pakiranja prema kriteriju kao to su masa ili cijena. Praktina primjena problema pakiranja
vrlo je raznolika poput popunjavanje teretnog prostora vozila, popunjavanje pauza u tv programu
reklamama ili pohrana podatkovnih struktura na medije.
4.1 Definicija problema
Neka su zadane posude uvijek istog kapaciteta V i n objekata, veliine a1, a2, ,an. Potrebno je
n objekata pakirati u to manji broj posuda veliine V. Potrebno je pronai za koji broj B posuda
postoji rjeenje za koja je particija disjunktnih podskupova skupa { a1, a2, ,an } u podskupove
izvedena na takav nain da je broj B minimalan. Linearni progra za ovaj problem
prikazan je na slici 4.1.
4.1 Linerni program problema pakiranja u posude
BSS ULU1
-
41
4.2 Jednodimenzionalni problem pakiranja u posude
First fit algoritam rjeava jednodimenzionalni problem pakiranja u posude na pohlepni
nain. Motivacija algoritma je vrlo intuitivna jer se svaki objekt pokuava pohraniti u prvu slobodnu
posudu koja ima dostatni kapacitet. Ako takva posuda ne postoji, koristi se nova dodatna posuda.
Moe se pokazati da je algoritam aproksimativan s faktorom 2. Dokaz polazi od opaanja da u
bilo kojem trenutku izvravanja algoritma nije mogue da dvije posude budu manje od napola pune.
Promatranjem odluka algoritma u kojim sluajevima algoritam dodaje novu posudu moemo
zakljuiti kako algoritam nee dodavati novu posudu ako postoji napola puna posuda a objekt koji
dodajemo je manji od V/2. Samo ako je posuda popunjena za vie od pola i ako je novi objekt ne
moe stati u posudu posuda e biti dodana. Ne moe se dogoditi situacija u kojoj je trenutna posuda
popunjena s manje od V/2, a da se zapone koristi nova posuda koja se popunjava s objektom
manjim od V/2. Svaka nova posuda biti e uvijek popunjena s objektom koji je vei ili jednak od
vrijednosti V/2 i to samo ako je zadnja upotrjebljena posuda ve napola puna, pa je e ukupni
nepopunjeni dio zadnje dvije upotrjebljene posude uvije biti manji od V.
4.3 Problem dvodimenzionalnog pakiranja u posude
U dvodimenzionalnom pakiranju zadani su: beskonano velik broj pravokutnih posuda irine
W i visine H i skup od n pravokutnih objekata irine wj
-
42
4.3.2 Strategije popunjavanja polica
4.3.2.1 Next-Fit Decreasing Height (NFDH)
Slika 4.1 Primjer NFDH strategije
NFDH strategija postupa tako da se objekt i stavlja najdalje lijevo to je mogue na polici s
ako stane. Ako ne stane, radi se nova polica (s=s+1) i objekt se pakira u nju.
4.3.2.2 First-Fit Decreasing Height (FFDH)
FFDH strategija postupa tako da se objekt i stavlja najdalje lijevo to je mogue na prvoj polici
na koju stane. Ako ne stane u nijednu policu, radi se nova. Ovu strategiju koristi u prvoj fazi Hybrid
First-Fit (HFF) dvofazni algoritam objanjen dalje u tekstu.
Slika 4.2 Primjer FFDH strategije
-
43
4.3.2.3 Best-Fit Decreasing Height (BFDH)
Slika 4.3 Primjer BFDH strategije Izvor: [20]
BFDH strategija postupa tako da se objekt i stavlja najdalje lijevo to je mogue na onoj polici
od svih kreiranih, na koju stane objekt, a za koju je neiskoriteni prostor minimalan. Ako ne stane ni u
jednu policu, radi se nova. Ovu strategiju koristi u prvoj fazi Finite/Hybrid Best Strip (FBS) dvofaznog
algoritma objanjenog dalje u tekstu.
4.3.3 Jedno-fazni algoritmi za rjeavanje problema dvodimenzionalnog pakiranja u
posude
4.3.3.1 Finite Next-Fit(FNF)
FNF algoritam direktno stavlja objekte u posude sukladno strategiji NFDH i to na nain kako
je opisano u Algoritmu 1
Algoritam 1 Finite Next-Fit
1: for Svi objekti i = 1, 2, . . . , n 2: if Objekt i stane u trenutnu posudu 3: Pakiraj objekt i u trenutnu posudu 4: else 5: Kreiraj novu posudu, postavi je za trenutnu posudu, i pakiraj objekt i 6: end if 7: end for
-
44
4.3.3.2 Finite First-Fit (FFF)
FFF koristi FFDH strategiju. Trenutni objekt se stavlja na najniu policu prve police u koji
stane, ako nijedna polica nije dovoljno velika, stvara se nova polica u prvoj odgovarajuoj posudi ili se
stvar nova posuda kako je opisano slikom X i Algoritmom 2
Slika 4.4 Primjer FFF algoritma
Algoritam 2 Finite First-Fit
1: for Svi objekti i = 1, 2, . . . , n uini 2: for sve posude j = 1, 2, . . . uini 3: if Objekt i stane u posudu j onda 4: Pakiraj objekt i u posudu j 5: Prekini petlju i pakiraj slijedei objekt 6: end if 7: end for 8: if Objekt i nije stao u nijednu dostupnu posudu onda 9: Napravi novu posudu i pakiraj objekt i 10: end if 11: end for
4.3.3.3 Finite Best-Fit (FBF)
FBF koristi BFDH strategiju. Za trenutni objekt se provjerava u koje police stane, te ga se
stavlja u onu gdje e ostatak prostora biti minimalan (u odnosu na druge police u koje objekt stane).
Ako nijedna polica nije dovoljno velika, otvara se nova posuda
Algoritam 3 Finite Best-Fit
1: for Svi objekti i = 1, 2, . . . , n uini 2: for sve posude j = 1, 2, . . . uini 3: if Objekt i stane u posudu j onda 4: Izraunaj preostali kapacitet nakon to je objekt dodan 5: end if 6: end for 7: Pakiraj objekt i u posudu j, gdje je j posuda sa najmanje preostalog prostora nakon
dodavanja objekta (tj. objekt najbolje pristaje best fit) 8: Ako takava posuda ne postoji, kreiraj novu posudu i dodaj objekt 9: end for
-
45
Oba algoritma (2 i 3) se mogu implementirati na nain da im je za izvravanje potrebno
O(n log n) vremena.
4.3.4 Dvofazni algoritmi za rjeavanje problema 2D pakiranja u posude
4.3.4.1 Hybrid Next-Fit (HNF)
HNF koristi NFDH strategiju u prvoj fazi, tako da je jednodimenzionalni problem posuda rijeen koritenjem Next-Fit Decreasing algoritma. On radi na slijedei nain: stavi trenutnu policu u trenutni posudu ako stane, a ako je kapacitet nedostatan otvori novu trenutnu posudu i stavi policu u nju. Zbog koritenja Next-Fit strategije ovaj algoritam je ekvivalentan jedno-faznom algoritmu u kojem se trenutni objekt stavi u trenutnu policu trenutne posude ako je mogue, a ako je kapacitet nedostatan radi se nova polica, bilo u trenutnoj posudi (ako ima dosta vertikalnog mjesta) ili u novoj trenutnoj posudi.
Algoritam 4 Hybrid Next-Fit
Prva faza:
1: for Svi objekti i = 1, 2, . . . , n uini 2: if Objekt i stane u trenutnu policu onda 3: Pakiraj objekt i u trenutnu policu 4: else 5: Kreiraj novu policu, postavi je za trenutnu, i pakiraj objekt i 6: end if 7: end for
Druga faza:
1: for Sve police i = 1, 2, . . . , n uini 2: if Polica i stane u trenutnu posudu onda 3: Pakiraj policu i u trenutnu posudu 4: else 5: Kreiraj novu posudu, postavi je za trenutnu posudu, i pakiraj policu i 6: end if 7: end for
4.3.4.2 Hybrid First-Fit (HFF)
U dvofaznom algoritmu Hybrid First-Fit (HFF) prvo se pronalazi rjeenje koristei strategiju
FFDH. U drugoj fazi potrebno je dobivene police poredati po visinama na nain da vrijedi odnos H1>H2>>Hn. Konano rjeenje se dobiva heuristiki rjeavanjem jednodimenzionalnog problema pakiranja s visinama H1, H2 Hn, gdje je Hn visina objekta, a visina H predstavlja kapacitete posuda. Ponovo se koristi FFDH strategija pakiranja tako da algoritam koristi prvu posudu i stavi u nju prvu policu, prelazi na slijedeu policu i tako stalno pokuava stavi trenutnu policu u prvu posudu u koju stane (ako takva postoji), ako polica ne stane u nijednu posudu kreira se nova posuda.
-
46
Slika 4.5 Primjer prve i druge faze HFF algoritma
Algoritam 5 Hybrid First-Fit
Prva faza:
1: for Svi objekti i = 1, 2, . . . , n uini 2: for Sve police j = 1, 2, . . . uini 3: if Objekt i stane u policu j onda 4: Pakiraj objekt i u policu j 5: Prekini petlju i pakiraj slijedei objekt 6: end if 7: end for 8: if Objekt i nije stao u nijednu dostupnu policu onda 9: Napravi novu policu i pakiraj objekt i 10: end if 11: end for Druga faza:
1: for Sve police i = 1, 2, . . . , n uini 2: for Svi posude j = 1, 2, . . . uini 3: if Polica i stane u posudu j onda 4: Pakiraj policu i u posudu j 5: Prekini petlju i pakiraj slijedeu policu 6: end if 7: end for 8: if Polica i nije stala u nijednu dostupnu posudu onda 9: Napravi novu posudu i pakiraj policu i 10: end if 11: end for
-
47
4.3.4.3 Hybrid/Finite Best-Strip (FBS)
FBS je jedna od varijacija HFF-a. Prva faza koristi BFDH strategiju. U drugoj fazi, jednodimenzionalni problem pakiranja posuda rjeava se koritenjem Best Fit Decreasing algoritma. On radi na slijedei nain: stavi trenutnu policu u onu posudu u kojoj ima dostatno mjesta i gdje je neiskoriteni vertikalni prostor minimalan, ili otvori novu posudu ako nije mogue napraviti prethodni korak.
Algoritam 6 Finite Best-Strip
Prva faza:
1: for Svi objekti i = 1, 2, . . . , n uini 2: for Sve police j = 1, 2, . . . uini 3: if Objekt i stane u policu j onda 4: Izraunaj preostali kapacitet nakon to je objekt dodan 5: end if 6: end for 7: Pakiraj objekt i u policu j, gdje je j polica sa najmanje preostalog prostora nakon
dodavanja objekta (tj. objekt najbolje pristaje best fit) 8: Ako takva polica ne postoji, napravi novu i dodaj objekt i 9: end for
Druga faza:
1: for Sve police i = 1, 2, . . . , n uini 2: for Svi posude j = 1, 2, . . . uini 3: if Polica i stane u posudu j onda 4: Izraunaj preostali kapacitet nakon to je polica dodana 5: end if 6: end for 7: Pakiraj policu i u posudu j, gdje je j posuda sa najmanje preostalog prostora nakon
dodavanja police (tj. polica najbolje pae best fit). 8: Ako takva posuda ne postoji, napravi novu i dodaj policu 9: end for
Sva tri opisana hibridna algoritma mogu se implementirati tako da zahtijevaju O(n log n)
vremena[referenca LODI phd]. Slijedea algoritam ima sporije vrijeme raunanja, ali je stoga efektivniji.
4.3.4.4 Floor-Ceiling (FC)
Floor-Ceiling (FC) algoritam proiruje nain na koji se objekti stavljaju na police. U ovom
algoritmu strop police moe biti i njen pod. Polica se dobiva kao i prije, tako da odgovara visini prvog (najvieg) objekta smjetenog u nju. Prethodni algoritmi su slagali objekte na pod police s lijeva u desno. Algoritam FC moe slagati objekte s desna na lijeva sa njihovim vrhom na stropu police. Prvi objekt stavljen na strop police moe biti samo onaj koji ne stane na pod. U prvoj fazi objekti se stavljaju na pod trenutne police, potom na strop trenutne police, te na pod slijedee police sukladno s Best-Fit strategijom. U drugoj fazi police se stavljaju u posude, koritenjem Best-Fit Decreasing algoritma. Prva faza se moe implementirati tako da zahtijeva O(n3) vremena, dok kompleksnost druge faze ovisi o izabranom algoritmu.
-
48
Slika 4.6 Primjer FC algoritma
Algoritam 7 Floor-Ceiling
Prva faza:
1: for Svi objekti i = 1, 2, . . . , n uini 2: if objekt i stane u trenutnu policu na pod onda 3: Pakiraj objekt i u trenutnu policu. 4: else if objekt i stane u trenutnu policu na strop onda 5: Pakiraj objekt i u trenutnu policu na strop 6: else kreiraj novu policu, postavi je za trenutnu i pakiraj objekt i 7: end if 8: end for
Druga faza:
1: for Sve police i = 1, 2, . . . , n uini 2: for Svi Svi posude j = 1, 2, . . . uini 3: if Polica i stane u posudu j onda 4: Izraunaj preostali kapacitet nakon to je polica dodana 5: end if 6: end for 7: Pakiraj policu i u posudu j, gdje je j posuda sa najmanje preostalog prostora nakon
dodavanja police (tj. polica najbolje pristaje best fit) 8: Ako takva posuda ne postoji, napravi novu i dodaj policu 9: end for
-
49
Problem rasporeivanja
5 Uvod
Problem rasporeivanja (eng. scheduling) je proces odluivanja u kojem pridjeljujemo pojedini resurs pojedinom zadatku u nekom vremenskom periodu. Rjeenje problema predstavlja raspored koji potuje ogranienja i daje to bolji rezultat ciljnih funkcija. Resursi mogu biti strojevi, posade ili skupine radnika, uzletno sletne staze zrakoplovnih luka, procesori raunala i tako dalje. Zadaci mogu biti proizvodnja, operacije na gradilitu ili vonje prometnih sredstava, slijetanja i polijetanja zrakoplova, programi na raunalu i tako dalje. Ciljne funkcije mogu biti raznolike: skraenje ukupnog vremena odnosno to ranijeg zavretka zadnjeg zadatka u grupi zadatka koji su meuovisni ili pak smanjenje broja zadataka koji e se obavljati poslije nekog ciljnog datuma. Problem rasporeivanje star je ve vie od 70 godine kada je kao osnovi problem razmatran problem rasporeivanja poslove pojedinim strojevima u radionici ili (eng. Job shop scheduling, kratica JSS). Poslovi se pridjeljuju resursima prema vremenskom rasporedu pridruivanja. Neka je zadano je n zadataka J1,J2,, Jn razliitih trajanja, potrebno je rasporediti te zadatke na m istovrsnih strojeva. Ako promatramo primjer uzletno sletnih staza u zranoj luci, poslovi su slijetanja i polijetanja zrakoplova, a strojevi su staze. Raspored pridjeljuje svakom letu svoju stazu u odreenom vremenu. Ogranienja koja postoje su minimalna vremena i udaljenosti izmeu pojedinih zadataka, a ciljna funkcija je smanjenje ukupnog kanjenja. Postoji mnogo varijacija osnovnog problema rasporeivanja prvenstveno su vezana na ogranienja kada je zadan vremenski razmak izmeu obavljanja poslova, kada poslovi ne moraju biti jednaki ili kada neki zadaci prethode drugima. Strojevi ne moraju biti jednaki, neki poslovi se mogu odraditi samo na pojedinim strojevima, a vremena izvravanja istog posla ne moraju biti uvijek jednaka.
5.1 Matematika interpretacija problema
Neka je dan skup: S = {3,1,1,2,2,1}. Ako elimo napraviti particiju ovog skupa na nain da suma lanova disjunktnih podskupova skupa S ima iste vrijednosti, onda za skup S moemo kazati da je rjeenje problema particije su S1 = {1,1,1,2} i S2 = {2,3}. Particija je svaki rastav na disjunktne neprazne podskupove.
Nekoliko particija za S={1,2,3} su na primjer {{1},{2,3}} {{1,2,3}} {{1},{2},{3}} Problem particije Problem particije glasi : Zadan je multiskup A={a1,a2,a3,,an} od n pozitivnih cijelih brojeva. Treba odrediti da li postoji particija P od dva podskupa A1i A2 takva da je.
=
1 2Ai Aiii aa
-
50
Sam multiskup je objekt poput skupa u kojem se neki elementi mogu ponavljati. Primjer: Promatrajmo slijedei problem za problem particije
a1=2 , a2=5, a3=6 , a4=7 , a5=10 Odgovarajui problem rasporeda s minimalnim vremenom zavretka glasi:
t1=2 , t2=5, t3=6 , t4=7 , t5=10 Ne-preemptivni raspored za dva stroja :
Ovakav raspored odgovara ovakvom rjeenju za problem particije: {a2,a5} , {a1,a3, a4}
5.1.1 Problem rasporeivanja poslova na identine strojeve
Neka su Pi, i=1,2,, m identini strojevi (npr. procesori), a Ji, i=1,2,, n nezavisni poslovi (npr.
programi. Posao Ji zahtijeva vrijeme izvravanja ti na bilo kojem stroju. Raspored (schedule) S je
pridruivanja poslova strojevima. Za svaki posao Ji, S odreuje vremenski interval (intervale) i stroj
(strojeve) na kojima se posao treba izvriti. Posao se ne moe izvriti na vie strojeva istovremeno,
ve samo na jednom stroju u isto vrijeme. Neka je fi vrijeme zavretka izvravanja posla Ji .Srednje
vrijeme zavretka (eng. mean finish time, kratica MFT) rasporeda S definiramo:
Neka je Tj vrijeme kad stroj Pj zavrava s izvravanjem svih poslova (ili segmenata poslova) koji
su mu pridrueni. Vrijeme zavretka (eng. finish time, kratica FT) rasporeda S definiramo:
=
=
n
iif
nSMFT
1
1)(
}{max}{max)(11 inijmj
fTSFT
==
-
51
S je ne-preemptivni raspored ako se svaki posao Ji izvrava u komadu na istom stroju. S je
preemptivni raspored ako se svaki posao Ji moe podijeliti na segmente, a ti se segmenti mogu
raspodijeliti na razne strojeve. Varijante optimizacijskih problema ovisno o vrsti rasporeda su s ne-
preemptivni rasporedom ili preemptivni rasporedom. Ciljnoj funkcije mogu biti minimizacija MFT-a
srednjeg vremena zavretka ili minimizacija FT-a minimalnog vremena zavretka.
5.1.2 Rasporeivanje poslova na tekuoj vrpci
Rasporeivanje poslova na tekuoj vrpci (eng. Flow Shop Scheduling) definairan je nain da su
zadani:
n poslova od kojih svaki zahtjeva
m zadataka (operacija) T1i, T2i, , Tmi i=1,2,,n
Zadatak Tji mora se izvriti na stroju (procesoru) Pj j=1,2,m, vrijeme potrebno za izvravanje
zadatka Tji iznosi tij. Raspored S je pridruivanja zadataka vremenskim intervalima na strojevima
zadatak, odnosno Tji mora se izvriti na stroju Pj. Ni jedan stroj ne smije imati vie od jednog
pridruenog zadatka u isto vrijeme, a za svaki posao i izvravanje zadatka Tji j>1 ne moe poeti prije
nego to je izvren zadatak Tj-1,i
5.1.3 Problem rasporeivanja (notacija)
Zbog vrlo velikog broja varijacija problema rasporeivanja koristi se ova notacija simbolima.
-
52
5.1.3.1 Primjeri okolina
{e, P, Q, R, F, O, J}
e jedan stroj P identini paralelni strojevi (vrijeme izvravanja zadatka nije ovisno o stroju na kojem
se izvrava) Q uniformni paralelni strojevi (vrijeme izvravanja zadatka je ovisno o stroju na kojem
se izvrava) R unrelated brzina stroja ovisi o zadatku koji mu je pridijeljen ali ne na uniformni
nain brzina stroja varira F tekua traka (redoslijed zadataka je nalik okolini tekue trake) O open shop okolina (ne postoje ogranienja nalik redoslijedu izvravanja zadataka) J job shop
Za obavljanje svakog posla potrebno je vie strojeva. Podaci koji opisuju proces:
m broj strojeva
n broj poslova
pji vrijeme obrade posla i na stroju j
pi vrijeme obrade posla i kada su svi strojevi identini
Jedan stroj ili vie paralelnih strojeva
1 Jedan stroj
P m m identinih strojeva u paraleli
Q m m paralelnih strojeva s razliitim brzinama vi
R m m nepovezanih strojeva u paraleli
Strojevi u slijedu
Karakteristike procesa i ogranienja
F m Tekua traka (flow shop): svi poslovi se na strojevima obavljaju istim redoslijedom
J m Poslovi u radionici (job shop): svaki posao ima svoj redoslijed
O m (open shop): svaki posao moe se obaviti na svakom od strojeva bez ogranienja
-
53
Ciljna funkcija
5.1.4 Linerani program za (Pm|prmp|Cmax)
(Pm | prmp |Cmax )
P m m strojeva
prmp preemptivni raspored
Cmax Cmax = max {Cj} posljednje vrijeme zavretka svih poslova u sustavu
Cilj je minimizirati Cmax = max {Cj}, posljednje vrijeme zavretka svih poslova u sustavu.
Varijabla xji predstavlja ukupno vrijeme obavljanja posla i
Ukupno vrijeme obavljanja svakog od poslova manje je ili jednako Cmax
Ukupno vrijeme rada svakog od strojeva manje je ili jednako Cmax
prmp preemptivni raspored
prec slijedna ogranienja
Mj ogranienja povezanosti pojedinih poslova i pojedinih strojeva
Cj vrijeme zavretka pojedinog posla
Lj kanjenje= Cj dj
Tj zaostajanje = max(Lj, 0)
Cmax = max {Cj} posljednje vrijeme zavretka svih poslova u sustavu
Lmax = max {Lj} Maksimalno zaostajanje
=
=
m
jiji px
1ni ,...,1=
=
m
jji Cx
1max
ni ,...,1=
max
1Cx
n
iji
=
0jix ni ,...,1=mj ,...,1=
mj ,...,1=