Órarendtervezési algoritmusok Java platformon

OData támogatás
Konzulens:
Dr. Kővári Bence András
Automatizálási és Alkalmazott Informatikai Tanszék

Az órarendtervezés feladata legsűrűbben az oktatási intézményekben merül fel, de a mindennapi életben is van rá példa. Az iskola által biztosított körülmények között egy olyan órarend megalkotása a cél, mely az összes osztálynak és tanárnak a lehető legjobb. Optimálisan használja ki a részvevők idejét és a rendelkezésre álló erőforrásokat. Egy ilyen órarend megtervezése nem triviális feladat. Az összes lehetséges órarendet nem tudjuk megvizsgálni, mivel nem áll elég idő rendelkezésünkre, ezért a legjobb órarend megtervezéséhez összetett algoritmusok használatára van szükség.

Konkrét feladatomnak az International Timetabling Competition verseny által kiadott órarendtervezési problémákat választottam, a verseny rendezői pontosan definiálták a bemeneteket és az elvárt órarendek tulajdonságait. Ezek a feladatok egy olaszországi egyetem valós órarendtervezési problémáit írják le.

Az órarendtervezést Java nyelven genetikus algoritmussal valósítottam meg. Az szakdolgozatom elején részletesebben bemutatom a versenyt és a genetikus algoritmusokat is. A feladat tervezése magába foglalta a szoftver és a genetikus algoritmus részleteinek kidolgozását is. Ez után következett a megoldásom implementációja. A programom első tesztelése rámutatott a teljesítmény optimalizálásának szükségességére, így ezt a további munka előtt el is végeztem. Kezdetben az algoritmus eredményei (az órarendek) nem voltak jók, így az eddigi genetikus operátorokon javítottam, valamint újakat dolgoztam ki. Ezek a változtatások javítani tudtak a talált órarendeken.

Az elkészült algoritmus képes a verseny által szabott feltételeknek megfelelő órarendeket adni. Ezek minőségét iteratívan javítani tudja egy pontig. Továbbá az algoritmus tetszőleges órarendtervezési feladat megoldásán tud dolgozni, ha annak bemenete megfelelő (verseny bemeneteivel megegyező) formájú.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.