Bachelor's Thesis

Understandeable Regular Expressions from Automata

Final Thesis 896.62 kB Appendix 7.24 MB

Author of thesis: Andrii Klymenko

Acad. year: 2025/2026

Supervisor: doc. Mgr. Lukáš Holík, Ph.D.

Reviewer: Ing. Tomáš Kocourek

Abstract:

The goal of this thesis is to propose, implement, and evaluate an algorithm for converting finite automata into regular expressions by utilizing the Mata automata library, with a primary focus on the compactness of the resulting expressions. The work is specifically tailored for automata generated by the Z3-Noodler string constraint solver. The thesis first describes and compares well-known conversion algorithms to identify the most suitable approach for implementation. Building upon the chosen state elimination method, it describes several heuristics designed to yield smaller expressions, and details efficient ways to implement the underlying data structures. The experimental evaluation over an extensive benchmark dataset demonstrates that dynamic weight-based heuristics significantly outperform static approaches, with the dynamic Delgado and Morais heuristic emerging as the most effective strategy for minimizing the alphabetic size of the expressions. Structural optimizations like vertical chopping provide limited global benefits.

Keywords:

finite automata, regular expressions, state elimination, heuristics for state elimination, vertical chopping

Date of defence

15.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

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 B.

Topics for thesis defence

  1. Můžete pomocí scatter plotu v logaritmické doméně ukázat porovnání dynamické metody DelgadoMorais a pseudonáhodného výběru eliminovaných stavů z hlediska metriky alfabetické velikosti výsledného regulárního výrazu? Ideálně barevně rozlište automaty s mosty a bez mostů.
  2. V experimentální části uvádíte, že odstraňování algebraických redundancí se nijak neprojevilo na alfabetické velikosti výsledných regulárních výrazů. Vyhodnocení experimentu ale nijak nekomentuje, kolik takových úprav bylo reálně průměrně provedeno (a zda vůbec nějaké). Můžete do tabulky 5.5 doplnit i tuto informaci?
  3. Jak si vysvětlujete, že dynamické verze InOutProduct metody i DelgadoMorais metody jsou řádově pomalejší než jejich statické varianty? Jak by se daly tyto metody ještě optimalizovat?
  4. Na jaké další metriky související s čitelností a srozumitelností regulárních výrazů by se mohla zaměřit navazující práce?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Milan Češka, Ph.D. (předseda)
doc. Ing. Jan Kořenek, Ph.D. (místopředseda)
Ing. Zdeněk Materna, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
Ing. Martin Hrubý, Ph.D. (člen)

Supervisor’s report
doc. Mgr. Lukáš Holík, Ph.D.

Student pracoval efektivně a kompetentně na náročnějším výzkumném zadání, nastudoval do hloubky a vyhodnotil řadu netriviálních technik, výsledek je použitelný. Je třeba vyzdvihnout fakt, že téměř celý prezentovaný přínos, kromě školitelova velmi zevrubného směrování, je opravdu jeho vlastní.
Protože práce není extrémně inovativní, použité techniky jsou vesměs převzaté, nezadávám zde přímo A,
ale mohlo by dávat smysl nechat studenta o A zabojovat. 
Z pohledu školitele jsem velmi spokojen.

Evaluation criteria Verbal classification
Informace k zadání

Náročnější zadání, vyžadovalo studium komplexní vědecké literatury, a bylo poměrně otevřené, vyžadovalo iniciativu v hledání řešení

Práce s literaturou

Toto byla zásadní část práce, student pracoval naprosto samostatně a velmi dobře. Prostudoval, pochopil, a hlavně, sám nalezl poměrně vyčerpávající množinu relevantních prací, které potom také vyhodnotil a částečně použil.

Aktivita během řešení, konzultace, komunikace

Student byl aktivní a samostatný, informoval mě průběžně a efektivně.

Aktivita při dokončování

Práce byla řešena průběžně, technický obsah byl dokončen včas a konzultován, části textu byly konzultovány, části byly dokončeny na poslední chvíli. 

Publikační činnost, ocenění

Práce se může stát součástí budoucí publikace a hrát důležitou roli v průmyslovém nasazení string constraint solvingu v Aerospace, jako součást průmyslových nástrojů vyvíjených ve spolupráci s Honeywell Aerospace v Brně. 

Points proposed by supervisor: 88

Grade proposed by supervisor: B

Reviewer’s report
Ing. Tomáš Kocourek

Pan Klymenko ve své bakalářské práci prokázal schopnost porozumění netriviálním teoretickým konceptům, schopnost nalezení a výběru relevantních a perspektivních metod pro řešení zadaného problému i schopnost srozumitelného přeformulování vybraných metod do technické zprávy.


Slabinu práce shledávám zejména v implementační části, která zahrnuje chybně naimplementovanou klíčovou metodu detekce mostových stavů a neefektivní implementace některých dalších metod. Experimentální část práce mohla být vypracována názorněji a mohla lépe zobrazit a interpretovat naměřené skutečnosti.


S ohledem na uvedené silné stránky i nedostatky hodnotím práci stupněm B. Zejména teoretickou část práce však považuji za kvalitní a výsledné hodnocení vnímám jako B na horní hranici klasifikačního stupně.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Pan Klymenko se musel seznámit s řadou netriviálních metod pro efektivní převod konečných automatů na regulární výrazy včetně komplikovaných důkazů jejich korektnosti. Téma považuji za obtížnější, zejména pro bakalářského studenta.

Prezentační úroveň technické zprávy

Prezentační úroveň technické zprávy je vynikající. Jednotlivé kapitoly na sebe smysluplně navazují, odkazují vhodným způsobem na dříve představené pojmy. Každý klíčový teorém je poctivě podepřen důkazem. Text obsahuje velké množství příkladů pro snazší pochopení prezentovaných pojmů. Tyto příklady přitom nejsou ani příliš triviální, ani příliš překombinované. Jsou rovněž doprovázeny kvalitně zhotovenými obrázky pro ještě snazší pochopení pojmů. Každý obrázek je v textu řádně odkazován.

Na problém jsem narazil u Obrázku 4.5, který demonstruje netriviální výpočet vedoucí k nalezení takzvaných mostů v konečném automatu. Tento obrázek nekoresponduje správně s vysvětlovanými pojmy a je poněkud matoucí.

Důkaz u Algoritmu 1 používá mírně zavádějícím způsobem jednu proměnnou ve více kontextech.

Tabulka 5.8 obsahuje v záhlaví obrovské množství zkratek názvů různých heuristik, tyto zkratky ale nejsou příliš přehledné a nejsou nikde vysvětleny. 

Jinak ovšem nemám žádné další výhrady.

95
Formální úprava technické zprávy

Práce je sepsaná značně kvalitní angličtinou. Ani při pečlivém čtení jsem nenarazil na jedinou pravopisnou nebo gramatickou chybu.

Místy bych přehodnotil členění textu. Strana 7 je například zakončena nadpisem Theorem 1, ovšem samotné znění Kleeneho teorému je uvedeno až na začátku následující stránky.

Důkaz Lemmatu 2 není viditelně oddělen od zbytku textu, takže není jasné, kde důkaz končí. Jinak nemám ani z typografického hlediska žádné výhrady.

99
Realizační výstup

Student v implementační části práce navázal na datové struktury z existující automatové knihovny Mata, implementoval vlastní datové struktury pro regulární výrazy a automaty s regulárními výrazy na hranách. Hlavní část implementace tvoří různé metody pro převod automatů na regulární výrazy.

V této fázi jsem si všiml několika nedostatků. Metoda vertikálního štěpení vyžaduje nalezení takzvaných mostů v automatu. Kód hledající tyto stavy ovšem nefunguje dle očekávání. Kvůli chybné propagaci pomocných hodnot při prohledávání automatu do hloubky implementace falešně pozitivně detekuje některé stavy jako mosty, což má dopad na smysluplnost a efektivitu vertikálního štěpení. Tento problém se projeví již u poměrně malého automatu.

Některé metody jsou také naimplementované poměrně naivním a neefektivním způsobem. Kupříkladu u metody dynamický InOutProduct by velmi jednoduchými optimalizacemi bylo možné zlepšit asymptotickou časovou složitost až o lineární faktor.

Kód je jinak přehledný, čitelný, decentně komentovaný. Některé komentáře ale působí trochu nepatřičně, jako kdyby komentovaly nevyřešené problémy z pracovní verze implementace. Zejména komentář TODO: we are ingoring [sic] self-loops. is it safe???? vyvolává dojem, že korektnost této části kódu nebyla při odevzdání plně ověřena.

Naopak oceňuji, že se student zamýšlel nad tím, jak efektivně implementovat datové struktury pro generalizované automaty a regulární výrazy. Zejména jeho implementace regulárních výrazů je velmi solidní.

V experimentální části práce provedl pan Klymenko řadu experimentů na relevantní automatové sadě. Dokázal bych si ale představit, že by některé z těchto experimentů byly lépe popsány a data by byla lépe prezentována.

Většina tabulek ukazuje pro metriky času a alfabetické velikosti pouze minimum, maximum, průměr a medián. Pro komplexnější analýzu tyto hodnoty nemusí stačit, neboť průměr může být ovlivněn extrémními hodnotami a medián neříká nic o rozptylu.

Experiment 2 dochází k závěru, že algebraické úpravy regulárních výrazů (jako např. změna R + R za R, R** za R* apod.) nemají téměř žádný vliv na alfabetickou velikost výsledku. Experiment ale nijak neukazuje, jaké množství jakých úprav (a zda vůbec nějaké) byly při převodu provedeny.

Experiment 3 se soustředí pouze na automaty s nenulovým počtem mostů ve snaze otestovat možný vliv vertikálního štěpení. Pomineme-li, že implementace mosty detekuje nesprávně, experiment mi nepřipadá příliš průkazný, neboť z většiny pracuje s automaty, u nichž je počet mostů i tak zanedbatelný.

Experiment 4 přichází se značně zajímavým zjištěním, že u automatů bez mostů má volba vhodné metody eliminace stavů větší vliv na velikost výsledného regulárního výrazu než u automatů s mosty. Toto zjištění považuji za velmi pozitivní přínos práce, ocenil bych ale jeho hlubší analýzu.

75
Využitelnost výsledků

Pan Klymenko srovnává existující metody převodu konečných automatů na regulární výrazy v kontextu metriky alfabetické velikosti regulárního výrazu. Práce nepřináší nové metody převodu, komentuje ale netriviální okolnosti, za kterých jsou některé metody vhodnější než jiné. Tato zjištění je možné využít v automatové knihovně Mata, nejdříve by ale bylo nutné opravit chyby v implementaci a provést na ní znovu experimenty.

Implementační část v současné podobě pravděpodobně nebude do knihovny Mata přidána, neboť by bylo třeba nejprve důkladněji promyslet reprezentaci generalizovaných automatů.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání hovoří o srozumitelných a čitelných regulárních výrazech. Jelikož srozumitelnost je v tomto kontextu poměrně nejasný a neformální pojem, pan Klymenko jej musel nejprve přesněji uchopit. Ve své práci se soustředil především na metriky alfabetické velikosti a míry algebraických redundancí. Ačkoliv by se dalo uvažovat i o dalších metrikách čitelnosti a srozumitelnosti regulárních výrazů, zvolené metriky byly v textu zpracované natolik kvalitním a vyčerpávajícím způsobem, že zadání v tomto směru považuji za splněné.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce je v obvyklém rozmezí, neobsahuje žádné nadbytečné části. Bohužel zde ale chybí rozšířený abstrakt v češtině, který je u anglicky psaných prací vyžadovaný.

Práce s literaturou

Práci s literaturou považuji za příkladnou. Student vedle veškerých doporučených zdrojů uvedených v zadání využil i řadu kvalitních publikací týkajících se tématu. Bibliografie navíc neobsahuje nerelevantní publikace. Všechny převzaté myšlenky jsou v textu řádně citovány. 

100
Topics for thesis defence:
  1. Můžete pomocí scatter plotu v logaritmické doméně ukázat porovnání dynamické metody DelgadoMorais a pseudonáhodného výběru eliminovaných stavů z hlediska metriky alfabetické velikosti výsledného regulárního výrazu? Ideálně barevně rozlište automaty s mosty a bez mostů.
  2. V experimentální části uvádíte, že odstraňování algebraických redundancí se nijak neprojevilo na alfabetické velikosti výsledných regulárních výrazů. Vyhodnocení experimentu ale nijak nekomentuje, kolik takových úprav bylo reálně průměrně provedeno (a zda vůbec nějaké). Můžete do tabulky 5.5 doplnit i tuto informaci?
  3. Jak si vysvětlujete, že dynamické verze InOutProduct metody i DelgadoMorais metody jsou řádově pomalejší než jejich statické varianty? Jak by se daly tyto metody ještě optimalizovat?
  4. Na jaké další metriky související s čitelností a srozumitelností regulárních výrazů by se mohla zaměřit navazující práce?
Points proposed by reviewer: 87

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová