0% found this document useful (0 votes)
12 views17 pages

Automata Theory 2

Automata Theory is a computer science branch focused on designing abstract self-propelled computing devices, specifically Finite Automata (FA) and their classifications, including Deterministic (DFA) and Non-deterministic Finite Automata (NDFA). The document outlines the formal definitions, related terminologies, and differences between DFA and NDFA, as well as concepts like acceptors, classifiers, transducers, and methods for converting NDFA to DFA. Additionally, it discusses DFA minimization techniques using the Myhill-Nerode theorem and equivalence theorem.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views17 pages

Automata Theory 2

Automata Theory is a computer science branch focused on designing abstract self-propelled computing devices, specifically Finite Automata (FA) and their classifications, including Deterministic (DFA) and Non-deterministic Finite Automata (NDFA). The document outlines the formal definitions, related terminologies, and differences between DFA and NDFA, as well as concepts like acceptors, classifiers, transducers, and methods for converting NDFA to DFA. Additionally, it discusses DFA minimization techniques using the Myhill-Nerode theorem and equivalence theorem.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Automata Theory

Automata Theory is a branch of computer science that designs


abstract self-propelled computing devices that automatically
follow a predetermined sequence of operations. An automaton with
a finite number of states is called a Finite Automaton. This
section introduces the fundamental concepts of Finite Automata.

Automata – What is it?


The term "Automata" is derived from the Greek word "αὐτόματα"
which means "self-acting". An automaton (Automata in plural) is
an abstract self-propelled computing device that follows a
predetermined sequence of operations automatically.

An automaton with a finite number of states is called a Finite


Automaton (FA) or Finite State Machine (FSM).

Formal definition of a Finite Automaton


An automaton can be represented by a 5-tuple (Q, ∑, δ, q0, F),
where −

Q is a finite set of states.

∑ is a finite set of symbols, called the alphabet of the


automaton.

δ is the transition function.

q0 is the initial state from where any input is processed (q0 ∈


Q).

F is a set of final state/states of Q (F ⊆ Q).

Related Terminologies

Alphabet
Definition − An alphabet is any finite set of symbols.

Example − ∑ = {a, b, c, d} is an alphabet set where ‘a’, ‘b’,


‘c’, and ‘d’ are symbols.

String
Page 1 of 17
Definition − A string is a finite sequence of symbols taken from
∑.

Example − ‘cabcad’ is a valid string on the alphabet set ∑ = {a,


b, c, d}

Length of a String
Definition − It is the number of symbols present in a string.
(Denoted by |S|).

Examples −

If S = ‘cabcad’, |S|= 6

If |S|= 0, it is called an empty string (Denoted by λ or ε)

Kleene Star

Definition
The Kleene star, ∑*, is a unary operator on a set of symbols or
strings, ∑, that gives the infinite set of all possible strings
of all possible lengths over ∑ including λ.

Representation − ∑* = ∑0 ∪ ∑1 ∪ ∑2 ∪……. where ∑p is the set of


all possible strings of length p.

Example − If ∑ = {a, b}, ∑* = {λ, a, b, aa, ab, ba, bb,………..}

Kleene Closure / Plus


Definition − The set ∑+ is the infinite set of all possible
strings of all possible lengths over ∑ excluding λ.

Representation − ∑+ = ∑1 ∪ ∑2 ∪ ∑3 ∪…….

∑+ = ∑* − { λ }

Example − If ∑ = { a, b } , ∑+ = { a, b, aa, ab, ba, bb,………..}

Page 2 of 17
Language
Definition − A language is a subset of ∑* for some alphabet ∑.
It can be finite or infinite.

Example − If the language takes all possible strings of length 2


over ∑ = {a, b}, then L = {ab, aa, ba, bb}

Deterministic Finite Automaton


Finite Automaton can be classified into two types −

Deterministic Finite Automaton (DFA)


Non-deterministic Finite Automaton (NDFA / NFA)

Deterministic Finite Automaton (DFA)


In DFA, for each input symbol, one can determine the state to
which the machine will move. Hence, it is called a Deterministic
Automaton. As it has a finite number of states, the machine is
called Deterministic Finite Machine or Deterministic Finite
Automaton.

Formal Definition of a DFA


A DFA can be represented by a 5-tuple (Q, ∑, δ, q0, F) where −

Q is a finite set of states.

∑ is a finite set of symbols called the alphabet.

δ is the transition function where δ: Q × ∑ → Q

q0 is the initial state from where any input is processed (q0 ∈


Q).

F is a set of final state/states of Q (F ⊆ Q).

Graphical Representation of a DFA


A DFA is represented by digraphs called state diagram.

Page 3 of 17
The vertices represent the states.
The arcs labeled with an input alphabet show the transitions.
The initial state is denoted by an empty single incoming arc.
The final state is indicated by double circles.
Example
Let a deterministic finite automaton be →

Q = {a, b, c},
∑ = {0, 1},
q0 = {a},
F = {c}, and
Transition function δ as shown by the following table −

Present State Next State for Input 0 Next State for Input 1
a a b
b c a
c b c

Its graphical representation would be as follows −

DFA Graphical Representation

Non-deterministic Finite Automaton


In NDFA, for a particular input symbol, the machine can move to
any combination of the states in the machine. In other words,
the exact state to which the machine moves cannot be determined.
Hence, it is called a Non-deterministic Automaton. As it has a
finite number of states, the machine is called a Non-
deterministic Finite Machine or Non-deterministic Finite
Automaton.

Page 4 of 17
Formal Definition of an NDFA
An NDFA can be represented by a 5-tuple (Q, ∑, δ, q0, F) where −
 Q is a finite set of states.
 ∑ is a finite set of symbols called the alphabet.
 δ is the transition function where δ: Q × ∑ → 2Q
(Here the power set of Q (2 Q) has been taken because in case
of NDFA, from a state, transition can occur to any
combination of Q states)

(q0 ∈ Q).
 q0 is the initial state from where any input is processed

 F is a set of final state/states of Q (F ⊆ Q).


Graphical Representation of an NDFA: (same as DFA)
An NDFA is represented by digraphs called state diagram.
 The vertices represent the states.
 The arcs labeled with an input alphabet show the
transitions.
 The initial state is denoted by an empty single incoming
arc.
 The final state is indicated by double circles.
Example
Let a non-deterministic finite automaton be →
 Q = {a, b, c}
 ∑ = {0, 1}
 q0 = {a}
 F = {c}
The transition function δ as shown below −
Present Next State for Input Next State for Input
State 0 1

a a, b b

b c a, c

c b, c c
Its graphical representation would be as follows −

Page 5 of 17
DFA vs NDFA
The following table lists the differences between DFA and NDFA.
DFA NDFA

The transition from a state is The transition from a


to a single particular next state can be to multiple
state for each input symbol. next states for each
Hence it is input symbol. Hence it is
called deterministic. called non-deterministic.

Empty string transitions are NDFA permits empty string


not seen in DFA. transitions.

In NDFA, backtracking is
Backtracking is allowed in DFA
not always possible.

Requires more space. Requires less space.

A string is accepted by a
A string is accepted by a DFA,
NDFA, if at least one of
if it transits to a final
all possible transitions
state.
ends in a final state.

Acceptors, Classifiers, and Transducers


Acceptor (Recognizer)
An automaton that computes a Boolean function is called
an acceptor. All the states of an acceptor is either accepting
or rejecting the inputs given to it.
Classifier
A classifier has more than two final states and it gives a
single output when it terminates.
Transducer
An automaton that produces outputs based on current input and/or
previous state is called a transducer. Transducers can be of two
types −
 Mealy Machine − The output depends both on the current
state and the current input.
 Moore Machine − The output depends only on the current
state.

Page 6 of 17
Acceptability by DFA and NDFA
A string is accepted by a DFA/NDFA iff the DFA/NDFA starting at
the initial state ends in an accepting state (any of the final
states) after reading the string wholly.

δ*(q0, S) ∈ F
A string S is accepted by a DFA/NDFA (Q, ∑, δ, q0, F), iff

{S | S ∈ ∑* and δ*(q0, S) ∈ F}
The language L accepted by DFA/NDFA is

δ*(q0, S′) ∉ F
A string S′ is not accepted by a DFA/NDFA (Q, ∑, δ, q0, F), iff

The language L′ not accepted by DFA/NDFA (Complement of accepted

{S | S ∈ ∑* and δ*(q0, S) ∉ F}
language L) is

Example
Let us consider the DFA shown in Figure 1.3. From the DFA, the
acceptable strings can be derived.

Strings accepted by the above DFA: {0, 00, 11, 010,


101, ...........}
Strings not accepted by the above DFA: {1, 011, 111, ........}

NDFA to DFA Conversion

Problem Statement
Let X = (Qx, ∑, δx, q0, Fx) be an NDFA which accepts the language
L(X). We have to design an equivalent DFA Y = (Qy, ∑, δy, q0,
Fy) such that L(Y) = L(X). The following procedure converts the
NDFA to its equivalent DFA −
Algorithm
Input − An NDFA
Output − An equivalent DFA
Step 1 − Create state table from the given NDFA.

Page 7 of 17
Step 2 − Create a blank state table under possible input
alphabets for the equivalent DFA.
Step 3 − Mark the start state of the DFA by q0 (Same as the
NDFA).
Step 4 − Find out the combination of States {Q0, Q1,... , Qn} for
each possible input alphabet.
Step 5 − Each time we generate a new DFA state under the input
alphabet columns, we have to apply step 4 again, otherwise go to
step 6.
Step 6 − The states which contain any of the final states of the
NDFA are the final states of the equivalent DFA.
Example
Let us consider the NDFA shown in the figure below.

q δ(q,0) δ(q,1)

a {a,b,c,d,e} {d,e}

b {c} {e}

c ∅ {b}

d {e} ∅

e ∅ ∅
Using the above algorithm, we find its equivalent DFA. The state
table of the DFA is shown in below.
q δ(q,0) δ(q,1)

[a] [a,b,c,d,e] [d,e]

[a,b,c,d,e] [a,b,c,d,e] [b,d,e]

Page 8 of 17
[d,e] [e] ∅

[b,d,e] [c,e] [e]

[e] ∅ ∅

[c, e] ∅ [b]

[b] [c] [e]

[c] ∅ [b]
The state diagram of the DFA is as follows −

DFA Minimization

DFA Minimization using Myphill-Nerode Theorem


Algorithm
Input − DFA
Output − Minimized DFA

Page 9 of 17
Step 1 − Draw a table for all pairs of states (Q i, Qj) not

Step 2 − Consider every state pair (Qi, Qj) in the DFA where Qi ∈
necessarily connected directly [All are unmarked initially]

F and Qj ∉ F or vice versa and mark them. [Here F is the set of


final states]
Step 3 − Repeat this step until we cannot mark anymore states −
If there is an unmarked pair (Qi, Qj), mark it if the pair {δ (Qi,
A), δ (Qi, A)} is marked for some input alphabet.
Step 4 − Combine all the unmarked pair (Qi, Qj) and make them a
single state in the reduced DFA.
Example
Let us use Algorithm 2 to minimize the DFA shown below.

Step 1 − We draw a table for all pair of states.


a b c d e f

f
Step 2 − We mark the state pairs.
a b c d e f

c ✔ ✔

d ✔ ✔

e ✔ ✔

f ✔ ✔ ✔
Step 3 − We will try to mark the state pairs, with green colored
check mark, transitively. If we input 1 to state ‘a’ and ‘f’, it

Page 10 of 17
will go to state ‘c’ and ‘f’ respectively. (c, f) is already
marked, hence we will mark pair (a, f). Now, we input 1 to state
‘b’ and ‘f’; it will go to state ‘d’ and ‘f’ respectively. (d,
f) is already marked, hence we will mark pair (b, f).
a b c d e f

c ✔ ✔

d ✔ ✔

e ✔ ✔

f ✔ ✔ ✔ ✔ ✔
After step 3, we have got state combinations {a, b} {c, d} {c,
e} {d, e} that are unmarked.
We can recombine {c, d} {c, e} {d, e} into {c, d, e}
Hence we got two combined states as − {a, b} and {c, d, e}
So the final minimized DFA will contain three states {f}, {a, b}
and {c, d, e}

DFA Minimization using Equivalence Theorem


If X and Y are two states in a DFA, we can combine these two
states into {X, Y} if they are not distinguishable. Two states
are distinguishable, if there is at least one string S, such
that one of δ (X, S) and δ (Y, S) is accepting and another is
not accepting. Hence, a DFA is minimal if and only if all the
states are distinguishable.
Algorithm 3
Step 1 − All the states Q are divided in two partitions − final
states and non-final states and are denoted by P0. All the states
in a partition are 0th equivalent. Take a counter k and
initialize it with 0.
Step 2 − Increment k by 1. For each partition in P k, divide the
states in Pk into two partitions if they are k-distinguishable.
Two states within this partition X and Y are k-distinguishable
if there is an input S such that δ(X, S) and δ(Y, S) are (k-1)-
distinguishable.
Step 3 − If Pk ≠ Pk-1, repeat Step 2, otherwise go to Step 4.
Step 4 − Combine kth equivalent sets and make them the new states
of the reduced DFA.

Page 11 of 17
Example
Let us consider the following DFA −

q δ(q,0) δ(q,1)

a b c

b a d

c e f

d e f

e e f

f f f
Let us apply the above algorithm to the above DFA −
 P0 = {(c,d,e), (a,b,f)}
 P1 = {(c,d,e), (a,b),(f)}
 P2 = {(c,d,e), (a,b),(f)}
Hence, P1 = P2.
There are three states in the reduced DFA. The reduced DFA is as
follows −

Q δ(q,0) δ(q,1)

(a, b) (a, b) (c,d,e)

(c,d,e) (c,d,e) (f)

(f) (f) (f)

Moore and Mealy Machines

Finite automata may have outputs corresponding to each


transition. There are two types of finite state machines that
generate output −
 Mealy Machine
 Moore machine
Mealy Machine
A Mealy Machine is an FSM whose output depends on the present
state as well as the present input.
It can be described by a 6 tuple (Q, ∑, O, δ, X, q0) where −
Page 12 of 17
Q is a finite set of states.
∑ is a finite set of symbols called the input alphabet.
O is a finite set of symbols called the output alphabet.
δ is the input transition function where δ: Q × ∑ → Q
X is the output transition function where X: Q × ∑ → O

(q0 ∈ Q).
q0 is the initial state from where any input is processed

The state table of a Mealy Machine is shown below −


Next state

Present state input = 0 input = 1

State Output State Output

→ a b x1 c x1

b b x2 d x3

c d x3 c x1

d d x3 d x2
The state diagram of the above Mealy Machine is −

Moore Machine
Moore machine is an FSM whose outputs depend on only the present
state.
A Moore machine can be described by a 6 tuple (Q, ∑, O, δ, X, q 0)
where −
 Q is a finite set of states.
 ∑ is a finite set of symbols called the input alphabet.
 O is a finite set of symbols called the output alphabet.
 δ is the input transition function where δ: Q × ∑ → Q

Page 13 of 17
X is the output transition function where X: Q → O

(q0 ∈ Q).
q0 is the initial state from where any input is processed

The state table of a Moore Machine is shown below −


Next State
Present state Output
Input = 0 Input = 1

→ a b c x2

b b d x1

c c d x2

d d d x3
The state diagram of the above Moore Machine is −

Mealy Machine vs. Moore Machine


The following table highlights the points that differentiate a
Mealy Machine from a Moore Machine.
Mealy Machine Moore Machine

Output depends both upon the


Output depends only upon the
present state and the
present state.
present input

Generally, it has fewer Generally, it has more


states than Moore Machine. states than Mealy Machine.

The value of the output The value of the output


function is a function of function is a function of

Page 14 of 17
the transitions and the the current state and the
changes, when the input changes at the clock edges,
logic on the present state whenever state changes
is done. occur.

In Moore machines, more


Mealy machines react faster logic is required to decode
to inputs. They generally the outputs resulting in
react in the same clock more circuit delays. They
cycle. generally react one clock
cycle later.

Moore Machine to Mealy Machine


Algorithm 4
Input − Moore Machine
Output − Mealy Machine
Step 1 − Take a blank Mealy Machine transition table format.
Step 2 − Copy all the Moore Machine transition states into this
table format.
Step 3 − Check the present states and their corresponding
outputs in the Moore Machine state table; if for a state
Qi output is m, copy it into the output columns of the Mealy
Machine state table wherever Qi appears in the next state.
Example
Let us consider the following Moore machine −
Next State
Present State Output
a = 0 a = 1

→ a d b 1

b a d 0

c c c 0

d b a 1
Now we apply Algorithm 4 to convert it to Mealy Machine.
Step 1 & 2 −
Present State Next State

a = 0 a = 1

Page 15 of 17
State Output State Output

→ a d b

b a d

c c c

d b a
Step 3 −
Next State

Present State a = 0 a = 1

State Output State Output

=> a d 1 b 0

b a 1 d 1

c c 0 c 0

d b 0 a 1
Mealy Machine to Moore Machine
Algorithm 5
Input − Mealy Machine
Output − Moore Machine
Step 1 − Calculate the number of different outputs for each
state (Qi) that are available in the state table of the Mealy
machine.
Step 2 − If all the outputs of Qi are same, copy state Q i. If it
has n distinct outputs, break Qi into n states as Qin where n = 0,
1, 2.......
Step 3 − If the output of the initial state is 1, insert a new
initial state at the beginning which gives 0 output.
Example
Let us consider the following Mealy Machine −
Next State

Present State a = 0 a = 1

Next State Output Next State Output

Page 16 of 17
→ a d 0 b 1

b a 1 d 0

c c 1 c 0

d b 0 a 1
Here, states ‘a’ and ‘d’ give only 1 and 0 outputs respectively,
so we retain states ‘a’ and ‘d’. But states ‘b’ and ‘c’ produce
different outputs (1 and 0). So, we divide b into b0,
b1 and c into c0, c1.
Next State
Present State Output
a = 0 a = 1

→ a d b1 1

b0 a d 0

b1 a d 1

c0 c1 C0 0

c1 c1 C0 1

d b0 a 0

Page 17 of 17

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy