Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Generalized nondeterministic finite automaton
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
In the [[theory of computation]], a '''generalized nondeterministic finite automaton''' ('''GNFA'''), also known as an '''expression automaton''' or a '''generalized nondeterministic finite state machine''', is a variation of a [[nondeterministic finite automaton]] (NFA) where each transition is labeled with any [[regular expression]]. The GNFA reads blocks of symbols from the input which constitute a string as defined by the regular expression on the transition. There are several differences between a standard finite state machine and a generalized nondeterministic finite state machine. A GNFA must have only one start state and one accept state, and these cannot be the same state, whereas an NFA or DFA both may have several accept states, and the start state can be an accept state. A GNFA must have only one transition between any two states, whereas a NFA or DFA both allow for numerous transitions between states. In a GNFA, a state has a single transition to every state in the machine, although often it is a convention to ignore the transitions that are labelled with the empty set when drawing generalized nondeterministic finite state machines. ==Formal definition== A GNFA can be defined as a [[n-tuple|5-tuple]], (''S'', Ξ£, ''T'', ''s'', ''a''), consisting of * a [[finite set]] of states (''S''); * a finite set called the alphabet (Ξ£); * a transition [[function (mathematics)|function]] (''T'' : (''S'' <math>\setminus</math> {''a''}) Γ (''S'' <math>\setminus</math> {''s''}) β ''R''); * a start state (''s'' β ''S''); * an accept state (''a'' β ''S''); where ''R'' is the collection of all regular expressions over the alphabet Ξ£. The transition function takes as its argument a pair of two states and outputs a regular expression (the label of the transition). This differs from other finite state machines, which take as input a single state and an input from the alphabet (or the empty string in the case of nondeterministic finite state machines) and outputs the next state (or the set of possible states in the case of nondeterministic finite state machines). A [[deterministic finite automaton|DFA]] or [[nondeterministic finite automaton|NFA]] can easily be converted into a GNFA and then the GNFA can be easily converted into a [[regular expression]] by repeatedly collapsing parts of it to single edges until ''S'' = {''s'', ''a''}. Similarly, GNFAs can be reduced to NFAs by changing regular expression operators into new edges until each edge is labelled with a regular expression matching a single string of length at most 1. NFAs, in turn, can be reduced to DFAs using the [[powerset construction]]. This shows that GNFAs recognize the same set of [[formal language]]s as DFAs and NFAs. ==References== * Yo-Sub Han and [[Derick Wood]]. "The Generalization of Generalized Automata: Expression Automata." In: 9th International [[Conference on Implementation and Application of Automata]], CIAA 2004, Kingston, Canada, July 22β24, 2004, Revised Selected Papers, [[LNCS]] 3317, pp. 156β166. {{doi|10.1007/b105090}} * [[Michael Sipser]]. 2006. Introduction to the Theory of Computation (2nd ed.). International Thomson Publishing. ==External links== * A graphical description of GNFAs and the process of converting an NFA to a regular expression using GNFAs, can be found at [http://www.cs.sunysb.edu/~cse350/slides/rgExp2.pdf] [[Category:Finite-state machines]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Doi
(
edit
)