Posudek vedoucího bakalářské práce
Studijní program:Aplikovaná informatika Studijní obor:Aplikovaná informatika Akademický rok:2021/2022
Název práce:Webová aplikace pro 3D grafické zobrazení řešení v úlohách lineárního programování
Řešitel:Štěpán Novotný
Vedoucí práce:Mgr. Jana Sekničková, Ph.D.
Oponent:Ing. Martina Kuncová, Ph.D.
Hlediska Stupeň
hodnocení
1. Jasnost a srozumitelnost formulace tématu a cíle práce 2
2. Rozsah a relevance popisu současného poznání 2
3. Náročnost řešeného tématu práce 2
4. Adekvátnost metod k řešení stanoveného problému, správnost jejich výběru a použití 2
5. Rozsah, hloubka a preciznost popisu výsledku 3
6. Relevance a správnost diskuse výsledku 3
7. Věcný přínos výsledku dosaženého v práci 3
8. Relevance informačních zdrojů a korektnost jejich citování 2
9. Logická stavba práce a vzájemná konzistence jednotlivých částí 1 10. Gramatika, jazykový styl, terminologie a celková úprava práce 2
11. Iniciativnost studenta a spolupráce s vedoucím práce 2
12. Využití analytických metod a metod zpracování dat 2
13. Naplnění zásad etiky a udržitelnosti 3
14. Schopnost kritického a tvůrčího myšlení 3
Konkrétní připomínky a dotazy k práci:
Již při zadání práce bylo evidentní, že grafické zobrazení 3D úloh lineárního programování nebude jednoduchou záležitostí. Student však absolvoval kurz Kvantitativního managementu a další potřebné kurzy, takže měl dostatečné teoretické znalosti, aby dokázal splnit zadání práce. Výsledná aplikace to potvrzuje. Práce byla předložena k obhajobě již v červnu 2021. Od té doby student zapracoval většinu připomínek – rozšířil teoretickou část, opravil nevhodnou terminologii, doplnil rešerši (i když ta by mohla být rozsáhlejší a detailnější), představil konkurenční softwary a opravil implementační chyby. Též opravil citace, které jsou až na drobné výjimky již v souladu s citační normou.
Vezmeme v úvahu, že cílem bylo vytvořit aplikaci, která umožní studentům snadněji pochopit postupy řešení úloh lineárního programování. Velká část problémů s vytvářením této aplikace byla vyřešena již v bakalářské práci A. Nebesové (2017). Zásadním úkolem bylo tedy rozšířit tuto teorii z 2D do 3D. To se studentovi podařilo. Je ale nutné konstatovat, že aplikace stále není ani zdaleka perfektní.
Velmi zásadním nedostatkem, na který student upozorňuje a nevyřešila ho ani A. Nebesová, je absence šipek, označujících vybraný poloprostor. Např. při zadání úlohy:
(1) 3x1 + 6x2 + 3x3 <= 24 (2) 6x1 + 12x2 + 6x3 >= 59
(objective function) x1 + x2 + x3 –> max
není vůbec jasné, co se vlastně stalo a proč tato úloha nemá přípustné řešení. Ještě patrnější je tento nedostatek v případě, že několik omezení má společný průnik a jediné omezení se s tímto průnikem neprotne. Poznamenávám, že šipky v textu práce jsou doplněné studentem ručně pro uvedené příklady a nejsou součástí aplikace. Tento problém však patří mezi velmi obtížné.
Aplikace má však nedostatky, které student vyřešit mohl. Zásadním nedostatkem stále zůstalo
nedostatečné testování, na které bylo upozorněno i v předchozím posudku. Zadáme-li výše uvedenou úlohu s upraveným druhým omezením (2) 6x1 + 12x2 + 6x3 >= 48, je množinou přípustných řešení pouze trojúhelník (tedy část roviny) definovaný krajními body (8,0,0), (0,4,0) a (0,0,8). Zde je evidentní, že optimálním řešením je pouze úsečka mezi uvedenými dvěma krajními body. V textu aplikace je sice uvedeno, že optimem je červeně označená úsečka, avšak v grafu žádná červená barva není a úsečka označená není ani jinou barvou.
K testovacím příkladům mám ještě dvě připomínky. 3D úlohy LP mohou skončit tak, že úloha má neomezenou účelovou funkci (to je testováno příkladem v kap. 3.3) a jedno optimální řešení (testováno v kap. 3.1.).
Dále může nastat případ alternativního optima, což je testováno v kapitole 3.2. Zde je ale uveden pouze příklad úsečky (3.2.1) a polopřímky (3.2.2). Zcela chybí příklad pro testování situace, kdy optimem je část roviny (např. pokud ve výše uvedeném příkladu je změněna účelová funkce (objective function) 3x1 + 6x2 + 3x3 –> max). Za zmínku ale stojí, že i tento případ je implementován a funguje správně, ač není
testován.
Čtvrtou možností zakončení výpočtu mají úlohy s prázdnou množinou přípustných řešení. Ty nejen, že nejsou uvedeny v kapitole testování, ale nejsou zde ani zmíněny. Již výše bylo uvedeno, že grafické zobrazení tohoto případu není pro studenty zrovna přehledné a jistě by šlo vylepšit (například zvýrazněním omezení, která jsou v rozporu).
K testování tedy podotýkám, že by bylo vhodné rozšířit bázi testovacích příkladů minimálně tak, aby pokrývala všechny teoretické možnosti zakončení výpočtů.
Nedostatky aplikace jsou pak patrné i při opakovaném používání. V některých případech není po odebrání omezení možné nové (upravené) omezení zadat a nepomůže ani znovunačtení stránky. V jednom případě se do grafu zobrazila i nezadaná rovina (ve formě malého zeleného trojúhelníku) – tento případ se mi nepodařilo zopakovat. V několika případech se zobrazuje hláška (cit.) ”This plain is SOLUTION <br/>”, ze které je evidentní chybně zapsaná značka.
Závěremlze tedy konstatovat, že student vytvořil funkční aplikaci a zpracoval text závěrečné práce, ze kterého je patrný postup i řešení jednotlivých problémů. Aplikace bohužel stále obsahuje nedostatky, které mohly být odhaleny lepším a preciznějším testováním, a následně opraveny. Student v práci předvedl znalosti nabyté vysokoškolským studiem a ukázal, že je umí v praxi použít, i když aplikace nebude k výuce lineárního programování patrně využívána. Práci doporučuji k obhajobě a na základě obhajoby a posudku oponenta ji doporučuji hodnotit známkouvelmi dobřeaždobře.
Závěr: Bakalářskou práci doporučuji k obhajobě.
Navrhovaná výsledná klasifikace práce: 3
Datum: 9. 1. 2022 Mgr. Jana Sekničková, Ph.D.
vedoucí práce