Finite-state automaton

Back to Data structures

The Automaton is a data structure for storing and manipulating finite-state automata.

Properties

The data structure underlying the automaton is the Incidence graph; the automaton has all the properties that the incidence graph has. In addition, it has the following properties:

Task / Property Complexity
Provide a list of transitions from a given state with a given symbol. expected
Provide a list (and number) of start-states / end-states.
Find out whether there is a transition between two states with a given symbol. expected
Find out whether the automaton is deterministic.
Find out whether a given state is a start-state / end-state.

In addition, the automaton

Definitions

A finite-state automaton is a tuple , where and are finite sets, called the states and the symbols, respectively, and are finite sets, called the start states and the final states, respectively, and is a relation, called the transition relation. The transition relation is extended to by , and if and only if there exists such that and . Every transition relation can be represented as a -edge-labeled directed graph without multiple transitions with the same symbol between two states, and vice versa.

A finite-state automaton is called deterministic if and only if it has at most one start-state, and the transition relation is a partial function. The language recognized by a finite-state automaton is defined by

Single start-state vs a set of start-states

Sometimes finite-state automata are defined as having exactly one start-state. This is problematic, because one can not then represent the minimal automaton for the empty language, and the construction of the union of two automata becomes cumbersome. In contrast, when using a set of start-states, one can