Detail práce
Systém pro pokročilé plánování
Tato diplomová práce se zabývá návrhem a implementací softwaru pro automatizované plánování rozvrhů zkoušek a přednášek. Návrh je přizpůsoben pro specifické potřeby Fakulty informačních technologií Vysokého učení technického v Brně. Problém je řešen kombinací genetického a heuristického algoritmu. Pomocí genetického algoritmu je získáno pořadí předmětů v jakém mají být vkládány do výsledného rozvrhu heuristickým algoritmem. Výkonnostně optimalizovaná implementace v jazyce Python 3 umožňuje tento výpočet paralelizovat, díky čemuž lze získat vygenerované rozvrhy již za dobu řádově desítek minut. Provedené experimenty vykazují ve všech sledovaných kritériích přibližně o 13% lepší výsledky, než jakých bylo dosaženo u zkouškových rozvrhů v minulosti. Vývoj byl pravidelně konzultován s osobami zodpovědnými za tvorbu rozvrhů na fakultě. Program bude použit při vytváření zkouškových rozvrhů pro akademický rok 2015/2016.
Plánování rozvrhů, genetický algoritmus, heuristický algoritmus, kolizní matice, multikriteriální optimalizace.
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
- V práci používáte algoritmus NSGA-II implementovaný v jazyce python. Jedná se o Vaši implementaci nebo o implementaci převzatou?
- Jak jste nastavoval pravděpodobnost křížení?
- V rámci experimentální části jste určil, že ideální velikost populace je 50 jedinců a mutace 7%. Při testování na reálných datech, jste však nastavil parametry jiné (350 jedinců, 10% mutace). K čemu bylo hledání optimálních parametrů, když jste ve finále nastavil úplně jiné? Jaké úspěšnosti by jste dosáhl s optimálními parametry? Co by jste doporučil běžnému uživateli jako vhodné parametry optimalizace?
- Existuje i jiná možnost paralelizace v pythonu? Technika, kterou jste použil vykazuje obrovskou režii a špatné škálování.
Bartík Vladimír, Ing., Ph.D. (UIFS FIT VUT), člen
Bidlo Michal, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Hrubý Martin, Ing., Ph.D. (UITS FIT VUT), člen
Meduna Alexander, prof. RNDr., CSc. (UIFS FIT VUT), člen
Steingartner William, Ing., Ph.D. (TUKE), člen
@mastersthesis{FITMT17111, author = "Ale\v{s} Hork\'{y}", type = "Diplomov\'{a} pr\'{a}ce", title = "Syst\'{e}m pro pokro\v{c}il\'{e} pl\'{a}nov\'{a}n\'{i}", school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}", year = 2015, location = "Brno, CZ", language = "czech", url = "https://www.fit.vut.cz/study/thesis/17111/" }