Detail práce
Efficient Algorithms for Counting Automata
Čítací automaty (CA) jsou klasické konečné automaty rozšířené o omezené čítače. CA stále reprezentují třídu regulárních jazyků, ale kompaktněji než konečné automaty. Jelikož jsou CA nedávným modelem, chybějí zde efektivní algoritmy implementující různé operace nad nimi. V této práci se primárně soustředíme na existující podtřídu CA zvanou monadické čítací automaty (MCA). Jsou to CA s čítacími smyčkami na třídě znaků, které se často vyskytují v praxi (např. při detekci paketů v síťovém provozu nebo analýze log souborů). Pro tuto podtřídu efektivně vyřešíme problémy prázdnosti a inkluze. Navíc poskytneme dvě rozšíření třídy MCA, které jsou stále podtřídou CA, a vyřešíme pro ně efektivně problém prázdnosti. MCA přirozeně vznikají z regulárních výrazů, které jsou rozšířené o čítací operátory vyskytující se pouze na třídě znaků. Náš algoritmus řešící problém inkluze MCA tedy může být použit jako základ nové metody pro testování inkluze takových regulárních výrazů. Tento přístup jsme experimentálně vyhodnotili na regulárních výrazech z praxe a porovnali s naivní metodou. Experimenty ukazují, že metoda používající náš algoritmus je více odolná proti stavové explozi. Také překonává naivní metodu, pokud regulární výrazy obsahují čítací operátory s velkými mezemi. Podle očekávání, pro jednoduché případy je naivní metoda stále rychlejší než metoda používající náš algoritmus.
konečné automaty, čítací automaty, problém prázdnosti, inkluze, regulární výrazy
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 A.
- V rámci prezentace nebo v rámci odpovědi na otázky se pokuste intuitivně a srozumitelně vysvětlit, co jsou LCA a ALCA a jaký je hlavní myšlenka Vašeho algoritmu pro test prázdnosti jejich jazyků.
- Daly by se Vaše výsledky zobecnit na širší třídy automatů?
- Jaké jsou možnosti a potenciál optimalizace vaší implementace?
- Kde konkrétně by Vaše algoritmy byly použitelné?
Kekely Lukáš, Ing., Ph.D. (UPSY FIT VUT), člen
Křivka Zbyněk, Ing., Ph.D. (UIFS FIT VUT), člen
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS FIT VUT), člen
Španěl Michal, Ing., Ph.D. (UPGM FIT VUT), člen
@bachelorsthesis{FITBT23029, author = "David Mik\v{s}an\'{i}k", type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce", title = "Efficient Algorithms for Counting Automata", school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}", year = 2020, location = "Brno, CZ", language = "english", url = "https://www.fit.vut.cz/study/thesis/23029/" }