tonci caric optimizacija prometnih procesa

53
1 OPTIMIZACIJA PROMETNIH PROCESA (nastavni tekst) izv. prof. dr. sc. Tonči Carić Fakultet prometnih znanosti Sveučilište u Zagrebu 2014.

Upload: danijela

Post on 06-Nov-2015

63 views

Category:

Documents


8 download

DESCRIPTION

Optimizacija transportnih procesa

TRANSCRIPT

  • 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=