77
SVEU ˇ CILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ˇ CUNARSTVA DIPLOMSKI RAD br. 466 Heuristi ˇ cke metode lokalne pretrage primijenjene na problem izrade rasporeda sati za škole Alan Tus Zagreb, rujan 2012.

Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

SVEUCILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RACUNARSTVA

DIPLOMSKI RAD br. 466

Heuristicke metode lokalnepretrage primijenjene na problem

izrade rasporeda sati za školeAlan Tus

Zagreb, rujan 2012.

Page 2: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Umjesto ove stranice umetnite izvornik Vašeg rada.

Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.

Page 3: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Hvala mojim roditeljima na neizmjerno puno strpljenja, pažnje i truda za vrijeme

mojeg školovanja, a posebno pred njegov kraj.

Hvala asistentu dr.sc. Marku Cupicu za sve što me naucio tokom studija, a posebno

hvala što nije izgubio nadu u mene i ovaj rad.

Hvala Miletu na povremenim savjetima i podršci.

Hvala Kristini što je znala reci prave rijeci i natjerati me da nastavim.

iii

Page 4: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

SADRŽAJ

1. Uvod 1

2. Problem izrade rasporeda 32.1. Uvod u terminologiju . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Osnovni problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3. Cvrsta i meka ogranicenja . . . . . . . . . . . . . . . . . . . . . . . 7

2.4. Dodatna ogranicenja . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.1. Neprekidan raspored . . . . . . . . . . . . . . . . . . . . . . 7

2.4.2. Višesatna predavanja . . . . . . . . . . . . . . . . . . . . . . 8

2.4.3. Podjele razreda i vezana predavanja . . . . . . . . . . . . . . 8

2.4.4. Rasporedivanje u prostorije . . . . . . . . . . . . . . . . . . 9

2.4.5. Ostala ogranicenja . . . . . . . . . . . . . . . . . . . . . . . 9

3. Heuristicki i metaheuristicki algoritmi 103.1. Optimizacija kolonijom mrava . . . . . . . . . . . . . . . . . . . . . 10

3.2. Osnovni algoritam optimizacije kolonijom mrava . . . . . . . . . . . 12

3.2.1. Konstrukcijski algoritam . . . . . . . . . . . . . . . . . . . . 13

3.2.2. Feromonski model . . . . . . . . . . . . . . . . . . . . . . . 15

3.3. Mravlji sustav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4. Elitisticki mravlji sustav . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5. Poredani mravlji sustav . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.6. MAX−MIN mravlji sustav . . . . . . . . . . . . . . . . . . . . . 21

3.7. Sustav kolonije mrava . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.7.1. Pseudoslucajni proporcionalni odabir . . . . . . . . . . . . . 23

3.7.2. Globalno osvježavanje feromona . . . . . . . . . . . . . . . . 23

3.7.3. Lokalno osvježavanje feromona . . . . . . . . . . . . . . . . 24

iv

Page 5: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

4. Algoritmi lokalne pretrage 254.1. Pretraga promjenjivih susjedstva . . . . . . . . . . . . . . . . . . . . 25

4.1.1. Spust po promjenjivim susjedstvima . . . . . . . . . . . . . . 27

4.1.2. Osnovna pretraga promjenjivih susjedstva . . . . . . . . . . . 27

4.1.3. Reducirana pretraga promjenjivih susjedstva . . . . . . . . . 28

4.1.4. Sveobuhvatna pretraga promjenjivih susjedstva . . . . . . . . 29

4.1.5. Dekompozicijska pretraga promjenjivih susjedstva . . . . . . 29

4.1.6. Iskrivljena pretraga promjenjivih susjedstva . . . . . . . . . . 31

5. Implementacija 335.1. Implementacija rješenja . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1.1. Osnovni dijelovi Sustava . . . . . . . . . . . . . . . . . . . . 33

5.1.2. Višedretvenost . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.2. Vrednovanje rješenja . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.3. Algoritam optimizacije mravljom kolonijom . . . . . . . . . . . . . . 40

5.3.1. Konstrukcijski algoritam . . . . . . . . . . . . . . . . . . . . 40

5.3.2. Izracun dostupnosti . . . . . . . . . . . . . . . . . . . . . . . 43

5.3.3. Izgradnja mravljeg rješenja . . . . . . . . . . . . . . . . . . . 44

5.4. Algoritmi lokalne pretrage . . . . . . . . . . . . . . . . . . . . . . . 44

5.4.1. Jednostavna optimizacija . . . . . . . . . . . . . . . . . . . . 44

5.4.2. Algoritmi pretrage promjenjivih susjedstva . . . . . . . . . . 44

6. Rezultati i rasprava 466.1. Testni parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.2. Nacin testiranja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.3. Rezultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7. Zakljucak 54

Literatura 56

A. Izvorni kodovi 58

B. Primjer ulazne i izlazne datoteke 65

C. Rezultati testiranja 70

v

Page 6: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

1. Uvod

Rasporede koristimo svakodnevno za organizaciju i planiranje. Pojavljuju se u obliku

školskih rasporeda, rasporeda kazališnih i kino predstava, voznih redova i slicno. Imaju

dvije osnovne svrhe, da pojednostavne svakodnevni život i definiraju tko, što i kada

radi te da optimiziraju iskorištavanje resursa. Izrada tih rasporeda se danas gotovo

svuda automatizira, ali u školama na podrucju Republike Hrvatske se raspored nastave

danas još uvijek vecinom izraduje rucno.

Izrada rasporeda je uglavnom rucna zato što covjek još uvijek može napraviti bo-

lji raspored od kompjutera. Sva dostupna programska rješenja za izradu rasporeda ne

mogu zadovoljiti zahtjeve koji su specificni za škole u Republici Hrvatskoj. Detaljan

pregled dostupnih programskih rješenja i usporedba mogucnosti sa zahtjevima Hrvat-

skih škola je dana u [14].

Izrada rasporeda sati u osnovnim i srednjim školama je prepuštena satnicarima.

To su najcešce profesori matematike i informatike koji posjeduju neka znanje koja

su im od pomoci pri izradi rasporeda. Satnicari se pri izradi rasporeda služe raznim

pomagalima, ali ponajprije iskustvom. Najcešce je slucaj da se izradom rasporeda

bave vec neko dulje vrijeme pa znaju koja predavanja je najteže rasporediti, koji su

najcešci problemi i njihovo najbolje rješenje. Takoder, poznaju svoje kolege, znaju

njihove zahtjeve i želje, upoznati su sa zakonskim ogranicenjima i nacinom rada koji

treba poštivati te na taj nacin mogu izraditi bolji raspored.

Prije pocetka planiranja i implementacije novog sustava za izradu rasporeda bilo je

potrebno upoznati se s gore spomenutim zahtjevima koji se javljaju pri izradi rasporeda

nastave. Obavljen je niz razgovora sa satnicarima u osnovnim i srednjim školama u

Zagrebu:

– OŠ Voltino,

– OŠ Sveta Nedelja,

– IV. gimnazija,

– V. gimnazija i

1

Page 7: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

– Prva ekonomska škola.

Analiza zahtjeva s kojima smo se susreli je napravljena u [14], a analiza problema

izrade rasporeda nastave za škole u RH je napravljena u [11]. Dio tih analiza ce biti

predstavljen i u ovom radu zbog lakšeg razumijevanja. Iako se sve škole u kojima su

obavljeni razgovori sa satnicarima nalaze na podrucju Zagreba, definicija problema i

zahtjeva se može poopciti na podrucje cijele Republike Hrvatske.

Ovaj rad dio je veceg projekta. Cilj je stvoriti sustav za izradu rasporeda nastave

koji ce se moci koristiti na podrucju Republike Hrvatske. Prve inacica jezgre sustava

i izradena je u sklopu [12]. Ovim radom je nadogradena jezgra sustava te implemen-

tirana i opisana nova implementacija izrade rasporeda nastave, spojem algoritma op-

timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je graficko

sucelje koje omogucava zadavanje ulaznih parametara.

U iducem poglavlju, poglavlje 2, ce biti predstavljen problem koji se pokušava ri-

ješiti u ovom radu. Poslije, u poglavljima 3 i 4 su objašnjeni algoritmi koji se mogu

koristiti za rješavanje opisanog problema. U poglavlju 5 je objašnjena cjelokupna im-

plementacija ciji su parametri i rezultati detaljnije razradeni u poglavlju 6. Na kraju, u

poglavlju 7, se nalazi zakljucak.

U daljnjem tekstu rada, rijec Sustav se odnosi na sustav za izradu rasporeda imple-

mentiran u sklopu ovog rada.

2

Page 8: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

2. Problem izrade rasporeda

Ovo poglavlje daje uvod u terminologiju i formalnu definiciju problema izrade raspo-

reda nastave koji se javlja u ovom radu. Opisani su i zahtjevi i ogranicenja koji se

javljaju pri izradi rasporeda.

2.1. Uvod u terminologiju

Ovo je kratki uvod koji služi kako bi pojasnili znacenje nekih termina koji ce se koristiti

u daljnjem tekstu.

Termini Termin je vremenski period od 45 minuta1 u kojem se može održavati nas-

tava. Ukupan broj termina jednak je:

brojT jedana ∗ brojDanaUTjednu ∗ brojTerminaUDanu (2.1)

Primjerice za dvotjedni raspored, s pet dana u tjednu i 13 predavanja dnevno ima

ukupno 130 termina. U svakom terminu može biti više predavanja uzevši u obzir

da su svi potrebni resursi dostupni.

Blok Blok predstavlja jedan ili više uzastopnih termina u kojem se održava jedno pre-

davanje.

Tjedni nastave Raspored može biti jednotjedni ili višetjedni. Škole cesto imaju dvo-

tjedni raspored gdje se u drugom tjednu nastave zrcali raspored iz prvog tjedna

uz manje izmjene. Pri izradi rasporeda ce se uz predavanja spominjati tjedan u

kojem se održava nastava, ali može biti i potpuno razlicit. Ukoliko je nastava

dvotjedna (može biti i jednotjedna) razredi mogu razlicite tjedne imati predava-

nja u razlicitim turnusima.

1Ako se radi o skracenim satima može biti i 35 minuta.

3

Page 9: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Turnusi Turnusi su zapravo smjene u kojima se održava nastava. U praksi se najcešce

radi u jednoj ili dvije smjene (jutarnja i popodnevna), a u ekstremnim sluca-

jevima i u tri smjene. Ponekad se javlja pojam meduturnusa koji predstavlja

jedan ili više termina na spoju dva turnusa u kojima je dozvoljeno preklapanje

nastave razlicitih turnusa. Turnus je definiran nizom uzastopnih termina koji mu

pripadaju. Jedan termin može pripadati samo jednom turnusu ili se nalaziti u me-

duturnusu. Pripadnost razreda pojedinom turnusu se izražava u dostupnostima

tako da je dostupnost u terminima izvan pripadnog turnusa jednaka 0.

Dostupnosti Dostupnosti služe kako bi definirali raspoloživost resursa u pojedinom

terminu. Za sve resurse je moguce definirati dostupnost od 0 do 1 gdje 0 znaci

da resurs nije na raspolaganju u tom terminu, a sve vrijednosti vece od 0 znace da

je resurs raspoloživ. Što je vrijednost veca to je taj termin poželjniji. Dostupnosti

se definiraju po danima u tjednu i terminima. Primjerice na ovaj nacin nastav-

nici mogu definirati termine kada im je poželjnije održavati nastavu. Pri izradi

rasporeda dostupnosti predstavljaju heuristicku informaciju i jedno od cvrstih

ogranicenja.

Predmeti Predmeti predstavljaju predmete u školi poput matematike, biologije i ke-

mije. Kod izrade rasporeda je ovaj podatak važan kako bi se izbjeglo više preda-

vanja istog predmeta u jednom danu.

Razredi Razredi predstavljaju skupine ucenika koje zajedno slušaju nastavu. Za svaki

razred se definiraju dostupnosti. Osim “obicnih” razreda pri izradi rasporeda se

susrecemo i s razrednim particijama. Primjerice postoji podjela za tjelesnu i

zdravstvenu kulturu (TZK) na muški i ženski dio razreda ili podjela na dio raz-

reda koji sluša etiku i dio koji sluša vjeronauk. Cilj je spojiti po dva muška i dva

ženska dijela razreda da zajedno imaju nastavu TZK kako bi se što bolje isko-

ristila dvorana. Za razredne particije nije moguce definirati dostupnosti. Smatra

se da ako je cijeli razred dostupan u nekom terminu da su onda i sve njegove

particije dostupne.

Nastavnici Nastavnici su svi ljudi koji održavaju nastavu. Za nastavnike se definiraju

dostupnosti.

Prostorije Prostorije su sve ucionice, kabineti, dvorane i ostali prostori koji služe za

održavanje nastave. Pri zadavanju parametara za izradu rasporeda nije uvijek

potrebno definirati prostorije ukoliko se rasporedivanje predavanja u prostorije

ne želi prepustiti algoritmu. Za prostorije se definiraju dostupnosti.

4

Page 10: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Predavanja Predavanje je definirano s:

– jednim ili više nastavnika,

– trajanjem bloka (jedan ili više uzastopnih termina),

– oznakom tjedna u kojem se održava nastava,

– oznakom koja definira radi li se o predavanju koje ne spada u redovni

raspored2,

– dostupnostima,

– predmetom3,

– jednim ili više razreda ili razrednih particija3,

– jednom ili više prostorija3 te

– brojem potrebnih prostorija3.

Valja primijetiti kako predmeti koji imaju više predavanja tjedno po razredu mo-

raju imati definirano po jedno predavanje za svako od tih predavanja.

Veze izmedu predavanja Veze izmedu predavanja su detaljnije definirane u poglavlju

2.4.3.

2.2. Osnovni problem

Raspored je zapravo alokacija resursa u vremenu (i prostoru). Za ovaj pojednostavljeni

problem naši resursi ce biti razredi, nastavnici i predavanja. Koristiti cemo sljedece

oznake:

– 1, . . . , c predstavljaju c razreda (engl. class),

– 1, . . . , t predstavljaju t nastavnika (engl. teacher),

– 1, . . . , s predstavljaju s termina (engl. slot) te

– 1, . . . , l predstavljaju l predavanja (engl. lecture).

Definirajmo i tablicu Pc∗t gdje vrijednost pij predstavlja broj predavanja koje nastav-

nik tj održava razredu ci unutar dostupnog broja termina s. Uzevši u obzir definiciju

predavanja možemo reci da je konacni raspored zapravo niz predavanja l kojima su

2Ovdje se radi o predmetima poput izbornih predmeta i drugih vannastavnih aktivnosti te se ti pred-

meti smiju održavati izvan redovne nastave. Poželjno je da budu barem neposredno prije ili poslije

redovne nastave.3Nije obavezno.

5

Page 11: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

pridruženi termini s. Potrebno je rasporediti predavanja u termine na nacin da nastav-

nici i razredi ne budu rasporedeni u više od jednog predavanja u istom terminu. [3] taj

problem definira kao:

t.d. ∀(i, j)t∑

k=1

xijk = pij, (2.2)

∀(i, k)c∑i=1

xijk ≤ 1, (2.3)

∀(j, k)t∑

j=1

xijk ≤ 1 i (2.4)

∀(i, j, k)xijk = 0 ili 1, (2.5)

pri cemu je xijk = 1 ako k-ti sat nastavnik tj predaje razredu ci, odnosno xijk = 0

inace.

Izraz (2.2) ogranicava da svaki nastavnik održi tocno onoliko predavanja koliko je

predvideno, rij . Druga dva izraza ogranicavaju da svaki razred (2.3) i nastavnik (2.4)

mogu u svakom trenutku biti na najviše jednom predavanju.

Za gore definirani problem je dokazano [7] kako uvijek postoji rješenje. Jedini

uvjet jest da niti jedan razred i niti jedan nastavnik nemaju zadano više od s predavanja

na koja ih je potrebno rasporediti. Mora vrijediti:

∀(i)t∑

j=1

pij ≤ s i (2.6)

∀(j)c∑i=1

pij ≤ s. (2.7)

Ako znamo da je s ukupan broj raspoloživih termina i da moramo poštivati ogranicenja

(2.3) i (2.4), onda je lako zakljuciti da ce ukupan zbroj svih predavanja nekog nastav-

nika (2.6) biti manji ili jednak s. Isto to vrijedi i za razrede (2.7), zbroj svih predavanja

koja taj razred ima ce biti manji ili jednak ukupnom broju raspoloživih termina. Dakle,

u najgorem slucaju ce biti zauzeti u svakom terminu.

Ovo je pojednostavljena definicija problema izrade rasporeda kojim se bavi ovaj

rad jer ne uzima u obzir dostupnosti resursa, dodatne zahtjeve i ostala cvrsta i meka

ogranicenja koja su zadana ovim radom. Rješenje ovog problema je zadovoljeno uko-

liko su sva predavanja rasporedena u ponudene termine zadovoljavajuci gornja ograni-

cenja.

U školama se za prikaz cijelog rasporeda nastave najcešce koristi matricaRt∗s, gdje

vrijednost rij definira razred kojem nastavnik tj drži u terminu ti. Ova tablica se može

naci izvješena u svim zbornicama škola koje smo posjetili.

6

Page 12: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

2.3. Cvrsta i meka ogranicenja

Ogranicenja koja se zadaju algoritmu se dijele na cvrsta i meka. Cvrsta ogranicenja

(engl. hard constraints) su ona ogranicenja koja imaju prioritet i ne smiju se prekršiti.

Konacni rezultat je valjan ako i samo ako zadovoljava ova ogranicenja. Meka ogra-

nicenja (engl. soft constraints), se mogu gledati kao preporuke ili želje koje raspored

cine boljim. Konacni raspored smije kršiti neka ili cak sva meka ogranicenja, ali ako

raspored poštuje više tih ogranicenja imati ce vecu vrijednost evaluacijske funkcije

Cvrsta ogranicenja variraju od škole do škole i zato je prepušteno korisniku da kroz

parametre stupnjevanjem dostupnosti ili eksplicitnim zahtjevom zada zahtjeve koji ce

predstavljati cvrsta ogranicenja. U cvrsta ogranicenja najcešce ubrajamo sljedece zah-

tjeve:

– ogranicenja zadana dostupnostima razreda, profesora i prostorija,

– najveci i najmanji broj sati nastave dnevno i tjedno za profesore i razrede,

– broj dozvoljenih rupa dnevno i tjedno u rasporedu profesora,

– zabrana prelijevanja bloka iz dana u dan ili iz turnusa u turnus te

– smještanje predmeta u zadani tjedan4.

Meka ogranicenja cine svi ostali zahtjevi koji su spomenuti u sljedecem odjeljku

(2.4).

2.4. Dodatna ogranicenja

Ovo poglavlje spominje samo najvažnija ogranicenja važna za razumijevanje rada Sus-

tava. Detaljan opis svih ogranicenja je dostupan u [14, 12].

2.4.1. Neprekidan raspored

Neprekidan raspored za razrede znaci da pojedini razred za vrijeme nastave nema niti

jednu pauzu izmedu predavanja unutar jednog dana. To je vrlo važno ogranicenje, po-

gotovo za osnovne škole, jer se onda potrebno pobrinuti za ucenike za vrijeme pauze.

Ukoliko su popunjeni svi sati predvideni za nastavu u pojedinom danu, nece nastati

rupe u rasporedu, ali ako postoje termini kada razred nema predavanja, ti termini mo-

raju obavezno biti prije ili poslije nastave.

4Ovo vrijedi za višetjedne rasporede.

7

Page 13: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Neprekidan raspored za nastavnike nije obavezan, ali je poželjno da i njihov raspo-

red bude gotovo neprekidan. Dozvoljene su pauze od jednog sata dnevno ili dva do tri

sata tjedno kako bi raspored bio prihvatljiv. Pri zadavanju parametara može se zadati,

traži li se za pojedini razred ili nastavnika izrada neprekidnog rasporeda.

2.4.2. Višesatna predavanja

Zbog dinamike nastave ponekad je potrebno održavati nastavu nekog predmeta u nizu

od dva ili više sati za redom. Ovakva predavanja se nazivaju blok predavanja. U sred-

njim školama primjer ovakve nastave su hrvatski jezik (pisanje školske zadace), kemija

(izvodenje pokusa), matematika (vece cjeline gradiva) i drugi. Tada je poželjno imati

višesatna predavanja, ali, osim kada je to izricito zadano, to nije poželjno ponašanje.

Ako se radi, na primjer, o predmetu s dva sata predavanja tjedno, tada u nekim

slucajevima nije poželjno da ti sati budu u nizu, ili cak isti dan jer se želi opterecenje

na ucenike rasporediti kroz tjedan. Takoder, slucaj u kojem se višesatna predavanja

spajaju s drugim predavanjima istog predmeta nije poželjan. Pri izradi rasporeda se

pazi da se takvi rasporedi izbjegavaju i moguce je zadati velicinu najveceg dopuštenog

bloka i zatražiti izbjegavanje vecih bokova nastave.

2.4.3. Podjele razreda i vezana predavanja

U nekim srednjim školama se nude razliciti nastavni programi, razliciti stupnjevi po-

jedinih predmeta (jezici) i slicno. Zato medu pojedinim predavanjima mogu postojati

razlicite veze i pravila kada se neko predavanje može održati u odnosu na ono drugo.

Najcešce, škole uspijevaju sastaviti razrede na nacin da cijeli razredi slušaju jedan nas-

tavni program, ali kada to nije moguce javljaju se podgrupe unutar razreda. Primjerice,

jedan dio razreda ce imati etiku, a drugi dio vjeronauk ili ce jedan dio razreda imati po-

cetni engleski jezik, a drugi dio napredni engleski jezik. Ukoliko postoji više razreda s

istim razrednim podgrupama pri izradi rasporeda se pokušava objediniti podgrupe koje

imaju isto predavanje kako bi ponovno cinile novi cijeli razred i time što bolje isko-

ristiti resurse5. U parametrima se mogu definirati podgrupe za neki razred i kasnije ih

dodijeliti nekom predavanju. Za takva predavanje se mogu definirati pravila.

Za bilo koja dva predavanja može se definirati medusobna veza tako da se spoje s

nekom kombinacijom uvjeta iz sljedece dvije grupe:

5Neke od prednosti su: manje sati za nastavnika, kraci raspored za ucenike i više slobodnih prosto-

rija.

8

Page 14: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

– mora biti ili ne smije biti te

– isti termin ili isti dan ili isti tjedan ili slijedno (uredeno) ili slijedno (nije ure-

deno)6.

Spomenimo nekoliko primjera:

– mora biti isti dan,

– ne smije biti isti tjedan,

– mora biti slijedno (uredeno) te

– mora biti isti termin.

2.4.4. Rasporedivanje u prostorije

U školama koje imaju manjak prostora, rasporedivanje predavanja u prostorije je doda-

tan izazov pri izradi rasporeda nastave. Kada smo definirali osnovni problem, postavili

smo pretpostavku da svaki razred ima svoju prostoriju koja mu je uvijek na raspo-

laganju. Medutim, neka predavanja zahtijevaju posebnu prostoriju koja je prikladno

opremljena7 i može ju koristiti samo jedan razred odjednom. Zato se pri zadavanju

zahtjeva za izradu rasporeda može ukljuciti opcija rasporedivanja predavanja u prosto-

rije. Tada je potrebno zadati popis raspoloživih prostorija, željene prostorije za poje-

dina predavanja i (ukoliko postoje) zadati maticnu prostoriju za svaki razred.

2.4.5. Ostala ogranicenja

Od ostalih ogranicenja možemo spomenuti da je moguce zadati interval unutar kojeg

se smije nalaziti odredeni broj radnih sati8 u danu za razrede i nastavnike, zatražiti

pauze za profesore u odredeno vrijeme te zatražiti da profesor predaje samo jednoj

generaciji u jednom danu.

6Ovdje se pod slijedno misli da dva predavanja (ne)moraju slijediti jedno iza drugoga.7Na primjer, za nastavu tjelesne i zdravstvene kulture je potrebna dvorana, a za informatiku ucionica

opremljena racunalima.8Broj radnih sati u danu je broj sati provedenih na nastavi, ne racunajuci pauze.

9

Page 15: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

3. Heuristicki i metaheuristickialgoritmi

Ovo poglavlje opisuje odabrane algoritme koji su primjenjivi na izradu rasporeda.

Samo neki od njih ce biti implementirani, a o tome ce biti više u poglavlju 5.

Heuristicki algoritmi su algoritmi koji ne daju najbolje rješenje, ali u najboljem

slucaju daju dobro rješenje u razumnom vremenskom periodu.[13] Služe za pronala-

ženje pocetnog ili okvirnog rješenja kad klasicne metode zakažu ili su prespore. Zbog

brzine se gubi na dobroti, potpunosti, preciznosti i/ili tocnosti rješenja. Možemo ih

podijeliti na dvije vrste:

Konstrukcijski algoritmi Kao što im ime govori, ovi algoritmi konstruiraju rješenje.

Najcešce su brzi i jednostavni, ali usko povezani uz problem koji rješavaju.

Algoritmi lokalne pretrage Ovi algoritmi se najcešce javljaju uz neki konstrukcij-

ski algoritam jer pokušavaju iterativnim postupkom poboljšati dobiveno pocetno

rješenje. Za razliku od konstrukcijskih algoritama, ovi algoritmi su sporiji, ali

daju bolja rješenja i u svom radu koriste vrlo opcenita nacela koja su neovisna o

problemu koji rješavaju.

Metaheuristika je racunarska metoda koja iterativnim postupkom pokušava pobolj-

šati postojece rješenje s obzirom na neku evaluacijsku funkciju. Metaheuristike imaju

vrlo malo ili nijednu pretpostavku o problemu cije rješenje optimiziraju te mogu pre-

tražiti vrlo velik prostor rješenja, ali zato ne garantiraju da ce u konacnici pronaci

optimalno rješenje. Mnogi metaheuristicki algoritmi u svom radu koriste neki oblik

stohasticke optimizacije.

3.1. Optimizacija kolonijom mrava

Optimizacija kolonijom mrava je prirodom inspiriran algoritam koji oponaša svojstva

kolektivne inteligencije. Jedinke lokalno stvaraju promjene u svojoj okolini i na taj

10

Page 16: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

nacin uzrokuju pojavu globalnih svojstava. Na taj nacin moguce je rješavati komplek-

sne raspodijeljene probleme pomocu jednostavnih lokalnih interakcije bez potrebe za

centraliziranim globalnim sustavom. Osnovna ideja samoorganizirajucih nacela koja

dozvoljavaju visokokoordinirano ponašanje pravih mrava može poslužiti kao izvor in-

spiracije za izradu novih algoritama ciji dijelovi suraduju kako bi riješili problem.

Mravi imaju vrlo slabo razvijen vid ili su potpuno slijepi tako da se njihova komu-

nikacija svodi na korištenje kemikalija koje nazivamo feromonima. Tako ce primjerice,

mravi putem od gnijezda do hrane za sobom ostavljati trag feromona. Na svim puto-

vima gdje je barem jedan mrav prošao postojati ce feromonski trag od gnijezda do

hrane i s vremenom ce se istaknuti najjaci trag koji ce svi mravi slijediti. Pokus koji

najbolje predstavlja proucavano ponašanje mrava su opisali [4] pomocu pokusa s dvos-

trukim mostom (slika 3.1). Most je povezivao gnijezdo Argentinskih mrava (I. humilis)

i izvor hrane te su u razlicitim pokusima mijenjali omjer r = llls

izmedu duljina dvaju

krakova mosta gdje je ll dulji krak, a ls kraci krak.

Slika 3.1: Dvostruki most

U prvom eksperimentu je most podijeljen na dva jednaka kraka (r = 1). Mravi su

pušteni da se slobodno krecu od gnijezda do hrane. Pratili su broj mrava koji je odabrao

jedan ili drugi krak mosta. Rezultat je bio taj da su u pocetku mravi birali nasumican

krak, ali s vremenom su poceli kretati iskljucivo jednim od krakova. Rezultat možemo

protumaciti na sljedeci nacin. Na pocetku pokusa na nijednom od krakova nije bilo

tragova feromona, tako da nisu imali poželjniji put. S vremenom je veci broj mrava

izabrao jedan od krakova i time ostavio vecu kolicinu feromona na tom kraku. Veca

kolicina feromona mravima znaci da je to poželjniji put i uskoro ce svi ici tim putem.

U drugom pokusu je omjer krakova bio r = 2, tako da je dulji krak bio dvostruko

dulji od kraceg. Ponovno, na pocetku pokusa nije bilo feromona na krakovima i mravi

su nasumicno birali put. Ubrzo su svi mravi poceli birati kraci krak (slika 3.2).

Izveden je još niz pokusa koji su pokazali kako isparavaju feromoni i uticu na

11

Page 17: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Slika 3.2: Tijek pokusa s dvostrukim mostom

kretanje mrava

3.2. Osnovni algoritam optimizacije kolonijom mrava

Prva inacica algoritma i gotovo sve njegove nadogradnje imaju iste korake pri radu.

Postupak je opisan pseudokodom 3.1. Inicijalizacijom se stvaraju strukture podataka

potrebne za rad. Unutar glavne petlje se obavlja konstrukcija mravljih rješenja, potom

se nad svim ili samo najboljim mravljim rješenjem obavlja lokalna pretraga. Nakon

lokalne pretrage se obavlja isparavanje i polaganje novih feromonskih tragova. Na

kraju se obavljaju pozadinske akcije (engl. daemon actions) koje nisu obavezni dio

algoritma, ali mogu poslužiti kao prostor za proširenje algoritma.

Gledajuci rad algoritma, možemo ga podijeliti na osnovne dijelove:

– konstrukcijski algoritam,

– algoritam lokalne pretrage i

– feromonski model.

Konstrukcijski algoritam i osnovni feromonski model ce biti objašnjeni u sljedecim

poglavljima, a algoritmi lokalne pretrage u poglavlju 4. Pojedinacni algoritmi optimi-

zacije kolonijom mrava ce takoder biti objašnjeni u sljedecim poglavljima.

12

Page 18: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 3.1 Algoritam optimizacije kolonijom mravainicijaliziraj

dok nije zadovoljen završni kriterij radikonstruiraj mravlja rješenja

obavi lokalnu pretragu

osvježi feromone

pozadinske akcije

kraj dok

3.2.1. Konstrukcijski algoritam

Osnovni konstrukcijski algoritam je heuristicki konstrukcijski algoritam koji poste-

peno pokušava rasporediti sva predavanja u dostupne termine. Pri radu se služi samo

informacijama o dostupnosti resursa, ali ih nece uvijek poštivati. Takoder, ne obazire

se na dodatna ogranicenja i ne pazi na preljev bloka predavanja u drugi turnus ili dan.

Konacni raspored koji ce konstruirati ovaj algoritam ne zadovoljava rješenje os-

novnog problema jer krši stroga ogranicenja, ali ce konstruirani raspored biti “izvediv

u vremenu i prostoru”.

Pri odabiru redoslijeda smještanja predavanja u raspored se koristi kolektivna inte-

ligencija mrava koja bilježi koliko puta pojedino predavanje nije bilo moguce smjestiti

u raspored koji se gradio. Svaki neuspješan pokušaj povecava brojac uz to predavanje i

povecava njegovu složenost. Informacija o složenosti predavanja se koristi pri pseudo

slucajnom proporcionalnom odabiru tako da ce složenija predavanja biti razmještena u

raspored medu prvima.

Uvodi se pravilo slucajnog proporcionalnog odabira, a time i novu heuristicku

informaciju, feromonske tragove koje polažu mravi.

Slucajno proporcionalni odabir

Pravilo slucajno proporcionalnog odabira (engl. random proportional rule) služi mravu

k da odabere termin sj za predavanje li. Pravilo je dano sljedecom jednadžbom:

pkij =[τij]

α[ηij]β∑

l∈Nki[τil]α[ηil]β

, ako j ∈ Nki (3.1)

gdje τij predstavlja vrijednosti feromona za predavanje li u terminu sj , a ηij predstavlja

neku heuristicku informaciju. [5]

U ovom slucaju radi se o vrijednosti koju vraca izracun dostupnosti1. Parametri α1Opisan u poglavlju 5.3.2.

13

Page 19: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

i β imaju sljedecu ulogu. Ako je α = 0 onda vecu vjerojatnost imaju oni termini koji

imaju bolju dostupnost resursa. Ako je β = 0 onda samo feromonski tragovi uticu

na odabir termina. Umnožak u brojniku daje objedinjenu heuristicku informaciju s

naglaskom na dostupnosti ili feromonske tragove. Ovaj omjer predstavlja vjerojatnost

da termin sj bude odabran u susjedstvu mrava k tako da vrijednost brojnika predstavlja

sumu heuristickih vrijednosti cijelog susjedstva. Susjedstvo mrava cine svi termini koji

još nisu popunjeni.

Rad konstrukcijskog algoritma

Nakon inicijalizacije potrebnih podatkovnih struktura ulazi se u glavnu programsku

petlju koja obavlja funkciju rasporedivanja svih predavanja u vlastite termine.

Algoritam 3.2 Mravlji konstrukcijski algoritaminicijaliziraj

dok rasporedenaPredavanja < ukupnoPredavanja radiodabranoPredavanje← slucajno proporcinalni odabir predavanja

odabraniTermin← slucajno proporcinalni odabir termina

noviRaspored← rasporedi(odabraniTermin, odabranoPredavanje)

ako odabranoPredavanje nije rasporedeno u odabraniTermin ondazablijezi promasaj uz odabranoPredavanje

ponovno pokreni algoritam

inaceoznaci odabranoPredavanje kao rasporedeno

kraj akokraj dok

Predavanje koje ce sljedece biti rasporedeno se bira pomocu pravila slucajnog pro-

porcionalnog odabira. Razlika u odnosu na jednadžbu (3.1) jest da se ne koriste vri-

jednosti feromona, a heuristicku informaciju predstavlja podatak o “kompleksnosti”

pojedinog predavanja. Kompleksnost predavanja je zapravo broj promašaja za poje-

dino predavanje, broj neuspjelih pokušaja rasporedivanja tog predavanja. Informacije

o broju promašaja se centralno sinkroniziraju nakon svakog završetka rada konstruk-

cijskog algoritma tako da na pocetku rada algoritma se radi o nasumicnom odabiru

predavanja, ali s vremenom se cešce medu prvima odabiru predavanja s više proma-

šaja. Ovaj nacin rada je uveden jer je primijeceno kroz testiranja da ako se kompleks-

nija predavanja medu prvima smjeste u raspored, da postoji veca vjerojatnost da ce sva

14

Page 20: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

predavanja biti rasporedena.

Termin za pojedino predavanje se bira pomocu pravila slucajnog proporcionalnog

odabira kako je opisano u jednadžbi (3.1).

3.2.2. Feromonski model

Kao što je vec spomenuto, feromoni predstavljaju stvarne feromone koje za sobom

ostavljaju mravi. Oni nam govore koliko je neki put do rješenja dobar i zajedno s

heuristickom informacijom trebaju usmjeriti algoritam k boljem rješenju. Svi fero-

monski modeli imaju sljedece stvari zajednicke. Imaju neku strukturu feromonskih

tragova, metodu za postavljanje pocetnih vrijednosti, metodu za polaganje novih tra-

gova i metodu za isparavanje tragova. Medusobno se razlikuju u implementaciji poje-

dinih metoda. Struktura se modelira obzirom na problem koji se rješava. U sljedecim

poglavljima ce biti opisani neki opceniti pojmovi i procesi vezani uz feromonske tra-

gove. Specificne implementacije pojedinih metoda ce biti obradene unutar poglavlja o

specificnoj vrsti algoritma optimizacije kolonijom mrava u kojoj se koristi.

Struktura feromonskih tragova

Feromonski tragovi su predstavljeni dvodimenzionalnom matricom F decimalnih vri-

jednosti gdje redci predstavljaju s termina, a stupci predstavljaju l predavanja. Odlucio

sam se za ovakav oblik jer se izradi rasporeda pristupa iz konteksta predavanja. Kao

što smo vec definirali, predavanje ima unaprijed zadane predmet, profesora(e) i raz-

red(e), a promjenjivi su termin i prostorija u kojoj ce se održavati. U zahtjevima su

zadani željeni termini i prostorije, a na algoritmu je da odabere onaj spoj koji ce se

najbolje uklapati u cijeli raspored. Svako predavanje ne mora imati zadane prostorije2

tako da se ta informacija ne zapisuje u feromonskim tragovima. Takoder, rasporediva-

nje predavanja po prostorijama ne predstavlja prioritet i uvijek se može, do neke mjere,

optimizirati lokalnom pretragom.

Planira se provesti testiranja s višedimenzionalnom strukturom feromonskih tra-

gova, ali vjerujemo da je ovo najbolji omjer izmedu informacija i kvalitete rezultata.

S više dimenzija bi se feromonski trag mogao previše raspršiti i time bi se izgubilo na

kvaliteti rješenja i povecala složenost rada sa strukturom feromonskih tragova.

2Primjerice, informacije za roditelje nemaju dodijeljenu prostoriju.

15

Page 21: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Slika 3.3: Feromonski model

Pocetna vrijednost feromona

Pocetna vrijednost feromona se postavlja na unaprijed odredenu vrijednost koja se

najcešce izracunava pomocu neke funkcije koja ovisi o pronadenom rješenju. Pocetno

rješenje ne mora biti idealno ili prihvatljivo, vec je dovoljno da zadovoljava neke os-

novne kriterije kako bi nam pružilo okvirne informacije o rezultatima koje možemo

ocekivati za ovaj problem. Za izradu pocetnog rješenja se koristi jednostavan heuris-

ticki algoritam koji je opisan u poglavlju 5.3.1.

Isparavanje feromonskih tragova

Postupak isparavanja feromonskih tragova takoder odgovara procesu koji se odvija

u prirodi. Feromoni koje su mravi položili ce s vremenom isparavati tako da dok

drugi mrav dode do nekog feromonskog traga on ce imati manji intenzitet nego kada

je položen. Ukoliko se radi o vrlo prometnoj ruti kojom ide mnogo mrava, onda ce

intenzitet biti jaci jer se cešce polažu novi feromoni i ostale rute ce polako ispariti.

Ovaj postupak osigurava da feromoni nekog dobrog rješenja (ali ne najboljeg) ne-

maju prevelike vrijednosti kako ne bi došlo do stagnacije algoritma u lokalnom op-

timumu. Osnovna ideja jest da se svi feromonski tragovi isparavaju nakon proteka

vremena ili u našem slucaju, nakon iteracije, koraka ili neke druge akcije. Tocan pos-

tupak isparavanja biti ce opisan u nastavku rada uz svaki algoritam.

Polaganje feromonskih tragova

Postoje razliciti nacini polaganja feromonskih tragova [6]. Razlikujemo tri vrste:

1. Algoritam temeljen na gustoci mrava ant-density polaže unaprijed zadanu vri-

jednost feromona nakon svakog koraka mrava.

16

Page 22: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

2. Algoritam temeljen na brojnosti mrava ant-quantity polaže vrijednost feromona

obrnuto proporcionalnu vrijednosti odabranog koraka3 nakon svakog koraka mrava.

3. Algoritam temeljen na ciklusima mrava (engl. ant-cycle) polaže feromone na-

kon što je završila konstrukcija rješenja. Vrijednost položenih feromona je obr-

nuto proporcionalna kvaliteti rješenja (prijedenog puta) ili neka unaprijed zadana

funkcija najcešce ovisna o kvaliteti rješenja.

Testiranja su pokazala da treca metoda, algoritam temeljen na ciklusima mrava,

daje najbolje rezultate i u ovom radu ce se samo ona koristiti.

Algoritam temeljen na ciklusima mrava se može podijeliti na dva razlicita pristupa

[6]. Recimo da mrav konstruira rješenje s1 i to rješenje se pomocu lokalne pretrage

unaprijedi i nastane rješenje s2. Ukoliko obavljamo polaganje feromona koristeci rje-

šenje s2 (nakon lokalne pretrage), radi se o Lamarckovom modelu. Ukoliko se koristi

rješenje s1, radi se o Darwinovom modelu.

Testiranja su pokazala da Darwinov model nauci konstruirati dobra pocetna rje-

šenja, ali Lamarckov model daje bolja rješenja u konacnici. Pošto želimo da se u

rješenjima vidi efekt lokalne pretrage i želimo bolja rješenja u konacnici, koristi cemo

Lamarckov model.

Vizualizacija feromonskih tragova

Ukoliko je rijec o jednostavnom feromonskom modelu, kao u ovom radu, moguce

ga je lako vizualizirati. Pošto je naš feromonski model zapravo tablica ciji su stupci

predavanja a redovi termini. Vrijednosti tablice predstavljene su nijansama sive boje.

Vrijednosti se prije pretvaranja u odgovarajucu nijansu skaliraju na interval [0, 1] tako

da se sve vrijednosti podijele s najvecom dostupnom vrijednosti:

x← τij/argmax(τij). (3.2)

Što je veca vrijednost feromona to ce biti tamnije polje koje mu odgovara. Rad je

opisan algoritmom 3.3.

3Kod problema trgovackog putnika bi se ovdje radilo o duljini puta.

17

Page 23: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 3.3 Algoritam vizualizacije feromonskih tragovaslika← stvori novu sliku velicine brojPredavanja ∗ brojTerminaza od 1 do brojPredavanja radi

za od 1 do brojTermina radiferomon← dohvati vrijednost feromona na poziciji i, j

x← normaliziraj vrijednost feromona

oboji feromon na poziciji i, j za vrijednost x

kraj zakraj za

18

Page 24: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Slik

a3.

4:V

izua

lizac

ijafe

rom

onsk

ihtr

agov

a

19

Page 25: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

3.3. Mravlji sustav

Mravlji sustav (engl. ant system) je prva i najjednostavnija inacica algoritma optimi-

zacije kolonijom mrava. Rad algoritma prati korake opisane u pseudokodu 3.1. Fero-

monski model odgovara prethodno opisanom modelu uz manje prilagodbe. Vrijednosti

se inicijaliziraju prema sljedecoj jednadžbi:

τij = τ0 =n

Cp(3.3)

gdje je n broj mrava, Cp vrijednost pocetnog rješenja4, τij vrijednost feromona na

poziciji i, j, a τ0 je pocetna vrijednost feromona.

Nakon konstrukcije mravljih rješenja, isparavaju se sve vrijednosti feromona na

sljedeci nacin:

τij = (1− ρ)τij,∀i, j ∈M (3.4)

gdje je ρ neki parametar < 1 za koji isparavaju feromoni, a L oznacava feromonski

model.

Nakon isparavanja se osvježavaju vrijednosti feromona za sva novonastala rješenja:

τij ← τij +m∑k=1

∆τ kij,∀i, j ∈M, (3.5)

∆τij =

1/Ck ako (i, j) pripada T k

0 inace.(3.6)

pri cemu je T k rješenje k-tog mrava, a Ck vrijednost njegovog rješenja. Ostale oznake

su iste kao u prethodnim jednadžbama.

3.4. Elitisticki mravlji sustav

Elitisticki mravlji sustav (engl. elitist ant system) je nadogradnja mravljeg sustava.

Jedina razlika je u nacinu polaganja feromonskih tragova jer elitisticki mravlji sustav

daje prednost boljim rješenjima tako da se u svakoj iteraciji dodatno ojacaju feromoni

koji pripadaju najboljem-do-sada rezultatu. Taj rezultat oznacavamo sa T bs (engl. best-

so-far) i mrav cije je to rješenje ne mora obavezno pripadati trenutnoj koloniji mrava.

Isparavanje feromona nije promijenjeno u odnosu na obicni mravlji sustav, jed-

nadžba (3.4).Pri polaganju feromona se obavlja postupak polaganja kao kod obicnog

4Vrednovanje rješenja objašnjeno je u poglavlju 5.2.

20

Page 26: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

mravljeg sustava, ali se na feromone koji pripadaju i najboljem-do-sada rješenju polaže

dodatnu vrijednost feromona u iznosu od

e

Cbs(3.7)

gdje je e parametar koji daje težinu, a Cbs je vrijednost najboljeg-do-sad rješenja.

Funkcija koja polaže nove feromone izgleda ovako:

τij = (1− ρ)τ kij + e∆τ bsij , (3.8)

pri cemu vrijedi:

∆τ bsij =

1/Cbs ako (i, j) pripada T bs

0 inace.(3.9)

Elitisticki mravlji sustav, uz odgovarajuci parametar e, postiže puno bolje rezultate od

obicnog mravljeg sustava.

3.5. Poredani mravlji sustav

Poredani mravlji sustav (engl. rank-based ant system) [2] funkcionira kao i obican

mravlji sustav samo što je vrijednost novih feromona koju polažu mravi proporcionalna

rangu mrava unutar kolonije. Mravi se rangiraju prema kvaliteti njihova rješenja od

najboljeg prema najlošijem.

U svakoj iteraciji samo (w − 1) najboljih mrava i najbolji-do-sada mrav polaže

feromone. Ukoliko su neka dva mrava izjednacena, rangovi izmedu ta dva mrava ce

biti slucajno rasporedeni. Najbolji mrav polaže najviše feromona Vrijednost feromona

koji ce mrav položiti jednaka je:

τij ← τij +w−1∑r=1

(w − r)∆τ rij + w∆τ bsij (3.10)

pri cemu je ∆τ rij = 1/Cr i ∆τ bsij = 1/Cbs. Poredani mravlji sustav postiže malo bolje

rezultate od elitistickog mravljeg sustava.

3.6. MAX−MIN mravlji sustav

MAX−MINmravlj sustav (engl.MAX−MINant system) se temelji na mravljem

sustavu, ali puno bolje iskorištava najbolja pronadena rješenja. U nastavku se nalaze

cetiri glavne razlike:

21

Page 27: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

1. Samo najbolji mrav iz svih dosadašnjih kolonija ili samo najbolji mrav iz tre-

nutne kolonije smije polagati feromone. Ovo može dovesti do stagnacije jer ce

svi mravi poceti slijediti isti put zbog previsokih vrijednosti feromona.

2. Vrijednosti feromona su ogranicene na interval [τmin, τmax].

3. Feromoni se inicijaliziraju na maksimalnu vrijednost τmax što uz sporije ispara-

vanje feromona omogucava da se u pocetku istražuju manje vjerojatna rješenja.

4. Ukoliko algoritam pocne stagnirati, tj. ne bude pronadeno bolje rješenje odreden

broj iteracija, vrijednosti feromona se ponovno inicijaliziraju na τmax.

Isparavanje se vrši kao u mravljem sustavu (jednadžba (3.4)), a polaganje feromona

vrši samo najbolji mrav. Najbolji mrav može biti ili najbolji-do-sada mrav ili najbolji-

u-koloniji mrav. Odabir mrava ovisi o broju iteracija, a time i o velicini problema. Pre-

poruka je za manje probleme koristiti najboljeg-u-koloniji mrava, a za vece probleme,

zavisno koliko želimo da algoritam bude pohlepan, da se izmjenjuju najbolji-do-sada i

najbolji-u-koloniji mrav.

Polaganje feromona se vrši prema sljedecoj formuli:

τij ← τij + ∆τ bestij (3.11)

pri cemu je ∆τ bestij = 1/Cbest vrijednost najboljeg-do-sada ili najbolji-u-koloniji mrava.

Nakon svakog polaganja feromona se vrši provjera granica vrijednosti feromona

koje moraju biti u intervalu [τmin, τmax]. Time svaki termin ima vjerojatnost 0 ≤pmin ≤ pmax ≤ 1 da bude odabran. Vrijednosti iz intervala se mogu izracunati po-

mocu ovih jednadžbi:

τmax ←1

ρCbs, (3.12)

τmin ←τmaxa

(3.13)

gdje Cbs odgovara vrijednosti najboljeg-do-sad rješenja, a a je parametar. Pri inicijali-

zaciji ce pocetno rješenje generirano pomocu jednostavnog konstrukcijskog algoritma

predstavljati vrijednost Cbs rješenja. Gornja granica ce se osvježavati pri svakom pro-

nalasku novog najboljeg-do-sada rješenja.

Nakon što algoritam odredeni broj iteracija nije pronašao bolje rješenja, vrijednosti

feromona se ponovno inicijaliziraju na gornju vrijednost. Inicijalizacija na gornju vri-

jednost omogucava polagano povecavanje razlika izmedu vrijednosti feromona, a time

i vecu mogucnost za istraživanje do sada neotkrivenih rješenja.

22

Page 28: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

3.7. Sustav kolonije mrava

Sustav kolonije mrava (engl. ant colony system) je graden nad mravljim sustavom, ali

ne uvodenjem manjih izmjena, vec uvodenjem novih ideja. Novosti možemo svesti na

tri stvari:

1. Bolje iskorištava iskustvo koje su stekli mravi novim nacinom odabira termina

za predavanje.

2. Isparavanje i polaganje novih feromona se obavlja samo na feromonima koji

pripadaju najboljem-do-sada mravu.

3. Svaki put kada mrav odabere neki termin za neko predavanje, odgovarajuci fe-

romon se malo ispari kako bi se povecala vjerojatnost za druge termine

U nastavku su promjene detaljno opisane.

Sustav kolonije mrava je povezan i sMAX−MINmravljim sustavom.

MAX−MINmravlji sustav ima eksplicitno zadane granice τmin i τmax dok sustav

kolonije mrava ima implicitno zadane granice.

3.7.1. Pseudoslucajni proporcionalni odabir

Pravilo slucajnog proporcionalnog odabira se nadograduje i uvodi se pravilo psedos-

lucajnog proporcionalnog odabira (engl. pseudorandom proportional rule) koje je de-

finirano sljedecom jednadžbom:

j =

maxl∈Nki{τil[ηil]β}, ako q ≤ q0;

J inace(3.14)

gdje je q uniformno razdijeljena varijabla iz intervala [0, 1], a q0 je unaprijed zadani

parametar (0 ≤ q0 ≤ 1). J predstavlja slucajno odabrani termin pomocu jednadžbe

(3.1)(α = 1). Ovo pravilo zapravo s vjerojatnošcu q0 odabire najbolji moguci termin

ili se ponaša po pravilu slucajnog proporcionalnog odabira. Što je manji parametar q0veca je vjerojatnost da ce algoritam istraživati nova rješenja nezavisno od heuristickih

informacija.

3.7.2. Globalno osvježavanje feromona

Osvježavanje feromona se sastoji od isparavanja feromona i polaganja novih feromona,

ali pošto se u sustavu kolonije mrava samo feromoni najboljeg-do-sada mrava osvje-

23

Page 29: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

žavaju, funkciju možemo objediniti u:

τij ← (1− ρ)τij + ρ∆τ bsij ,∀(i, j) ∈ T bs. (3.15)

U prethodnoj jednadžbi parametar ρ predstavlja isparavanje fermona, a ∆τ bsij = 1/Cbs.

Dodatna razklika u odnosu na mravlji sustav jest u umanjivanju novih feromonskih

tragova za ρ. Time je nova vrijednost feromona bliža postojecoj vrijednosti feromona

i τmin nikada nece biti manji od τ0.

3.7.3. Lokalno osvježavanje feromona

Mravi nakon svakog koraka osvježavaju vrijednost feromona koji odgovara odabranom

koraku za:

τij ← (1− ξ)τij + ξτ0 ∈ T bs. (3.16)

gdje su ξ, 0 ≤ ξ ≤ 1 i τ0 predstavljaju parametre. τ0 je namješten na inicijalnu vrijed-

nost svih feromona, a za ξ se pokazalo da je 0.1 povoljna vrijednost.

Lokalno osvježavanje feromona koje se provodi odmah po odabiru novog koraka

svakog mrava omogucava trenutno smanjenje feromonskih vrijednosti vec odabranih

termina, a time povecava vjerojatnost da ce se koristiti drugi manje istraženi termini

vec u ovoj iteraciji.

24

Page 30: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

4. Algoritmi lokalne pretrage

Lokalna pretraga je vrlo cesto korištena vrsta heuristickih algoritama. Pocinje od

nekog pocetnog rješenja na kojem u svakoj iteraciji radi niz lokalnih promjena koje

poboljšavaju kvalitetu rješenja u svakoj iteraciji dok se ne pronade lokalni optimum.

Primjeri lokalnih pretraga su simulirano kaljenje, tabu pretraga, pohlepni slucajni pri-

lagodljivi algoritam pretrage (GRASP), pretraživanje promjenjivom širinom i slicni.

Metode lokalne pretrage rade niz lokalnih promjena nad pocetnim rješenjem cime

mu u svakoj iteraciji poboljšavaju vrijednost evaluacijske funkcije dok nije postignut

lokalni optimum. Tocnije, u svakoj iteraciji stvara se poboljšano rješenje x′ u susjed-

stvu N (x) trenutnog rješenja x sve dok se više ne može pronaci bolje rješenje. To

najcešce znaci da je algoritam zapeo u lokalnom optimumu. [10]

U algoritmima lokalne pretrage možemo uociti tri glavna nacina za pomak na novo

rješenja:

Slucajno poboljšanje (engl. random improvement) Novo rješenje se bira slucajnim

odabirom boljeg rješenja iz susjedstva.

Prvo poboljšanje (engl. first improvement) Iterira se nekim redoslijedom kroz susjed-

stvo i prvo bolje rješenje postaje novo rješenje.

Najbolje poboljšanje (engl. best improvement) Iterira se nekim redoslijedom kroz su-

sjedstvo i najbolje rješenje u cijelom susjedstvu postaje novo rješenje.

Zavisno od velicine prostora koji pretražujemo i ocekivane kvalitete rješenja koristi se

jedno od spomenutih pravila.

4.1. Pretraga promjenjivih susjedstva

Lokalna pretraga s više susjedstva koja se izmjenjuju je bila vrlo neuobicajena prije

pojave ovog algoritma. Koristeci više susjedstva koja se izmjenjuju i jednostavnu lo-

25

Page 31: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

kalnu pretragu dobili smo novi algoritam. Ovaj pristup se zove pretraga promjenjivih

susjedstva (engl. Variable Neibghorhood Search, VNS). [8]

VNS se zasniva na sljedece tri pretpostavke:

1. Lokalni optimum unutar jednog susjedstva ne mora biti isti kao i u drugom su-

sjedstvu.

2. Globalni optimum je lokalni optimum unutar svih mogucih susjedstva.

3. Lokalni optimumi su vrlo blizu jedan drugoga, a mogu se nalaziti u istome ili

razlicitim susjedstvima.

VNS ne prati putanju, vec istražuje sve udaljenija susjedstva u odnosu na trenutno

rješenje i odabire novo rješenje ako i samo ako je pronadeno rješenje bolje od trenut-

nog. Na ovaj nacin ce mnoge poželjne karakteristike trenutnog rješenja biti prenesene

u novo rješenje. Nad novim rješenjem se dodatno provodi lokalna pretraga kako bi

se došlo do lokalnog optimuma. Susjedstvo je okolina trenutnog rješenja x, a susjed-

stva se medusobno razlikuju po nacinu na koji stvaraju nova rješenja. Za rad sa su-

sjedstvima je potrebno definirati funkcije koja ce moci mjeriti udaljenost izmedu dva

rješenja.

Postoji više razlicitih inacica algoritma, ali sve inacice zahtijevaju funkciju inici-

jalizacije opisanu pseudokodom 4.1. Ova funkcija prije pocetka rada algoritma defi-

nira evaluacijsku funkciju f , prostor rješenja X , konacni skup susjedstva Nk, (k =

1, . . . , kmax), a s Nk(x) skup rješenja oko x u k-tom susjedstvu.

Algoritam 4.1 Inicijalizacija pretrage promjenjivih susjedstvafunkcija INICIJALIZIRAJ

f ← evaluacijska funkcija

X ← prostor rjesenja

definiraj skup susjedstva Nk, (k = 1, . . . , kmax)

x← pocetno rješenje

kraj funkcija

Kako bi algoritam mogao izaci iz lokalnih optimuma, unija svih susjedstva oko

nekog moguceg rješenja x bi trebala sadržavati cijeli skup mogucih rješenja:

X ⊆ N1(x) ∪N2(x) ∪ . . . ∪Nkmax(x),∀x ∈ X, (4.1)

26

Page 32: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

pri cemu je X skup svih mogucih rješenja. Ovi skupovi (susjedstva) ne moraju dijeliti

skup X na dijelove vec mogu ciniti ugniježdene cjeline tako da vrijedi:

N1(x) ⊂ N2(x) ⊂ . . . ⊂ Nkmax(x), X ⊂ Nkmax(x),∀x ∈ X, (4.2)

cime odmah vrijedi i |N1| < |N2| < . . . < |Nkmax|. Ukoliko ne vrijedi barem jedno od

pravila (4.1) i (4.2) još uvijek postoji mogucnost da cemo biti u mogucnosti potpuno

istražiti skup svih mogucih rješenja, ali nije garantirano. [9]

4.1.1. Spust po promjenjivim susjedstvima

Algoritam spusta po promjenjivim susjedstvima (engl. variable neighborhood descent,

VND) je vrlo jednostavan i gotovo potpuno deterministicki algoritam. Algoritam funk-

cionira tako da pronade najboljeg susjeda x′ unutar susjedstva Nk(x), ukoliko je novo

rješenje x′ bolje od trenutnog rješenja x, novo rješenje postaje trenutno i nastavlja po-

tragu od prvog susjedstva Nk(k ← 1), a u suprotnom se pomice u novo susjedstvo

Nk(k ← k + 1), k ≤ kmax. Cijeli postupak je opisan pseudokodom 4.2.

Algoritam 4.2 Algoritam spusta po promjenjivim susjedstvima, VNDk ← 1

dok k ≤ kmax radipronadi najboljeg susjeda x′ iz susjedstva Nk(x)

ako f(x′) < f(x) ondax← x′

k ← 1

inacek ← k + 1

kraj akokraj dok

Istraživanje susjedstva završava pronalaskom najboljeg rješenja iz susjedstvaNk(x).

Ukoliko je pretraga cijelog susjedstva dugotrajna i zahtjevna, a zadovoljni smo skoro

optimalnim rješenjem, možemo koristiti jedan od sljedecih algoritama.

4.1.2. Osnovna pretraga promjenjivih susjedstva

Algoritam osnovne pretrage promjenjivih susjedstva (engl. basic variable neighbor-

hood search, BVNS) je osnovni algoritam pretrage promjenjivih susjedstva nad kojim

27

Page 33: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

su gradene daljnje inacice algoritma koje uglavnom razlikuju u algoritmu pretresa su-

sjedstva i algoritmu lokalne pretrage.

Rad algoritma je opisan pseudokodom 4.3. U trenutnom susjedstvu pretresom na-

lazi novo rješenje i nad njim provodi lokalnu pretragu. Ukoliko je novo rješenje bolje

od trenutnog, novo rješenje postaje trenutno i nastavlja potragu u istom susjedstvu, a

inace prelazi u sljedece susjedstvo. [9] Pretres (engl. shaking) predstavlja pretragu

susjedstva. Ovdje se radi o slucajnom odabiru novog rješenja iz trenutnog susjedstva.

Izbjegava se korištenje nekog deterministickog pravila kojim bi od trenutnog rješenja

odredenim nizom koraka došli do novog rješenja kako ne bi zapeli u petlji.

Algoritam 4.3 Algoritam osnovne pretrage promjenjivih susjedstva, BVNSk ← 1

dok k ≤ kmax radiPRETRES: x′ ← slucajno rješenje iz susjedstva Nk(x)

x′′ ← obavi lokalnu pretragu nad x′

ako f(x′′) < f(x) ondax← x′′

k ← 1

inacek ← k + 1

kraj akokraj dok

Ostale inacice algoritma se uglavnom razlikuju po nacinu pretrage susjedstva. Važno

je napomenuti da se unutar glavne petlje (pseudokod 4.1) može definirati neki drugi

kriterij za zaustavljanje poput:

– najveci broj iteracija,

– najveci broj iteracija bez poboljšanja ili

– najdulje trajanje izvodenja.

4.1.3. Reducirana pretraga promjenjivih susjedstva

Algoritam reducirane pretrage promjenjivih susjedstva (engl. Reduced Variable Neigh-

borhood Search, RVNS) se razlikuje od BVNS-a samo po tome što ne provodi lokalnu

pretragu nad novo izabranim rješenjem. Rad algoritma opisan je pseudokodom 4.4.

28

Page 34: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 4.4 Algoritam reducirane pretrage promjenjivih susjedstva, RVNSk ← 1

dok k ≤ kmax radiPRETRES: x′ ← slucajno rješenje iz susjedstva Nk(x)

ako f(x′) < f(x) ondax← x′

k ← 1

inacek ← k + 1

kraj akokraj dok

4.1.4. Sveobuhvatna pretraga promjenjivih susjedstva

Algoritam sveobuhvatne pretrage promjenjivih susjedstva (engl. general variable ne-

ighborhood search, GVNS) koristi spoj BVNS i VND algoritma. Umjesto lokalne

pretrage iz BVNS algoritma ubacen je VND algoritam i koriste se dvije strukture su-

sjedstva, Nk i Nl za zasebne dijelove algoritma.

Rad algoritma pocinje pretresom susjedstva koje vraca moguce rješenje x′ iz su-

sjedstva Nk(x)) koje se koristi za lokalnu pretragu. VND algoritam pocinje pretragu

od prvog susjedstva iz VND strukture susjedstva. Pretražuje susjedstvoNl(x′′) za naj-

boljeg susjeda x′′′. Ukoliko vrijedi f(x′′′) < f(x′′) postavlja x′′′ umjesto x′′ i nastavlja

potragu od prvog susjedstva Nl(l ← 1), a u suprotnom prelazi u slijedece susjedstvo

Nl(l← l + 1), l ≤ lmax.

Po završetku VND algoritma ukoliko je vrijednost evaluacijske funkcije rješenja

lokalne pretrage x′′ manja od vrijednosti trenutnog rješenja x, prihvaca se novo rješenje

i krece se u novu iteraciju od prvog susjedstva Nk(k ← 1). U suprotnom se prelazi u

sljedece susjedstvoNk(k ← k + 1), k ≤ kmax i pocinje nova iteracija. Cijeli postupak

je detaljno opisan algoritmom 4.5.

4.1.5. Dekompozicijska pretraga promjenjivih susjedstva

Dekompozicijska pretraga promjenjivih susjedstva (engl. variable neighborhood de-

composition search, VNDS) poboljšava rješenje iz susjedstvaNk(x) na temelju rastava

problema koji se rješava. Jedina razlika u odnosu na BVNS jest da umjesto lokalne

pretrage se traži rješenje nekog podproblema unutar nekog podprostora Vk ⊆ Nk(x)

pri cemu vrijedi x′ ∈ Vk. Za rješavanje ovog problema se takoder može koristiti VNS.

29

Page 35: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 4.5 Algoritam sveobuhvatne pretrage promjenjivih susjedstva, GVNSk ← 1

dok k ≤ kmax radiPRETRES: x′ ← slucajno rješenje iz susjedstva Nk(x)

x′′ ← obavi lokalnu pretragu nad x′

l← 1

dok l ≤ lmax radipronadi najboljeg susjeda x′′′ iz susjedstva Nl(x′′)ako f(x′′′) < f(x′′) onda

x′′ ← x′′′

l← 1

inacel← l + 1

kraj akokraj dokako f(x′′) < f(x) onda

x← x′′

k ← 1

inacek ← k + 1

kraj akokraj dok

30

Page 36: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Rad algoritma opisan je pseudokodom 4.6.

Algoritam 4.6 Algoritam dekompozicije promjenjivih susjedstva, VNDSk ← 1

dok k ≤ kmax radiPRETRES: x′ ← slucajno rješenje iz susjedstva Nk(x)

y ← skup k parametara prisutnih u x′, ali ne i u x(y = x′\x)

LOKALNA PRETRAGA: y′ ← Vk(y), x′′ ← (x′\y) ∪ y′)ako f(x′′) < f(x) onda

x← x′′

k ← 1

inacek ← k + 1

kraj akokraj dok

U y je pohranjen skup k parametara prisutnih u x′, ali ne i u x(y = x′\x) koji pred-

stavljaju neki podproblem. Lokalna pretraga traži lokalni optimum u prostoru oko y

pretraživanjem ili heuristikom. Rješenje pohranjuje u y′ te x′′ koji sadrži odgovarajuce

rješenje (x′′ = (x′\y) ∪ y′).

4.1.6. Iskrivljena pretraga promjenjivih susjedstva

VNS daje bolje rezultate kada postoji mnogo dolina s lokalnim optimumima. Mnogi

problemi imaju lokalne optimume zajedno grupirane i tada je lako “skakati” iz jednog

u drugi optimum dok se ne pronade globalni optimum. U slucajevima kada su doline

s lokalnim optimumima vrlo udaljene jedna od druge, a proucavamo sve šira i šira

susjedstva, može se dogoditi da algoritam pocne stagnirati. Prihvacanje nekog lošijeg

rješenja u blizini ili potpuno nasumicnog (boljeg) rješenja jako udaljenog od trenutnog

rješenja nam nece reci jesmo li našli kvalitetniji skup rješenja. Ovaj problem možemo

riješiti tako da kada provjeravamo hoce li novo rješenje biti prihvaceno umjesto evalu-

acijske funkcije ubacimo funkciju koja analizira i udaljenost dvaju rješenja. Time smo

dobili iskrivljenu pretragu promjenjivih susjedstva (engl. skewed variable neighborhod

descent, SVNS).

SVNS koristi funkciju ρ(x, x′′) koja mjeri udaljenost izmedu dva moguca rješenja.

Parametar α mora biti odabran tako da omoguci istraživanje udaljenih rješenja koja su

malo lošija od trenutnog rješenja. Drugim rijecima, vrijednost evaluacijske funkcije

31

Page 37: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 4.7 Algoritam iskrivljene pretrage promjenjivih susjedstva, SVNSk ← 1

dok k ≤ kmax radiPRETRES: x′ ← slucajno rješenje iz susjedstva Nk(x)

x′′ ← obavi lokalnu pretragu nad x′

ako f(x′′) < f(x) ondafopt ← f(x′′)

xopt ← x′′

kraj akoako f(x′′)− αρ(x, x′′) < f(x) onda

x← x′′

k ← 1

inacek ← k + 1

kraj akokraj dok

udaljenog rješenja f(x′′) mora biti dovoljno umanjena da rješenje bude prihvaceno

iako je lošije od trenutnog rješenja x.

32

Page 38: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

5. Implementacija

Ovim poglavljem je opisana implementacija Sustava ostvarena u okviru ovog rada. U

prvom dijelu su opisani pojedini moduli na koje je podijeljen Sustav, njihova funk-

cija i razlozi za takvu podjelu. U sljedecim poglavljima se govori o implementaciji

algoritama opisanih u prethodnim poglavljima. U drugom dijelu se objašnjava nacin

implementacije algoritma optimizacije mravljom kolonijom, a u trecem dijelu imple-

mentacija algoritma lokalne pretrage. Tocnije, radi se o algoritmu pretrage promjenji-

vih susjedstva.

Implementacija u okviru ovog rada je ostvarena nad dijelom postojeceg rješenja

ostvarenog u [12].

5.1. Implementacija rješenja

Iako su obavljeni razgovori u pet osnovnih i srednjih škola, ostaje velika mogucnost

da postoje neki zahtjevi koji nisu pokriveni zahtjevima opisanim u [14]. Upravo iz tog

razloga Sustav mora biti fleksibilan i lako nadogradiv. Cijeli Sustav je implementiran

u Java programskom jeziku koristeci nacela objektno-orijentiranog programiranja.

5.1.1. Osnovni dijelovi Sustava

Sustav je zbog fleksibilnosti i bolje apstrakcije podijeljen na cetiri dijela:

– modul Core,

– modul Data,

– modul Engine i

– modul GUI.

Dva osnovna modula su Core i Data, a nad njima se gradi konkretno rješenje problema

koje pokrece modul Engine. Modul GUI je korisnicko sucelje koje nudi mogucnost

33

Page 39: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

unosa ulaznih vrijednosti i zadavanja ogranicenja te pokretanje izrade i pregled rješe-

nja. Modularnost Sustava je velika prednost jer se izmjenom ili kombiniranjem razli-

citih Engine modula može doci do novih (boljih) rješenja.

U nastavku se nalazi pojednostavljeni pregled spomenutih modula jer za razumije-

vanje rada Sustava nije potreban njihov detaljan opis. U nastavku je opisano nekoliko

osnovnih sucelja i razreda s kojima cemo se cesto susretati. Detaljniji opis je dostupan

u [12].

Modul Core

Core modul sadrži osnovne podatkovne strukture, sucelja i apstraktne razrede za raz-

licite algoritme te okolinu koja pokrece i vodi izradu rasporeda sati. U nastavku je

ponuden pregled osnovnih razreda i sucelja koja cine ovaj modul. Pregled najvažnijih

dijelova ovog modula dan je i dijagramom razreda na slici 5.1.

Slika 5.1: Dijagram razreda modula Core

Unutar Core modula nalaze se strukture podataka koje predstavljaju resurse, a neki

primjeri takvih razreda su:

– Classroom predstavlja prostoriju,

– Lecture predstavlja predavanje,

34

Page 40: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

– Period predstavlja školski sat,

– Subject predstavlja školski predmet,

– Teacher predstavlja predavaca,

– Availability predstavlja dostupnost pojedinog resursa,

– Connection predstavlja vezu i odnos izmedu dva predavanja

– i drugi razredi.

Kako bi se stvorio precizan okvir za izgradnju Engine modula, unutar Core mo-

dula je definiran niz sucelja i apstraktnih razreda koji definiraju izgled algoritama i

postupaka koji ce biti implementirani. Ovo je nužno kako bi okolina za izradu raspo-

reda mogla pokrenuti izradu rasporeda, pratiti napredak, spremati rješenja i zaustaviti

izradu kada je gotova. Neki od apstraktnih razreda su:

– AbstractAlgorithm za obican algoritam,

– AbstractHeuristicAlgorithm za heuristicki algoritam,

– AbstractMetaheuristicAlgorithm za metaheuristicki algoritam,

– AbstractLocalSearchAlgorithm za algoritam lokalne pretrage

– i drugi razredi.

Okolina za izradu rasporeda je predstavljena apstraktnim razredom koji je potrebno

nadograditi kako bi sadržavala sve informacije potrebne za rad odabrane vrste algo-

ritma. Spomenuta okolina brine o sljedecem:

– ucitavanju podataka iz ulazne datoteke,

– inicijalizaciji algoritama i struktura podataka,

– davanju pristupa potrebnim podacima i algoritmima,

– pokretanju izrade rasporeda,

– pokretanju novih iteracija algoritama,

– pracenju i bilježenju rada,

– pohrani medurješenja i konacnog rješenja te

– zaustavljanju rada i gašenju Sustava.

Za vrijeme rada su svim algoritmima dostupne sve informacije o dostupnosti resursa

te cvrstim i mekim ogranicenjima kao i sve ostale informacije sadržane u ulaznoj da-

toteci. Neki od osnovnih konkretnih razreda koji predstavljaju okolinu za pokretanje i

izradu rasporeda su:

35

Page 41: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

ParamsLoader služi za ucitavanje parametara iz ulazne xml datoteke u odgovarajuce

strukture podataka.

SchedulingContext služi kao okruženje koje ucitava parametre, provjerava ih, po-

krece izradu rasporeda, prati napredak i zapisuje rezultat.

AbstractAlgorithmContext apstraktni razred koja služi kao osnova za izgradnju

okruženja za pokretanje algoritama izrade rasporeda i njihove optimizacije. Daje

algoritmima na raspolaganje sve potrebne informacije i pazi na redoslijed izvo-

denja.

ProgressListener razred za vrijeme rada Sustava bilježi sve dogadaje poput novih

rješenja i pogrešaka.

Raspored je predstavljen ISchedule suceljem koje definira osnovne metode koje

mora podržavati svaki raspored. Konacna implementacija ovog sucelja u sebi sadrži

sve podatke o terminima i prostorijama za predavanja. Neke od metoda sucelja koje

moraju biti implementirane su:

– reserveLecture Metoda za rezervaciju predavanja u traženom terminu i pros-

torijama.

– freeLecture Metoda za oslobadanje termina i prostorija koje su bile rezervi-

rane za definirano predavanje.

– getSlotForLecture Dohvat termina za odabrano predavanje.

– getLocationsForLecture Dohvat prostorija za odabrano predavanje.

– getLecturesInSlot Dohvat svih predavanja za odabrani termin.

Suceljem su definirane i druge metode za dohvat informacija o rasporedu.

Modul Data

Modul Data u sebi sadrži osnovne metode za rad s ulaznim xml te izlaznim xml i

xls datotekama te definira njihov osnovni oblik i ponašanja kroz sucelja i apstraktne

razrede. U ovom modulu se nalaze i konkretne implementacije ISchedule sucelja.

Podaci potrebni za rad Sustava su definirani u ulaznoj xml datoteci1 koja sadrži po-

pis razreda, nastavnika, predmeta, predavanja, prostorija i drugih resursa te su zadana

sva cvrsta i meka ogranicenja. Neki od parametara potrebnih za izradu rasporeda su:

– broj tjedana u kojem se održava nastava

1Primjer ulazne datoteke se nalazi na kraju ovog rada.

36

Page 42: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

– broj dana u tjednu u kojima se održava nastava

– popis svih termina predavanja

– popis prostorija2

– popis predmeta

– popis nastavnika

– popis predavanja

– popis veza medu predavanjima

Pregled strukture parametara vidljiv je i na dijagramu razreda na slici 5.2.

Slika 5.2: Dijagram razreda strukture parametara

Struktura izlazne xml datoteke u koju se zapisuje rezultat je jednostavna, sadrži po-

pis predavanja sa pridruženim terminom i prostorijom3 dok izlazna xls datoteka sadrži

tablicni prikaz rasporeda nastave za profesore, razrede i prostorije.

2Nije obavezan.3Ukoliko je moguce definirati prostoriju.

37

Page 43: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Modul Engine

Modul Engine predstavlja konkretnu implementaciju algoritama koji brinu o izradi ras-

poreda. Ovdje se javljaju konkretne implementacije prethodno spomenutih apstraktnih

razreda i njihov opis se nalazi u poglavljima 5.3 i 5.4. Osnovna zamisao Sustava jest

da ovaj modul bude lako zamijenjiv.

5.1.2. Višedretvenost

Višedretvenost se koristi za rad mrava, stvaranje novih susjeda, i vrednovanje više

rasporeda odjednom. U sljedecim poglavljima ce biti više govora o nacinu rada tih

algoritama.

Za ostvarivanje višedretvenosti koristi se Java implementacija ExecutorService

a. Taj razred sam upravlja stvaranjem, pokretanjem i zaustavljanjem dretvi. Pomocu

metode newFixedThreadPool(n) se kreira novi ExecutorService koji odjednom

dozvoljava da bude najviše n dretvi pokrenuto. Zatim se pomocu metode execute(

Runnable task) zadaju zadaci koje je potrebno pokrenuti.

Broj dretvi je ogranicen na broj dostupnih jezgri, dostupan pomocu metode

Runtime.getRuntime().availableProcessors() koja vraca broj procesora koji su

na raspolaganju Java virtualnom stroju.

5.2. Vrednovanje rješenja

Raspored se vrednuje po tome koliko je „prekršaja“ napravljeno takvim rasporedom

predavanja. Neki primjeri prekršaja su: nedostupan profesor, razred ili prostorija u tom

terminu, preljev bloka predavanja u drugi turnus ili dan, više predavanja istog predmeta

u istome danu i slicno. Ukratko, to su sva prekršena cvrsta i meka ogranicenja.

Procjena se vrši pomocu razreda koji nasljeduju apstraktni razred

AbstractEvaluator. Osnovna metoda rada, koja se pokrece metodom evaluate()

jest da konkretni procjenitelj iterira po predavanjima, profesorima, razredima i slicno

tražeci prekršaj za koji je zadužen. Ako ga je našao povecava brojac prekršaja koji ce

vratiti po završetku. Paralelno uz ovakav brojac u vecini procjenitelja4 je implementi-

rana i metoda koja vraca polje predavanja s brojacem prekršaja za pojedino predava-

nje. Na taj nacin je moguce izolirati predavanja koja su najproblematicnija i pomocu

4Kod nekih procjenitelja to nije moguce jer se vrednovanje odnosi na grupu predavanja ili rupe

izmedu predavanja.

38

Page 44: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

lokalne pretrage popraviti raspored. U trenutnoj implementaciji se koriste sljedeci pro-

cjenitelji:

– IllegalLectureLocation Predavanje u krivoj prostoriji.

– DaySplittedLecture Blok s preljevom u drugi dan.

– IllegalLectureWeek Predavanje u krivom tjednu predavanja.

– ConnectionViolation Nepoštivanje veze izmedu predavanja.

– TeacherAvailabilities Profesor nije dostupan u tom terminu.

– ClassAvailabilities Razred nije dostupan u tom terminu.

– RoomAvailabilities Prostorija nije dostupna u tom terminu.

– LectureAvailabilities Predavanje nije dostupno u tom terminu.

– ClassContinuousSchedule Rupe u rasporedu razreda.

– TeacherContinuousSchedule Rupe u rasporedu profesora.

– MultipleLecturesOfSameSubjectInDay Više predavanja istog predmeta u

danu.

– TeacherWorkingPeriods Previše ili premalo predavanja za jednog profesora

u danu.

– ClassWorkingPeriods Previše ili premalo predavanja za razred u danu.

Nakon vrednovanja rasporeda vraca se Solution razred koji u sebi sadrži razred

EvaluationResult i raspored koji je upravo evaluiran. Razred EvaluationResult

predstavlja rezultat vrednovanja i u sebi sadrži niz razreda Fitness koje vracaju spo-

menuti procjenitelji.

Za primjenu nekoliko procjenitelja odjednom se koristi EvaluationAccumulator

koji nasljeduje AbstractEvaluator tako da za algoritam on predstavlja obicni procje-

nitelj, a istovremeno omogucuje ugnježdivanje procjenitelja. Razred AbstractEvaluator

prima u konstruktoru niz AbstractEvaluatora i dozvoljava postavljanje koeficije-

nata koji predstavljaju težine i odgovaraju pojedinom procjenitelju. Pri pozivu metode

evaluate(), iterativno poziva evaluate() metodu procjenitelja koje sadrži. Kao re-

zultat vraca EvaluationResult koji u sebi sadrži pojedinacne rezultate svih procje-

nitelja. Ti rezultati se množe s težinama i zbrajaju te daju konacnu vrijednost za taj

procjenitelj, težinsku sumu pojedinacnih procjenitelja.

Svakom procjenitelju je dodijeljen i naziv tako da se pri detaljnom ispisu lako može

procijeniti gdje je najveci problem.

39

Page 45: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Izvorni kod 5.1: Primjer ispisa procjenitelja

1 [37348.0] Final accumulator

2 10.0*[132.0] Illegal lecture location

3 100.0*[0.0] Day splitted lecture

4 50.0*[0.0] Illegal lecture week

5 30.0*[29.0] Connection violation

6 50.0*[63.0] Availabilities accumulator

7 1.0*[0.0] Teacher availabilities

8 1.0*[36.0] Class availabilities

9 1.0*[0.0] Room availabilities

10 1.0*[27.0] Lecture availabilities

11 35.0*[60.0] Class continuous schedule

12 35.0*[719.0] Teacher continuous schedule

13 25.0*[167.0] Multiple lectures of same subject in day

14 8.0*[71.0] Period count accumulator

15 1.0*[43.0] Teacher working periods

16 1.0*[28.0] Class working periods

5.3. Algoritam optimizacije mravljom kolonijom

U ovom odjeljku su opisani algoritmi optimizacije mravljom kolonijom. Na pocetku se

opisuje jednostavan konstrukcijski algoritam koji služi za stvaranje pocetnih rješenja i

nad kojim je izgraden algoritam za stvaranje mravljih rješenja. U nastavku su opisane

implementacije pojedinih inacica algoritma. Slika 5.3 nudi dijagram razreda osnovnih

razreda implementacije mravljih algoritama.

5.3.1. Konstrukcijski algoritam

Osnovni heuristicki konstrukcijski algoritam se koristi za stvaranje pocetnih rješenja

prilikom pokretanja Sustava i inicijalizacije algoritama. Rad ovog algoritma može se

prikazati pseudokodom 5.1.

Algoritam pocinje s radom tako da inicijalizira vrijednosti jednodimenzionalnog

polja slozenostPredavanja velicine l, gdje l odgovara ukupnom broju predavanja.

Vrijednost slozenostPredavanjai predstavlja brojac neuspjelih pokušaja rasporedi-

vanja i-tog predavanja. Pocetna vrijednost polja slozenostPredavanja je 1. Svaki

put kada se predavanje li ne uspije rasporediti u neki termin, povecava se vrijednost

slozenostPredavanjai za jedan.

40

Page 46: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Slika 5.3: Diagram razreda za algoritam optimizacije mravljom kolonijom

Nakon inicijalizacije, poziva se metoda za izgradnju rasporeda sve dok ne vrati pot-

puni raspored. Polje slozenostPredavanja kopiramo u polje slozenostPredavanjaK

kako bismo mogli eliminirati pojedina predavanja postavljanjem vrijednosti njihova

polja na 0. Polje dostupnostTermina velicine s gdje s odgovara ukupnom broju ter-

mina se racuna pomocu izracuna dostupnosti koji ce biti opisan u iducem odjeljku.

Odabir predavanja p i termina t se vrši pravilom slucajno-proporcionalnog odabira u

odnosu na polja slozenostPredavanjaK i dostupnostTermina. Ukoliko više nema

termina za odabir, povecava se vrijednost slozenostPredavanjap za jedan i vraca se

prazan raspored.

Rezervacija termina t za predavanje p se obavlja ukoliko su svi potrebni resursi

u danom trenutku dostupni. Ako predavanje p nije moguce smjestiti u termin t pos-

tavlja se vrijednost dostupnostTermina na 0. U suprotnom postavljamo vrijednost

slozenostPredavanjaKp na 0 i biramo novo predavanje sve dok ima još predavanja

za rasporediti.

Kažemo da eliminiramo predavanja ili termine postavljanjem pojedinih elemenata

polja slozenostPredavanjaK i dostupnostTermina na 0 jer se ti elementi preskacu

kada se koristi pravilo slucajno-proporcionalnog odabira.

Cilj ovog algoritma nije konstrukcija konacnog rješenja koje bi se negdje koristilo,

vec dobivanje pocetnog rješenja koje nam nudi neke opcenite informacije o rješenjima

41

Page 47: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Algoritam 5.1 Osnovni konstrukcijski algoritamfunkcija MAIN

slozenostPredavanja[]← 1

raspored← null

dok r == null radiraspored←generirajRaspored(slozenostPredavanja)

kraj dokkraj funkcijafunkcija GENERIRAJRASPORED(slozenostPredavanja)

r ←noviRaspored()

slozenostPredavanjaK ← slozenostPredavanja.kopiraj()

dok ima predavanja za rasporediti radip← odaberiPredavanje(slozenostPredavanjaK)

dostupnostTermina← izracunajDostupnosti(p)

dok radi beskonacno radit←odaberiTermin(dostupnostTermina)

ako nema vise termina ondaslozenostPredavanja[p]++ vrati null

kraj akoako r.rezerviraj(p,t) onda

slozenostPredavanjaK[p]← 0

prekini petlju

inacedostupnostTermina← 0

kraj akokraj dok

kraj dokvrati rkraj funkcija

koja možemo ocekivati. Rad algoritma jako slici radu mrava koji je prethodno opisan,

samo što nema informaciju o feromonskim tragovima i koristi jednostavnije (nepreciz-

nije) heuristicke informacije.

42

Page 48: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

5.3.2. Izracun dostupnosti

Izracun dostupnosti (engl. availability calculator) je jedinstven nacin za izracun dos-

tupnosti svih resursa ukljucenih u odabrano predavanje. Dostupnost resursa predstav-

lja heuristicku informaciju u algoritmu optimizacije mravljom kolonijom. Apstraktni

razred AbstractAvailabilityCalculator ciji izvorni kod je vidljiv u 5.3.2 definira

izgled i ponašanje implementacija izracuna dostupnosti.

Metoda initializeForLecture(int LectureId) priprema kontekst za odabrano

predavanje. Kontekst se sastoji od:

– dostupnosti predavanja,

– dostupnosti razreda koji slušaju to predavanje,

– dostupnosti predavaca koji održava to predavanje i

– dostupnosti prostorija u kojima je poželjno održati to predavanje.

Pozivom metode calculateForAllSlots(int lectureId) priprema se kontekst za

odabrano predavanje i potom iterira po svim terminima predavanja i izracunava dos-

tupnost za sve kombinacije odabranog predavanja i svih termina. Rezultat izracuna je

jednodimenzionalno polje A velicine s koja odgovara broju termina. Na poziciji si se

nalazi kombinirana vrijednost navedenih dostupnosti koja se racuna pozivom metode

calculateForSlot(int slotId).

Kombinirana dostupnost za pojedini termin se izracunava prethodnim izracunom

svake od navedenih dostupnosti. Vrijednost pojedine dostupnosti ce uvijek biti veca

od 0, nalaziti ce se u intervalu < 0, 1 > ukoliko je neka od dostupnosti za navedeni

termin 0, a inace je uvijek veca od 1. Dobivene dostupnosti se medusobno množe i

skaliraju na interval < 0, 1].

Izvorni kod razreda za izracun dostupnosti

1 public abstract class AbstractAvailabilityCalculator extends

SchedulingContextAccessor{

2

3 protected abstract void initializeForLecture(int lectureId);

4 protected abstract double calculateForSlot(int slotId);

5

6 public synchronized double[] calculateForAllSlots(int lectureId)

{

7 double[] availabilities = new double[schedulingContext.

getParams().getSlotCount()];

8

9 initializeForLecture(lectureId);

43

Page 49: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

10

11 for (int slotId = 0; slotId < slotCount; slotId++)

12 availabilities[slotId] = calculateForSlot(slotId);

13

14 return availabilities;

15 }

16 }

Klasa CachingAvailabilityCalculator omotava konkretnu implemntaciju klasu

dane izvornim kodom 5.3.2 i pamti izracunate vrijednosti dostupnosti. Na zahtjev

umjesto ponovnog izracuna vraca spremljene vrijednosti.

5.3.3. Izgradnja mravljeg rješenja

Izgradnja mravljeg rješenja se temelji na radu jednostavnog konstrukcijskog algoritma.

Osnovna razlika je u izracunu dostupnosti termina. Pri izracunu dostupnosti termina

koriste se iste informacije kao i u jednostavnom konstrukcijskom algoritmu uz dodatak

feromonskih tragova.

5.4. Algoritmi lokalne pretrage

Ovo poglavlje ukratko opisuje implementirane algoritme lokalne pretrage.

5.4.1. Jednostavna optimizacija

Jednostavna optimizacija se provodi nad svim rješenjima koja se stvore za vrijeme rada

sustava jer je vrlo jednostavna. Optimizacija krece dohvatom sume prekršaja po pre-

davanju kojom se utvrduje koja su najproblematicnija predavanja u danom rasporedu.

Potom se jedno po jedno predavanja pokušava smjestiti u povoljniji termin, samo ko-

risteci dostupnosti kao heuristicke informacije. Algoritam se zaustavlja kada dode do

predavanja koje nema prekršaja.

5.4.2. Algoritmi pretrage promjenjivih susjedstva

Implementirani su sljedeci algoritmi pretrage promjenjivih susjedstva:

– RVNS

– BVNS

– SVNS

44

Page 50: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Implementacija pojedinog algoritam tocno prati pseudokod kojim su opisani algoritmi

u poglavlju 5.4.

Za potrebe rada algoritma implementirana su sljedeca susjedstva:

Susjedstvo slucajne zamjene predavanja u rasporedu razreda Ovo susjedstvo oda-

bire dva slucajna predavanja u rasporedu slucajno odabranog razreda i medu-

sobno im zamijeni termine.

Susjedstvo slucajne zamjene predavanja u rasporedu profesora Ovo susjdestvo radi

isti postupak kao i prethodno, ali u rasporedu slucajno odabranog profesora.

Susjedstvo kontinuiranog rasporeda za razrede Ovo susjedstvo traži rupe u raspo-

redu slucajno odabranog razreda i pokušava predavanjima s pocetka i kraja dana

popuniti rupe u rasporedu.

Susjedstvo kontinuiranog rasporeda za profesore U ovom susjedstvu, kao i u pret-

hodnom se popunjavaju rupe u rasporedu, ali u rasporedu profesora.

Susjedstvo previše ili premalo radnih sati za razrede Za svaki razred je definiran

minimalan i maksimalan broj sati u danu. Ukoliko je taj kriterij prekršen, ovo su-

sjedstvo pokušava u rasporedu odabranog razreda iz dana koji su preoptereceni

prebaciti dovoljno sati u dane u kojima ima premalo sati.

Susjedstvo previše ili premalo radnih sati za profesore Ovo susjedstvo obavlja isti

postupak kao i prethodno, ali u rasporedu odabranog profesora.

Susjedstvo više istih predmeta u danu Ukoliko u rasporedu slucajnog odabranog raz-

reda postoji više od jednog predavanja istog predmeta unutar jednog dana, ova

predavanja se pokušavaju izdvojiti u zasebne dane.

Susjedstvo optimizacije prostorija Ovo susjedstvo provjerava jesu li prostorije slu-

cajno odabranog predavanja odgovarajuce. Ukoliko nisu pokušava predavanje

premjestiti u odgovarajuce prostorije.

45

Page 51: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

6. Rezultati i rasprava

Ovo poglavlje opisuje nacin testiranja i analizu rezultata. U prvom odjeljku ce biti

objašnjeni parametri koji su odabrani za testiranje i vrijednosti koje cemo testirati.

Drugi odjeljak opisuje metode i nacin provodenja testiranja, a treci odjeljak prezentira

rezultate i kratku raspravu. Tablicnim prikazom i grafovima su predstavljeni najvažniji

rezultati, a na kraju rada se nalazi tablica sa svim rezultatima. Za testiranje je korišten

problem izrade rasporeda u Osnovnoj školi Voltino iz [12]. Prije opisanog skupa testova

proveden je niz testova koji ovdje nisu opisani, a služili su za odredivanje okvirnih

vrijednosti parametara i ispitivanje stabilnosti Sustava.

6.1. Testni parametri

Implementacijom Sustava spojena su dva algoritma kako bi radila zajedno. Algoritam

optimizacije mravljom kolonijom i algoritam pretrage promjenjivih susjedstva. Za oba

algoritma bilo je potrebno odabrati koje parametre cemo iskoristiti za testiranje, a koje

cemo postaviti na neku unaprijed zadanu vrijednost.

Odabrana je MAX−MIN inacica algoritma optimizacije mravljom kolonijom

za testiranje jer prema [6] daje najbolje rezultate i prvotnim testiranjem se to pokazalo

istinitim. Ova inacica algoritma ima mogucnost mijenjanja sljedecih parametara:

– m (broj mrava),

– α i β (odnos feromona i heuristicke vrijednosti pri odabiru slijedeceg koraka),

– ρ (koeficijent isparavanja feromona),

– broj iteracija bez poboljšanja do ponovne inicijalizacije feromona i

– vjerojatnost za korištenje najboljeg-do-sad rješenja.

Za potrebe testiranja korišteni su parametri n, α i β te ρ.

U [6] preporucaju da broj iteracija bez poboljšanja do ponovne inicjalizacije fe-

romona bude neka vrijednost nakon koje je kartakteristicno za odabrani problem da

46

Page 52: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

algoritam ude u stanje stagnacije. Prethodnim testiranjem rada Sustava s pocetnim

vrijednostima kao u testu 1-1 (slika 6.1) uoceno je da kada algoritam ude u stanje

stagnacije da najcešce nakon otprilike 100 iteracija pronade bolje rješenje i nastavi s

radom. Zato je ovaj parametar fiksiran na vrijednost od 150 iteracija.

Za parametar vjerojatnosti korištenja najboljeg-do-sad rješenja predlaže se da se

za manje probleme uvijek koristi najbolji-u-koloniji mrav. Za vece probleme je pred-

loženo da se uvijek koristi najbolje-do-sada rješenje ukoliko želimo da algoritam bude

pohlepan ili da se izmjenjuju ta dva rješenja. Kako se uz algoritam optimizacije mrav-

ljom kolonijom koristi i algoritam lokalne pretrage nije poželjno da algoritam bude

pohlepan tako da je odabrana mala vrijednost, 0.2. Odabrana vrijednost se pokazala

dobrom jer nakon ponovne inicijalizacije feromonskih vrijednosti algoritam nije pre-

brzo težio prema boljim rješenjima i nije odmah zapeo u lokalnom optimumu.

Slika 6.1: Odnos najboljeg mravljeg rješenja i najboljeg rješenja lokalne pretrage

Jedan od prvotnih testova je prikazan na slici 6.1. Apscisa prikazuje vrijednosti

rješenja, a na ordinati se nalazi broj iteracije. Plava krivulja predstavlja najbolja mrav-

lja rješenja, a crvena krivulja predstavlja najbolja rješenja lokalne pretrage. Iz plave

krivulje na grafu možemo razaznati poželjno ponašanje mravljeg algoritma. Algoritam

postepeno, uz povremena lošija rješenja (što je isto poželjno), teži k nekim boljim rje-

šenjima i postepeno dolazi do nekog lokalnog optimuma. Nakon unaprijed odredenog

broja iteracija, vrijednosti rješenja se naglo povecavaju zbog ponovne inicijalizacije

feromonskih tragovaMAX−MIN algoritma.

Pokusi vezani uz algoritam optimizacije mravljom kolonijom su prikazani u tablici

6.1.

47

Page 53: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Tablica 6.1: Parametri za pokuse sMAX−MIN

Test br. α β ρ m n

1.1 2 1 0.3 10 250

1.2 3 1 0.3 10 250

1.3 3 2 0.3 10 250

1.4 5 1 0.3 10 250

1.5 10 1 0.3 10 250

1.6 1 5 0.3 10 250

2.1 2 1 0.1 10 250

2.2 2 1 0.3 10 250

2.3 2 1 0.5 10 250

2.4 2 1 0.7 10 250

3.1 2 1 0.3 5 250

3.2 2 1 0.3 10 250

3.3 2 1 0.3 50 250

3.4 2 1 0.3 100 250

Algoritam pretrage promjenjivih susjedstva nema puno parametara koje je po-

trebno ispitati. Za potrebe testiranja odabrana je inacica osnovne pretrage promjenjivih

susjedstva, BVNS. Za odabrani algoritam lokalne pretrage moguce je odabrati tri pa-

rametra:

– korištena susjedstva i njihov poredak,

– velicina susjedstva i

– nacin odabira novog rješenja.

Odabir dobrih susjedstva je puno važniji od njihova poretka. Za vrijeme imple-

mentacije te postepenog testiranja i dodavanja novih susjedstva bilo je ocigledno kako

se poboljšava rezultat cak i za loše vrijednosti parametara. Ovo se dogadalo jer se

širio prostor rješenja koja su nam dohvatljiva kroz pretragu susjedstva. Ukoliko su su-

sjedstva dobro odabrana, biti ce obuhvacen cijeli prostor rješenja, ali to nije moguce

garantirati. Ovdje postaje važan odabir redoslijeda susjedstva. U [10] je preporuceno

da susjedstva budu ugniježdena. Ovime se može postici redoslijed koraka kojima ce

ipak i globalni optimum biti ukljucen u neko od susjedstva. Pošto se s vecim brojem1

1Ukoliko se zadržimo unutar nekog razumnog broja susjedstva.

48

Page 54: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

susjedstva gotovo sigurno poboljšava konacno rješenje, korištena su sva implementi-

rana susjedstva poredana na sljedeci nacin:

1. Susjedstvo slucajne zamjene predavanja u rasporedu razreda,

2. susjedstvo slucajne zamjene predavanja u rasporedu profesora,

3. susjedstvo kontinuiranog rasporeda za razrede,

4. susjedstvo kontinuiranog rasporeda za profesore,

5. susjedstvo previše ili premalo radnih sati za razrede,

6. susjedstvo previše ili premalo radnih sati za profesore,

7. susjedstvo više istih predmeta u danu i

8. susjedstvo optimizacije prostorija.

Iz ovog poretka možemo vidjeti da prva dva susjedstva rade nasumicne pomake i tako

obuhvacaju vrlo velik, ako ne i cijeli prostor rješenja cime su ostala susjedstva ugni-

ježdena u njih. Redoslijed ostalih susjedstva je takav da popravljaju neki prekršaj za

koji su zadužena, ali da slijedece susjedstvo ne pokvari ono što je prethodno susjedstvo

popravilo. To nije uvijek moguce tako da je iznimka susjedstvo više istih predmeta u

danu koje može pokvariti neke od prethodnih optimizacija jer se ovaj prekršaj pokazao

kao posebno velik, tako da je ovo ukljuceno kao pretposljednje susjedstvo. Poredak

susjedstva takoder može biti važan za brži rad algoritma, jer ce se time smanjiti broj

prelazaka u novo susjedstvo, a time i broj novih susjeda koje je potrebno stvoriti i

vrednovati.

Velicina susjedstva nema preporucenu vrijednost i potrebno ju je eksperimentalno

odrediti jer ovisi o problemu koji se pokušava riješiti. Ovo ce biti još jedan parametar

koji cemo pokusima pokušati optimizirati.

Novo rješenje se u lokalnoj pretrazi može odabrati na jedan od tri spomenuta na-

cina:

– slucajno poboljšanje,

– prvo poboljšanje i

– najbolje poboljšanje.

Pošto se generiranje novih susjeda i njihovo vrednovanje prvotnim testovima pokazalo

kao relativno brz i jednostavan postupak, ovaj parametar ce biti fiksiran na najbolje

49

Page 55: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

poboljšanje. Kratkorocno, ovaj odabir ce sigurno ponuditi bolja rješenja, ali u ko-

nacnici može prouzrokovati vrlo skoru stagnaciju algoritma u lokalnom optimumu jer

algoritam postaje pohlepan. Rezultati su pokazali da ovo nije slucaj.

Pokus vezan uz algoritam pretrage promjenjivih susjedstva je prikazan u tablici

6.2.

Tablica 6.2: Parametri za pokuse s VNS

Test br. α β ρ m n

4.1 2 1 0.3 10 50

4.2 2 1 0.3 10 150

4.3 2 1 0.3 10 250

4.4 2 1 0.3 10 500

4.5 2 1 0.3 10 1000

Za vrednovanje rješenja korišteni su svi implementirani procjenitelji. Za svakog

procjenitelja korištene su težinske vrijednosti koje su prikazane u tablici 6.3.

Tablica 6.3: Težinske vrijednosti procjenitelja

Procjenitelj Težinska vrijednost

Brojac nepoštivanja dostupnosti razreda 50

Brojac nepoštivanja dostupnosti predavanja 50

Brojac nepoštivanja dostupnosti ucionica 50

Brojac nepoštivanja dostupnosti nastavnika 50

Brojac nepoštivanja veza izmedu predavanja 30

Brojac nepoštivanja neprekidnog rasporeda za razrede 35

Brojac nepoštivanja neprekidnog rasporeda za nastavnike 35

Brojac nepoštivanja radnih sati (u danu) za razrede 8

Brojac nepoštivanja radnih sati (u danu i tjednu) za nastavnike 8

Brojac predavanja rasporedenih u pogrešan tjedan 50

Brojac predavanja rasporedenih u nepoželjnu ucionicu 10

Brojac blok predavanja s preljevom u drugi dan 100

Brojac više predavanja istog predmeta u istom danu 25

50

Page 56: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

6.2. Nacin testiranja

Svaki od cetiri vrste pokusa je imao skup vrijednosti koje je potrebno ispitati. Pokusi

su izvodeni slijedno jer su najbolje vrijednosti iz prethodnog pokusa prenesene u iduci

pokus. Pokus je za svaku vrijednost ponovljen pet puta i trajao je najviše sat vremena

ili 1000 iteracija nakon cega je prekinut. Jedna iteracija predstavlja konstrukciju jednog

rješenja2 (rasporeda).

Prvotni testovi kojima se utvrdilo okvirne vrijednosti za parametre i provjera sta-

bilnosti Sustava su provedeni na racunalu s procesorom Intel(R) Core(TM) i7-2630QM

CPU @ 2.00GHz koji ima 8 jezgri i 12 GB radne memorije. Testovi ciji su rezultati pri-

kazani u sljedecem odjeljku su provedeni na racunalu s procesorom Intel(R) Core(TM)

i7 CPU 920 @ 2.67GHz koji ima 8 jezgri i 6 GB radne memorije. Na testnom racunalu

se u vrijeme izvodenja pokusa nije izvodio niti jedan drugi zahtjevniji proces.

6.3. Rezultati

Iako je prethodno u tekstu receno da konacni raspored ne smije kršiti nijedno strogo

ogranicenje, poput dostupnosti resursa, u konacnici se to pokazalo kao prestrogo pra-

vilo. Odluka o valjanosti konacnog rasporeda je prepuštena korisniku s time da su mu

na uvid dani svi prekršaji koje dani raspored sadrži.

Najbolji rezultati za pojedini pokus su dani u tablici 6.4 i poredani su prema najbo-

ljem rješenju. Prosjecan broj iteracija nam može poslužiti kao orijentir koliko je neki

test bio zahtjevan. Pregledom tablice sa svim rezultatima C.1 možemo vidjeti kako

su neki testovi iz prvog pokusa bili iznimno složeni jer je broj iteracija vrlo malen.

Prosjek rješenja predstavlja aritmeticku sredinu ponavljanja.

Tablica 6.4: Najbolji rezultati pojedinog pokusa

Test Min VNS Medijan Prosjek Std. devijacija Br. iteracija

3-3 7828 8647.205042 8086 627.70961 595

4-4 8584 9603.615108 9323.5 500.124231 556

2-4 9388 10419.16346 10174.5 259.2232484 520

1-1 9688 11053.20438 10627 611.856856 274

Iznimku od nacina testiranje koja kaže da se parametri najboljeg rezultata prenose

u sljedeci pokus se javlja kod drugog pokusa gdje su preneseni parametri drugog naj-2Rješenja stvorena u okviru lokalne pretrage se ovdje ne ubrajaju.

51

Page 57: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

boljeg rezultata. Razlog su bili vrlo loši rezultati treceg pokusa. Mravlji algoritam je

usprkos dobrim rezultatima lokalne pretrage davao lošija rješenja nego u drugom po-

kusu. Koeficijent isparavanja feromonskih tragova je ocigledno bio previsok i mravi

nisu mogli stabilno konvergirati k boljim rješenjima, vec su poceli nasumce “lutati”

po prostoru rješenja. Rezultati drugog pokusa, zajedno s parametrima su dani u tablici

6.4.

Tablica 6.5: Rezultati drugog pokusa

Test α β ρ m n Min VNS Medijan Prosjek Std. devijacija

2-1 2 1 0.1 10 250 10817 13000.75 12956 664.920382

2-2 2 1 0.3 10 250 9688 11053.20438 10627 611.856856

2-3 2 1 0.5 10 250 10140 10749.03865 10328 362.3779468

2-4 2 1 0.7 10 250 9388 10419.16346 10174.5 259.2232484

Rezultati svih pokusa su dani za usporednu analizu na slici 6.2. Apscisa prikazuje

vrijednosti rješenja, a pojedini stupac predstavlja pojedini test cije je ime navedeno

na ordinati. Zeleni stupci predstavljaju najbolje rješenje za pokus, a crveni stupac

oznacava najbolje rješenje svih testova. Zelena linija predstavlja medijan testova. Iz

grafa je vidljiv ocigledan pad vrijednosti rješenja iz pokusa u pokus.

Slika 6.2: Najbolja rješenja i medijani pokusa

U tablici 6.6 je dana usporedba najboljeg dobivenog rješenja u sklopu ovog rada,

rješenja iz [12] i stvarnog rasporeda korištenog u OŠ Voltino tokom školske godine

2011/2012. Rezultati su zadovoljavajuci, ali nažalost još uvijek nedovoljno dobri za

korištenje u školi. Mogu poslužiti kao pocetna tocka za izradu rasporeda, ali nažalost

52

Page 58: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

još uvijek vrijedi da covjek može napraviti bolji raspored od racunala. Usporedbom

rješenja dobivenog u [12] pomocu pomocu genetskog algoritma i lokalne pretrage te

rezultata dobivenog u ovom radu dolazimo do zakljucka da algoritmi imaju poteškoca

u istim podrucjima. Dodavanjem dodatnih susjedstva i daljnjom optimizacijom para-

metara bilo bi moguce dostici razinu rješenja genetskog algoritma.

Tablica 6.6: Usporedba rješenja

Rješenja

Vrsta prekršaja Mravlje Genetsko Stvarno

Broj nepoštivanja dostupnosti razreda 3 3 0

Broj nepoštivanja dostupnosti predavanja 2 2 0

Broj nepoštivanja dostupnosti ucionica 0 0 0

Broj nepoštivanja dostupnosti nastavnika 1 1 0

Broj nepoštivanih veza izmedu predavanja 20 19 6

Broj nepoštivanja neprekidnosti rasporeda, razredi 20 2 0

Broj nepoštivanja neprekidnosti rasporeda, nastavnici 34 10 26

Broj nepoštivanja broja radnih sati za nastavnike 60 32 0

Broj nepoštivanja broja radnih sati za razrede 1 7 1

Broj predavanja rasporedenih u pogrešan tjedan 0 0 0

Broj predavanja u manje poželjnim ucionicama 110 70 110

Broj predavanja s preljevom u drugi dan 0 0 0

Broj više predavanja istog predmeta u istom danu 150 139 97

Težinski zbroj 7828 4777 4623

53

Page 59: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

7. Zakljucak

U ovom radu se bavimo problemom izrade rasporeda za nastavu u osnovnim i srednjim

školama u Republici Hrvatskoj. Rijec je o procesu koji do sada nije bio automatiziran

zbog nedostatka prikladnog sustava koji bi zadovoljavao sve potrebe hrvatskih škola.

Satnicari pet osnovnih i srednjih škola su izašli u susret i iznijeli svoje zahtjeve i dosa-

dašnje metode izrade rasporeda. Pri izradi ovog rada je steceno znanje uzeto u obzir i

dijelom implementirano u konacno rješenje.

Na pocetku rada opisan je problem izrade rasporeda s kojim se susrecemo i ponu-

den pristup za njegovo rješavanje. Opisano je pet inacica algoritma za optimizaciju

mravljom kolonijom, kao i pet inacica algoritma za pretragu promjenjivih susjedstva.

Pri opisivanju pojedinog algoritma opisan je osnovni algoritam i iznesen prijedlog nje-

gove prilagodbe na problem izrade rasporeda. Kao dio rada izraden je i novi Sustav

za izradu rasporeda. Implementirano rješenje koristi algoritam optimizacije mravljom

kolonijom za izradu pocetnih rješenja koja se zatim lokalnom pretragom popravljaju.

Lokalna pretraga se obavlja algoritmom pretrage promjenjivih susjedstva. Implementi-

rane su tri inacice algoritma optimizacije mravljom kolonijom i dvije inacice algoritma

pretrage promjenjivih susjedstva.

Implementirani Sustav je testiran i izneseni su rezultati. Za testiranje je korišten

MAX−MINmravlji sustav i algoritam osnovne pretrage promjenjivih susjedstva.

Testiranjem su utvrdene optimalne vrijednosti odabranih parametara za implementi-

rane algoritme. Njihova anliza je pokazala zadovoljavajuce rezultate i smjernice za

daljnji rad.

Za vrijeme izrade implementacije bilo je puno pokušaja implementacije razlicitih

inacica algoritama, susjedstva, optimizacija i slicno. Neki pokušaji poput pamcenja

broja neuspjelih dodjela termina predavanju i pamcenja izracunatih vrijednosti dos-

tupnosti su postali dijelom konacnog Sustava. Ostali pokušaji su ostali cekati daljnje

dorade i razvoj. U njih možemo nabrojati:

– Pametni mrav koji bira medu samo najboljih 20% mogucih koraka.

– Implementacija liste vec posjecenih rješenja (tabu liste) uMAX−MINmravlji

54

Page 60: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

sustav.

– SVNS inacica pretrage promjenjivih susjedstva.

– Susjedstvo za optimizaciju veza izmedu predavanja.

– Koristiti potpuno slucajno rješenje iz nekog susjedstva za bijeg iz lokalnog op-

timuma u algoritmu pretrage promjenjivih susjedstva.

Kao sljedece korake bih spomenuo tri stavke:

1. daljnja optimizacija postojeceg rješenja i dodavanje novih susjedstva,

2. spajanje postojecih sustava u jedan veliki i

3. distribuiranje rada sustava.

Trenutnu implementaciju je moguce uz manje nadogradnje dodatno pospješiti i dobiti

bolja rješenja. Za to je dovoljno dodati nova susjedstva i provesti dodatne testove koji

ce pokazati optimalne vrijednosti parametara koji nisu pokriveni ovim radom. Spaja-

njem postojecih implementacija da rade zajedno ili jednostavno korištenjem pojedinih

dijelova postojecih sustava bilo bi moguce stvoriti novi sustav koji bi mogao dati nova

rješenja. Osim navedenoga, još jedna nadogradnja bi bila distribucija sustava. Testi-

ranja su provedena na novim racunalima s procesorima koji su brži i imaju više jezgri

nego prosjecna racunala koja možemo pronaci u školama. Pošto je Sustav namijenjen

školama, a današnje prosjecno racunalo u školi ima najviše dvije jezgre i neusporedivo

sporiji i stariji procesor, ovo je realan problem.

Nažalost pokazalo se tocno da racunalo ne može sastaviti bolji raspored od co-

vjeka, barem zasad. Satnicar ipak poznaje školu, ljude koji u njoj rade i najvažnije,

ima iskustva. Razgovorom sa satnicarima pokušalo se prenijeti to iskustvo na sustav,

koristiti iste ili slicne metode, ali to nije dovoljno.

55

Page 61: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

LITERATURA

[1] T. Bronic. Diplomski rad. Diplomski rad, Fakultet elektrotehnike i racunarstva,

2012.

[2] B. Bullnheimer, R.F. Hartl, i C. Strauss. A new rank based version of the ant

system. a computational study. 1997.

[3] D. de Werra. An introduction to timetabling. European Journal of Operational

Research, 19(2):151–162, 1985.

[4] J.L. Deneubourg, S. Aron, S. Goss, i J.M. Pasteels. The self-organizing explora-

tory pattern of the argentine ant. Journal of insect behavior, 1990.

[5] M. Dorigo i L.M. Gambardella. Ant colony system: A cooperative learning

approach to the traveling salesman problem. Evolutionary Computation, IEEE

Transactions on, 1(1):53–66, 1997.

[6] M. Dorigo i T. Stützle. Ant Colony Optimization. Bradford Books. MIT Press,

2004. ISBN 9780262042192.

[7] S. Even, A. Itai, i A. Shamir. On the complexity of time table and multi-

commodity flow problems. U Foundations of Computer Science, 1975., 16th

Annual Symposium on, stranice 184–193. IEEE, 1975.

[8] P. Hansen i N. Mladenovic. Variable neighborhood search: Principles and appli-

cations. European journal of operational research, 130(3):449–467, 2001.

[9] P. Hansen, N. Mladenovic, i Québec) Groupe d’études et de recherche en analyse

des décisions (Montréal. A tutorial on variable neighborhood search, 2003.

[10] N. Mladenovic i P. Hansen. Variable neighborhood search. Computers & Opera-

tions Research, 24(11):1097–1100, 1997.

56

Page 62: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

[11] S. Pribil. Izrada rasporeda nastave za osnovne i srednje škole. Diplomski seminar,

Fakultet elektrotehnike i racunarstva, 2011.

[12] S. Pribil. Diplomski rad. Diplomski rad, Fakultet elektrotehnike i racunarstva,

2012.

[13] C. Schauer i B. Hu. Heuristic optimisation techniques. A lecture held on Univer-

sity of Technology Vienna WS 2011.

[14] A. Tus. Analiza zahtjeva i postojedih rješenja u izradi rasporeda sati za škole.

Diplomski seminar, Fakultet elektrotehnike i racunarstva, 2011.

57

Page 63: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Dodatak AIzvorni kodovi

U nastavku se nalaze izvorni kodovi implementacija nekoliko najvažnijih funkcija i

algoritama.

Izvorni kod main metode

1 public class Main {

2

3 private static String paramsFile = "res/voltinoParamsFix4.xml";

4

5 private static int alpha = 3;

6 private static int beta = 1;

7 private static int antCount = 20;

8

9 private static double pheroEvaporationRate = 0.6;

10

11 private static double elitistValue = 10;

12

13 private static int iterationsToReset = 100;

14 private static double useBestProbability = 0.0;

15

16 private static int iterations = 1000;

17

18 private static int onScreenInterval = 1;

19 private static int progressInterval = 1;

20 private static int exportInterval = 1;

21

22 private static String progressFolder = "progress";

23 private static String progressFile = "schedulingProgress.txt";

24

25 private static double optimizationPercent = 0.5;

26 private static int neighborhoodSize = 150;

27

58

Page 64: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

28 private static double notRecommendedValue = 0.4;

29

30 private static int tabuListLength = 50;

31

32

33 public static void main(String[] args) throws FileNotFoundException,

ParamsConvertingException,

34 InputFileLoadingException, IllegalParametersStateException {

35

36 final AcoSchedulingContext schedulingContext = new

AcoSchedulingContext();

37

38 IParamsHandler paramsLoader = new ParamsXMLHandler();

39 schedulingContext.setParams(paramsLoader.fromExternal(new

FileInputStream(paramsFile)));

40 schedulingContext.getParamsValidator().setValidators(new

IValidator[] { new SlotCounter() });

41

42 // EVALUATORS

43 EvaluationAccumulator availabilitiesAccumulator = new

EvaluationAccumulator("Availabilities accumulator",

44 new AbstractEvaluator[] { new

TeacherAvailabilitiesViolationCounter(),

45 new ClassAvailabilitiesViolationCounter(), new

RoomAvailabilitiesViolationCounter(),

46 new LectureAvailabilitiesViolationCounter() });

47

48 EvaluationAccumulator periodCountAccumulator = new

EvaluationAccumulator("Period count accumulator",

49 new AbstractEvaluator[] { new

TeacherWorkingPeriodsViolationCounter(),

50 new ClassWorkingPeriodsViolationCounter() });

51

52 double[] weightVector = new double[] { 10, 100, 50, 30, 50, 35,

35, 25, 8 };

53 AbstractEvaluator[] finalAccomulator = { new

EvaluationAccumulator("Final accumulator",

54 new AbstractEvaluator[] { new

IllegalLectureLocationCounter(), new

DaySplittedLectureCounter(),

55 new IllegalLectureWeekCounter(), new

ConnectionViolationCounter(),

availabilitiesAccumulator,

59

Page 65: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

56 new ClassContinuousScheduleViolationCounter(),

new TeacherContinuousScheduleViolationCounter

(),

57 new MultipleLecturesOfSameSubjectInDayCounter(),

periodCountAccumulator }, weightVector) };

58 schedulingContext.getScheduleEvaluator().setEvaluators(

finalAccomulator);

59

60 // SCHEDULE FACTORY

61 schedulingContext.getScheduleFactory().setCreator(new

IScheduleCreator() {

62 @Override

63 public ISchedule getNewSchedule() {

64 return new SmarterSchedule(schedulingContext);

65 }

66 });

67

68 // ALGORITHM CONTEXT

69 AcoAlgorithmContext algorithmContext = new AcoAlgorithmContext()

;

70

71 // ANT COLONY OPTIMISATION

72 algorithmContext.setHeuristicAlgorithms(new

AbstractHeuristicAlgorithm[] { new SimpleHeuristicAlgorithm()

});

73 // algorithmContext.setMetaheuristicAlgorithm(new AntSystem(

antCount, alpha, beta, pheroEvaporationRate));

74 // algorithmContext.setMetaheuristicAlgorithm(new

ElitistAntSystem(antCount, alpha, beta, pheroEvaporationRate,

elitistValue));

75 algorithmContext.setMetaheuristicAlgorithm(new MaxMinAntSystem(

antCount, alpha, beta, pheroEvaporationRate,

76 iterationsToReset, useBestProbability));

77 // algorithmContext.setMetaheuristicAlgorithm(new

MaxMinTabuAntSystem(antCount, alpha, beta, pheroEvaporationRate,

78 // iterationsToReset, useBestProbability,

tabuListLength));

79 algorithmContext.setAvailabilityCalculator(new

CachingAvailabilityCalculator(schedulingContext,

notRecommendedValue ));

80

81 // OPTIMISATION

60

Page 66: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

82 algorithmContext.getOptimizationManager().

setInvokeOptimizationPercent(optimizationPercent);

83 algorithmContext.getOptimizationManager().setWorkers(

84 new AbstractOptimizationWorker[] { new

AdvancedAvailabilitiesOptimizaton() });

85

86 // LOCAL SEARCH

87 algorithmContext.getVnsManager().setNeighborhoodGenerators(

88 new AbstractNeighborGeneratorWorker[] {

89 new TeacherLectureSwapNeighborhood(0.5),

90 new TeacherContinuousScheduleNeighborhood(),

91 new ClassContinuousScheduleNeighborhood(),

92 new MultipleLecturesOfSameSubjectNeighborhood(),

93

94 });

95 algorithmContext.getVnsManager().setWorkers(new

AbstractLocalSearchWorker[] { new RVNS(neighborhoodSize) });

96

97 schedulingContext.setAlgorithmContext(algorithmContext);

98 schedulingContext.addProgressListener(new ProgressListener(

progressFolder, progressFile, progressInterval,

99 exportInterval, schedulingContext), onScreenInterval);

100 schedulingContext.startScheduling(iterations);

101

102 }

Izvorni kod algoritma optimizacije mravljom kolonijom

1 public abstract class AbstractAntSystem extends

AbstractMetaheuristicAlgorithm<AcoAlgorithmContext> implements

ResultListener {

2

3

4 private double alpha;

5 private double beta;

6 private int antCount;

7

8 private AbstractAnt[] ants;

9

10 protected AbstractPheromoneModel pheromoneModel;

11

12 private boolean isFinished = false;

13

61

Page 67: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

14 public AbstractAntSystem(int antCount, double alpha, double beta

, AbstractPheromoneModel pheromoneModel) {

15 this.pheromoneModel = pheromoneModel;

16 this.antCount = antCount;

17 this.alpha = alpha;

18 this.beta = beta;

19 }

20

21 @Override

22 public void initialize() {

23 pheromoneModel.setAlgorithmContext(algorithmContext);

24 pheromoneModel.initialize();

25

26 this.ants = new AbstractAnt[antCount];

27 for (int i = 0; i < antCount; i++)

28 ants[i] = new Ant(alpha, beta, pheromoneModel,

algorithmContext);

29 }

30

31 @Override

32 public void step() {

33 System.out.print("Constructing... ");

34 constructAntSolutions();

35

36 if(isFinished)

37 return;

38

39 daemonActions();

40

41 updatePheromones();

42 }

43

44 protected abstract void constructAntSolutions();

45

46 protected abstract void updatePheromones();

47

48 protected abstract void daemonActions();

49

50 @Override

51 public void generateInitialPopulation() {

52 // Nothing to do here

53 }

54

62

Page 68: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

55 public int getAntCount() {

56 return antCount;

57 }

58

59 public AbstractAnt[] getAnts() {

60 return ants;

61 }

62

63 public void setFinished(boolean isFinished) {

64 this.isFinished = isFinished;

65 }

66

67 @Override

68 public boolean isFinished() {

69 return isFinished ;

70 }

71

72 }

Izvorni kod BVNS algoritma

1 public Solution improveSolution(Solution initialSolution) {

2 double bestSolutionValue = Double.MAX_VALUE;

3 Solution bestSolution = initialSolution;

4

5 AbstractNeighborGeneratorWorker[] neighborhoods =

algorithmContext.getVnsManager().getNeighborhoodGenerators();

6 MultiThreadEvaluator2 evaluator = algorithmContext.

getSchedulingContext().getMultiThreadEvaluator();

7

8 int k = 0;

9 while (k < neighborhoods.length) {

10 List<ISchedule> newNeighbors = new ArrayList<ISchedule>();

11 do {

12 ISchedule newNeighbor = bestSolution.getSchedule().clone

();

13 if (neighborhoods[k].generateNewNeighbor(newNeighbor))

14 newNeighbors.add(newNeighbor);

15 } while (newNeighbors.size() < neighborhoodSize);

16

17 Solution[] solutions = evaluator.evaluatePopulation(

newNeighbors.toArray(new ISchedule[newNeighbors.size()]))

;

18

63

Page 69: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

19 boolean improvement = false;

20 for (Solution solution : solutions) {

21 double fitness = solution.getFitness().getValue(0).

getResult();

22 if (fitness < bestSolutionValue) {

23 bestSolutionValue = fitness;

24 bestSolution = solution;

25 improvement = true;

26 }

27 }

28 if (!improvement)

29 k++;

30 else

31 k = 0;

32 }

33 algorithmContext.getOptimizationManager().performOptimization(

bestSolution.getSchedule());

34 return bestSolution;

35 }

64

Page 70: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Dodatak BPrimjer ulazne i izlazne datoteke

U nastavku se nalazi skraceni primjer ulazne i izlazne datoteke.

Primjer ulazne XML datoteke

1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

2 <xmlScheduleParams xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance">

3 <weekCount>2</weekCount>

4 <dayCount>5</dayCount>

5 <avoidingLargeBlocksEnabled>false</avoidingLargeBlocksEnabled>

6 <largeBlockSize>2</largeBlockSize>

7 <roomSizeManagementEnabled>false</roomSizeManagementEnabled>

8 <periods>

9 <period id="j1">08:00 - 08:45</period>

10 ...

11 </periods>

12 <turnuses>

13 <turnus id="jut">

14 <name>Jutarnji turnus</name>

15 <periods>j1,j2,j3,j4,j5,j6</periods>

16 <classStartPeriods>j1,j2</classStartPeriods>

17 </turnus>

18 ...

19 </turnuses>

20 ...

21 <rooms>

22 <room id="hrv1">

23 <name>Hrvatski 1</name>

24 <availabilities>

25 <weekAvailability>

26 <periodPreferences>

65

Page 71: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

27 <preference>1,1,1,1,1,1,1,1,1,1,1,1,1</

preference>

28 ...

29 </periodPreferences>

30 <dayPreferences>1,1,1,1,1</dayPreferences>

31 </weekAvailability>

32 ...

33 </availabilities>

34 </room>

35 ...

36 </rooms>

37 <subjects>

38 <subject id="njemRed">

39 <name>Njemacki jezik (redovni)</name>

40 <defaultRooms>njem</defaultRooms>

41 <availabilities>

42 <weekAvailability>

43 <periodPreferences>

44 <preference>1,1,1,1,1,1,1,1,1,1,1,1,1</

preference>

45 ...

46 </periodPreferences>

47 <dayPreferences>1,1,1,1,1</dayPreferences>

48 </weekAvailability>

49 ...

50 </availabilities>

51 </subject>

52 ...

53 </subjects>

54 <teachers>

55 <teacher id="rpapic">

56 <name>Radojka Papic</name>

57 <availabilities>

58 <weekAvailability>

59 <periodPreferences>

60 <preference>1,1,1,1,1,1,1,1,1,1,1,1,1</

preference>

61 ...

62 </periodPreferences>

63 <dayPreferences>1,1,1,1,1</dayPreferences>

64 </weekAvailability>

65 ...

66 </availabilities>

66

Page 72: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

67 <sameGenerationInDayRequired>false</

sameGenerationInDayRequired>

68 <sameSubjectInDayRequired>false</

sameSubjectInDayRequired>

69 <dayTurnusAlternationEnabled>false</

dayTurnusAlternationEnabled>

70 <daysForWeekTurnusAlternation>false,false,false,false,

true</daysForWeekTurnusAlternation>

71 <workingPeriodNumber>2 - 7</workingPeriodNumber>

72 <mandatoryBreakThreshold>7</mandatoryBreakThreshold>

73 <dayBreakNumber>0 - 1</dayBreakNumber>

74 <weekBreakNumber>1 - 2</weekBreakNumber>

75 <maximumBreakSize>1</maximumBreakSize>

76 </teacher>

77 ...

78 </teachers>

79 <classes>

80 <class id="4b">

81 <name>4.b</name>

82 <availabilities>

83 <weekAvailability>

84 <periodPreferences>

85 <preference>1,1,1,1,1,1,1,1,1,1,1,1,1</

preference>

86 ...

87 </periodPreferences>

88 <dayPreferences>1,1,1,1,1</dayPreferences>

89 </weekAvailability>

90 ...

91 </availabilities>

92 <continuousScheduleRequired>false</

continuousScheduleRequired>

93 <workingPeriodNumber>0 - 4</workingPeriodNumber>

94 <mainClassroom>4b</mainClassroom>

95 </class>

96 ...

97 </classes>

98 <lectures>

99 <!-- rpapic, 6b, hrv -->

100 <lecture id="hrv:rpapic:6b:1">

101 <subject>hrv</subject>

102 <teachers>rpapic</teachers>

103 <classes>6b</classes>

67

Page 73: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

104 <classrooms>hrv1,hrv2,eng,povGeo,mat,njem,teh,bioKem,fiz

</classrooms>

105 <necessaryClassroomCount>1</necessaryClassroomCount>

106 <lectureDuration>2</lectureDuration>

107 <weeks>1</weeks>

108 <availabilities>

109 <weekAvailability>

110 <periodPreferences>

111 <preference>0,0,0,0,0,0,1,1,1,1,1,1,1</

preference>

112 ...

113 </periodPreferences>

114 <dayPreferences>1,1,1,1,1</dayPreferences>

115 </weekAvailability>

116 </availabilities>

117 <regularScheduleManagementEnabled>true</

regularScheduleManagementEnabled>

118 </lecture>

119 ...

120 </lectures>

121 <connections>

122 <connection id="5a:lik-teh:1">

123 <lectureIds>lik:ngolubic:5a:1,teh:ssostaric:5a:1</

lectureIds>

124 <rule>MUST_NOT_BE</rule>

125 <condition>SAME_WEEK</condition>

126 </connection>

127 ...

128 </connections>

129 </xmlScheduleParams>

Primjer izlazne XML datoteke

1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

2 <xmlSchedule>

3 <lectures>

4 <lecture>

5 <lectureId>hrv:rpapic:6a:8</lectureId>

6 <slot>80</slot>

7 <locations>hrv2</locations>

8 </lecture>

9 <lecture>

10 <lectureId>engRed:mstrahija:7b:1</lectureId>

11 <slot>1</slot>

68

Page 74: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

12 <locations>eng</locations>

13 </lecture>

14 <lecture>

15 <lectureId>mat:ggojmerac:8b:1</lectureId>

16 <slot>47</slot>

17 <locations>hrv1</locations>

18 </lecture>

19 ...

20 </lectures>

21 </xmlSchedule>

69

Page 75: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Dodatak CRezultati testiranja

Na sljedecoj stranici se nalazi tablica s pregledom svih rezultata.

70

Page 76: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Tabl

ica

C.1

:Rez

ulta

tian

aliz

e

Test

αβ

ρm

nM

axm

rav

Min

mra

vM

axV

NS

Min

VN

SM

edija

nPr

osje

kSt

d.de

vija

cija

Bro

jite

raci

ja

1-1

21

0.3

1025

044

848

1009

915

778

9688

1105

3.20

438

1062

761

1.85

6856

274

1-2

31

0.3

1025

042

415

2363

314

966

1304

013

835.

125

1367

045

5.23

3645

681

1-3

32

0.3

1025

047

023

3368

115

329

1196

813

890.

514

132.

562

6.48

8585

47

1-4

51

0.3

1025

044

753

1690

013

615

1238

013

015

1288

012

8.69

7562

452

1-5

101

0.3

1025

045

295

1131

315

619

1117

512

381.

4830

112

254

343.

1723

323

559

1-6

15

0.3

1025

045

023

2345

815

146

1099

912

917.

2394

412

980

382.

9239

861

71

2-1

21

0.1

1025

044

289

2184

016

206

1081

713

000.

7512

956

664.

9203

8252

2-2

21

0.3

1025

044

848

1009

915

778

9688

1105

3.20

438

1062

761

1.85

6856

274

2-3

21

0.5

1025

046

499

1014

217

622

1014

010

749.

0386

510

328

362.

3779

468

828

2-4

21

0.7

1025

046

729

9408

1571

793

8810

419.

1634

610

174.

525

9.22

3248

452

03-

12

10.

35

250

4784

610

517

1654

710

507

1213

7.72

646

1165

365

3.33

4684

223

3-2

21

0.3

1025

044

848

1009

915

778

9688

1105

3.20

438

1062

761

1.85

6856

274

3-3

21

0.3

5025

042

733

7870

1472

478

2886

47.2

0504

280

8662

7.70

961

595

3-4

21

0.3

100

250

4283

991

8315

488

9163

1045

9.14

844

9915

714.

3173

9725

6

4-1

21

0.3

5050

4635

210

267

1623

510

252

1134

8.79

455

1078

2.5

734.

8398

9740

4

4-2

21

0.3

5015

043

694

9285

1489

990

5510

163.

5404

210

079

315.

0389

754

668

4-3

21

0.3

5025

044

848

1009

915

778

9688

1105

3.20

438

1062

761

1.85

6856

274

4-4

21

0.3

5050

046

338

8670

1694

785

8496

03.6

1510

893

23.5

500.

1242

3155

64-

52

10.

350

1000

4161

888

7414

391

8834

9954

.63

9661

482.

6849

6740

0

71

Page 77: Heurističke metode lokalne pretrage primijenjene na ... · timizacije kolonijom mrava i lokalne pretrage. U sklopu [1] napravljeno je grafiˇcko sucelje koje omoguˇ ´cava zadavanje

Heuristicke metode lokalne pretrage primijenjene na problem izrade rasporedasati za škole

Sažetak

U ovom radu je predložen pristup rješavanju problema automatizacije izrade ras-

poreda u hrvatskim osnovnim i srednjim školama. Pristup se sastoji od spoja algoritma

optimizacije mravljom kolonijom i algoritma lokalne pretrage promjenjivih susjedstva.

Opisani su razliciti oblici spomenutih algoritama i nacin njihove primjene na problem

izrade školskog rasporeda. U sklopu rada je izraden i Sustav koji predstavlja imple-

mentaciju predloženog rješenja te je ispitana njegova efikasnost. Rezultati su opisani

na kraju rada.

Kljucne rijeci: izrada rasporeda sati, školski raspored, optimizacija kolonijom mrava,

pretraga po promjenjivim susjedstvima, lokalna pretraga, ACO, VNS

Heuristic local-search methods applied on school timetabling

Abstract

This thesis offers a solution for the problem of automating the creation of school

timetables in Croatian elementary and high schools. The offered approach is a com-

bination of ant colony optimization and variable neighborhood search. Different types

of the mentioned algorithms and a possible approach to applying them to the given

problem is described in the thesis. Also, a software system was built to support the

claims stated in this thesis. In the end tests were carried out to test the performance

and the results are provided.

Keywords: scheduling, timetabling, school timetable, ant colony optimization, vari-

able neighborhood search, local search, ACO, VNS