There are two ways to describe the behavior of an NFA, and both of them are equivalent. NFAs have been generalized in multiple ways, e.g., nondeterministic finite automata with ε-moves, finite-state transducers, pushdown automata, alternating automata, ω-automata, and probabilistic automata.īesides the DFAs, other known special cases of NFAsĪnd self-verifying finite automata (SVFA). Conversely, Kleene's algorithm can be used to convert an NFA into a regular expression (whose size is generally exponential in the input automaton). NFAs are used in the implementation of regular expressions: Thompson's construction is an algorithm for compiling a regular expression to an NFA that can efficiently perform pattern matching on strings. Rabin and Dana Scott, who also showed their equivalence to DFAs. NFAs were introduced in 1959 by Michael O. Like DFAs, NFAs only recognize regular languages. Using the subset construction algorithm, each NFA can be translated to an equivalent DFA i.e., a DFA recognizing the same formal language. Sometimes the term NFA is used in a narrower sense, referring to an NFA that is not a DFA, but not in this article.
0 Comments
Leave a Reply. |