You are on page 1of 65

S VEU CILITE U Z AGREBU FAKULTET O RGANIZACIJE I INFORMATIKE VARADIN

Tomislav Mikul ek c

PRIMJENA VIEAGENTNIH SUSTAVA KOD PROBLEMA DEFINIRANJA RASPOREDA


DIPLOMSKI RAD

Varadin, 2013.

S VEU CILITE U Z AGREBU FAKULTET O RGANIZACIJE I INFORMATIKE VARADIN

Tomislav Mikul ek c Broj indeksa: 38822/09R Studij: Baze podataka i baze znanja

PRIMJENA VIEAGENTNIH SUSTAVA KOD PROBLEMA DEFINIRANJA RASPOREDA


DIPLOMSKI RAD

Mentor: Prof. dr. sc. Kornelije Rabuzin

Varadin, velja a 2013. c

Sadraj
1. Uvod 2. Problem deniranja rasporeda 2.1. Op enito . . . . . . . . . . c 2.2. kolski raspored . . . . . . 2.3. Fakultetski raspored . . . . 2.4. Raspored ispita . . . . . . 1 2 2 2 3 5 7 7 7 9 9 11 11 11 13 15 15 16 16 17 18 24 24 25 27 32 34 38 39

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3. Vieagentni sustavi 3.1. Agenti . . . . . . . . . . . . . 3.2. Okolina . . . . . . . . . . . . 3.3. Komunikacija medu agentima 3.4. Agenti i objekti . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

4. Vieagentni sustavi kod deniranja rasporeda 4.1. Dosadanja postignu a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c 4.2. Centralizirani pristup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Decentralizirani pristup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Problem izrade rasporeda na FOI-u 5.1. Opis problema . . . . . . . . . . 5.2. Prijedlog rjeenja . . . . . . . . 5.2.1. elje profesora . . . . . 5.2.2. Popis predmeta . . . . . 5.2.3. Implementacija . . . . . 6. Rezultati 6.1. Mjerenja . . . . . . . . . . . 6.2. Sa svim ograni enjima . . . c 6.3. Doputen prvi jutarnji termin 6.4. Doputena subota . . . . . . 6.5. Bez dodatnih ograni enja . . c 7. Daljnja istraivanja 8. Zaklju ak c

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

A. Odabir idealnih termina B. Izrada rasporeda Literatura

40 44 61

II

1. Uvod
Problem deniranja rasporeda pripada medu najtee probleme i izuzetno je pogodan za rje avanje uz pomo umjetne inteligencije. Operacijska istraivanja se bave ovim problemom ve c c dugi niz godina, a i pristupi umjetne inteligencije su ve pokazali uspjehe. Vieagentni sustavi c nisu toliko zastupljeni u rjeavanju problema, ali polako dobivaju na popularnosti. Prednost vieagentnog pristupa je u mogu nosti dekompozicije sloenog problema na manje i jednostavnije te c dodjeljivanje elemenata problema inteligentnim agentima koji ce kroz suradnju ili nezavisno do i c do globalnog rjeenja. U ovom radu ce se opisati problem deniranja rasporeda s fokusom na fakultetski raspored predavanja. Opisat ce se i vieagentni sustavi uz prikaz njihove primjene prilikom deniranja rasporeda. Prakti ni dio ovog rada je izrada prototipa vieagentnog sustava za deniranje rasporeda koji c ce se mo i koristiti pri izradi rasporeda predavanja i seminara za preddiplomski i diplomski studij c fakulteta Organizacije i informatike u Varadinu.

2. Problem deniranja rasporeda


2.1. Op enito c
Raspored se sastoji od niza predavanja koja je potrebno rasporediti u predodredeno vremen sko razdoblj, a da se pri tome zadovolje i odredena ograni enja. Vremensko razdoblje je naj e e c c c jedan radni tjedan, dok se ograni enja naj e e odnose na preklapanja. Dva ili vie predavanja c c c se ne smiju smjestiti u istu dvoranu u isto vrijeme; jedan profesor zi ki ne moe drati vie od c jednog predavanja u isto vrijeme, a student isto tako ne moe biti prisutan na vie predavanja u isto vrijeme. Ako je za rjeavanje problema dovoljno na i raspored koji zadovoljava sva ograni enja, c c onda je problem mogu e formulirati kao problem pretraivanja jer je dovoljno pretraiti prostor c mogu ih rjeenja i vratiti prvo koje je prihvatljivo. Dodavanjem ograni enja optimalnosti, postavc c lja se problem optimizacije gdje vie nije dovoljno vratiti prvo prihvatljivo rjeenje ve je potrebno c minimalizirati (odnosno maksimalizirati) optimizacijske varijable (Schaerf 1999:88).

2.2. kolski raspored


Problem deniranja kolskog rasporeda se takoder naziva i problem razred/predava (Schaerf c 1999:91). Za svaki od m razreda r1 , . . . , rm i svakog od n predava a p1 , . . . , pn postoji cijeli broj ui j c ve i ili jednak nuli kojim je uvjetovano koliko sati predavanja predava p j mora odrati razredu ri . c c Rjeenje problema pridruivanja nastavnih sati nekima od o termina pe1 , . . . , pek na na in da niti c jedan predava ni razred ne budu na dva nastavna sata u isto vrijeme se moe vizualno predo iti kao c c 3-dimenzionalna matrica veli ine m n o. Ovaj problem uvijek ima rjeenje ako je uvjetovani c broj sati po predava u (odnosno razredu) manji ili jednak ukupnom raspoloivom broju termina, a c rjeenje je mogu e na i u polinomnom vremenu (Schaerf 1999:92). c c Dodavanjem mogu nosti da predava ili razred nije u mogu nosti prisustvovati u odredenom c c c terminu, problem postaje NP-potpun (Schaerf 1999:93). Kako bi se pronalo to bolje rjeenje, koristi se objektivna funkcija. Jednostavna objektivna funkcija moe biti u obliku
m n p

min

i=1 j=1 k=1

di jk xi jk

gdje je di jk ponder obrnuto proporcionalan poeljnosti povezivanja razreda ri i predava a p j u c terminu pek (Schaerf 1999:94). Na taj na in nepoeljni elementi dobivaju ve u vrijednost. Mic c nimalizacijom ove funkcije se smanjuje broj nepoeljnih pridruivanja. Mogu e su i sloenije c

funkcije gdje ponderi ovise o didakti koj vrijednosti, organizacijskom troku te osobnom troku c predava a (Schaerf 1999:94). c Osim gore navedenih, za modeliranje stvarnih problema deniranja kolskog rasporeda su cesto potrebna dodatna ograni enja. Ponekad dva ili vie razreda imaju zajedni ku nastavu kao c c to je slu aj s tjelesnim odgojem. U takvim slu ajevima predava dri nastavu istodobno u dva c c c razreda, a nastavni sati se moraju istodobno pridruiti oba razreda. Takoder, moe postojati vie predava a za isti predmet, a isto tako jedan predava moe predavati vie predmeta. Kod ovakvih c c slu ajeva se pretpostavlja da samo jedan predava predaje odredenom razredu. Kako je u enike c c c srednjih i osnovnih kola potrebno paziti tijekom cijelog vremena boravka u koli, rupe izmedu predavanja su izuzetno nepoeljne te se smiju pojavljivati samo na po etku, odnosno kraju dnevnog c optere enja. Raspored prema prostoriji se ne uzima u obzir osim ako postoje posebne prostorije c poput laboratorija jer svaki razred ima svoju prostoriju (Schaerf 1999:9495).

2.3. Fakultetski raspored


Deniranje rasporeda za fakultet se donekle razlikuje od deniranja rasporeda za srednje i osnovne kole. Glavne razlike su to studenti nisu strogo razdvojeni u razrede ve postoje prekc lapanja te to dostupnost i veli ina predavaonica igra zna ajnu ulogu u deniranju rasporeda i ne c c moe se zanemariti kao to je to mogu e kod kolskog rasporeda (Schaerf 1999:101). Problem je c mogu e denirati na sljede i na in. Postoji q predmeta K1 , . . . , Kq gdje se svaki predmet Ki sastoji c c c od ki predavanja. Postoji r nastavnih programa (grupa predavanja koje imaju zajedni ke studente) c S1 , . . . , Sr . Svi predmeti u Sl moraju biti rasporedeni u razli itim terminima. Broj termina je p, a lk c je najve i broj predavanja koja je mogu e rasporediti u termine k (npr. broj slobodnih prostorija u c c terminu k) (Schaerf 1999:101). Formalna denicija problema: Pronadi yik (i = 1..q; k = 1..p) takav da
p

yik = ki(i = 1..q)


k=1 q i=1

(2.1.)

yik lk (k = 1..p)

(2.2.) (2.3.) (2.4.)

iSl

yik 1(l = 1..r; k = 1..p)


yik = 0, 1(i = 1..q; k = 1..p)

Pretvaranjem ovog problema u problem bojanja grafova, mogu e je dokazati kako je problem c NP-potpun (de Werra 1985:157). Ekvivalentna denicija problema se moe dobiti putem binarne matrice konikata oblika Cqq . Element matrice ci j = 1 ako predmeti Ki i K j imaju zajedni ke c 3

studente, a ci j = 0 ako nemaju. Sli no kao i kod problema kolskog rasporeda, problem optimizacije je mogu e denirati c c sljede om jednostavnom objektivnom funkcijom: c
q p

max

i=1 k=1

dik yik

gdje dik predstavlja poeljnost postojanja predavanja iz predmeta Ki u terminu k (Schaerf 1999:102). Alternativni na in deniranja problema optimizacije je mogu putem matrice konikata ako c c se umjesto binarnih vrijednosti, koriste cjelobrojne vrijednosti takve da ci j predstavlja broj studenata koji sluaju predavanje Ki i K j . Time ci j predstavlja mjeru nezadovoljstva u slu aju da c su predavanja predmeta Ki i predmeta K j smjetena u isti termin. Optimizacija se zatim provodi minimalizacijom globalnoga nezadovoljstva dobivenoga zbrajanjem svih nezadovoljstava nastalih preklapanjima (Schaerf 1999:102). Nedostupnost predava a i studenata te prethodno deniranje termina se mogu uklju iti kao c c i kod kolskih rasporeda, ali ne utje u na kompleksnost najgoreg slu aja. Neka predavanja je c c potrebno odrati vie puta u tjednu zbog broja studenata koji prelazi broj mjesta u dostupnim dvoranama ili jer sudjeluju u vie nastavnih programa. Razdvajanje predavanja moe smanjiti broj konikata. Ako pretpostavimo da nastavni program S1 uklju uje predmete K1 i K2 , a nastavni c program S2 uklju uje predmete K1 i K3 te da se predavanje predmeta K2 odvija u terminu p, a c predavanja predmeta K3 u terminu q, onda se predavanje predmeta K1 ne smije odrati niti u terminu p niti u terminu q. Razdvajanjem predavanja na dva dijela omogu avamo izvodenje jednoga c u terminu p, a drugoga u terminu q. Problem pridruivanja studenata odredenom predavanju kako bi se smanjili konikti se naziva podproblem grupiranja (Schaerf 1999:103). Ovakvo razdvajanje se primjenjuje i na FOI-u gdje su studenti razdvojeni u grupe i podgrupe. Svi studenti unutar grupe imaju predavanja zajedno, a seminare odvojeno te je ovdje mogu e primijeniti podproblem c grupiranja. Razli ite duljine trajanja predavanja je mogu e uklju iti u problem ako se dopusti da svako c c c predavanje traje cijeli broj termina dk . U tom slu aju vie nije dovoljno re i da se dva predavanja c c preklapaju ako predavanje ki po inje u terminu p, a predavanje k j u terminu q i ako je p = q, ve c c se preklapaju i ako je q > p te q p < dki (Schaerf 1999:104). Podproblem rasporedivanja predavaonica se sastoji od pridruivanja predavanja prostorijama nakon to je utvrden raspored predavanja. Problem postaje NP-potpun kada se doda ograni enje c da sva predavanja jednog predmeta moraju biti u istoj prostoriji, a polinoman ako su predavanja nezavisna (Schaerf 1999:104).

2.4. Raspored ispita


Rasporedivanje ispita je problem sli an rasporedivanju predavanja s obzirom da se bavi istim c predmetima i studentima, ali postoje odredene razlike koje ga izdvajaju kao poseban problem. Dok za svaki predmet moe biti vie predavanja, ne moe biti vie ispita u jednom terminu. Problem preklapanja dolazi vie do izraaja jer se studenta ne smije dovesti u situaciju da ima dva ispita u isto vrijeme. Broj ispita u jednom danu za svakog studenta u idealnom slu aju ne bi smio biti c ve i od jedan, a student takoder ne bi smio imati previe ispita u uzastopnim danima. Za razliku c od predavanja, ponekad je mogu e rasporediti vie od jednog ispita u istoj prostoriji (Schaerf c 1999:109). Denicija ovog problema je sli na deniciji problema deniranja fakultetskog rasporeda, a c formalno je opisana na sljede i na in: c c Pronadi yik (i = 1..q; k = 1..p) takav da
p

yik = 1(i = 1..p)


k=1 q i=1

(2.5.)

yik lk (k = 1..p)

(2.6.) (2.7.) (2.8.)

iSl

yik 1(l = 1..r; k = 1..p)


yik = 0, 1(i = 1..q; k = 1..p)

Postoji q predmeta K1 , . . . , Kq i jedan ispit za svaki predmet Ki . Postoji r grupa ispita S1 , . . . , Sr takvih da u svakoj Sl postoje studenti koji imaju sve ispite u Sl . Broj termina je p, a lk je najve i broj ispita koje je mogu e rasporediti u terminu k (ne nuno broj prostorija). Ako je c c ispit predmeta Ki rasporeden u termin k onda je yik = 1, a ina e je yik = 0. c Kao i problem fakultetskog rasporeda, mogu e je dokazati da je problem deniranja raspoc reda ispita NP-potpun redukcijom od problema bojanja grafova. Naj e i cilj optimizacije je uklanjanje ispita u uzastopnim terminima te se s tim ciljem moe c c koristiti sljede a objektivna funkcija: c
p1 r k=1 l=1 i, jSl

yik y jk+1

Produkt yik y jk+1 daje jedan samo ako su yik i y jk+1 jednaki 1 tj. samo kada postoje ispiti iz grupe Sl koji su rasporedeni u uzastopne termine (Schaerf 1999:11011). Mogu e je takoder koristiti i c broj studenata uklju enih u svaki konikt kao to je to bio slu aj s matricom konikata. Potrebno c c 5

je uzeti u obzir da ako postoji ispit na kraju dana i ispit na po etku sljede eg, oni se takoder nalaze c c u uzastopnim terminima, ali ih ne bi nuno trebalo tretirati kao takve (Schaerf 1999:111). Pridruivanje ispita prostorijama ovisi o broju studenata koji pristupaju ispitu. Ako se broj ispita po prostoriji ograni i na jedan, mogu e je na i optimalno rjeenje problema u optimalnom c c c vremenu koriste i pohlepni algoritam. Doputanjem vie ispita u istoj prostoriji u istom terminu, c problem postaje NP-potpun i generalizacija je problema naprtnja e. Takoder je potrebno uzeti c u obzir da se neki ispiti moraju odravati u posebnim prostorijama (npr. ispit na ra unalima). c Osim doputanja vie ispita u istoj prostoriji, postoji mogu nost razdvajanja ispita u dvije ili vie c prostorija u slu aju kada svi studenti ne mogu stati u jednu (Schaerf 1999:11112). c

3. Vieagentni sustavi
3.1. Agenti
Russell i Norvig (1995:31) deniraju agenta na sljede i na in: sve to se moe vidjeti kao c c promatranje okoline kroz senzore i djelovanje na tu okolinu kroz izvritelje. Woolridge (2002:3) daje sljede u deniciju vieagentnog sustava: Vieagentni sustav se sastoji od vie agenata koji c djeluju jedan na drugoga, naj e e izmjenjivanjem poruka. Glavna zna ajka agenta je sposobnost c c c rjeavanja problema samostalno ili u suradnji s drugim agentima, a s minimalnim utjecajem izvan sustava nakon po etnog deniranja problema. Kada se u sustavu nalazi vie agenata, govorimo o c vieagentnom sustavu. Ovaj sustav pristupa problemu koriste i alate iz teorije igara, ekonomije c i biologije, a nadograduje ih algoritmima i idejama iz umjetne inteligencije poput metoda pretra ivanja i strojnog u enja (Vidal 2010:9). Vano je napomenuti da se niti jedna od spomenutih c denicija ne koristi pojmom inteligentnog agenta ve samo agenta. c Reaktivni agenti su najjednostavnija vrsta agenata. Oni promatraju okolinu putem senzora i zatim reagiraju na trenutno stanje putem jednostavnih pravila tipa ako uvjet onda akcija. Sloenija vrsta reaktivnog agenta je agent koji osim trenutnog uzima u obzir i prethodna stanja svijeta te donosi odluku na temelju zapam enih odnosa. Voza automobila tako ne e preticati automobil c c c ispred sebe iako mu se ukazala prilika ako je u prethodnom trenutku u retrovizoru primjetio drugi automobil koji kre e u pretjecanje (Russell i Norvig 1995:4042). c Kada agent od vie mogu ih akcija odabere onu koja ga vodi blie odredenom cilju tada c govorimo o agentima orijentiranima prema cilju. Ovim agentima nije dovoljno poznavanje prolih stanja svijeta ve moraju prou iti koja akcija ce dati najpovoljnije budu e stanje. Povoljno stanje c c c je ono koje agenta dovodi na cilj ili barem blie ostvarenju cilja. Ako vie akcija moe dovesti do cilja, a neke to mogu ciniti uz manji troak ili ve u sigurnost po agenta onda govorimo o funkciji c korisnosti (Russell i Norvig 1995:4245). Agent putnik tako moe na raskriju odabrati dulji put do idu eg grada ako mu je drugi izbor prolazak kroz mo varu gdje je ve a ansa nepovoljnog c c c ishoda.

3.2. Okolina
Okolina u kojoj se agenti kre u i djeluju bitna je koliko i sami agenti jer ce njihov dizajn i c mogu nosti ovisiti o ograni enjima okoline. Pristupa ne okoline daju potpuno stanje svijeta svac c c kom agentu dok je kod nepristupa nih agentu dostupan samo mali dio (Russell i Norvig 1995:46). c Osoba koja se kre e u labirintu ima ograni enu okolinu i mora pamtiti put kojim je ila. S druge c c 7

strane, osoba u labirintu s GPS-om ima pristupa nu okolinu i ne mora pamtiti kuda se kretala jer u c svakom trenutku moe provjeriti svoj poloaj. Kod deterministi nih okolina, agent moe to no znati svoj utjecaj na okolinu sa svakim c c potezom. Nedeterminizam moe biti posljedica nepristupa ne okoline. Agent koji ne posjeduje sve c potrebne informacije ne moe to no odrediti posljedice svojih poteza (Russell i Norvig 1995:46). c Epizodne okoline dijele djelovanje agenata u epizode, a svaka se sastoji od promatranja i djelovanja. Daljnje epizode nisu vezane uz prethodne i agent stoga ne mora razmiljati unaprijed (Russell i Norvig 1995:46). Stati ne okoline se ne mijenjaju sve dok agent ne u ini neku promjenu, a dinami ne se c c c neprestano mijenjaju (Russell i Norvig 1995:46). Postoji mogu nost izmjene stanje u tolikoj mjeri c od trenutka kada agent zapo ne donositi odluku da kona no donesena odluka moe imati loe c c posljedice ako uop e moe biti izvedena. Takva okolina je u sportovima gdje igra i izravno igraju c c jedni protiv drugih poput hokeja ili rukometa. Igra nema puno vremena za razmiljanje o idu em c c potezu jer ce suparni ki igra i pokuati blokirati najbolje mogu e poteze prije nego ih odigra. c c c Okolina je diskretna ako postoji jasni prijelaz iz jednog stanja u drugo. Primjer diskretne okoline je ah gdje svaki potez dovodi okolinu u novo diskretno stanje. Primjeri iz stvarnog svijeta poput vonje auta su kontinuirani (Russell i Norvig 1995:46). Iz ovih opisa okolina se moe zaklju iti da su najlake za rad pristupa ne, deterministi ke, c c c epizodne, stati ne i diskretne okoline dok su najtee nepristupa ne, nedeterministi ne, neepizodne, c c c dinami ne i kontinuirane. Stvarni svijet iz ljudske perspektive pripada zadnjoj skupini jer moemo c vidjeti samo dio koji nas okruuje; nae djelovanje ne e imati uvijek isti u inak ve ce rezultati biti c c c podloni drugim cimbenicima na koje ne moemo utjecati; prethodne akcije i interakcije utje u na c budu e; okolina se stalno mijenja pod utjecajem drugih agenata i prirodnih cimbenika, a diskretna c stanja se ne mogu razlu iti te se mora promatrati u kontinuitetu. Ograni avanjem na promatranje c c samo dijela svijeta i uklanjanjem nebitnih detalja apstrakcijama, moemo dobiti manje zahtjevnu okolinu kao to su primjerice osobe u labirintu s GPS-om. Ako svedemo svijet samo na labirint, lako moemo dobiti kartu uz pomo koje pratimo svoj poloaj i kretanje cime okolina postaje c pristupa na. Daljnjom podjelom karte na kvadrate ksne veli ine i odredivanjem da korak zna i c c c prelazak osobe iz jednog kvadrata u drugi dobivamo diskretnu i deterministi nu okolinu. Takoder c svaki novi labirint moemo tretirati kao posebnu epizodu gdje kretanje ovisi o izgledu trenutnog labirinta i neovisno je od bilo kojeg prethodnog kretanja kroz labirint. Ovakvom apstrakcijom okoline lake je prona i rjeenje koje je zatim mogu e primjeniti na stvarni svijet uz odredene c c preinake.

3.3. Komunikacija medu agentima


Distribuirana priroda vieagentnog sustava cesto zna i da agenti ne posjeduju sve informac cije potrebne za donoenje odluke i moraju ih prikupiti od drugih agenata. Cak i oni agenti koji su samostalno doli do nekog reenja moraju nekako predstaviti to rjeenje drugima dok oni koji suraduju moraju znati to drugi agenti rade kako bi se mogli uskladiti. Ukoliko se agenti medusobno natje u, moraju saznati u kakvom su poloaju u odnosu na protivnike. c Jedan od na ina komunikacije medu agentima je reci pitaj. Agenti koji imaju zajedni ki c c jezik interpretiranja okoline mogu komunicirati na ovaj na in. Ako ele saznati neto, jednostavno c pitaju drugog agenta na isti na in na koji bi ispitali vlastito znanje. Isto tako, ako ele re i drugome c c agentu neto, to govore na isti na in kao i kada unose neto u svoju bazu znanja. Agenti mogu i c lagati kako bi si osigurali prednost na tetu drugoga (Russell i Norvig 1995:660661). Drugi na in komunikacije je putem formalnog jezika. Prednost ovog na ina je to agenti c c ne moraju imati isti na in interpretiranja okoline. Agenti mogu biti razli ito gradeni i unutarnja c c struktura im moe biti poptuno razli ita od svih ostalih agenata, a mo i ce i dalje komunicirati ako c c postoji zajedni ki jezik na koji svi prevode svoje poruke (Russell i Norvig 1995:660661). c Agenti mogu koristiti komunikaciju i za osiguravanje odredene pogodnosti. Primjerice, ako ima manje resursa nego to je potrebno da se zadovolje potrebe svih agenata, potrebno je odlu iti c kojim agentima ce biti dodijeljeni. Ovakve situacije se rjeavaju pregovorima. Idealni sustav pregovaranja trebao bi biti u inkovit, stabilan, jednostavan, distribuiran i simetri an. U inkovit c c c sustav je onaj u kojem agenti ne troe uzalud resurse u traenju rjeenja. Stabilnost osigurava da niti jedan agent nema poticaj odustati od dogovorene strategije. Jednostavnost se odnosi na vremensku i ra unalnu kompleksnost dolaska do rjeenja. Distribuiran sustav ne ovisi o sredinjem c donositelju odluka, dok simetri nost mora osigurati da ne postoji pristranost prema nekom agentu c iz slu ajnih ili nebitnih razloga (MIT 1999:104105). c

3.4. Agenti i objekti


Na prvi pogled agenti djeluju sli no objektima u objektno-orijentiranom pristupu programic ranju. Objekti imaju interni prikaz stanja, provode akcije (metode) na temelju tih stanja i komuniciraju medusobno slanjem poruka. Najve a razlika je u stupnju samostalnosti jer objekti nemaju c kontrolu nad svojim akcijama. Svaku javnu metodu nekog objekta moe pozivati bilo koji drugi objekt i ona ce se uvijek ostvariti. Ako agent zatrai drugog agenta da neto u ini, ovaj moe ali i c ne mora to u initi ovisno o tome to je u njegovom osobnom interesu i koliko je spreman na suradc nju. Agenti su sposobni samostalno ili u dogovoru s drugim agentima donositi odluke i djelovati prema nekom cilju. Objekti ne odlu uju i ne dogovaraju se s drugim objektima kako ostvariti neku c akciju. Mogu samo pasivno djelovati (MIT 1999:9). 9

Razlika izmedu agenata i objekata ne zna i da ne moemo koristiti objektno-orijentirani c pristup za izradu agenata. Objekte moemo promatrati kao gradivne jedinice od kojih se agenti sastoje kao to se ljudsko tijelo sastoji od razli itih organa. Sami organi djeluju pasivno kako se c od njih trai u danom trenutku, a zajedno cine tijelo koje moe djelovati samostalno i orijentirano prema nekom cilju.

10

4. Vieagentni sustavi kod deniranja rasporeda


4.1. Dosadanja postignu a c
Primjena vieagentnih sustava na deniranje rasporeda je relativno novo podru je. Prvi susc tavi su sluili za rasporedivanje sastanaka i industrijskih operacija i potje u iz 1997., dok prvi c pokuaj rasporedivanja zaposlenika potje e iz 2002. godine (Strnad i Guid 2007:139). Sljedi opis c dva pristupa rjeavanju problema rasporeda. Prvi pristup je centralizirani na in rjeavanja proc blema deniranja rasporeda vjebi. Drugi pristup je decentralizirani, a agenti imaju samo lokalno znanje prilikom kretanja u prostoru pretraivanja.

4.2. Centralizirani pristup


Strnad i Guid u svojem radu iz 2007. koriste agente za izravno deniranje potpunog rjeenja umjesto dekompozicije problema i traenja lokalnog rjeenja. Agenti u njihovom slu aju predc stavljaju pojedine predmete dok profesori, studenti i predavaonice predstavljaju sudionike koje je potrebno rasporediti. Takoder koriste sredinjeg agenta cija je uloga koordinirati komunikaciju medu agentima prema predodredenom protokolu (Strnad i Guid 2007:139). Njihov rad se usre doto uje na rasporedivanje predavaonica opremljenih ra unalima za prakti nu nastavu koju vode c c c asistenti. Model uzima u obzir da asistenti mogu biti zadueni za vie predmeta, da vie grupa studenata moe imati istu prakti nu nastavu te da se moe pojaviti potreba za razdvajanjem studenata c u manje grupe zbog ograni enog broja mjesta u predavaonicama (Strnad i Guid 2007:139). Ovaj c model je posebno zanimljiv jer u potpunosti odgovara problemu rasporedivanja vjebi na fakultetu Organizacije i Informatike. Agenti postiu dogovor putem pregovora. Svaki agent odrava popis zahtjeva poput popisa termina kada se odredena predavaonica, grupa studenata i asistent mogu pridruiti predavanju koje taj agent predstavlja. Po etni skup zahtjeva predstavlja elje i mogu nosti studenata i asistenata, a c c na asistentima je da ih unesu nakon konzultiranja sa studentima. Kako je kona ni skup potrebnih c sudionika cesto puno manji od po etnog skupa, postoji prostor za pregovaranje gdje se agenti mogu c odre i nekih sudionika (Strnad i Guid 2007:13940). c Formalni opis sustava je skup A = {Ai ; i = 1 n} pregovaraju ih agenata. Svaki agent Ai c odrava popis po etnih zahtjeva Pi = {pi, j ; j = 1 mi } gdje Pi predstavlja dostupne termine unutar c kojih je mogu e obaviti potrebna pridruivanja. Svaki zahtjev za pridruivanje pi, j sadri jednog c asistenta, skup grupa studenata i ekskluzivni skup mogu ih predavaonica od kojih samo jedna c smije biti smjetena u bilo kojem trenutku. Uz to, zahtjevu je pridruen prioritet i, j koji izraava 11

poeljnost tog pridruivanja. Kako agent moe odbaciti ili smanjiti opseg svojih zahtjeva u tijeku pregovaranja, mora odraavati popis trenutnih zahtjeva Qi = {qi, j } Pi . U bilo kojem trenutku k, trenutni raspored T (k) je odreden s aktivnim zahtjevima svih agenata kao T (k) = Qi . Agent
i

moe uz pomo trenutnog rasporeda konstruirati popis Fi = { fi, j } koji sadri ostvarive elemente c trenutnih zahtjeva te popis Ci = {ci, j } koji sadri neostvarive elemente, a koje agent moe koristiti za daljnje pregovaranje. Za svakog agenta Ai vrijedi Qi = Fi Ci (Strnad i Guid 2007:140). Prihvatljivost trenutnog rasporeda T (k) je odredena ocjenom E (k) koja se ra una na sljede i c c na in: c (k) (k) (4.1.) E (k) = EG + Ei
i

c Ovdje Ei predstavlja ocjenu agenta Ai koja ne uzima u obzir elje studenata i ostala op a ograni(k) cenja. Zbog toga je potrebna globalna ocjena EG (Strnad i Guid 2007:140). Pod pretpostavkom da je po etni raspored T (0) koji se sastoji od po etnih zahtjeva svih agec c nata neprihvatljiv, algoritam pokuava razrijeiti konikte putem pregovora. Tijekom pregovora, agenti smanjuju opseg svojih zahtjeva kako bi smanjili broj sukoba i kona no doli do prihvatljivog c rasporeda. Za ostvarenje tog cilja, agente je prvo potrebno grupirati prema direktnim i indirektnim koniktima nakon cega agenti mogu odlu iti o odbacivanju odredenih zahtjeva vezanih uz nekog c sudionika. Agent ce povu i sve ostale zahtjeve vezane uz sudionika ako postoji jedan zahtjev koji c mu odgovara i koji nije u koniktu. Odbacivanjem ostalih zahtjeva se smanjuje broj konikata i omogu uje ostalim agentima da i oni odbace viak zahtjeva u slu aju da im se oslobodi poeljni c c zahtjev. Nakon to dobrovoljno odbacivanje zahtjeva vie ne bude u interesu agenata, po inje faza c pregovaranja. Tijekom pregovaranja svaki agent unutar koniktne grupe mora ponuditi racionalni ustupak koji ce smanjiti razinu konikta u grupi. Prihva a se ona ponuda koja nudi najve e poboljanje trec c nutnog rasporeda za najmanju rtvu agenta-predlagatelja. Pretpostavka je da ce se ocjena rasporeda od agenta koji je u inio ustupak smanjiti, ali da ce ukupna ocjena porasti jer ce ostalim agentima c novi raspored vie odgovarati. Nakon prihva anja ustupka, ponovo se provodi faza dobrovoljnog c odbacivanja. Ako ustupci nisu mogu i, provodi se obnavljanje unutar kojega je agentima dozvoc ljeno ponovo preuzeti neke ili sve odba ene zahtjeve ako nisu u koniktu. Poeljno je obnovu c prvo dopustiti agentima koji nemaju ispunjene minimalne zahtjeve kako bi kona ni raspored bio c ostvariv. Nakon obnove, ponovo se provodi dobrovoljno odbacivanje. Nakon to odbacivanja, ustupci i obnove vie ne budu mogu i, algoritam zavrava s radom i raspored je dovren. Ako doc biveni raspored nije ostvariv, bitne informacije iz preostalih konikata se prosljeduju odgovornim osobama (Strnad i Guid 2007:14347). Sredinji agent, osim to pamti trenutno stanje rasporeda i ra una globalnu ocjenu, slui c kao posrednik medu agentima tijekom pregovora te je odgovoran za odabir jednog od ponudenih ustupaka u fazi pregovaranja. Ovakav sustav je ponajprije namijenjen za distribuiranu arhitekturu posluitelj-klijent gdje sva komunikacija medu klijentima ide isklju ivo preko posluitelja (Strnad c 12

(k)

i Guid 2007:148). Autori su algoritam testirali na dva stvarna problema sa svog fakulteta te jednom umjetnom koji je stvoren na na in da bude nerjeiv. Rezultate su usporedivali s ru no izradenim rasporedom te c c s genetskim algoritmom. Prilikom usporedbe, pretpostavili su da pridruivanja iz ru no deniranog c rasporeda imaju najviu vrijednost ako po etni zahtjevni nisu bili dovoljno jasni. Vieagentni c sustav se pokazao bolji i od ru nog pristupa i od genetskog algoritma koji je bio najloiji, a za c nerjeivi slu aj je postigao ostvarivost od 95% (Strnad i Guid 2007:14952). c

4.3. Decentralizirani pristup


Picard i suradnici su 2005. predloili sustav u kojem je lokalno znanje agenta dovoljno za ostvarivanje suradnje i deniranje globalnoga rjeenja. Svoj pristup temeljili su na kooperativnim agentima koji mijenjaju svoj pristup kada se nadu u nekooperativnim okolnostima. Okol nosti se smatraju kooperativnima ako agent primljene poruke moe nedvosmisleno shvatiti, ako su primljene informacije korisne agentu prilikom donoenja odluke te ako donesena odluka vodi do korisnih aktivnosti drugih agenata. Tenjom prema kooperativnim okolnostima, agenti smanjuju konikte i stvaraju kona ni raspored (Picard i dr. 2006:3132). c Kako bi uspjeno rijeili problem, stvorili su dvije grupe agenata. Agenti-predstavnici djeluju kao poveznica izmedu ljudskih sudionika i sustava za deniranje rasporeda. Ljudski sudionici su profesori i grupe studenata. Predstavnici sadre osobna ograni enja onih koje predstavljaju poc put dostupnosti ili potreba za opremom. Predstavnici zatim sami kreiraju rezervacijske agente koji se jedini kre u u prostoru pretraivanja. Svaki predstavnik kreira onoliko rezervacijskih agenata c koliko predavanja njegov ljudski pandan mora odrati odnosno odsluati te ih nasumi no rasporec duje u prostor pretraivanja. Daljnja uloga predstavnika se svodi na obavjetavanje rezervacijskih agenata o promjenama ograni enja koje mogu do i od korisnika i od drugih agenata koji pripadaju c c istom predstavniku (Picard i dr. 2006:33). Rezervacijski agenti su jednostavni reaktivni agenti zadueni za rezervaciju termina i prostorija te pronalazak odgovaraju ih partnera koji zadovoljavaju ograni enja naslijedena od predc c stavnika. Agentima ciji predstavnik zastupa profesora, partneri su agenti ciji predstavnik zastupa grupu studenata i obratno. Svaki poloaj u prostoru pretraivanja predstavlja termin u odredenom danu i za odredenu prostoriju. Ako je poloaj kooperativan, agent ga rezervira i pronalazi partnera. Kako su agenti na po etku nasumi no rasporedeni, poloaji mogu biti nekooperativni to dovodi c c do promjene partnerstva i rezervacija. Tijekom faze promatranja rezervacijski agent provjerava poruke pristigle od drugih rezervacijskih agenata i svog predstavnika te upotpunjuje podatke o poloaju u kojem se nalazi. Tijekom faze oduke bira kooperativnu radnju koju zatim izvodi u fazi provodenja radnje. Kako bi donio dobru kooperativnu odluku, agent mora poznavati svoj poloaj u prostoru pretraivanja, trenutnog 13

partnera, trenutno rezervirani poloaj, nadredenoga predstavnika, vrijeme traenja rezervacije, ter min rezerviranog poloaja, ograni eni popis drugih rezervacijskih agenata kojima moe slati poc ruke, skup ograni enja naslijedenih od predstavnika, skup ograni enja dobiven od ostalih agenata c c pod istim predstavnikom, skup ograni enja stvoren sparivanjem, skup ograni enja nastalih rezervic c ranjem, skup nekompatibilnih ograni enja te funkciju za ponderiranje ograni enja. Rezervacijski c c agent na po etku poznaje samo svoj trenutni poloaj, popis drugih agenata mu je prazan, a funkcija c za ponderiranje utje e na odluku koliko se strogo agent mora pridravati odredenog ograni enja. c c Skup nekompatibilnih ograni enja agentu slui za odredivanje s kojim agentima se moe upariti te c koje poloaje moe rezervirati. Agent se kroz prostor pretraivanja kre e nasumi no u potrai za poloajem koji najbolje c c odgovara trenutnim ograni enjima. Prilikom rezervacije ili otkazivanja rezervacije na nekom poc loaju, duan je obavijestiti ostale agente s istim nadredenim predstavnikom kako ne bi dolo do konikta u rasporedu. Drugi agenti mogu primijetiti rezervaciju samo ako se nadu na istom po loaju jer agent koji je napravio rezervaciju ostavlja oznaku. Agent odlazi na rezervirani poloaj tek kada ima partnera na tom poloaju i ako ne mora smanjivati opseg svojih ograni enja, a ina e c c nastavlja s pretraivanjem prostora za boljim rjeenjem. Prilikom dolaska na novi poloaj, agent pamti sve agente koje sretne i na taj na in puni popis drugih agenata (Picard i dr. 2006:3337). c Kooperativna priroda rezervacijskog agenta zna i da ce pokuati suradivati sa svakim agenc tom kojeg sretne i preseliti se na drugi poloaj ako kooperacija ne bude mogu a. Jedan od slu ajeva c c gdje je kooperacija nemogu a je ako oba agenta imaju istog nadredenoga agenta-predstavnika ili c ako su oba rezervacijska agenta zaduena za pronalaenje termina profesorima. Nakon sklapanja partnerstva, mogu e je da jedan od partnera nade agenta cije mu partnerstvo vie odgovara. U tom c slu aju je duan obavijestiti prethodnog partnera o raskidu. c Autori su testirali model na francuskom referentnom primjeru za probleme rasporedivanja1 . Ve i broj agenata rezervacija je bio uspjeniji u deniranju rasporeda u odnosu na veli inu prosc c tora jer je bilo lake na i odgovaraju eg partnera. Sustav se takoder pokazao u inkovit prilikom c c c izmjene ograni enja tijekom traenja rjeenja. Glavni nedostatak je to sustav ne moe znati gloc balnu vrijednost pronadenog rjeenja i nastavlja s traenjem cak i kada je raspored u potpunosti izraden. Zbog toga je potrebna vanjska interakcija sa sustavom za zaustavljanje potrage (Picard i dr. 2006:4044).

1 Preuzeto

26. svibnja 2012. s http://www-poleia.lip6.fr/~guessoum/asa/BenchEmploi.pdf.

14

5. Problem izrade rasporeda na FOI-u


5.1. Opis problema
Fakultet Organizacije i informatike u Varadinu trenutno zapoljava 90 profesora, asistenata i znanstvenih novaka2 rasporedenih na 112 predmeta od koji 66 na preddiplomskom3 i 46 na 4 studiju ako se izuzme tjelesna i zdravstvena kultura te kolska praksa koji se izvode diplomskom izvan prostorija fakulteta. Predmeti su raspodijeljeni u zimski semestar s 65 i ljetni s 47 predmeta. U glavnoj zgradi fakulteta se nalazi 9 dvorana razli itih kapaciteta namijenjenih predavac njima i seminarima te 7 dvorana opremljenih za laboratorijske vjebe. Sve dvorane su dostupne tijekom tjedna od ponedjeljka do subote od 7:00 do 21:00 sat, s tim da je nastava subotom iznimka i ta je dan rezerviran za predavanja da postdiplomskom studiju. Fakultet u svojem posjedu ima jo jednu zgradu u kojoj se gotovo isklju ivo odvija smjer Ekonomika poduzetnitva, ali se predmeti c iz glavne zgrade tamo odravaju samo ako ne postoji alternativno rjeenje. Svaki predmet ima satnicu koja se sastoji od predavanja, seminara i vjebi. Predavanja se trebaju izvoditi prije seminara i vjebi kada god je to mogu e. Termini izvodenja svih predmeta s c istim najranijim semestrom izvodenja se ne smiju preklapati. Kako studenti s viih godina smiju upisivati predmete s niih, potrebno je minimalizirati preklapanja tih predmeta za studente s viih godina koji su ih upisali. Raspored vjebi ovisi o posebnim prostorijama i moe se promatrati kao izdvojeni problem. S obzirom da predavanja zapo inju prije zavretka upisa, potrebno je denirati raspored s c nepotpunim podacima o broju studenata. Poeljno je da takav raspored rijei to vie konikata te da se naknadne izmjene svedu na promjenu prostorija. Fakultet polazi oko 2 000 studenata koje je potrebno razdvojiti u grupe i podgrupe po godinama studija. Svi studenti u istoj grupi imaju zajedno predavanja dok se seminari odravaju samo za studente iste podgrupe. Problem se sastoji od dva dijela. Prvi dio je grupiranje, a drugi rasporedivanje. Kako bi dobili dobar raspored, potrebno je prvo razdvojiti studente u grupe za predavanja i podgrupe za seminare te paziti da su grupe otprilike jednake veli ine. Grupiranje se obavlja jer broj upisanih c studenata moe prelaziti kapacitete dvorana i postoji opasnost da dvorane manjih kapaciteta budu zanemarene ili da ne postoje dvorane u koje mogu stati svi studenti. Grupe se mogu dodatno razdvojiti na manje podgrupe koje mogu paralelno seminare ako ima dovoljno asistenata. Time se ostali termini i zauzete dvorana u ostalim terminima oslobadaju za druge grupe.
2 Preuzeto 3 Preuzeto

27. svibnja 2012. s http://www.foi.unizg.hr/djelatnici/nastavnici. 27. svibnja 2012. s http://www.foi.unizg.hr/studiji/pds/ips/kolegiji. 4 Preuzeto 27. svibnja 2012. s http://www.foi.unizg.hr/studiji/ds/dsfoi/kolegiji.

15

Prilikom rasporedivanja, potrebno je u obzir uzeti i elje profesora. Kako bi se lake dolo do rjeenja, potrebno je odrediti neku granicu nakon koje se elje smiju zanemariti. Jedan od na ina c je odredivanje minimalnog potrebnog postotka zadovoljnih agenata. Drugi na in je odredivanje c ksnog broja koraka nakon kojeg se elje smiju zanemariti bez obzira na postotak ostvarenih. Ovaj rad implementira taj drugi na in. Za potrebe ovog rada, eljeni termini su odabrani nasumi no c c prema normalnoj distribuciji. Kao dodatno ograni enje, poeljno je izbje i najraniji termin od 7:00 do 8:00 svako jutro te c c subotu koja ina e slui za nadoknade praznika i za doktorske studije. c

5.2. Prijedlog rjeenja


5.2.1. elje profesora
Kod elja profesora je uzeta pretpostavka da svi ele termin u sredini dana i tjedna te da nitko ne eli drati predavanje u 7:00 ujutro niti subotom. Izradena je zasebna aplikacija koja za svakog profesora odabire pet termina u tjednu. Odabir termina je nasumi an a vjerojatnost c odabira pojedinog termina je rasporedena prema normalnoj krivulji ovisno o satu odnosno danu pojedinog termina. Termini su rasporedeni na koordinatnom sustavu gdje apscisa predstavlja dane, a ordinata sate. Sredite koordinatnog sustava je postavljeno u gornji, lijevi kut okvira svijeta; dani su ozna eni brojevima od 1 (ponedjeljak) do 6 (subota), a termini od -1 (7:00 8:00) do -14 c (20:00 21:00). Prvi (nulti) stupac i red su rezervirani za zaglavlje. Aritmeti ka sredina na apscisi c 2 = 1 te 2 = 2. je = 3 dok je na ordinati = 7. Standardne devijacije su redom Slika 1 prikazuje izgled programa na po etku, nakon klika na gumb pokreni cime se cini c inicijalizacija svijeta. Iz padaju eg izbornika se bira profesor odnosno asistent za kojeg se unose c eljeni termini. Svaki mora odabrati pet termina koji mu najvie odgovaraju. Broj preostalih termina za odabir se moe pro itati u tekstualnom okviru Preostalo rezervacija. Odabir termina c se vri pomicanjem mia na eljeni termin u svijetu te zatim pritiskom tipke A. Na slici 2 se moe vidjeti izgled svijeta nakon odabira termina za srijedu od 13:00 do 14:00 sati. Nakon odabira svih pet termina, klikom na gumb pohrani se odabrani termini zajedno s imenom osobe za koju su odabrani spremaju u tekstualnu datoteku idealni termini.txt. Gumb nasumi no generira c termine za trenutno odabranu osobu prema ranije opisanoj normalnoj distribuciji kao to se moe vidjeti na slici 3. Sukladno tome, gumb svi nasumi no generira termine za sve osobe te rezultate c odmah zapisuje u datoteku.

16

Slika 1: Program je inicijaliziran i spreman za rad

5.2.2. Popis predmeta


Predmeti su popisani u zasebnim datotekama gdje su podaci pojedinog predmeta u zasebnom redu, a stupci podataka su odvojeni razmakom. Format je kao i kod popisa elja profesora naprav ljen tako da ga NetLogo moe izravno citati bez dodatnog formatiranja. Podaci u datotekama su sljede i: c ifra predmeta najraniji semestar izvodenja naziv predmeta broj studenata koji su upisali predmet broj sati predavanja tjedno broj sati seminara tjedno broj sati vjebi tjedno broj nositelja imena nositelja broj predava a za seminare c

17

Slika 2: Odabran je termin za srijedu od 13:00 do 14:00 sati imena predava a za seminare c Na in na koji NetLogo upravlja datotekama je prili no pojednostavljen pa je broj nositelja i broj c c predava a za seminare bitan kako bi program znao koliko podataka mora pro itati. Brojevi studec c nata koji su upisali pojedini predmet, a to je najbitniji prilikom odabira dvorane, kopirani su iz podataka za akademsku godinu 2011./12.

5.2.3. Implementacija
Za implementaciju prototipa je odabran programski jezik NetLogo koji omogu uje pisanje c programa na razini agenta. Najve e ograni enje NetLoga ja svijet koji je ograni en na dvije dic c c menzije. Postoji i nadogradnja za svijet u tri dimenzije ali je zbog brzine odabran ograni eniji c model. Posljedica ovog ograni enja je da se vie dimenzija modela moralo svesti na dvije dic menzije svijeta unutar kojega ce se agenti kretati. Komunikacija unutar NetLoga je jednostavni pitaj-reci na in. c Svako polje u svijetu je pasivan, stati an agent kojim aktivni agenti mogu upravljati. Svaki c stupac u svijetu predstavlja jedan termin, u jednom danu, za jednu dvoranu, dok svaki red predstavlja jednu podgrupu studenata. Fakultet Organizacije i informatike je otvoren studentima od 7:00 do 21:00 svaki dan osim nedjelje, a dostupno je 9 dvorana za predavanja to nam daje (21 7) 6 9 = 756 mogu ih termina u tjednu. c

18

Slika 3: Pet nasumi no odabranih termina prema normalnoj distribuciji c NetLogo zahtjeva da se dimenzije plo e ksiraju unaprijed te je stoga odlu eno da ce za svaki c c semestar biti rezervirano dovoljno prostora za 4 grupe od kojih ce svaka imati do 4 podgrupe. Kako su ljetni i zimski semestar nezavisni prilikom izrade rasporeda, ukupni broj redova (kada se u obzir uzmu preddiplomski i diplomski studij zajedno) je (3+2)44 = 80. Redovi koji ne e biti potrebni c nakon grupiranja ce se jednostavno zanemariti te stoga nije potrebno obra ati posebnu panju na c ljetni semestar kada na diplomskom studiju nema predavanja. Inicijalizacija programa uklju uje citanje podataka o predmetima, formiranje grupa, u itac c vanje podataka o idealnim terminima profesora, iscrtavanje svijeta po kojem ce se agenti kretati, postavljanjem dodatnih ograni enja te postavljanje agenata u svijet. Svi agenti u svijetu su poteni c (ne lau kada ih drugi pitaju za informacije) i naklonjeni suradnji (spremni su u initi ono to drugi c agent zatrai od njih). Prilikom u itavanja predmeta, stvara se po jedan agent za svaki predmet i popunjava s poc dacima tog predmeta. Kao to je ranije opisano, najve i doputeni broj grupa je cetiri, a svaka c grupa moe imati do cetiri podgrupe. Unutar grupe je doputeno najvie 150 studenata dok je unutar podgrupe maksimum postavljen na 40 studenata. Kona ni broj grupa se odreduje prema c broju predava a te broju studenata tako da se ukupni broj studenata dijeli s brojem predava a. Ako c c je dobiveni broj manji od najve eg doputenog broja studenata u grupi, broj predava a se uzima c c za broj grupa. Ukoliko je dobiveni broj ve i od maksimuma, broj grupa se pove ava za jedan i c c ponovno se ra una. Nakon odredivanja grupa, na isti na in se odreduju podgrupe s time da se c c umjesto ukupnog broja studenata, uzima broj studenata u grupi, a umjesto popisa predava a uzima c 19

popis asistenata. Jednom kada je odreden broj grupa po semestru, iz prethodnih agenata se stvaraju agenti predavanja i seminara za svaki predmet, a originalni agenti se uklanjaju iz svijeta. Svaki od novih agenata ima to no jednog predava a odnosno asistenta kao vlasnika i za tog vlasnika cita c c podatke o idealnim terminima. Slika 4 prikazuje detalje jednog agenta seminara. Podaci koji nisu prikazani su standardni podaci koje posjeduje svaki agent u NetLogo svijetu. Kako obje vrste agenata (predavanja i semi nari) nastaju iz prethodnih agenata koji citaju podatke iz datoteka tako i posjeduju iste varijable, ali se njihove vrijednosti razlikuju dok druge ne e nikada pro itati. Na primjer, agenti seminara c c ne e nikada citati koliko sati predavanja treba zauzeti jer o tome brinu agenti predavanja dok ni c jedna vrsta agenata ne e citati popise nositelja i asistenata ve samo tko im je trenutni vlasnik. c c Varijabla pomakni se koristi prilikom razrjeavanja konikta i postavlja se na true ako se agent treba pomaknuti. Na samom po etku svi agenti imaju vrijednost varijable slobodan postavljenu c na true cime daju do znanja da jo nisu zauzeli svoje termine. Aktivne podgrupe u svijetu se ozna avaju sivom bojom. Ako je odredeno da se zanemac ruje najraniji termin (7:00 8:00) ili subota, ti termini su ozna eni crvenom bojom koja, kao i u c postupku zauzimanja termina, ozna ava one termine koje je nemogu e zauzeti. Nakon iscrtavanja c c svijeta, agenti se nasumi no postavljaju u odgovaraju u podgrupu, a ako se radi o agentima predac c vanja onda se postavljaju u prvu podgrupu svoje grupe. Ovako pripremljena plo a se moe vidjeti c na slici 5. Ono to je odmah uo ljivo su crvena polja koja ozna avaju subotu i prvi jutarnji termin c c koji su onemogu eni za ovu inicijalizaciju. Crne linije predstavljaju redove gdje nije dostignut c najve i doputeni broj grupa ili podgrupa. Vrh svijeta je potpuno crn jer je rezerviran za zadnju c godinu diplomskog studija, a za inicijalizaciju je odabran ljetni semestar kada na toj godini nema predavanja. Zbog lakeg povezivanja brojeva dvorana u stvarnom svijetu s brojevima prostorija u programu, ra unamo s 11 dvorana iako ih samo 9 slui za predavanja. Dvorane 4 i 5 slue za c vjebe te im je kapacitet postavljen na nulu kako bi se osigurali da ih agenti ne mogu zauzeti. Pokretanjem programa, agenti koji nisu zauzeli svoje termine (u prvoj iteraciji svi) ocjenjuju svoj trenutni poloaj te ga zauzimaju ili sele na novu lokaciju. Ako agent predstavlja predavanje ili seminar koji zahtjeva vie od jednog sata tjedno, smije zauzeti termin na kojem se nalazi samo ako je u mogu nosti istodobno zauzeti i onoliko susjednih termina koliko mu je potrebno kako bi imao c kontinuirani niz za odravanje nastave. U tom slu aju nije bitno na kojem se poloaju u nizu nalazi c trenutni termin ve samo da je dio niza i da niz ne prelazi u sljede i odnosno prethodni dan. Nakon c c provjere broja uzastopnih slobodnih termina, agent provjerava odgovara li kapacitet dvorane broju studenata i eljama profesora, a zatim i je li vlasnik agenta (profesor odnosno asistent) slobodan u tom terminu. Takoder provjerava je li jedini agent koji se nalazi na tom poloaju. Ukoliko ima drugih agenata, provodi se rezolucija konikta. Konikti se razrjeavaju nakon to su svi agenti zauzeli svoje poloaje ili se odlu ili poc maknut; stoga je prvi korak provjera je li koniktno polje jo slobodno. U slu aju kada je polje c slobodno, agenti koji ne bi bili u mogu nosti zauzeti termin, cak i kada drugi agenti ne bi bili c 20

prisutni, se prvi sele na novi poloaj. Zatim preostali agenti ra unaju koliko im vrijedi taj poloaj c s formulom bro j_studenata bodovi = + pravi_termin + poloza j (5.1.) kapacitet_dvorane Ovdje bro j_studenata ozna ava broj studenata za koje je agent zaduen, a kapacitet ozna ava c c kapacitet dvorane na kojoj se agent nalazi. Prednost imaju oni agenti koji mogu bolje popuniti dvoranu. Vrijednost pravi_termin = 0, 1 ozna ava postoji li jedan od termina u popisu termina c za zauzimanje ujedno i u popisu idealnih termina. Vrijednost poloza j = 0, 0.5, 1 ovisi o danu i satu u odnosu na vrstu agenta. Ako je agent zaduen za predavanje onda ima prednost u jutarnjim terminima i prvoj polovici tjedna dok agenti seminara imaju prednost u popodnevnim terminima i drugoj polovici tjedna. Agent s najve im brojem bodova ostaje i zauzima poloaj dok drugi odlaze. c Samo zauzimanje polja provodi se promjenom boje polja u popisu za zauzimanje u zelenu i promjenom boje okolnih polja u crvenu. Kod predavanja se zauzimaju polja za sve podgrupe jer svi studenti jedne grupe sluaju predavanja zajedno, a seminare odvojeno. Boja koja postaju crvena su ona koja predstavljaju ostale dvorane u zauzetom terminu za tu grupu odnosno podgrupu te sva ostala polja koja predstavljaju zauzetu dvoranu u tom terminu. Slika 6 prikazuje izgled dijela svijeta nakon to su neki termini zauzeti. Naran asta boja je samo presjek koji se dogada kada se c jedno polje dva puta ozna i kao zabranjeno zauzimanje. Jedna zabrana dolazi kada je polje s istom c dvoranom i terminom zauzeto za drugu podgrupu, a druga zabrana kada je polje s druga ijom c dvoranom i istim terminom odabrano za tu podgrupu. Program zavrava kada svi agenti rezerviraju termine. Takoder je mogu e u bilo kojem c trenutku prekinuti program ponovnim pritiskom na gumb Kreni kako bi se razmotrila trenutna situacija. Kada korisnik poeli, moe ispisati trenutni poloaj u obliku .csv dokumenta. Dokument je strukturiran prema dvoranama na na in da je u prvom redu zapisan broj promatrane dvorane, c a zati sljedi tablica u kojoj redovi predstavljaju dane u tjednu, a stupci sate. Unutar te tablice su popisani podaci o agentima koji su zauzeli tu dvoranu u jednom od termina. Podaci su sljede i: c naziv predmeta predava /asistent c semestar izvodenja grupa/podgrupa za koju se izvodi Nakon tablice dolazi broj sljede e dvorane i njezina tablica i tako za sve dvorane. c

21

Slika 4: Detalji jednog agenta seminara

Slika 5: Izgled svijeta nakon inicijalizacije

22

Slika 6: Dio svijeta s rezerviranim terminima

23

6. Rezultati
6.1. Mjerenja
Raspored se smatra ostvarivim ako svi agenti zauzmu potreban broj termina. Uspjenost ostvarivoga rasporeda ovisi o agentima koju su zauzeli barem jedan idealni termin, a mjerena je kao udio zadovoljnih agenata od svih. Takoder su mjerene zauzetosti dvorana i dana u tjednu te sati u danu. U sva tri slu aja je samo mjerena varijabla uzeta u obzir dok su druge dvije zanemarene. c Tako dobiveni histogrami slue za bolje razumijevanje konikata kao i za pronalaenje greaka u kdu. Mjerenja su napravljena nakon prvih 50, 100, 200 i 500 koraka, a izvedena su uz cetiri vrste ograni enja. Prvo je promatrana izrada sa svim dodatnim ograni enjima (jutarnji termina od 7:00 c c do 8:00 sati i subota). Zatim je promatrana s pojedina no uklju enim jutarnjim terminom odnosno c c subotom, a na kraju bez dodatnih ograni enja. Sva mjerenja napravljena su s dva razli ita slu aja c c c uzimanja u obzir idealnih termina. Prvi slu aj granicu postavlja na 10. korak, a drugi na 50. Stoga c svaka slika u rezultatima, osim slika rasporedenosti elja profesora, prikazuje dva grakona od kojih lijevi uvijek prikazuje rezultate za prvi slu aj, a desni za drugi. Iako su mjerenja napravljena c na cetiri to ke, prikazane su samo prva i zadnja jer tranzicijske to ke ne prikazuju nita to nije c c jasno vidljivo u kona nom prikazu. c Za potpunu sliku podataka izradeni su histogrami rasporedenosti idealnih termina. Slika 7 prikazuje rasporedenost po danima, a slika 8 po satima. elje profesora su ostale nepromijenjene tijekom svih mjerenja.

Slika 7: Rasporedenost idealnih termina po danima

24

Slika 8: Rasporedenost idealnih termina po satima

Slika 9: Prvih 10 koraka popunjavanja rasporeda

6.2. Sa svim ograni enjima c


Tijekom prvih 50 koraka, 159 agenata je zauzelo poloaje u prvom slu aju. Udio agenata c koji su zauzeli idealne termine je bio 28.57%. Kada je proveden drugi slu aj, samo je 94 agenta c zauzelo poloaj, ali su svi imali barem jedan idealni termin i time postigli udio od 51.65%. Na slici 9 se moe vidjeti broj agenata koji su zauzeli poloaje u prvih 50 koraka. Vodoravna crvena crta predstavlja ukupni broj agenata. Udio zadovoljnih agenata je rastao znatno sporije nakon prelaska granice promatranja idealnih termina i zaustavio se na vrijednosti 29.12% za prvi slu aj, c a na 52.75% za drugi slu aj. Kona ni graf popunjenosti je prikazan na slici 10. Od 182 agenta, c c 164 ih je uspjelo zauzeti potrebne termine u prvom slu aju, a 172 u drugom to ove rasporede cini c neostvarivima, ali ukazuje na cinjenicu da nii prag uzimanja u obzir idealnih termina ne utje e c nuno na ve e pribliavanje ostvarivom rasporedu. c Zauzetost dvorana nakon prvih 50 koraka se moe vidjeti na slici 11. Dvorane 1, 7 i 10 se isti u u prvom slu aju dok je zauzetost podjednaka u drugom. Dvorana 11 u oba slu aja nije c c c zauzeta i logi no je za pretpostaviti kako ima premali kapacitet. Grafovi sli niji nakon 500 koraka c c kao to se moe vidjeti na slici 12. Mogu e objanjenje ovakve zauzetosti su kapaciteti. Dvorane c 1, 7 i 10 imaju najve e kapacitete dok dvorana 11 ima daleko najmanji. Razlog zato su zauzetosti c podjednake u prvih 50 koraka drugog slu aja moe leati u cinjenici da ve ina agenata trai idealne c c 25

Slika 10: Kona ni izgled grakona popunjenosti c

Slika 11: Zauzetost dvorana nakon prvih 10 koraka termine na istom podru ju zbog cega dolazi do ve eg broj konikata u kojima pobjeduju oni agenti c c kojima dvorana i termin bolje odgovara i dvorane se ravnomjernije popunjavaju. Zauzetost sati je nakon prvih 50 koraka bila najvia oko sredine dana s padom prema po etku c i kraju dana za drugi slu aj do je za prvi zauzetost bila najvia oko sredine i kraja dana, a moe se c vidjeti na slici 13. Zauzetost za drugi slu aj prati krivulju idealnih termina. Moe se pretpostaviti c da je i krivulja prvog slu aja bila sli na do 10. koraka, a pojava drugog vrha bi se u tom slu aju c c c mogla objasniti cinjenicom da je tada bilo najvie slobodnih termina te je bilo lake na i prostor c za zauzimanje duljeg neprekinutog niza termina. Kroz daljnje korake se zauzetost izjedna ava s c

Slika 12: Kona ni izgled zauzetosti dvorana c 26

Slika 13: Zauzetost po satima nakon prvih 10 koraka

Slika 14: Kona ni izgled zauzetosti po satima c izuzetkom najranijeg termina od 8:00 do 9:00 sati kao to se moe vidjeti na slici 14, ali je i dalje sredina dana ostala neto zastupljenija. Termin od 8:00 do 9:00 sati je vjerojatno ostao slabije zastupljen zbog zauzetosti kasnijih termina to je onemogu ilo agentima da ga iskoriste u svom c nizu. Kao i kod sati, zauzetost dana prati krivulju rasporedenosti idealnih termina sve dok se is klju ivo takvi termini trae. Na slici 15 se jasno vidi slaba zastupljenost petka u drugom slu aju c c dok je u prvom ve postigla ravnopravan poloaj. Zauzetost takoder postaje ravnomjernije raspoc redena s daljnjim koracima, a kona ni izgled se moe vidjeti na slici 16. Drugi slu aj je postigao c c manju ravnopravnost jer je ve i broj koraka traenja idealnih termina omogu io ve e zauzimanje c c c utorka i srijede koji se nije mogao kasnije nadoknaditi.

6.3. Doputen prvi jutarnji termin


Oslobadanjem prvog jutarnjeg termina za zauzimanja dodano je 55 novih poloaja od kojih je 45 mogu e zauzeti kada se oduzmu dvorane bez kapaciteta. Ova promjena nije znatnije utjecala c na popunjenost rasporeda. Udio zadovoljnih agenata je iznosio 31.87% za prvi, a 48.9% za drugi slu aj nakon prvih 50 koraka. Na slici 17 se moe vidjeti kako je u prvom slu aju 165 agenata c c

27

Slika 15: Zauzetost po danima nakon prvih 10 koraka

Slika 16: Kona ni izgled zauzetosti po danima c zauzelo slobodne poloaje, a u drugom njih 89. Kona an broj agenata koji su zauzeli poloaje je c iznosio 174 odnosno 169 od 182 te su time i ovi rasporedi ostali neostvarivi. Udio zadovoljnih agenata je porastao na 32.42% u prvom slu aju, a na 50.55% u drugom. Slika 18 prikazuje tempo c zauzimanja kroz svih 500 koraka mjerenja. Zauzetost dvorana je ostala sli na kao i u slu aju sa svim ograni enjima kao to se moe c c c vidjeti na slici 19. Kona ni izgled, prikazan na slici 20, takoder ne odstupa od o ekivanja. Naj e e c c c c zauzimana dvorana je i dalje dvorana 1 koja prednja i s brojem slobodni mjesta cime odgovara c svim agentima.

Slika 17: Grakon popunjenosti s dodatnim jutarnjim terminom nakon 10 koraka 28

Slika 18: Kona ni grakona popunjenosti s dodatnim jutarnjim terminom c

Slika 19: Zauzetost dvorana s dodatnim jutarnjim terminom nakon 10 koraka Na slici 21 je uo ljivo kako je zauzetost sati nakon prvih 50 koraka pratila oblik krivulje c rasporedenosti idealnih termina za drugi slu aj dok se ve po ela izravnavati za prvi. Kona ni c c c c oblik je prikazan na slici 22 gdje moemo vidjeti da je drugi slu aj zadrao dio svoje po etne c c krivulje. Samo 13 agenata je zauzelo termine koji uklju uju i prvi jutarnji sat u prvom slu aju, c c a 17 u drugom. Gledano s druge strane, dodavanje termina od 7:00 do 8:00 sati omogu ilo je c ravnomjernije rasporedivanje agenata jer su sada imali dodatni termin koji su mogli koristiti u traenju dovoljnog niza neprekinutih poloaja. Slika 23 prikazuje kako u prvih 50 koraka nije bilo zna ajnijih promjena u rasporedenosti c

Slika 20: Kona na zauzetost dvorana s dodatnim jutarnjim terminom c 29

Slika 21: Zauzetost po satima s dodatnim jutarnjim terminom nakon 10 koraka

Slika 22: Kona na zauzetost po satima s dodatnim jutarnjim terminom c agenata po danima u odnosu na slu aj sa svim dodatnim ograni enjima. Kona nu zauzetost je c c c mogu e vidjeti na slici 24. c

Slika 23: Zauzetost po danima s dodatnim jutarnjim terminom nakon 10 koraka 30

Slika 24: Kona na zauzetost po danima s dodatnim jutarnjim terminom c

31

Slika 25: Grakon popunjenosti s subotnjim terminima nakon 10 koraka

Slika 26: Kona ni grakona popunjenosti sa subotnjim terminima c

6.4. Doputena subota


Oslobadanjem subote u prostor izrade rasporeda dodana su 143 nova poloaja od kojih je 117 mogu e zauzeti kada se oduzmu dvorane bez kapaciteta. Ovo pove anje je donijelo neto zna ajne c c c promjene u kasnijim koracima. Udio zadovoljnih agenata nakon prvih 50 koraka je bio 33.52% za prvi slu aj, a 44.51% za drugi. 169 agenata je zauzelo termine u prvom slu aju, a 81 u drugom c c kao to se moe vidjeti na slici 25. Broj zadovoljnih agenata se u prvom slu aju nije mijenjao, c a u drugom je porastao na 45.6%. Zanimljiviji podatak je broj agenata koji su do kraja zauzeli neki poloaj. 179 ih je zauzelo u prvom slu aju, a 172 u drugom. Iako ovi rasporedi i dalje nisu c ostvarivi, razlika od tri agenta nije velika i postoji mogu nost da se uz dovoljan broj ponavljanja c postigne ostvarivi raspored. Slika 26 prikazuje rast zauzimanja do 500. koraka. Slika 27 pokazuje da nije bilo velikih razlika kod zauzimanja dvorana tijekom prvih 50 koraka u odnosu na slu aj sa svim ograni enjima. Kasnije se dvorana 1 istaknula sa 61 zauzetim c c poloajem, ali ne i dvorana 10. Slika 28 prikazuje kona ni izgled zauzetosti po dvoranama. c Zauzetost sati je takoder pratila sli an oblik kao i sa svim ograni enjima. Nakon 50 koraka c c je najvie zauzimanja bilo oko sredine dana (slika 29), a do kraja se zauzetost postepeno izjedna cavala s time da je u drugom slu aju ostao ja i trag izvorne krivulje nego u prvom kao to se moe c c vidjeti na slici 30. 32

Slika 27: Zauzetost dvorana sa subotnjim terminima nakon 10 koraka

Slika 28: Kona na zauzetost dvorana sa subotnjim terminima c Zauzetost po danima je o ekivano dobila najve e promjene s oslobadanjem novog dana. c c Nakon 50 koraka su 42 termina zauzeta u subotu u prvom slu aju dok u drugom subota nije ni c na eta jer nema idealnih termina za taj dan. Slika 31 prikazuje izgled zauzetosti po danima nakon c 50 koraka. Drugi slu aj je brzo nadoknadio razmak u ostalim koracima te se na slici 32 moe c vidjeti da je subota jednako popunjena u oba termina.

Slika 29: Zauzetost po satima sa subotnjim terminima nakon 10 koraka

33

Slika 30: Kona na zauzetost po satima sa subotnjim terminima c

Slika 31: Zauzetost po danima sa subotnjim terminima nakon 10 koraka

6.5. Bez dodatnih ograni enja c


Uklanjanjem dodatnih ograni enja oslobodeno je 198 dodatnih mjesta od koji je 162 mogu e c c zauzeti nakon to se oduzmu dvorane bez kapaciteta. Ako uzmemo u obzir i dvoranu 11 koja je u svim testiranjima pokazala da nema dovoljan kapacitet, taj se broj dalje smanjuje na 143 mogu a c poloaja. Rezultati se nisu znatnije razlikovali od rezultata sa subotnjim terminima. Tijekom prvih 50 koraka 166 agenata je zauzelo poloaje u prvom slu aju, a 88 u drugom kao to se moe vidjeti c na slici 33. Udio zadovoljnih agenata u prvom slu aju je bio 32.42%, a 48.35% u drugom. Na c

Slika 32: Kona na zauzetost po danima sa subotnjim terminom c 34

Slika 33: Grakon popunjenosti bez dodatnih ograni enja nakon 10 koraka c

Slika 34: Kona ni grakona popunjenosti bez dodatnih ograni enja c c slici 34 moemo vidjeti da je kona ni broj agenata koji su zauzeli poloaj podjednak, a iznosi c 177 agenata za prvi slu aj i 176 za drugi. Kona ni udio zadovoljnih agenata je 32.97% odnosno c c 50.55%. Kao to se moe vidjeti na slikama 35 i 36, zauzetost dvorana nije drasti no odstupala od c zauzetosti pod drugim uvjetima. dvorana 1 je ostala naj e e zauzimana, a prate ju dvorane 7 i 10. c c

Zauzetost sati je rasla sli no kao i kada je samo prvi jutarnji termin omogu en. Na slici 37 c c

Slika 35: Zauzetost dvorana bez dodatnih ograni enja nakon 10 koraka c

35

Slika 36: Kona na zauzetost dvorana bez dodatnih ograni enja c c

Slika 37: Zauzetost po satima bez dodatnih ograni enja nakon 10 koraka c se moe vidjeti da su tri agenta u drugom slu aju zauzela poloaje u tom prvom terminu to nije c suprotno postavljenim pravilima jer su ti agenti istodobno zauzeli barem jedan kasniji termin koji je bio u njihovom popisu idealnih termina. Slika 38 prikazuje kona ni izgled zauzetosti sati. Nec jednakost se medu zauzetim terminima smanjivala sve vie to se dulje nisu u obzir uzimali idealni termini. Zauzetost dana je u prvom slu aju brzo postala ravnomjerno rasporedena s iznimkom petka c kada je zauzeto 32 termina, a u drugom slu aju oponaa rasporedenost idealnih termina kao to se c moe vidjeti na slici 39. Ravnomjerna rasporedenost prvog slu aja se zadrala do kraja, a slika 40 c

Slika 38: Kona na zauzetost po satima bez dodatnih ograni enja c c 36

Slika 39: Zauzetost po danima bez dodatnih ograni enja nakon 10 koraka c

Slika 40: Kona na zauzetost po danima bez dodatnih ograni enja c c pokazuje da se u drugom slu aju krivulja ublaila te bi se vjerojatno izravnala s dovoljnim brojem c agenata i slobodnih poloaja.

37

7. Daljnja istraivanja
Pretpostavljeno je da je svim profesorima idealni termin sredina dana u sredini tjedna. Kako bi se model pribliio stvarnom svijetu, potrebno je provesti anketu medu profesorima kojom bi se otkrili stvarni idealni termini. Takoder je mogu e da je profesorima neki termin blii idealnom c ako je koji sat udaljen od idealnog u istom danu dok je drugima blii onaj koji je u istom satu, ali drugom danu. Broj studenata je glavni uzrok promjena rasporeda jer se raspored izraduje prije nego svi studenti upiu predmete pa do to nog broja nije mogu e do i. Za izradu ovog modela, koriten je c c c broj studenata iz prethodne akademske godine. Precizniji broj bi se mogao dobiti uzimanjem zadnjih nekoliko godina pod pretpostavkom da se u to vrijeme pravila studiranja i obaveznih predmeta nisu znatnije mijenjala za promatrani predmet. Taktikom cistog zauzimanja je gotovo nemogu e do i do ostvarivoga rasporeda te je stoga c c potrebno izraditi pravila pod kojima ce agenti otputati neke od zauzetih termina i time potrebu za ostvarenjem to boljeg vlastitog rjeenja podrediti potrebi ostvarivanja globalnog rjeenja. Agenti s trenutnim algoritmom samo provjeravaju ako je kapacitet dvorane dovoljno velik za smjetanje svih studenata, a popunjenost dvorane uzima u obzir samo kod razrjeavanja konikta. Posljedica ovakvog ponaanja su agenti koji s malim brojem studenata zauzimaju dvorane velikog kapaciteta i time agentima s ve im brojem studenata smanjuju broj poloaja koje mogu zauzeti, c a dvorane s manjim kapacitetom ostavljaju neiskoritene. Mogu e rjeenje je uvodenje postotka c popunjenosti koji agenti moraju zadovoljiti ako ele zauzeti neku dvoranu. Kada se s poboljanjima trenutnog algoritma dode do ostvarivog rasporeda, ve a panja se c moe posvetiti optimizaciji rjeenja od strane predava a na na in da se dopusti vie koraka unutar c c kojih mogu traiti idealne termine ili da se uvede postotak zadovoljnih predava a ispod kojeg c raspored nije prihvatljiv. Kroz daljnje izrade rasporeda prednost se moe davati onim predava ima c koji nisu zauzeli niti jedan idealni termin u prethodnom rasporedu.

38

8. Zaklju ak c
U ovom radu opisan je problem izrade rasporeda, glavna ograni enja koja treba uzeti u obzir c i razlike izmedu kolskog i fakultetskog rasporeda. Zatim opisani su vieagentni sustavi i mo gu nosti njihove primjene na izradu ostvarivog rasporeda sati. Na kraju je opisan mogu i na in c c c njihove primjene za izradu rasporeda sati na FOI-u i ispitan je predloeni sustav. Glavna prednost vieagentnog sustava je mogu nost razdvajanja velikog problema na mnogo c manjih i dodjeljivanje tih manjih problema pojedinim agentima. Predstavljen je jedan na in takve c podjele u kojoj se svaki agent brine za dio predmeta, predavanje ili seminar, u odredenoj skupini studenata i zanemaruje sve ostalo. Agent mora prona i povoljne poloaje u prostoru pretraivanja c koji se sastoji od dana u tjednu, sati u danu i dostupnih dvorana u satu za svoju skupinu studenata pritom paze i na sva ograni enja ostvarivosti rasporeda i dodatna ograni enja poput zabranjenih i c c c idealnih termina. Agenti samostalno zauzimaju poloaje, a komuniciraju s drugim agentima samo u slu aju konikta kada moraju odlu it koji od njih vie eli poloaj na kojem se trenutno nalaze. c c Jednom kada agent zauzme poloaj, ne otputa ga do kraja simulacije. Ovo je ujedno i glavi nedostatak opisanog pristupa te bi za poboljanje simulacije trebalo odrediti pravila pod kojima bi agenti otputali zauzete termine. Jedini ustupak koji trenutno izvode za pribliavanje ostvarivom rasporedu je odustajanje od traenja isklju ivo nizova termina koji uklju uju barem jedan idealni c c termin nakon odredenog broja koraka. Algoritam je testiran s cetiri razine ograni enja, a svaka razina je testirana s granicom proc matranja idealnih termina najprije postavljenom na 10., a zatim na 50. koraku. Promatrana ograni enja bila su dostupnost prvog jutarnjeg termina i dostupnost subote. Distribucije zauzetosti sati c i dana su o ekivano pratile distribucije idealnih termina sve dok su agenti isklju ivo traili te terc c mine u svojim nizovima, a kasnije su teile jednakoj distribuciji. Kod dvorana su distribucije bile ravnomjerne dok su traeni idealni termini, a kasnije su se dvorane s najve im kapacitetima istic cale. Niti u jednom slu aju nije postignut ostvarivi raspored iako je u svakom slu aju broj agenata c c bez poloaja ostao nizak. Moe se zaklju iti da je algoritam nedovren bez mogu nosti otputanja c c zauzetih poloaja te da u ovakvom stanju nije sasvim povoljan za izradu fakultetskog rasporeda sati.

39

A. Odabir idealnih termina


globals [ rezervacija termini dani sati ] patches-own [ termin ] to pripremi clear-all set set set set ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask ask rezervacija 5 termini "idealni termini.txt" dani [] sati [] patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch 1 2 3 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [ [ [ [ [ [ set set set set set set [ [ [ [ [ [ [ [ [ [ [ [ [ [ plabel plabel plabel plabel plabel plabel "pon" "uto" "sri" "et" "pet" "sub" ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]

-1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14

set set set set set set set set set set set set set set

plabel plabel plabel plabel plabel plabel plabel plabel plabel plabel plabel plabel plabel plabel

"07-08" "08-09" "09-10" "10-11" "11-12" "12-13" "13-14" "14-15" "15-16" "16-17" "17-18" "18-19" "19-20" "20-21"

ask patches with [ pxcor > 0 and pycor < 0 ] [ set termin (pxcor - 1) * 14 + (abs pycor - 1) ] end 40

to izmjeni if mouse-inside? [ ask patch round mouse-xcor round mouse-ycor [ ifelse pcolor = black [ if rezervacija > 0 [ set pcolor yellow set rezervacija rezervacija - 1 ] ] [ set pcolor black set rezervacija rezervacija + 1 ] ] update-plots ] end to nasumicno let prethodni 0 while [ count patches with [ pcolor = yellow ] < 5 ] [ let x 0 let y 0 while [ (x < 1 or x > 5) or (y > -2 or y < -14) ] [ set x int random-normal 3 1 set y int random-normal -7 2 ] ask patch x y [ set pcolor yellow set dani lput (x - 1) dani set sati lput (abs y - 1) sati 41

] ] set rezervacija 0 update-plots end to svi-nasumicno let predavaci [] if file-exists? termini [ file-delete termini ] file-open "popis profesora.txt" while [ not file-at-end? ] [ set predavaci lput file-read predavaci ] file-close foreach predavaci [ set predavac ? set rezervacija 5 ask patches [ set pcolor black ] nasumicno pohrani ] end to pohrani ifelse rezervacija = 0 [ file-open termini file-write predavac ask patches with [ pcolor = yellow ] [ file-write termin ]

42

file-print "" file-close output-print word "Upisao termine za " predavac ] [ output-print "Niste iskoristili sve rezervacije"] end to-report preostalo-rezervacija report rezervacija end

43

B. Izrada rasporeda
globals [ kapaciteti max-kapacitet max-grupe max-podgrupe grupa-po-semestru podgrupa-po-semestru gotov ] ;breed [ predavaci vlasnik ] breed [ predavanja predavanje ] breed [ seminari seminar ] turtles-own [ naziv semestar-izvodjenja sati-predavanja sati-seminara broj-studenata popis-nositelja popis-asistenata vlasnik idealni-termini slobodan bodovi pomakni za-zauzeti ] predavanja-own [ grupa ] seminari-own [ grupa podgrupa ] patches-own [ dan sat predavaonica kapacitet pvlasnik pnaziv psemestar pgrupa ppodgrupa ] to pripremi clear-all ;Dv1 188, dv2 71, dv3 80, dv6 45, dv7 99, dv8 50, dv9 72, dv10 100 ;nisam dobio podatak za dv11, 20 se ini realno ;Dv4 i Dv5 slue za vjebe pa ih ne koristimo ovdje set kapaciteti [ 188 71 80 0 0 45 99 50 72 100 20 ] set grupa-po-semestru [0 0 0 0 0] set podgrupa-po-semestru [0 0 0 0 0] set max-kapacitet 188 set max-grupe 150 set max-podgrupe 40 print "uitavam predmete" ucitaj-predmete "PDS" ucitaj-predmete "DS" print "formiram grupe" formiraj-grupe print "uitavam idealne termine" postavi-idealne-termine print "postavljam plou" postavi-plocu 44

print "postavljam dodatna ogranienja" zanemari-subote zanemari-rano-jutro print "postavljam agente" postavi-agente print "postavio" ask turtles [ set color yellow ] potvrdi ask turtles with [ broj-studenata = 0 ] [ print (word "agent " naziv " nema studenata") die ] reset-ticks print "spreman" end ; subote su rezervirane za doktorske studije to zanemari-subote if not subota [ ask patches with [ dan = 5 and not (pcolor = black) ] [ set pcolor red ] ] end ; termin od 7-8 elimo izbjei ako je mogue to zanemari-rano-jutro if not rano-jutro [ ask patches with [ sat = 0 and not (pcolor = black) ] [ set pcolor red ] ] end ; ita podatke o predmetima iz tekstualne datoteke ; studij moe biti PDS ili DS to ucitaj-predmete [ studij ] file-open (word "popis predmeta " semestar " semestar " studij ".txt") let dev-null file-read-line ;zaglavlje 45

while [ not file-at-end? ] [ create-turtles 1 [ set dev-null file-read ;ifra set semestar-izvodjenja file-read set naziv file-read set broj-studenata file-read set sati-predavanja file-read set sati-seminara file-read set dev-null file-read ;sati vjebi let broj-nositelja file-read set popis-nositelja [] repeat broj-nositelja [ set popis-nositelja lput file-read popis-nositelja ] let broj-asistenata 0 if sati-seminara > 0 [ set broj-asistenata file-read ] set popis-asistenata [] repeat broj-asistenata [ set popis-asistenata lput file-read popis-asistenata ] set slobodan true set pomakni false set idealni-termini [] set za-zauzeti [] ] ] file-close end to formiraj-grupe ask turtles [ let broj-grupa izbroji "grupe" set broj-studenata floor (broj-studenata / broj-grupa) let broj-podgrupa 0 if sati-seminara > 0 [ set broj-podgrupa izbroji "podgrupe" ] while [ broj-podgrupa > 4 ] [ 46

set set set set ]

broj-studenata broj-studenata * broj-grupa broj-grupa (broj-grupa + 1) broj-studenata floor (broj-studenata / broj-grupa) broj-podgrupa izbroji "podgrupe"

if broj-grupa > item (indeks-semestra semestar-izvodjenja) grupa-po-semestru [ set grupa-po-semestru replace-item (indeks-semestra semestar-izvodjenja) grupa-po-semestru broj-grupa ] if broj-podgrupa > item (indeks-semestra semestar-izvodjenja) podgrupa-po-semestru [ set podgrupa-po-semestru replace-item (indeks-semestra semestar-izvodjenja) podgrupa-po-semestru broj-podgrupa ] let predavaci popis-nositelja let asistenti popis-asistenata ; grupe za predavanja foreach n-values broj-grupa [?] [ hatch-predavanja 1 [ set vlasnik item (? mod length predavaci) predavaci set grupa ? ; podgrupe za seminare if sati-seminara > 0 [ foreach n-values broj-podgrupa [?] [ hatch-seminari 1 [ set broj-studenata floor broj-studenata / broj-podgrupa set vlasnik item (? mod length asistenti) asistenti 47

set podgrupa ? ] ] ] ] ] ; nakon stvaranja agenata za predavanja i seminare ; originalni agent nam vie ne treba die ] end to postavi-idealne-termine if file-exists? "idealni termini.txt" [ let termini [] let predavac "" file-open "idealni termini.txt" while [ not file-at-end? ] [ set predavac file-read set termini [] repeat 5 [ set termini lput file-read termini ] ask turtles with [ vlasnik = predavac ] [ set idealni-termini termini ] ] file-close ] end to postavi-plocu ask patches [ set pvlasnik ""

48

set set set set

predavaonica pxcor mod 11 sat ((pxcor - predavaonica) / 11) mod 14 dan ((pxcor - 11 * sat - predavaonica) / 154) mod 6 kapacitet item predavaonica kapaciteti

let semestara 5 set ppodgrupa pycor mod 4 set pgrupa ((pycor - ppodgrupa) / 4) mod 4 set psemestar ((pycor - 4 * pgrupa - ppodgrupa) / 16) mod semestara ifelse pgrupa < item psemestar grupa-po-semestru and ppodgrupa < item psemestar podgrupa-po-semestru [ set pcolor gray ] [ set pcolor black ] ] end to postavi-agente ask turtles [ set xcor random-pxcor set ycor (indeks-semestra semestar-izvodjenja) * 16 + grupa * 4 if is-seminar? self [ set ycor ycor + podgrupa ] ] end ; potvrdi da agenti nisu na crnim poljima to potvrdi ask turtles [ if pcolor = black [ show "krivi poloaj" ] ] end ; vraa poloaj semestra u polju ; prima broj semestra to-report indeks-semestra [ broj-semestra ] report ceiling (broj-semestra / 2) - 1 end 49

; vraa broj potrebnih grupa ; tip moe biti grupe ili podgrupe to-report izbroji [ tip ] let broj-grupa 1 let predavaca 0 let maksimum 1 ifelse tip = "grupe" or tip = "podgrupe" [ ifelse tip = "grupe" [ set predavaca length popis-nositelja set maksimum max-grupe ] [ set predavaca length popis-asistenata set maksimum max-podgrupe ] ] [ report 0 ] if predavaca = 0 [ report 0 ] ; elimo da svaki predava ili asistent predaje jednoj grupi ; ako ih ima previe, onda neki nee predavati ifelse int (broj-studenata / predavaca) < maksimum and predavaca <= 4 [ set broj-grupa predavaca ] [ while [ (broj-studenata / broj-grupa) > maksimum ] [ set broj-grupa broj-grupa + 1 ] ] report broj-grupa end to kreni let konflikt false set gotov true 50

ask turtles [ if slobodan [ set gotov false ifelse broj-studenata <= kapacitet and dovoljno-slobodnih-termina? patch-here patch-here and count turtles-here = 1 and (termin? or ticks > granica-idealnih) and vlasnik-slobodan? ; za predavanja moramo procjenti dostupnost svih podgrupa [ rezerviraj ] [ ifelse (count turtles-here > 1) and (pcolor = gray) and (broj-studenata <= kapacitet) [ set konflikt true ] [ if ima-mjesta? [ set pomakni true ] ] ] ] ] if konflikt [ ask patches with [ count turtles-here > 1] [ ; neki agent je mogao zauzeti drugo polje u ovom terminu ifelse pcolor = gray [ ;pomakni one koje nikako ne mogu zauzeti ovaj termin ask turtles-here [ if broj-studenata > kapacitet or (is-predavanje? self and any? patches with [(pcolor = red or pcolor = orange) and psemestar = [psemestar] of myself 51

and pgrupa = [pgrupa] of myself and dan = [dan] of myself and sat = [sat] of myself]) or not vlasnik-slobodan? or (ticks < granica-idealnih and not termin?) [ if not slobodan [ odbaci-rezervaciju ] set pomakni true ] ] ; ako i dalje ima vie od jednog agenta, kreemo na idui korak ; inae smo gotovi ifelse count turtles-here with [ not pomakni ] > 1 [ ; izraunaj bodove ask turtles-here with [ not pomakni ] [ let polozaj 0 ifelse (dan <= 2) [ ifelse (sat <= 6) [ if is-predavanje? self [ set polozaj 1 ] ] [ set polozaj 0.5 ] ] [ ifelse (sat > 6) [ if is-seminar? self [ set polozaj 1 ] ] [ set polozaj 0.5 ] ] let pravi-termin 0 52

if termin? [ set pravi-termin 1 ] set bodovi (broj-studenata / kapacitet + polozaj + pravi-termin) ] ; agenti koji imaju loiji broj bodova odlaze ask turtles-here with [ not pomakni and not (bodovi = max [bodovi] of turtles-here) ] [ if not slobodan [ odbaci-rezervaciju ] set pomakni true ] ask turtles-here with [ not pomakni ] [ rezerviraj ] ] [ ; ako preostali agent nije ve rezervairao, onda sad rezervira ask turtles-here with [ slobodan and not pomakni ] [ rezerviraj ] ] ] [ ask turtles-here with [ slobodan ] [ set pomakni true ] ] ] ] ; pomakni preostale agente na novi poloaj ask turtles with [ pomakni ] [ novi-polozaj set pomakni false ] 53

tick if gotov or ticks = 50 or ticks = 100 or ticks = 200 or ticks = 500 [ stop ] end to-report dovoljno-slobodnih-termina? [ pocetni originalni ] let trenutni pocetni let sati 0 set za-zauzeti [] ifelse is-predavanje? self [ set sati sati-predavanja ] [ set sati sati-seminara ] repeat sati [ set za-zauzeti lput trenutni za-zauzeti set trenutni patch ([pxcor] of trenutni + 11) pycor ; idui termin sa ovom dvoranom se nalazi nakon ostalih dvorana ] ifelse reduce and (map [ ((is-predavanje? self and not any? patches with [(pcolor = red or pcolor = orange) and pxcor = [pxcor] of ? and psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ?]) or (is-seminar? self)) and [pcolor] of ? = gray and [dan] of ? = [dan] of originalni ] za-zauzeti) [ report true ] [ ifelse not (originalni = last za-zauzeti) and ([pxcor] of first za-zauzeti - 11) > 0 and [dan] of patch ([pxcor] of first za-zauzeti - 11) pycor = [dan] of originalni [ set pocetni patch ([pxcor] of first za-zauzeti - 11) pycor report dovoljno-slobodnih-termina? pocetni originalni 54

] [ report false ] ] end to-report termin? ifelse length idealni-termini > 0 [ foreach za-zauzeti [ if member? (([dan] of ?) * 14 + ([sat] of ?)) idealni-termini [ report true ] ] report false ] [ report true ] end to-report vlasnik-slobodan? ifelse length za-zauzeti > 0 [ report reduce and (map [ not any? patches with [ pvlasnik = [vlasnik] of myself and dan = [dan] of ? and sat = [sat] of ? ] ] za-zauzeti) ] [ report false ] end to rezerviraj foreach za-zauzeti [ ifelse is-predavanje? self [ ask patches with [ (pxcor = [pxcor] of ? and not (psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ?)) or (not (pxcor = [pxcor] of ?) 55

and psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ? and dan = [dan] of ? and sat = [sat] of ?) ] [ set pcolor pcolor + 10 ] ask patches with [ pxcor = [pxcor] of ? and psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ? and not (pcolor = black) ] [ set pcolor green set pvlasnik [vlasnik] of myself set pnaziv [naziv] of myself ] ] [ ask patches with [ (pxcor = [pxcor] of ?) or (pycor = [pycor] of ? and dan = [dan] of ? and sat = [sat] of ?) ] [ set pcolor pcolor + 10 ] ask ? [ set pcolor green set pvlasnik [vlasnik] of myself set pnaziv [naziv] of myself ] ] ] setxy [pxcor] of first za-zauzeti [pycor] of first za-zauzeti set slobodan false end to odbaci-rezervaciju foreach za-zauzeti [ ifelse is-predavanje? self 56

[ ask patches with [ (pxcor = [pxcor] of ? and not (psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ?)) or (not (pxcor = [pxcor] of ?) and psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ? and dan = [dan] of ? and sat = [sat] of ?) ] [ set pcolor pcolor - 10 ] ask patches with [ pxcor = [pxcor] of ? and psemestar = [psemestar] of ? and pgrupa = [pgrupa] of ? and not (pcolor = black) ] [ set pcolor gray set pvlasnik "" set pnaziv "" ] ] [ ask patches with [ pxcor = [pxcor] of ? or (pycor = [pycor] of ? and dan = [dan] of ? and sat = [sat] of ?) ] [ set pcolor pcolor - 10 ] ask ? [ set pcolor gray set pvlasnik "" set pnaziv "" ] ] ] set slobodan true end

57

; ima li koji slobodni poloaj u redu? to-report ima-mjesta? foreach n-values max-pxcor [?] [ if [ pcolor ] of (patch ? ycor) = gray [ report true ] ] report false end ; pomakni se na jedan od slobodnih poloaja to novi-polozaj set xcor random-pxcor let uvjet-slobode ([pcolor] of patch xcor ycor = gray) and broj-studenata > kapacitet and vlasnik-slobodan? if any? patches with [ uvjet-slobode ] [ while [ not uvjet-slobode ] [ set xcor random-pxcor ] ] end ; ispisuje raspored u .csv formatu to ispis let raspored "raspored po dvoranama.csv" let header "dan; 7-8; 8-9; 9-10; 10-11; 11-12; 12-13; 13-14; 14-15; 15-16; 16-17; 17-18; 18-19; 19-20; 20-21;" let dani [ "ponedjeljak" "utorak" "srijeda" "etvrtak" "petak" "subota" ] let red-unosa "" if file-exists? raspored [ file-delete raspored ] file-open raspored ; za svaku dvoranu foreach n-values 11 [?] [ 58

let dvorana patches with [ predavaonica = ? and pcolor = green ] file-print (word "dvorana " (? + 1) ";") file-print header ; u svakom danu foreach n-values 6 [?] [ let danas dvorana with [ dan = ? ] set red-unosa (word item ? dani ";") ; za svaki sat foreach n-values 14 [?] [ let u-satu danas with [ sat = ? ] if any? u-satu [ ask one-of u-satu [ set red-unosa (word red-unosa pnaziv "," pvlasnik "," (psemestar + 1) ",G" (pgrupa + 1)) if count u-satu = 1 [ set red-unosa word red-unosa (ppodgrupa + 1) ] ] ] set red-unosa word red-unosa ";" ] file-print red-unosa ] ] file-print zadovoljnih? file-close print "Raspored je zapisan u raspored po dvoranama.csv" end ; rauna postotak agenata koji su zauzeli idealni termin to-report zadovoljnih? let nazivnik count turtles let brojnik 0 let prosjek 0 ask turtles 59

[ if not slobodan and termin? [ set brojnik brojnik + 1 ] ] if brojnik > 0 [ set prosjek (brojnik / nazivnik) * 100 ] report prosjek end

60

Literatura
[1] de Werra, D. (1985). An introduction to timetabling. European Journal of Operational Research, 19(2), 151162. Preuzeto 7. 05. 2012., s http://EconPapers.repec.org/RePEc:eee:ejores:v:19:y:1985:i:2:p:151-162 [2] MIT. (1999). Multiagent systemsa modern approach to distributed articial intelligence (G. Weiss, Ur.). Cambridge, MA: The MIT Press. [3] Picard, G., Bernon, C. i Gleizes, M.-P. (2006). Etto: emergent timetabling by cooperative self-organization. Proceedings of the third international conference on engineering self-organising systems (str. 3145). ESOA05. Utrecht, The Netherlands: Springer-Verlag. Preuzeto 21. 04. 2012., s ftp://ftp.irit.fr/IRIT/SMAC/DOCUMENTS/PUBLIS/ESOA05_Picard.pdf [4] Russell, S. i Norvig, P. (1995). Articial intelligencea modern approach. Englewood Cliffs, NJ: Prentice Hall. [5] Schaerf, A. (1999). A survey of automated timetabling. Articial Intelligence Review, 13(2), 87127. Preuzeto 14. 10. 2011., s http://www.diegm.uniud.it/satt/papers/Scha99.pdf [6] Strnad, D. i Guid, N. (2007). A Multi-Agent System for University Course Timetabling. Applied Articial Intelligence, 21(2), 137153. Preuzeto 22. 02. 2011., s http://www.informaworld.com/openurl?genre=article&doi=10.1080/08839510601147554& magic=crossref%7C%7CD404A21C5BB053405B1A640AFFD44AE3 [7] Vidal, J. M. (2010). Fundamentals of multiagent systemswith netlogo examples. Preuzeto 19. 01. 2011., s http://jmvidal.cse.sc.edu/papers/mas.pdf [8] Woolridge, M. (2002). An introduction to multiagent systems. John Wiley & Sons.

61

You might also like