Masarykova univerzita, Fakulta informatiky
Měkké podmínky při rozvrhování
diplomová práce
Miroslav Vlk, 2006
csid(Id,base(Pocet_setkani,Delka_setkani,csroom(Kapacita,Pozadavky_a_preference_na_mistnost),
instr(Instruktor),dept(Subjekt)),_,faculty(Casove_pozadavky_a_preference),_,_).
room(id(Budova,Cislo_mistnosti),Identifikator,Kapacita,Vybaveni,_,Poloha).
student(Id_predmetu,Id_Studenta).
jenr(Id_predmetu_1,Id_predmetu_2,Pocet_studentu).
cbs(btb,[Id_predmetu1,Id_predmetu2],Pozadavek).
cbs(same_days,[Id_predmetu1,Id_predmetu2],Pozadavek).
cbs(diff_time,[Id_predmetu1,Id_predmetu2],Pozadavek).
Pro spuštění řešiče je nutné mít nainstalovaný SICStus Prolog (doporučujeme verzi 3.11.2 nebo vyšší), tex a awk. Cesta k těmto programům musí být uložena v proměnné prostředí PATH. Řešič se pak spustí příkazem ./run_solver v adresáři purdue.
Parametry řešiče jsou uloženy v souboru parameters.pl v adresáři purdue/pl.
Parametry použité při experimentech prezentovaných v diplomové práci jsou uloženy v adresáři purdue/parameters. Jméno souboru vždy označuje, pro který experiment je soubor určen, např. const_1.0.pl je soubor s parametry pro experiment, ve kterém jsou nastaveny konstatní limity s multiplikátorem limitu 1.0, wtsc_0.5.pl je soubor s parametry pro experiment, ve kterém je váha kritéria wtsc nastavena na hodnotu 0.5.
Hodnoty optimalizačních kritérií nalezeného řešení vypisuje řešič na standardní výstup1, přiřazené časy a místnosti jednotlivým předmětům ukládá řešič do souboru solution.pl v adresáři s datovou sadou. Formát záznamu je podobný jako u souboru course.pl:
solution(Id,base(Pocet_setkani,Delka_setkani,csroom(Kapacita,Pozadavky_a_preference_na_mistnost),
instr(Instruktor),dept(Subjekt)),advice(ok,Pocatecni_Casy,ok,Pridelene_Mistnosti),
faculty(Casove_pozadavky_a_preference),_,_).
Výsledky pro tři vybrané experimenty jsou uloženy v adresáři purdue/results. Pro každý experiment je uveden výpis řešiče v souboru solver_output.txt, řešení v souboru solution.pl a grafické zobrazení rozvrhu v souborech table_meeting.pdf a table_meeting.ps. Rozvrh je zde zobrazen v tabulce, ve které je v záhlaví uveden den, počáteční časy výuky a čísla časových slotů, v prvním sloupci tabulky je uveden název místnosti, kapacita a identifikátor místnosti. Buňky tabulky pak obsahují identifikátory předmětů a další informace, jako jsou počet zapsaných studentů, časové preference (minimální a aktuální), počet studentských konfliktů s ostatními předměty a počet setkání za týden.
1 Optimalizační kritéria ftime, froom a ffs_sc byla získána z aplikace, která provádí final sectioning. Tato aplikace je součástí jiného řešiče (viz [35] v textu práce), a proto není obsažena na CD.