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.
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ě .
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. |
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 ).
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. |
eVSKP id 155317