PlanetMath (more info)
 Math for the people, by the people. Sponsor PlanetMath
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Owner confidence rating: Very high Entry average rating: No information on entry rating
deterministic finite automaton (Definition)

A deterministic finite automaton (or DFA) is a deterministic automaton with a finite input alphabet and a finite number of states. It can be formally defined as a 5-tuple $(S, \Sigma, \delta, q_0, F)$ , where

A DFA works exactly like a general automaton: operation begins at $q_0$ , and movement from state to state is governed by the transition function $\delta$ . A word is accepted exactly when a final state is reached upon reading the last (rightmost) symbol of the word.

DFAs represent regular languages, and can be used to test whether any string in $\Sigma^*$ is in the language it represents. Consider the following regular language over the alphabet $\Sigma := \left\{ \verb.a., \verb.b. \right\}$ (represented by the regular expression aa*b):

\begin{eqnarray*} \verb.<.S\verb.>. & \verb.::=. & \verb=a=\,A \\ \verb.<.A\verb.>. & \verb.::=. & b\,\verb.|.\,\verb=a=\,A \\ \end{eqnarray*} This language can be represented by the DFA with the following state diagram:

$\displaystyle \UseComputerModernTips \xymatrix{ \ar[r] & *+[o][F-]{0} \ar[r]_a... ...\ar[r]_b & *++[o][F=]{2} \ar[dl]^{a,b} \ && *+[o][F-]{3} \ar@(r,d)[]^{a,b} } $

The vertex 0 is the initial state $q_0$ , and the vertex 2 is the only state in $F$ . Note that for every vertex there is an edge leading away from it with a label for each symbol in $\Sigma$ . This is a requirement of DFAs, which guarantees that operation is well-defined for any finite string.

If given the string aaab as input, operation of the DFA above is as follows. The first a is removed from the input string, so the edge from 0 to 1 is followed. The resulting input string is aab. For each of the next two as, the edge is followed from 1 to itself. Finally, b is read from the input string and the edge from 1 to 2 is followed. Since the input string is now $\lambda$ , the operation of the DFA halts. Since it has halted in the accepting state 2, the string aaab is accepted as a sentence in the regular language implemented by this DFA.

Now let us trace operation on the string aaaba. Execution is as above, until state 2 is reached with a remaining in the input string. The edge from 2 to 3 is then followed and the operation of the DFA halts. Since 3 is not an accepting state for this DFA, aaaba is not accepted.

Remarks.

  • A DFA can be modified to include $\epsilon$ -transitionsEpsilonTransitions. But the resulting DFA can be simulated by another DFA (without any epsilon transitions).
  • Although the operation of a DFA is much easier to compute than that of a non-deterministic automaton, it is non-trivial to directly generate a DFA from a regular grammar. It is much easier to generate a non-deterministic finite automaton from the regular grammar, and then transform the non-deterministic finite automaton into a DFA.




"deterministic finite automaton" is owned by CWoo. [ full author list (3) | owner history (2) ]
(view preamble | get metadata)

View style:

See Also: automaton, context-free language, regular language, language, non-deterministic finite automaton, subset construction

Other names:  dfa, finite state machine, fsm

Attachments:
reduced automaton (Definition) by CWoo
constructing automata from regular languages (Definition) by CWoo
Log in to rate this entry.
(view current ratings)

Cross-references: Transform, non-deterministic finite automaton, regular grammar, generate, trace, sentence, well-defined, label, edge, vertex, state diagram, regular expression, language, regular languages, represent, final state, operation, starting state, transition function, automaton, strings, finite set, states, number, alphabet, finite, deterministic automaton
There are 11 references to this entry.

This is version 13 of deterministic finite automaton, born on 2002-02-24, modified 2009-09-11.
Object id is 2553, canonical name is DeterministicFiniteAutomaton.
Accessed 19584 times total.

Classification:
AMS MSC68Q05 (Computer science :: Theory of computing :: Models of computation )
 68Q42 (Computer science :: Theory of computing :: Grammars and rewriting systems)
 03D10 (Mathematical logic and foundations :: Computability and recursion theory :: Turing machines and related notions)

Pending Errata and Addenda
None.
[ View all 5 ]
Discussion
Style: Expand: Order:
forum policy

No messages.

Interact
post | correct | update request | add derivation | add example | add (any)