1.Informal description
An automaton is supposed to run on some given sequence of inputs in discrete time steps. An automaton
gets one input every time step that is picked up from a set of symbolsor letters, which is called an alphabet.
At any time, the symbols so far fed to the automaton as input form a finite sequence of symbols, which is
called a word. An automaton contains a finite set of states. At each instance in time of some run, the
automaton is in one of its states. At each time step when the automaton reads a symbol, it jumps or
transitions to another state that is decided by a function that takes the current state and symbol as
parameters. This function is called the transition function. The automaton reads the symbols of the input
word one after another and transitions from state to state according to the transition function, until the word
is read completely. Once the input word has been read, the automaton is said to have stopped and the
state at which automaton has stopped is called the 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 the set of accepting states. If the final state is an accepting 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.
In short, an automaton is a mathematical object that takes a word as input and decides either to accept it or
reject it. Since all computational problems are reducible into the accept/reject question on words (all
problem instances can be represented in a finite length of symbols)[citation needed], automata theory plays a
crucial role in computational theory.
2.Connection to Category theory
One can define several distinct categories of automata[2] following the automata classification into different
types described in the previous section. The mathematical category of deterministic automata, sequential
machines or sequential automata, and Turing machines with automata homomorphisms defining the
arrows between automata is aCartesian closed category,[3][4] it has both categorical limits and colimits. An
automata homomorphism maps a quintuple of an automaton Ai onto the quintuple of another
automaton Aj.[5] Automata homomorphisms can also be considered as automata transformations or as
semigroup homomorphisms, when the state space,S, of the automaton is defined as a
semigroup Sg. Monoids are also considered as a suitable setting for automata in monoidal categories.[6][7][8]
Categories of variable automata
One could also define a variable automaton, in the sense of Norbert Wiener in his book on "Human Use of
Human Beings" via the endomorphisms
. Then, one can show that such variable automata
homomorphisms form a mathematical group. In the case of non-deterministic, or other complex kinds of
automata, the latter set of endomorphisms may become, however, a variable automaton groupoid.
Therefore, in the most general case, categories of variable automata of any kind are categories of
groupoids[9] or groupoid categories. Moreover, the category of reversible automata is then a 2-category,
and also a subcategory of the 2-category of groupoids, or the groupoid category
3.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 have probabilistic acceptance.
Different combinations of the above variations produce many classes of automaton.
Automata theory is a subject matter that studies properties of various types of automata. For example, the
following questions are studied about a given type of automata.
Which class of formal languages is recognizable by some type of automata? (Recognizable
Are 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 a 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 the
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 recognizable language? (Determinization)
For a given formal language, what is the smallest automaton that recognizes it? (Minimization).
Transducers generate output based on a given input and/or a state using actions. They are used for control
applications and in the field of computational linguistics.
In control applications, two types are distinguished:
Moore machine
The FSM uses only entry actions, i.e., output depends only on the state. The advantage of the
Moore model is a simplification of the behaviour. Consider an elevator door. The state machine
recognizes two commands: "command_open" and "command_close" which trigger state changes.
The entry action (E:) in state "Opening" starts a motor opening the door, the entry action in state
"Closing" starts a motor in the other direction closing the door. States "Opened" and "Closed" stop
the motor when fully opened or closed. They signal to the outside world (e.g., to other state
machines) the situation: "door is open" or "door is closed".
Fig. 7 Transducer FSM: Mealy model example
Mealy machine
The FSM uses only input actions, i.e., output depends on input and state. The use of a Mealy FSM
leads often to a reduction of the number of states. The example in figure 7 shows a Mealy FSM
implementing the same behaviour as in the Moore example (the behaviour depends on the
implemented FSM execution model and will work, e.g., for virtual FSM but not for event driven
FSM). There are two input actions (I:): "start motor to close the door if command_close arrives"
and "start motor in the other direction to open the door if command_open arrives". The "opening"
and "closing" intermediate states are not shown.
In practice[of what?] mixed models are often used.[citation needed]
More details about the differences and usage of Moore and Mealy models, including an
executable example, can be found in the external technical note "Moore or Mealy model?"
2.Mathematical model
In accordance with the general classification, the following formal definitions are found:
A deterministic finite state machine or acceptor deterministic finite state machine is
a quintuple
, where:
is the input alphabet (a finite, non-empty set of symbols).
is a finite, non-empty set of states.
is an initial state, an element of
is the state-transition function:
would be
(in a nondeterministic finite automaton it
, i.e.,
would return a set of states).
is the set of final states, a (possibly empty) subset of
For both deterministic and non-deterministic FSMs, it is conventional to allow
does not have to be defined for every combination of
is in a state
, the next symbol is
is not defined, then
to be a partial function,
. If an FSM
can announce an error (i.e.
reject the input). This is useful in definitions of general state machines, but less useful when transforming
the machine. Some algorithms in their default form may require total functions.
A finite-state machine is a restricted Turing machine where the head can only perform "read" operations,
and always moves from left to right.[9]
A finite state transducer is a sextuple
, where:
is the input alphabet (a finite non empty set of symbols).
is the output alphabet (a finite, non-empty set of symbols).
is a finite, non-empty set of states.
is the initial state, an element of
. In a nondeterministic finite automaton,
is a set of initial
is the state-transition function:
is the output function.
If the output function is a function of a state and input alphabet (
) that definition
corresponds to the Mealy model, and can be modelled as a Mealy machine. If the output function depends
only on a state (
) that definition corresponds to the Moore model, and can be modelled as
a Moore machine. A finite-state machine with no output function at all is known as
a semiautomaton or transition system.
If we disregard the first output symbol of a Moore machine,
, then it can be readily converted to an
output-equivalent Mealy machine by setting the output function of every Mealy transition (i.e. labeling every
edge) with the output symbol given of the destination Moore state. The converse transformation is less
straightforward because a Mealy machine state may have different output labels on its incoming transitions
(edges). Every such state needs to be split in multiple Moore machine states, one for every incident output
3.Decision table
Decision tables are a precise yet compact way to model complicated logic.[1]
Decision tables, like flowcharts and if-then-else and switch-case statements, associate conditions with
actions to perform, but in many cases do so in a more elegant way.
In the 1960s and 1970s a range of "decision table based" languages such as Filetab were popular for
business programming.
The four quadrants
Conditions Condition alternatives
Action entries
Each decision corresponds to a variable, relation or predicate whose possible values are listed among the
condition alternatives. Each action is a procedure or operation to perform, and the entries specify whether
(or in what order) the action is to be performed for the set of condition alternatives the entry corresponds to.
Many decision tables include in their condition alternatives the don't care symbol, a hyphen. Using don't
cares can simplify decision tables, especially when a given condition has little influence on the actions to be
performed. In some cases, entire conditions thought to be important initially are found to be irrelevant when
none of the conditions influence which actions are performed.
Aside from the basic four quadrant structure, decision tables vary widely in the way the condition
alternatives and action entries are representedSome decision tables use simple true/false values to
represent the alternatives to a condition (akin to if-then-else), other tables may use numbered alternatives
(akin to switch-case), and some tables even use fuzzy logic or probabilistic representations for condition
alternatives.[4] In a similar way, action entries can simply represent whether an action is to be performed
(check the actions to perform), or in more advanced decision tables, the sequencing of actions to perform
(number the actions to perform).
The limited-entry decision table is the simplest to describe. The condition alternatives are simple Boolean
values, and the action entries are check-marks, representing which of the actions in a given column are to
be performed.
A technical support company writes a decision table to diagnose printer problems based upon symptoms
described to them over the phone from their clients.
The following is a balanced decision table (created by Systems Made Simple).
Printer troubleshooter
Printer does not print
Conditions A red light is flashing
Printer is unrecognized
Check the power cable
Check the printer-computer cable
Ensure printer software is installed X
Check/replace ink
Check for paper jam
Of course, this is just a simple example (and it does not necessarily correspond to the reality of printer
troubleshooting), but even so, it demonstrates how decision tables can scale to several conditions with
many possibilities
4.Closure properties
The set of Büchi automata is closed under the following operations.
Let A=(QA,Σ,ΔA,IA,FA) and B=(QB,Σ,ΔB,IB,FB) be Büchi automata and C=(QC,Σ,ΔC,IC,FC) be a finite
Union: There is a Büchi automaton that recognizes the language L(A)∪L(B).
Proof: If we assume, w.l.o.g., QA∩QB is empty then L(A)∪L(B) is recognized by the Büchi
automaton (QA∪QB, Σ, ΔA∪ΔB, IA∪IB, FA∪FB).
Intersection: There is a Büchi automaton that recognizes the language L(A)∩L(B).
Proof: The Büchi automaton A'=(Q',Σ,Δ',I',F') recognizes L(A)∩L(B), where
 Q' = QA × QB × {1,2}
 Δ' = Δ1 ∪ Δ2
Δ1 = {( (qA,qB,1), a, (q'A,q'B,i) ) | (qA,a,q'A)∈ΔA and (qB,a,q'B)∈ΔB and if qA∈FA then i=2
else i=1 }
Δ2 = {( (qA,qB,2), a, (q'A,q'B,i) ) | (qA,a,q'A)∈ΔA and (qB,a,q'B)∈ΔB and if qB∈FB then i=1
else i=2 }
 I' = IA × IB × {1}
 F' = { (qA,qB,2) | qB∈FB }
By construction, r'=(qA0,qB0,i0),(qA1,qB1,i1),... is a run of automaton A' on input word w iff rA=qA0,qA1,...
is run of A on w and rB=qB0,qB1,... is run of B on w. rA is accepting and rB is accepting iff r' is
concatenation of an infinite series of finite segments of 1-states(states with third component 1) and
2-states(states with third component 2) alternatively. There is such a series of segments of r' iff r' is
accepted by A'.
Concatenation: There is a Büchi automaton that recognizes the language L(C)⋅L(A).
Proof: If we assume, w.l.o.g., QC∩QA is empty then the Büchi automaton A'=(QC∪QA,Σ,Δ',I',FA)
recognizes L(C)⋅L(A), where
Δ' = ΔA ∪ ΔC ∪ { (q,a,q') | q'∈IA and ∃f∈FC. (q,a,f)∈ΔC }
if IC∩FC is empty then I' = IC otherwise I' = IC ∪ IA
ω-closure: If L(C) does not contain empty word then there is a Büchi automaton
that recognizes the language L(C)ω.
Proof: The Büchi automaton that recognizes L(C)ω is constructed in two stages. First, we
construct a finite automaton A' such that A' also recognizes L(C) but there are no incoming
transitions to initial states of A'. So, A'=(QC ∪ {qnew},Σ,Δ',{qnew},FC), where
Δ' = ΔC ∪ { (qnew,a,q') | ∃q∈IC. (q,a,q')∈ΔC}. Note that L(C)=L(A') because L(C) does not contain the
empty string. Second, we will construct the Büchi automaton A" that recognize L(C)ω by adding a
loop back to the initial state of A'. So, A"=(QC ∪ {qnew},Σ,Δ",{qnew},{qnew}), where
Δ" = Δ' ∪ { (q,a,qnew) | ∃q'∈FC. (q,a,q')∈Δ'}.
Complementation:There is a Büchi automaton that recognizes the language
Proof: The proof is presented here.