# Design and implementation of parallel algorithms for automata

#### Abstract

Finite state automata are of fundamental importance in theory as well as applications in computer science. This dissertation presents several parallel algorithms for processing of them, including minimizing the number of states for a given finite state automaton, finding homing sequences for a given finite state automaton, converting a regular expression into an $\varepsilon$-free nondeterministic finite automaton. Implementation of some algorithms, as well as their experimental results, are also given.^ For minimization of deterministic finite automata, we present a parallel algorithm and discuss its implementation on a practical parallel machine using data parallel and message passing paradigms. Its time complexity on a p processor EREW PRAM $(p\le n)$ for inputs of size n is $O({n\log\sp2n\over p}+\log n\ \log p)$ uniformly on almost all instances. The work done by our algorithm is thus within a factor of $O(\log n)$ of the best known sequential algorithm. The space used by our algorithm is linear in the input size. The actual resource requirements of our implementations are consistent with these estimates.^ For finding homing sequences of deterministic finite automata, we present both deterministic and randomized algorithms. Two randomized algorithms of time complexity $O(log\sp2n)$ are given. One of the randomized algorithms produces a homing sequence of length $O(n\ log\sp2n)$ for almost all DFA's with n states. The deterministic algorithm is based on a well known sequential algorithm. The implementation of the deterministic parallel algorithm shows that it can handle randomly generated instances with millions of states, and all DFA's with thousands of states using currently available parallel machines.^ Finally, we present an efficient parallel algorithm for converting a regular expression into an $\varepsilon$-free nondeterministic finite automaton. The resulting automaton is natural representation of a regular expression and has some important and practical uses in the document processing area. The time complexity of the algorithm is $O(\log n)$ and the number of processors used is $O(n\sp2).$ ^

#### Subject Area

Computer Science

#### Recommended Citation

Xuefeng Xiong,
"Design and implementation of parallel algorithms for automata"
(1996).
*Dissertations and Master's Theses (Campus Access).*
Paper AAI9726180.

http://digitalcommons.uri.edu/dissertations/AAI9726180