See Also

Deterministic finite state machine

In the theory of computation, a deterministic finite state machine or deterministic finite automaton is a finite state machine Finite state machine

A finite state machine or finite automaton is a model of behavior composed of state [i]s, ... 

 where for each pair of state and input symbol there is one and only one transition to a next state. DFAs recognize the set of regular languages and no other languages. A DFA will take in a string of input symbols. For each input symbol it will then transition to a state given by following a transition function. When the last input symbol has received it will either accept or reject the string depending on if it is in an accepting state or not.

Discussions

  Discussion Features

   Ask a question about 'Deterministic finite state machine'

   Start a new discussion about 'Deterministic finite state machine'

   Answer questions about 'Deterministic finite state machine'

   'Deterministic finite state machine' discussion forum


Encyclopedia

In the theory of computation, a deterministic finite state machine or deterministic finite automaton is a finite state machine Finite state machine

A finite state machine or finite automaton is a model of behavior composed of state [i]s, ... 

 where for each pair of state and input symbol there is one and only one transition to a next state. DFAs recognize the set of regular languages and no other languages.

A DFA will take in a string of input symbols. For each input symbol it will then transition to a state given by following a transition function. When the last input symbol has received it will either accept or reject the string depending on if it is in an accepting state or not.

Formal definition


A DFA is a 5-tuple,
, consisting of
  • a finite set of states
  • a finite set called the alphabet
  • a transition function
  • a start state
  • a set of accept state Finite state machine

    A finite state machine or finite automaton is a model of behavior composed of state [i]s, ... 

    s


Let M be a DFA such that M = , and X = x0x1 ... xn be a string over the alphabet Σ. M accepts the string X if a sequence of states,
r0,r1, ..., rn, exists in S with the following conditions:
  1. r0 = s
  2. ri+1 = T, for i = 0, ..., n-1
  3. rnA.


As shown in the first condition, the machine starts in the start state s.
The second condition says that given each character of string X, the machine will transition from state to state as ruled by the transition function T.
The last condition says that the machine accepts if the last input of X causes the machine to be in one of the accepting states. Otherwise, it is said to reject the string. The set of strings it accepts form a language, which is the language the DFA recognises.

Example


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


M = where
  • S = ,
  • Σ = ,
  • s = S1,
  • A = , and
  • T is defined by the following state transition table State transition table

    In Automata Theory [i], a state transition table is a table describing the transiti ... 

    :

0
1
S1 S2 S1
S2 S1 S2



Simply put, 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.

The language of M is the regular language given by this regular expression:

Advantages and disadvantages


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. Given two DFAs there are efficient algorithms to find a DFA recognizing the union, intersection, and complements of the languages they recognize. 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, and to find the DFA with a minimum number of states for a particular regular language.

On the other hand, DFAs 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 classical example of a simply described language that no DFA can recognize is the language consisting of strings of the form anbn — some finite number of a's, followed by an equal number of b's. It can be shown that no DFA can have enough states to recognize such a language.

References


  • Michael Sipser Michael Sipser

    Michael Sipser is a professor [i] of Applied Mathematics [i] in the Theory of Computation Group [i] at t ... 

    . Introduction to the Theory of Computation. PWS, Boston. 1997. ISBN 0-534-94728-X. 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

See also

  • Acyclic deterministic finite automata
  • Nondeterministic finite state machine Nondeterministic finite state machine

    In the theory of computation [i], a nondeterministic finite state machine or nondeterministic finite ... 

  • Turing machine Turing machine

    Turing machines are extremely basic symbol-manipulating devices which despite their simplicity can be ...