|
Alternativní transformace jazykových modelů
Havel, Martin ; Beníčková, Zuzana (oponent) ; Meduna, Alexandr (vedoucí práce)
Tato práce poskytuje ucelený přehled poznatků z oblasti regulárních výrazů, konečných automatů a transformací z regulárního výrazu na konečný automat. Práce navrhuje nové transformace se zaměřením na minimalizaci počtu stavů a počtu pravidel konečných automatů. Koncept alternativních transformací je zpracován do algoritmů a prokázán matematickým důkazy. Cílem práce je obohatit transformace o nové alternativy na poli regulárních výrazů a konečných automatů. Pozornost je především věnována ekonomické stránce finálního konečného automatu. V rámci práce se podařilo sestrojit algoritmy, které jsou schopny transformovat regulární výrazy na konečné automaty. Práce zároveň poskytuje návod k jejich implementaci. Prezentuje obecný koncept transformací, který umožňuje tvořit méně rozsáhlé konečné automaty. Využitím uvedeného přístupu je možné rozšířit řadu transformací o alternativní verze.
|
|
Reducing Size of Nondeterministic Automata with SAT Solvers
Šedý, Michal ; Havlena, Vojtěch (oponent) ; Holík, Lukáš (vedoucí práce)
Nondeterministic finite automata (NFA) are widely used in computer science fields, such as regular languages in formal language theory, high-speed network monitoring, image recognition, hardware modeling, or even in bioinformatic for the detection of the sequence of nucleotide acids in DNA. They are also used in regular mode checking, in string solving, in verification of pointer manipulating programs, for construction of linear arithmetic equations and inequalities, for decision in WS1S and WS2S logic, and many others. Automata minimization is a fundamental technique that helps to decrease resource claims (memory, time, or a number of hardware components) of implemented automata and speed up automata operations. Commonly used minimization techniques, such as state merging, transition pruning, and saturation, can leave potentially minimizable automaton subgraphs with duplicit language information. These fragments consist of a group of states, where the part of language of one state is piecewise covered by the other states in this group. The thesis describes a new minimization approach, which uses SAT solver, which provides information for efficient minimization of these so far nonminimizable automaton parts. Moreover, the newly investigated method, which only uses solver information and state merging, can minimize the automaton similarly and on automata with low transition count faster than a tool RABIT/Reduce, which uses state merging and transition pruning.
|
|
Alternativní transformace jazykových modelů
Havel, Martin ; Beníčková, Zuzana (oponent) ; Meduna, Alexandr (vedoucí práce)
Tato práce poskytuje ucelený přehled poznatků z oblasti regulárních výrazů, konečných automatů a transformací z regulárního výrazu na konečný automat. Práce navrhuje nové transformace se zaměřením na minimalizaci počtu stavů a počtu pravidel konečných automatů. Koncept alternativních transformací je zpracován do algoritmů a prokázán matematickým důkazy. Cílem práce je obohatit transformace o nové alternativy na poli regulárních výrazů a konečných automatů. Pozornost je především věnována ekonomické stránce finálního konečného automatu. V rámci práce se podařilo sestrojit algoritmy, které jsou schopny transformovat regulární výrazy na konečné automaty. Práce zároveň poskytuje návod k jejich implementaci. Prezentuje obecný koncept transformací, který umožňuje tvořit méně rozsáhlé konečné automaty. Využitím uvedeného přístupu je možné rozšířit řadu transformací o alternativní verze.
|
|
Automata in Decision Procedures and Performance Analysis
Fiedor, Tomáš ; Barnat, Jiří (oponent) ; Radu, Iosif (oponent) ; Vojnar, Tomáš (vedoucí práce)
This thesis focuses on improving the state of the art of automata-based formal analysis and verification techniques for systems with an infinite state space. In the first part of the thesis, we develop two efficient decision procedures for the WS1S logic, both of them exploiting the correspondence between formulae of WS1S logic and finite automata. We start by proposing a novel antichain-based decision procedure which is, however, limited to formulae in the prenex normal form. Later, we generalize the approach to arbitrary formulae by defining the so-called language terms and constructing an on-the-fly procedure dealing with the terms using lazy techniques. In order to achieve an efficient implementation, we propose numerous optimizations (some of these optimization are not limited to our approaches only). We evaluated both our methods with other recent state-of-the art tools. The achieved results are encouraging and show we can extend the usage of WS1S to wider classes of formulae. The second part of the thesis focuses on resource bounds analysis of heap-manipulating programs. We propose a new class of shape norms based on lengths of paths between distinct points in the heap, which we derive automatically from the analysed program. For this class of norms, we introduce a calculus capable of precisely inferring changes of the analysed norms and use it to generate a corresponding integer representation of an input program followed by dedicated state-of-the art resource bounds analysis. We implemented our approach over the shape analysis based on forest-automata, implemented in the Forester tool, and using a well-established resource bounds analyser, implemented in the Loopus tool. In our experimental evaluation, we show that we indeed obtained a powerful analyser that is able to handle some showcase examples that were never analysed fully automatically before.
|
|
Symbolic Automata for Analysing String Manipulating Programs
Kotoun, Michal ; Rogalewicz, Adam (oponent) ; Vojnar, Tomáš (vedoucí práce)
Many software applications receive, send and process data in a text form. Correct and safe processing of these data is usually ensured by so-called string sanitization. With the help of methods of formal verification, we can analyse these string operations and check whether they are correctly designed and implemented. The goal of this work is to create a tool for analysis of systems whose configurations can be encoded as words over a suitable alphabet, as well as its specialization for analysing string manipulating programs. First, we describe finite automata and transducers in general and characterize various classes and sub-classes of symbolic transducers, especially their limitations. Based on this study, a new class of symbolic transducers is proposed for use in the program analysis. Later, we introduce regular model checking, especially its variant based on abstraction over automata, the so called ARMC, which was proved to be able to quite successfully fight the state explosion problem in the size of the automata and allows us to reach a fix-point. We then design an analysis of programs written in imperative languages, especially those that manipulate strings, using the principles of ARMC. Finally, the implementation of the tool is presented, highlighting its practical aspects and discussing relevant parts of AutomataDotNet library it is based on. The work completes debating the experimental evaluation of the tool using test inputs from LibStranger project.
|
|
Efficient Algorithms for Counting Automata
Mikšaník, David ; Holík, Lukáš (oponent) ; Lengál, Ondřej (vedoucí práce)
Counting automata (CAs) are classical finite automata extended with bounded counters. They still denote the class of regular languages but in a more compact way than finite automata. Since CAs are a recent model, there is a gap in the knowledge of efficient algorithms implementing various operations on the CAs. In this thesis, we mainly focus on an existing subclass of CAs called monadic counting automata (MCAs), i.e., CAs with counting loops on character classes, which are common in practice (e.g., detection of packets in network traffic, log analysis). For this subclass, we efficiently solve the emptiness and inclusion problems. Moreover, we provide two extensions of the class of MCAs (but not beyond the class of CAs) and efficiently solve the emptiness problem for them. MCAs naturally arise from regular expressions that are extended by the counting operator limited only to character classes. Thus our algorithm solving the inclusion problem of MCAs can be used in a new method for solving the inclusion problem of such regular expressions. We experimentally evaluated this method on regular expressions from a wide range of applications and compared it with the naive method. The experiments show that the method using our algorithm is less prone the explode. It also outperforms the naive method if the regular expressions contain counting operators with large bounds. As expected, for the easy cases, the naive method is still faster than the method based on our algorithm.
|
|
Srovnání efektivity různých programovacích jazyků při práci s automaty
Polanský, Ondřej ; Lengál, Ondřej (oponent) ; Holík, Lukáš (vedoucí práce)
V této práci jsou srovnány jazyky C++, C#, OCaml a Python na základě rychlosti, paměťové náročnosti a programátorské přívětivosti. Práce si klade otázku, jak moc se liší programy pracující s konečnými automaty, pokud jsou zapsané v různých jazycích. V každém jazyce je implementována stejná sada základních a pokročilých automatových algoritmů a následně je měřena jejich efektivita na vzorku 200 konečných automatů na unixovém operačním systému. Závěrem jsou prezentovány výsledky a je diskutována vhodnost jednotlivých jazyků pro práci s automaty. Tato práce může posloužit například při výběru jazyka pro tvorbu knihoven pro práci s automaty nebo při návrhu programů a prototypů algoritmů pracujících s automaty.
|
| |
|
Mnohaúrovňové automaty a jejich aplikace
Pšenák, Kamil ; Tomko, Martin (oponent) ; Meduna, Alexandr (vedoucí práce)
V tejto práci rozšírime zastarané prístupy v teoretickej informatike. Ukážeme si, že je možný paralelizmus v konečných automatoch zavedením viacúrovňového konceptu. Priblížime si proces kompilácie a stavbu kompilátoru, aby sme mali reálny príklad pre viacúrovňové konečné automaty. Posunieme sa hlbšie do teoretickej informatiky a vysvetlíme si paralelné pravo-lineárne gramatiky a jazyky. Následne si na príklade aj s návrhom implementácie dokážeme tvrdenie. Na záver si spomenieme ďalšie možné odvetvia, kde by sa tento koncept dal využiť.
|
|
Redukce automatů používaných ve filtraci síťového provozu
Semrič, Jakub ; Hruška, Martin (oponent) ; Vojnar, Tomáš (vedoucí práce)
Cieľom tejto práce je navrhnúť škálovateľné metódy pre redukciu nedeterministických konečných automatov používaných vo filtrácii paketov. Uvádzame dva prísty redukcie automatov založené na elminácii stavov. Aby sme dosiahli významnú redukciu automatu, používame techniky nezachovávajúce jazyk so zameraním na nad-aproximáciu, keďže redukcie so zachovaním pôvodného jazyka nemusia byť dostatočne účinné. Implementovali sme dané metódy a vyhodnotili presnosť redukovaných automatov na reálnych vzorkoch. Náš prístup neposkytuje žiadne formále záruky vzhľadom na nepoužité dáta, ale može byť hladko použitý na automaty akejkoľvek veľkosti, čo je hlavný problém existujúcich metód, ktoré majú vysokou časovou zložitosťou a nemôžu byť aplikované na veľké automaty.
|