Following is an introductory definition of one type of automata, which attempts to help one to
grasp the essential concepts involved in automata theory.
[edit] Informal description
An automaton is supposed to run on some given sequence or string of inputs in discrete time
steps. At each time step, an automaton gets one input that is picked up from a set of symbols or
letters, which is called an Alphabet. An automaton takes input from a finite sequence of symbols,
which is called a word. An automaton contains a finite set of states. During each time instance of
some run, automaton has to be in one of its states. At each time step when automaton reads a
symbol, it jumps or transits to next state depending on its current state and the read symbol. This
function over current state and input symbol is called transition function. The automaton reads
input word one symbol after another in the sequence and transits from state to state according to
the transition function, until the word is read completely. Once the input word is read, the
automaton is said to have been stopped and the state at which automaton has stopped is called
final state. Depending on the final state, it's said that the automaton either accepts or rejects an
input word. There is a subset of states of the automaton, which is defined as a set of accepting
states. If the final state is an accept state, then the automaton accepts the word. Otherwise, the
word is rejected. The set of all the words accepted by an automaton is called the language
recognized by the automaton.
[edit] Formal definition
Automaton
An automaton is represented formally by the 5-tuple , where:
Q is a finite set of states.
∑ is a finite set of symbols. It is said to be alphabet of the automaton.
δ is the transition function, that is,
q0 is the start state, that is, the state which the automaton is in when no input has
been processed yet, where q0∈ Q.
F is a set of states of Q (i.e. F⊆Q) called accept states.
Input word
Automaton reads a finite string of symbols a1,a2,....,an, where , which is called
*
a input word. Set of all words is denoted by Σ . Sometimes a special character is used to
denote termination of a string (sometimes represented by λ), which is also included in
alphabet.
Run
A run of the automaton on an input word , is a sequence of
states q0,q1,q2,....,qn, where such that q0 is a start state and qi = δ(qi − 1,ai) for
. In words, at first the automaton is at the start state q0 and then automaton
reads symbols of the input word in sequence. When automaton reads symbol ai then it
jumps to state qi = δ(qi − 1,ai). qn said to be the final state of the run.
Accepting word
A word is accepted by the automaton if .
Recognized language
An automaton can recognize a formal language. The recognized language by an
automaton is the set of all the words that are accepted by the automaton.
Recognizable languages
The recognizable languages is the set of languages that are recognized by some
automaton. For above definition of automata the recognizable languages are regular
languages. For different definitions of automata, the recognizable languages are different.
[edit] Variations in definition of automata
Automata are defined to study useful machines under mathematical formalism. So, the definition
of an automaton is open to variations according to the "real world machine", which we want to
model using the automaton. People have studied many variations of automata. Above, the most
standard variant is described, which is called deterministic finite automaton. The following are
some popular variations in the definition of different components of automata.
Input
Finite input: An automaton that accepts only finite sequence of words. The above
introductory definition only accepts finite words.
Infinite input: An automaton that accepts infinite words (ω-words). Such automata are
called ω-automata.
Tree word input: The input may be a tree of symbols instead of sequence of symbols. In
this case after reading each symbol, the automaton reads all the successor symbols in the
input tree. It is said that the automaton makes one copy of itself for each successor and
each such copy starts running on one of the successor symbol from the state according to
the transition relation of the automaton. Such an automaton is called tree automaton.
States
Finite states: An automaton that contains only a finite number of states. The above
introductory definition describes automata with finite numbers of states.
Infinite states: An automaton that may not have a finite number of states, or even a
countable number of states. For example, the quantum finite automaton or topological
automaton has uncountable infinity of states.
Stack memory: An automaton may also contain some extra memory in the form of a stack
in which symbols can be pushed and popped. This kind of automaton is called a
pushdown automaton
Transition function
Deterministic: For a given current state and an input symbol, if an automaton can only
jump to one and only one state then it is a deterministic automaton.
Nondeterministic: An automaton that, after reading an input symbol, may jump into any
of a number of states, as licensed by its transition relation. Notice that the term transition
function is replaced by transition relation: The automaton non-deterministically decides
to jump into one of the allowed choices. Such automaton are called nondeterministic
automaton.
Alternation: This idea is quite similar to tree automaton, but orthogonal. The automaton
may run its multiple copies on the same next read symbol. Such automata are called
alternating automaton. Acceptance condition must satisfy all runs of such copies to
accept the input.
Acceptance condition
Acceptance of finite words: Same as described in the informal definition above.
Acceptance of infinite words: an omega automaton cannot have final states, as infinite
words never terminate. Rather, acceptance of the word is decided by looking at the
infinite sequence of visited states during the run.
Probabilistic acceptance: An automaton need not strictly accept or reject an input. It may
accept the input with some probability between zero and one. For example, quantum
finite automaton, geometric automaton and metric automaton has probabilistic
acceptance.
Different combinations of the above variations produce many variety of automaton.
[edit] Automata theory
Automata theory is a subject matter which studies properties of various types of automata. For
example, following questions are studied about a given type of automata.
Which class of formal languages is recognizable by some type of automata?
(Recognizable languages)
Is certain automata closed under union, intersection, or complementation of formal
languages?(Closure properties)
How much is a type of automata expressive in terms of recognizing class of formal
languages? And, their relative expressive power?(Language Hierarchy)
Automata theory also studies if there exist any effective algorithm or not to solve problems
similar to following list.
Does an automaton accept any input word?(emptiness checking)
Is it possible to transform a given non-deterministic automaton into deterministic
automaton without changing the recognizing language?(Determinization)
For a given formal language, what is the smallest automaton that recognize it?
(Minimization).
[edit] Classes of automata
Following is an incomplete list of some types of automata.
Automata Recognizable language
Deterministic finite automata (DFA) regular languages
Nondeterministic finite automata (NFA) regular languages
Nondeterministic finite automata with ε transitions (FND-ε or ε-
regular languages
NFA)
Pushdown automata (PDA) context-free languages
Linear bounded automata (LBA) context-sensitive language
recursively enumerable
Turing machines
languages
Timed automata
Deterministic Büchi automata omega limit languages
Nondeterministic Büchi automata omega regular languages
Nondeterministic/Deterministic Rabin automata omega regular languages
Nondeterministic/Deterministic Streett automata omega regular languages
Nondeterministic/Deterministic parity automata omega regular languages
Nondeterministic/Deterministic Muller automata