From 2d68942a549492936543af12f6db4e3f943ef210 Mon Sep 17 00:00:00 2001 From: Eliot Robson Date: Mon, 1 Jul 2024 22:39:16 -0400 Subject: [PATCH 1/5] Automata package blog post --- _data/authors.yml | 14 +++ _posts/2024-07-10-automata.md | 126 ++++++++++++++++++++++++ images/automata/finite_language_dfa.png | Bin 0 -> 84921 bytes 3 files changed, 140 insertions(+) create mode 100644 _posts/2024-07-10-automata.md create mode 100644 images/automata/finite_language_dfa.png diff --git a/_data/authors.yml b/_data/authors.yml index 53469fc1..c0fd9fe7 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -88,3 +88,17 @@ Patrick J. Roddy: - label: Website icon: fas fa-fw fa-link url: https://paddyroddy.github.io +Eliot W. Robson: + name : Eliot W. Robson + bio : "PhD Student, University of Illinois Urbana-Champaign" + avatar : /images/people/eliot-w-robson.jpg + links: + - label: "Email" + icon: "fas fa-fw fa-envelope-square" + url: "mailto:eliot.robson24@gmail.com" + - label: GitHub + icon: fab fa-fw fa-github + url: https://github.com/eliotwrobson + - label: LinkedIn + icon: fab fa-fw fa-linkedin + url: https://www.linkedin.com/in/eliot-robson/ diff --git a/_posts/2024-07-10-automata.md b/_posts/2024-07-10-automata.md new file mode 100644 index 00000000..b2aadc13 --- /dev/null +++ b/_posts/2024-07-10-automata.md @@ -0,0 +1,126 @@ +--- +layout: single +title: "automata: Simulation and manipulation" +excerpt: automata is a package implementing structures and algorithms for manipulating finite automata, pushdown automata, and Turing machines, that was recently accepted into the pyOpenSci ecosystem. +author: Eliot W. Robson +permalink: /blog/automata +header: + overlay_image: /images/automata/finite_language_dfa.png + overlay_filter: rgba(20, 13, 36, 0.8) +categories: + - blog-post + - automata + - formal-languages + - models-of-computation +comments: true +--- + + +Automata are abstract machines used to represent models of computation, and are a central object of study in theoretical computer science. Given an input string of characters over a fixed alphabet, these machines either accept or reject the string. A language corresponding to an automaton is +the set of all strings it accepts. Three important families of automata in increasing order of generality are the following: + +1. Finite-state automata +2. Pushdown automata +3. Turing machines + +The [`automata`](https://caleb531.github.io/automata/) package facilitates working with these families by allowing simulation of reading input and higher-level manipulation +of the corresponding languages using specialized algorithms. For an overview on automata theory, see [this Wikipedia article](https://en.wikipedia.org/wiki/Automata_theory), and +for a more comprehensive introduction to each of these topics, see [these lecture notes](https://jeffe.cs.illinois.edu/teaching/algorithms/#models). + +## Statement of need + +Automata are a core component of both computer science education and research, seeing further theoretical work +and applications in a wide variety of areas such as computational biology and networking. +Consequently, the manipulation of automata with software packages has seen significant attention from +researchers in the past. The similarly named Mathematica package [`Automata`](https://www.cs.cmu.edu/~sutner/automata.html) implements a number of +algorithms for use with finite-state automata, including regular expression conversion and binary set operations. +In Java, the [Brics package](https://www.brics.dk/automaton/) implements similar algorithms, while the [JFLAP package](https://www.jflap.org/) places an emphasis +on interactivity and simulation of more general families of automata. + +[`automata`](https://caleb531.github.io/automata/) serves the demand for such a package in the Python software ecosystem, implementing algorithms and allowing for +simulation of automata in a manner comparable to the packages described previously. As a popular high-level language, Python enables +significant flexibility and ease of use that directly benefits many users. The package includes a comprehensive test suite, +support for modern language features (including type annotations), and has a large number of different automata, +meeting the demands of users across a wide variety of use cases. In particular, the target audience +is both researchers that wish to manipulate automata, and for those in educational contexts to reinforce understanding about how these +models of computation function. + +## Package features + +The API of the package is designed to mimic the formal mathematical description of each automaton using built-in Python data structures +(such as sets and dicts). This is for ease of use by those that are unfamiliar with these models of computation, while also providing performance +suitable for tasks arising in research. In particular, algorithms in the package have been written for tackling +performance on large inputs, incorporating optimizations such as only exploring the reachable set of states +in the construction of a new finite-state automaton. The package also has native display integration with Jupyter +notebooks, enabling easy visualization that allows students to interact with [`automata`](https://caleb531.github.io/automata/) in an exploratory manner. + +Of note are some commonly used and technical algorithms implemented in the package for finite-state automata: + +- An optimized version of the Hopcroft-Karp algorithm to determine whether two deterministic finite automata (DFA) are equivalent. + +- The product construction algorithm for binary set operations (union, intersection, etc.) on the languages corresponding to two input DFAs. + +- Thompson's algorithm for converting regular expressions to equivalent nondeterministic finite automata (NFA). + +- Hopcroft's algorithm for DFA minimization. + +- A specialized algorithm for directly constructing a state-minimal DFA accepting a given finite language. + +- A specialized algorithm for directly constructing a minimal DFA recognizing strings containing a given substring. + +To the authors' knowledge, this is the only Python package implementing all of the automata manipulation algorithms stated above. + +## Example usage + +![A visualization of `target_words_dfa`. Transitions on characters leading to immediate rejections are omitted.]({{ site.url }}/images/automata/finite_language_dfa.png) + +![\label{fig:target_words_dfa}](finite_language_dfa.png){ width=100% } + +The following example is inspired by the use case described in @Johnson_2010. +We wish to determine which strings in a given set are within the target edit distance +to a reference string. We will first initialize a DFA corresponding to a fixed set of target words +over the alphabet of all lowercase ascii characters. + +```python +from automata.fa.dfa import DFA +from automata.fa.nfa import NFA +import string + +target_words_dfa = DFA.from_finite_language( + input_symbols=set(string.ascii_lowercase), + language={'these', 'are', 'target', 'words', 'them', 'those'}, +) +``` + +Next, we construct an NFA recognizing all strings within a target edit distance of a fixed +reference string, and then immediately convert this to an equivalent DFA. The package provides +builtin functions to make this construction easy, and we use the same alphabet as the DFA that was just created. + +```python +words_within_edit_distance_dfa = DFA.from_nfa( + NFA.edit_distance( + input_symbols=set(string.ascii_lowercase), + reference_str='they', + max_edit_distance=2, + ) +) +``` + +Finally, we take the intersection of the two DFAs we have constructed and read all of +the words in the output DFA into a list. The library makes this straightforward and idiomatic. + +```python +found_words_dfa = target_words_dfa & words_within_edit_distance_dfa +found_words = list(found_words_dfa) +``` + +The DFA `found_words_dfa` accepts strings in the intersection of the languages of the +DFAs given as input, and `found_words` is a list containing this language. Note the power of this +technique is that the DFA `words_within_edit_distance_dfa` +has an infinite language, meaning we could not do this same computation just using the builtin +sets in Python directly (as they always represent a finite collection), although the +syntax used by [`automata`](https://caleb531.github.io/automata/) is very similar to promote intuition. + +## Citing + +This post is adapted from [our JOSS paper](https://joss.theoj.org/papers/10.21105/joss.05759), which should be used for citations. diff --git a/images/automata/finite_language_dfa.png b/images/automata/finite_language_dfa.png new file mode 100644 index 0000000000000000000000000000000000000000..1f8134104e07a96a614cb3e4eb3b83266cb06d2d GIT binary patch literal 84921 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 O!OviP$XtvirvCw}ZfrRK literal 0 HcmV?d00001 From 5f45a1ece7480d5184844f46100be2a24da5d944 Mon Sep 17 00:00:00 2001 From: Eliot Robson Date: Mon, 1 Jul 2024 22:41:48 -0400 Subject: [PATCH 2/5] Create eliot-w-robson.jpg --- images/people/eliot-w-robson.jpg | Bin 0 -> 19480 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/people/eliot-w-robson.jpg diff --git a/images/people/eliot-w-robson.jpg b/images/people/eliot-w-robson.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b7e0c4ce750f3548ae5bad1fb65c5f30d9c03ca GIT binary patch literal 19480 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 literal 0 HcmV?d00001 From 4e409b401048a4361fafa94aaf02dd1d5d0acfbd Mon Sep 17 00:00:00 2001 From: Eliot Robson Date: Mon, 1 Jul 2024 22:45:11 -0400 Subject: [PATCH 3/5] Update 2024-07-10-automata.md --- _posts/2024-07-10-automata.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-07-10-automata.md b/_posts/2024-07-10-automata.md index b2aadc13..b2857101 100644 --- a/_posts/2024-07-10-automata.md +++ b/_posts/2024-07-10-automata.md @@ -76,7 +76,7 @@ To the authors' knowledge, this is the only Python package implementing all of t ![\label{fig:target_words_dfa}](finite_language_dfa.png){ width=100% } -The following example is inspired by the use case described in @Johnson_2010. +The following example is inspired by the use case described in [this blog post](http://blog.notdot.net/2010/07/Damn-Cool-Algorithms-Levenshtein-Automata). We wish to determine which strings in a given set are within the target edit distance to a reference string. We will first initialize a DFA corresponding to a fixed set of target words over the alphabet of all lowercase ascii characters. From 2390ad102d4c3b8ef762851735b30c99783edb07 Mon Sep 17 00:00:00 2001 From: Eliot Robson Date: Mon, 1 Jul 2024 22:51:12 -0400 Subject: [PATCH 4/5] Update 2024-07-10-automata.md --- _posts/2024-07-10-automata.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/_posts/2024-07-10-automata.md b/_posts/2024-07-10-automata.md index b2857101..5c4a121c 100644 --- a/_posts/2024-07-10-automata.md +++ b/_posts/2024-07-10-automata.md @@ -74,8 +74,6 @@ To the authors' knowledge, this is the only Python package implementing all of t ![A visualization of `target_words_dfa`. Transitions on characters leading to immediate rejections are omitted.]({{ site.url }}/images/automata/finite_language_dfa.png) -![\label{fig:target_words_dfa}](finite_language_dfa.png){ width=100% } - The following example is inspired by the use case described in [this blog post](http://blog.notdot.net/2010/07/Damn-Cool-Algorithms-Levenshtein-Automata). We wish to determine which strings in a given set are within the target edit distance to a reference string. We will first initialize a DFA corresponding to a fixed set of target words From b2f4118e9b39d1f7f4c1f1b3cc02c42c832f52e4 Mon Sep 17 00:00:00 2001 From: Eliot Robson Date: Wed, 10 Jul 2024 23:03:04 -0500 Subject: [PATCH 5/5] Update _posts/2024-07-10-automata.md Co-authored-by: Leah Wasser --- _posts/2024-07-10-automata.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2024-07-10-automata.md b/_posts/2024-07-10-automata.md index 5c4a121c..ffb2b971 100644 --- a/_posts/2024-07-10-automata.md +++ b/_posts/2024-07-10-automata.md @@ -12,6 +12,8 @@ categories: - automata - formal-languages - models-of-computation + - pyos-accepted +classes: wide comments: true ---