HRANIČKA, J. Délky v řešení řetězcových omezení [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Havlena, Vojtěch

Bakalářská práce Jana Hraničky přináší novou rozhodovací proceduru pro stringová omezení založenou na převodu do délkových omezení. Rozhodovací procedura sice cílí na menší fragment než stabilizační procedura, nicméně odstraňuje jeho problém -- generování velkého množství zarovnání proměnných. Navržená metoda totiž umožňuje všechna zarovnání kódovat symbolicky pomocí délkových omezení. Zadání práce považuji za obtížné. Velice kladně hodnotím studentovu aktivitu během roku a dosažené výsledky, i když byla práce finalizována v mírném spěchu. Hodnotím stupněm A - výborně .

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Bakalářskou práci považuji za náročnější. Práce vyžadovala pochopení existujících přístupů pro řešení stringových omezení, zejména přístup založený na stabilizaci. Dále se student musel seznámit s infrastrukturou nástroje Z3-Noodler, aby mohl zařadit vyvíjenou proceduru do portfolia rozhodovacích procedur v nástroji Z3-Noodler. Samotné navržení nové delkové procedury považuji za obtížný úkol, protože to vyžadovalo od studenta vlastní nápady a invenci. Nehledě na to, že student během řešení prozkoumal různé slepé cesty.  
Práce s literaturou Student se řídil doporučeními s výběrem studijních pramenů. Spoustu materiálů si rovněž vyhledal sám.
Aktivita během řešení, konzultace, komunikace Student během semestru docházel na pravidelné schůzky. Svoje řešení a nápady průběžně konzultoval, na schůzky chodil připraven. Co se týče aktivity během řešení, nemám co vytknout.
Aktivita při dokončování Některé části práce byly dokončeny a konzultovány s dostatečným předstihem. Finální verze byla ale napsána v mírném spěchu, tak jsem byl nucen některé části procházet jen zběžně a nevím, jestli se všechny připomínky podařilo zapracovat. 
Publikační činnost, ocenění Student naimplementoval navrženou délkovou proceduru do nástroje Z3-Noodler. Aktuálně jsou změny obsahem otevřeného pull requestu. Po dořešení menších věcí bude procedura zařazena do upstream verze nástroje Z3-Noodler. Po rozšíření by práce mohla být základem pro konferenční článek.
Navrhovaná známka
A
Body
92

Posudek oponenta

Lengál, Ondřej

Bakalářská práce Jana Hraničky se zabývá vývojem efektivních heuristik pro řešení řetězcových omezení, což je téma velmi aktuální jak v akademii, tak i v průmyslu. Práce navrhuje efektivní rozhodovací proceduru pro fragment těchto řetězcových omezení, která pomáhá obejít problémy procedury založené na stabilizaci. Dosažené výsledky jsou zajímavé a předpokládá se zapojení vyvinuté procedury do hlavní větve nástroje Z3-Noodler. Práci hodnotím stupněm výborně ( A ).

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání bylo obtíženější, student si musel nastudovat principy SMT solvingu a řešení soustav řetězcových omezení a proniknout do útrob nástroje Z3-Noodler.
Rozsah splnění požadavků zadání Zadání bylo splněno v plné míře.
Rozsah technické zprávy Rozsah je v obvyklém rozmezí,  bez vaty.
Prezentační úroveň technické zprávy 95 Prezentační úroveň technické zprávy je dobrá, práce je pochopitelná, kapitoly na sebe navazují.
Formální úprava technické zprávy 95 Práce je psána srozumitelnou angličtinou s některými opakujícími se chybami, což ale, vzhledem k tomu, že jde o bakalářskou práci, nepovažuji za problém, naopak kladně hodnotím rozhodnutí psát práci anglicky.
Práce s literaturou 95 Student využil relevantní zdroje, citace jsou v pořádku.
Realizační výstup 91 Realizačním výstupem jsou upravené zdrojové kódy nástroje Z3-Noodler. Úprava do kódové báze nástroje přidává novou rozhodovací proceduru pro fragment řetězcových omezení uvažovaný v práci a zapojuje tuto proceduru do portfolia solverů v Z3. Implementovaná procedura se použije jen v případě, že vstupní formule spadá do fragmentu podporovaného touto procedurou (což je detekováno implementovanou suitability funkcí). Přínos procedury je ověřen na standardním benchmarku, kde vyvinutá procedura pomohla vyřešit řadu benchmarků, které základní Z3-Noodler nezvládl. S experimentálním vyhodnocením by si šlo trochu víc vyhrát, třeba v grafech by bylo zajímavé rozlišit SAT a UNSAT formule a analyzovat přínos procedury v celkovém SMT solving frameworku trochu hlouběji.
Využitelnost výsledků Plánuje se zapojení implementace do upstreamu nástroje Z3-Noodler.
Navrhovaná známka
A
Body
93

Otázky

eVSKP id 155317