TALPA, J. Modelovací jazyky pro optimalizaci [online]. Brno: Vysoké učení technické v Brně. Fakulta strojního inženýrství. 2018.

Posudky

Posudek vedoucího

Popela, Pavel

Hodnocená práce je zpracována s velkým vhledem autora do řešené problematiky a autor více než splnil požadavky a cíle zadání práce. Postup a rozsah řešení považuji za plně odpovídající a odrážející několik důležitých skutečnosti. Především autor se s problematikou optimalizace seznamoval samostatně v předstihu před vlastní výukou témat. Dále se vedoucí práce záměrně omezil na motivační vedení, protože byl po značnou dobu zvědav, kam zřejmá programátorská erudice autora v kombinaci s jeho novými odbornými zkušenostmi povede. Výsledné zpracování proto považuji za brilantní a větší rozsah práce za odpovídající rozmanitosti odborných a programátorských témat, kterým se autor při směřování práce věnoval. O adekvátnosti použitých metod svědčí i postupný příklon k paralelizaci výpočtů prostřednictví autorových vlastních pokročilých programátorských řešení. Tím autor navázal i na své postupné seznamování s různými softwarovými nástroji (modelovacími jazyky, GAMSem) a s jejich klady a omezeními. Vlastní přínos a originalitu autora tímto považuji za plně prokázanou. Autor dále ukázal schopnost interpretovat dosažené výsledky a vyvozovat z nich závěry nejen při aplikačních výpočtech testovacích úloh, ale zejména si cením toho, jak průběžně motivuje jednotlivé návaznosti dílčími závěry. Využitelnost výsledků práce považuji za mimořádně perspektivní. Výrazné zrychlení opakovaných výpočtů velmi rozsáhlých optimalizačních úloh s reálnými daty, řešených na ÚPI v rámci projektu SPIL, vzbudilo velký zájem výzkumného týmu o budoucí spolupráci s autorem (viz též zájem EÚ FSI v rámci projektu DMS). Po teoretické stránce na základní řešené paralelizované úlohy (analýza citlivosti a řešení stromovou strukturou provázaných úloh) lze dále navázat podporou paralelizace výpočtů v dekompozičních algoritmech (Benders, PHA) a ve výpočtech distribuované optimalizace. Uspořádání textu práce autorem je logické a postupuje od optimalizace, přes související softwarové nástroje a paralelizaci k vlastní implementaci a jejímu testování. Z hlediska formy zpracování je poznat, že autor zvolil způsob výkladu pro čtenáře následníka nebo spolupracovníka programátora. Optimalizaci se věnuje maximálně srozumitelným způsobem, kde kombinuje exaktní a formálněji pojaté části s příklady. V intenzivněji pojaté obsáhlé programátorské části pak předpokládá schopnost rychlejší orientace čtenáře. Toto pojetí považují za vhodně zdůvodněné. Jedinou připomínku mám k ne zcela dotažené roli příkladu 1.2 uvedeného v úvodu. Grafická i stylistická úprava a pravopis jsou na příjemné, mne zcela vyhovující úrovni. Autor fundovaně pracoval s odbornou literaturou, kterou vhodně využil a průběžně citoval. Samostatnost studenta při zpracování tématu byla na výborné úrovni, většinu potřebných poznatků si průběžně doplňoval bez dalších konzultací a oceňuji, že ne všechny nadhozené rady vedoucího respektoval a vícekrát si obhájil svůj návrh postupu. Práci hodnotím jako výbornou a doporučuji ji k obhajobě.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Splnění požadavků a cílů zadání A
Postup a rozsah řešení, adekvátnost použitých metod A
Vlastní přínos a originalita A
Schopnost interpretovat dosažené výsledky a vyvozovat z nich závěry A
Využitelnost výsledků v praxi nebo teorii A
Logické uspořádání práce a formální náležitosti B
Grafická, stylistická úprava a pravopis A
Práce s literaturou včetně citací A
Samostatnost studenta při zpracování tématu A
Navrhovaná známka
A

Posudek oponenta

Roupec, Jan

Hodnocená bakalářská práce s názvem „Modelovací jazyky pro optimalizaci“ obsahuje 68 číslovaných stran. Cíle práce dle zadání považuji za splněné. Práce je rozdělena na dvě části – teoretickou a praktickou. V části teoretické je nejprve proveden poměrně podrobný úvod do optimalizace a popis softwarových nástrojů pro řešení optimalizačních úloh. Následuje rozbor možností paralelizace výpočtů z hlediska využití softwarových i hardwarových prostředků. Ve druhé části jsou potom poznatky shromážděné v první části použity k řešení dvou praktických úloh. Na bakalářskou práci je délka textu nezvykle dlouhá, zde se zřejmě autor musel podřídit zvyklostem vedoucího práce. Navzdory značnému rozsahu trpí však práce zejména ve své první části jistou nevyvážeností – zatímco úvod do optimalizace je pojat dosti široce a hlavně od samého začátku, takže nepředpokládá v podstatě žádné vstupní znalosti čtenáře, v části věnované paralelizace jsou naopak na vstupní znalosti čtenáře kladeny podstatně vyšší nároky. Vysvětluji si to tak, že se zde buď subjektivně odrazily autorovy znalosti a zkušenosti, nebo se v dalších částech již projevily (oprávněné) obavy z obrovské délky textu. Na začátku první kapitoly vzbuzuje text svojí stylistikou dojem, že práce bude pojata jako učebnice. Tomu nasvědčuje i zařazení očíslovaného příkladu (příklad 1.2) hned na první stranu první kapitoly. Zahrnutí tohoto příkladu do textu nepovažuji za příliš šťastné, a to hned z několika důvodů. Zaprvé je tím vzbuzeno ve čtenáři očekávání, že příkladů bude v textu více, což ale není pravda, příklad 1.2 zůstane v teoretické části jediným. Další problém vidím v tom, že tento příklad není nikde dále vyřešen a způsob řešení není ani naznačen, ačkoliv se jeho vyřešení implicitně předpokládá v dalším textu, např. v odstavci 1.4.1. Zde odkaz na příklad 1.2 dokonce přináší faktickou chybu, neboť vzhledem k celočíselnosti prvků vektoru x zavedené na str. 18 je obrázek 1.2 špatně. I když chápu, co chtěl autor tímto obrázkem vyjádřit, demonstrovaná závislost v žádném případě nemůže být v tomto případě spojitá. Druhá část uvádí řešení dvou různých úloh s využitím paralelizace výpočtů. Jedná se o filozoficky obdobné, avšak realizačně značně odlišné přístupy, které oba považuji za programátorsky nápadité, originální a mnohostranně přínosné; konkrétní přínos související s významným urychlením výpočtu je v práci přímo popsán. Celkově konstatuji, že z textu práce čiší značná erudice autora. Ten nejen ovládá potřebný teoretický aparát, ale prokázal i značné programátorské schopnosti a intuici. Práce je velmi kvalitní, věcné i formální chyby se vyskytují jen výjimečně a dle mého názoru úroveň práce nijak nesnižují. Práci celkově hodnotím jako kvalitní a zdařilou, doporučuji ji k obhajobě a navrhuji hodnocení stupněm A.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Splnění požadavků a cílů zadání A
Postup a rozsah řešení, adekvátnost použitých metod A
Vlastní přínos a originalita A
Schopnost interpretovat dosaž. výsledky a vyvozovat z nich závěry A
Využitelnost výsledků v praxi nebo teorii A
Logické uspořádání práce a formální náležitosti A
Grafická, stylistická úprava a pravopis A
Práce s literaturou včetně citací A
Navrhovaná známka
A

Otázky

eVSKP id 109464