World Library  
Flag as Inappropriate
Email this Article

Deterministic finite automaton

Article Id: WHEBN0000653404
Reproduction Date:

Title: Deterministic finite automaton  
Author: World Heritage Encyclopedia
Language: English
Subject: Comparison of parser generators, GOLD (parser), Nondeterministic finite automaton, String searching algorithm, Semiautomaton
Collection: Automata Theory, Finite Automata, Models of Computation
Publisher: World Heritage Encyclopedia

Deterministic finite automaton

An example of a deterministic finite automaton that accepts only binary numbers that are multiples of 3. The state S0 is both the start state and an accept state.

In theory of computation, a branch of theoretical computer science, a deterministic finite automaton (DFA)—also known as deterministic finite state machine—is a finite state machine that accepts/rejects finite strings of symbols and only produces a unique computation (or run) of the automaton for each input string.[1] 'Deterministic' refers to the uniqueness of the computation. In search of simplest models to capture the finite state machines, McCulloch and Pitts were among the first researchers to introduce a concept similar to finite automaton in 1943.[2][3]

The figure on the right illustrates a deterministic finite automaton using a state diagram. In the automaton, there are three states: S0, S1, and S2 (denoted graphically by circles). The automaton takes a finite sequence of 0s and 1s as input. For each state, there is a transition arrow leading out to a next state for both 0 and 1. Upon reading a symbol, a DFA jumps deterministically from a state to another by following the transition arrow. For example, if the automaton is currently in state S0 and current input symbol is 1 then it deterministically jumps to state S1. A DFA has a start state (denoted graphically by an arrow coming in from nowhere) where computations begin, and a set of accept states (denoted graphically by a double circle) which help define when a computation is successful.

A DFA is defined as an abstract mathematical concept, but due to the deterministic nature of a DFA, it is implementable in hardware and software for solving various specific problems. For example, a DFA can model software that decides whether or not online user-input such as email addresses are valid.[4] (see: finite state machine for more practical examples).

DFAs recognize exactly the set of regular languages[1] which are, among other things, useful for doing lexical analysis and pattern matching. DFAs can be built from nondeterministic finite automata (NFAs) using the powerset construction method.


  • Formal definition 1
  • Example 2
  • Closure properties 3
  • DFA as a transition monoid 4
  • Local automata 5
  • Random DFA 6
  • Advantages and disadvantages 7
  • See also 8
  • Notes 9
  • References 10
  • External links 11

Formal definition

A deterministic finite automaton M is a 5-tuple, (Q, Σ, δ, q0, F), consisting of

Let w = a1a2 ... an be a string over the alphabet Σ. The automaton M accepts the string w if a sequence of states, r0,r1, ..., rn, exists in Q with the following conditions:

  1. r0 = q0
  2. ri+1 = δ(ri, ai+1), for i = 0, ..., n−1
  3. rnF.

In words, the first condition says that the machine starts in the start state q0. The second condition says that given each character of string w, the machine will transition from state to state according to the transition function δ. The last condition says that the machine accepts w if the last input of w causes the machine to halt in one of the accepting states. Otherwise, it is said that the automaton rejects the string. The set of strings that M accepts is the language recognized by M and this language is denoted by L(M).

A deterministic finite automaton without accept states and without a starting state is known as a transition system or semiautomaton.

For more comprehensive introduction of the formal definition see automata theory.


The following example is of a DFA M, with a binary alphabet, which requires that the input contains an even number of 0s.

The state diagram for M

M = (Q, Σ, δ, q0, F) where

S1 S2 S1
S2 S1 S2

The state S1 represents that there has been an even number of 0s in the input so far, while S2 signifies an odd number. A 1 in the input does not change the state of the automaton. When the input ends, the state will show whether the input contained an even number of 0s or not. If the input did contain an even number of 0s, M will finish in state S1, an accepting state, so the input string will be accepted.

The language recognized by M is the regular language given by the regular expression (1 + 0 (1*) 0)*, where "*" is the Kleene star, e.g., 1* denotes any non-negative number (possibly zero) of symbols "1".

Closure properties

If DFAs recognize the languages that are obtained by applying an operation on the DFA recognizable languages then DFAs are said to be closed under the operation. The DFAs are closed under the following operations.

  • Union
  • Intersection
  • Concatenation
  • Negation
  • Kleene closure
  • Reversal
  • Init
  • Quotient
  • Substitution
  • Homomorphism

Since DFAs are equivalent to nondeterministic finite automata (NFA), these closures may be proved using closure properties of NFA.

DFA as a transition monoid

Alternatively a run can be seen as a sequence of compositions of transition function with itself. Given an input symbol a\in\Sigma, one may write the transition function as \delta_a:Q\rightarrow Q, using the simple trick of currying, that is, writing \delta(q,a)=\delta_a(q) for all q\in Q. This way, the transition function can be seen in simpler terms: it's just something that "acts" on a state in Q, yielding another state. One may then consider the result of function composition repeatedly applied to the various functions \delta_a, \delta_b, and so on. Using this notion we define \widehat\delta:Q \times \Sigma^{\star} \rightarrow Q. Given a pair of letters a,b\in \Sigma, one may define a new function \widehat\delta, by insisting that \widehat\delta_{ab}=\delta_a \circ \delta_b, where \circ denotes function composition. Clearly, this process can be recursively continued. So, we have the following recursive definition

\widehat\delta ( q, \epsilon ) = q. where \epsilon is empty string and
\widehat\delta ( q, wa ) = \delta_a(\widehat\delta ( q, w )). where w \in \Sigma ^*, a \in \Sigma and q \in Q.

\widehat\delta is defined for all words w\in\Sigma^*. Repeated function composition forms a monoid. For the transition functions, this monoid is known as the transition monoid, or sometimes the transformation semigroup. The construction can also be reversed: given a \widehat\delta, one can reconstruct a \delta, and so the two descriptions are equivalent.

Local automata

A local automaton is a DFA for which all edges with the same label lead to a single vertex. Local automata accept the class of local languages, those for which membership of a word in the language is determined by a "sliding window" of length two on the word.[5][6]

A Myhill graph over an alphabet A is a directed graph with vertex set A and subsets of vertices labelled "start" and "finish". The language accepted by a Myhill graph is the set of directed paths from a start vertex to a finish vertex: the graph thus acts as an automaton.[5] The class of languages accepted by Myhill graphs is the class of local languages.[7]

Random DFA

When the start state and accept states are ignored, a DFA of n-states and an alphabet of size k can be seen as a digraph of n vertices in which all vertices have k out-arcs labeled 1,\ldots, k (a k-out digraph). It is known that when k \ge 2 is a fixed integer, with high probability, the largest strongly connected component (SCC) in such a k-out digraph chosen uniformly at random is of linear size and it can be reached by all vertices.[8] It has also been proven that if k is allowed to increase as n increases, then the whole digraph has a phase transition for strong connectivity similar to Erdős–Rényi model for connectivity.[9]

In a random DFA, the maximum number of vertices reachable from one vertex is very close to the number of vertices in the largest SCC with high probably.[8][10] This is also true for the largest induced sub-digraph of minimum in-degree one, which can be seen as a directed version of 1-core.[9]

Advantages and disadvantages

DFAs were invented to model real world finite state machines in contrast to the concept of a Turing machine, which was too general to study properties of real world machines.

DFAs are one of the most practical models of computation, since there is a trivial linear time, constant-space, online algorithm to simulate a DFA on a stream of input. Also, there are efficient algorithms to find a DFA recognizing:

  • the complement of the language recognized by a given DFA.
  • the union/intersection of the languages recognized by two given DFAs.

Because DFAs can be reduced to a canonical form (minimal DFAs), there are also efficient algorithms to determine:

  • whether a DFA accepts any strings
  • whether a DFA accepts all strings
  • whether two DFAs recognize the same language
  • the DFA with a minimum number of states for a particular regular language

DFAs are equivalent in computing power to nondeterministic finite automata (NFAs). This is because, firstly any DFA is also an NFA, so an NFA can do what a DFA can do. Also, given an NFA, using the powerset construction one can build a DFA that recognizes the same language as the NFA, although the DFA could have exponentially larger number of states than the NFA.[11][12]

On the other hand, finite state automata are of strictly limited power in the languages they can recognize; many simple languages, including any problem that requires more than constant space to solve, cannot be recognized by a DFA. The classic example of a simply described language that no DFA can recognize is bracket or Dyck language, i.e., the language that consists of properly paired brackets such as word "(()())". Intuitively, no DFA can recognize the Dyck language because DFAs are not capable of counting: a DFA-like automaton needs to have a state to represent any possible number of "currently open" parentheses, meaning it would need an unbounded number of states. Another simpler example is the language consisting of strings of the form anbn for some finite but arbitrary number of a's, followed by an equal number of b's.[13]

See also


  1. ^ a b Hopcroft 2001:
  2. ^ McCulloch and Pitts (1943):
  3. ^ Rabin and Scott (1959):
  4. ^ Gouda, Prabhakar, Application of Finite automata 
  5. ^ a b Lawson (2004) p.129
  6. ^ Sakarovitch (2009) p.228
  7. ^ Lawson (2004) p.128
  8. ^ a b Grusho, A. A. (1973). "Limit distributions of certain characteristics of random automaton graphs". Mathematical Notes of the Academy of Sciences of the USSR 4: 633–637.  
  9. ^ a b Cai, X.S.; Devroye, L. "The graph structure of a deterministic automaton chosen at random: full version". arXiv:1504.06238 [math.PR]. 
  10. ^ Carayol, Arnaud; Nicaud,, Cyril (2012). "Distribution of the number of accessible states in a random deterministic automaton". 
  11. ^ Sakarovitch (2009) p.105
  12. ^ Lawson (2004) p.63
  13. ^ Lawson (2004) p.46


  • Lawson, Mark V. (2004). Finite automata. Chapman and Hall/CRC.  
  • McCulloch, W. S.; Pitts, E. (1943). "A logical calculus of the ideas imminent in nervous activity". Bulletin of Mathematical Biophysics: 541–544. 
  • Rabin, M. O.; Scott, D. (1959). "Finite automata and their decision problems.". IBM J. Res. Develop.: 114–125. 
  • Sakarovitch, Jacques (2009). Elements of automata theory. Translated from the French by Reuben Thomas. Cambridge:  
  • Sipser, Michael (1997). Introduction to the Theory of Computation. Boston: PWS. . Section 1.1: Finite Automata, pp. 31–47. Subsection "Decidable Problems Concerning Regular Languages" of section 4.1: Decidable Languages, pp. 152–155.4.4 DFA can accept only regular language  

External links

  • DFA Simulator - an open source graphical editor and simulator of DFA
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.