0% found this document useful (0 votes)
73 views

Toc Unit 1 Finite Automata

Toc Unit 1 notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Toc Unit 1 Finite Automata

Toc Unit 1 notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 132

Theory of Computation

UNIT 1

FORMAL LANGUAGE THEORY AND FINITE


AUTOMATA
Computation
2

⚫ Computation is a general term for any type of information

processing that can be represented as an algorithm precisely


(mathematically).
Computation
3

 Computation is a general term for any type of information processing that

can be represented as an algorithm precisely (mathematically).

Examples:
⯍ Adding two numbers in our brains, on a piece of paper or using
a calculator.
Computation
4

 Computation is a general term for any type of information processing that

can be represented as an algorithm precisely. (mathematically)

Examples:
⯍ Adding two numbers in our brains, on a piece of paper or using
a calculator.

⯍ Converting a decimal number to its binary presentation or vise


versa.
Computation
5

 Computation is a general term for any type of information processing that

can be represented as an algorithm precisely (mathematically).

Examples:
 Adding two numbers in our brains, on a piece of paper or using
a calculator.
 Converting a decimal number to its binary presentation or vise
versa.

 Finding the greatest common divisors of two numbers.


Why Theory in Computation ?
6

 Theory gives us
⚫ Concepts
⚫ Principles
⚫ Steps
⚫ Limitations
⚫ Advantages
⚫ etc
Theory of Computation
7

 A very fundamental and traditional branch of Theory of

Computation seeks:
 A more tangible definition for the intuitive notion of
algorithm which results in a more concrete definition for
computation.
Theory of Computation
8

 A very fundamental and traditional branch of Theory of

Computation seeks:
 A more tangible definition for the intuitive notion of
algorithm which results in a more concrete definition for
computation.

 Finding the boundaries (limitations) of computation.


Algorithm
9

 A finite sequence of simple instructions that is guaranteed

to halt in a finite amount of time.


Basic Concepts
10

 The Basic Concepts of TOC are


1. Languages
2. Grammar
3. Automata (Automaton)
Languages
11

 A language is a structured system of communication used by humans,

based on speech and gesture (spoken language), sign, or often writing.

 Language consist of

1. Symbols

2. Alphabets

3. Strings
Strings and Languages
12
 Symbols: are Building blocks of language.
Ex. {a, b, c, d, e,…… 1, 2, 3, 4,……., A, B, C, D……..}
 Alphabet: Finite, nonempty set of symbols
 Examples:
  = {0, 1}: binary alphabet
  = {a, b, c, …, z}: the set of all lower case letters
 The set of all ASCII characters

 String: Finite sequence of symbols from an alphabet  is represented


by w
 Examples:
 01101 where  = {0, 1} =0,1,01,10, 11,
 abracadabra where  = {a, b, c, …, z}
Strings and Languages
13
 Empty String: The string with zero occurrences of symbols
from  and is denoted e or  or 

 Length of String: Number of symbols in the string


 The length of a string w is usually written |w| w=1010
 |1010| = 4
 |e| = 0
 |uv| = |u| + |v|

 Reverse : wR
 If w = abc, wR = cba
Strings and Languages
14

 Concatenation: if x and y are strings, then xy is the string

obtained by placing a copy of y immediately after a copy of x


 x = a1a2 …ai, y = b1b2 …bj
 xy = a1a2 …aib1b2 …bj
 Example: x = 01101, y = 110, xy = 01101110
 xe = ex = x
Strings and Languages
15

 Substring: any string of consecutive characters in some string w


 If w = abc
 e, a, b, c, bc, ab, abc are substrings of w

 Prefix and suffix:


 if w = vu
 v is a prefix of w
 u is a suffix of w
 Example 1:
 If w = abc
 a, ab , abc are prefixes of w
 c, bc, abc are suffixes of w
 Example 2:

 Unhappy in this “un” is prefix and in quickly “ly” is suffix


Strings and Languages
16

⚫ Suppose: S is the string banana


 Prefix : ban, banana

 Suffix : ana, banana

 Substring : nan, ban, ana, banana


* Closure/ Kleene Closure/ Power of an (∑) Alphabet

17

 Power of an (∑) Alphabet: k = the set of strings of length k


with symbols from 

 Example:  = {0, 1}
 0 =set of all string of length zero  =1
 1 = set of all string of length 1 =  = {0, 1} =21
 2 = set of all string of length 2
    = {0, 1}. {0, 1} = {00, 01, 10, 11} =22
 3 = set of all string of length 3 =     23
  2  = {00, 01, 10, 11} . {0, 1} = {000, 010, 100, 110, 001,
011, 101, 111}
Kleene Closure/ Power of an (∑) Alphabet
18
⚫ The set of all possible strings over  is called Kleene Closure denoted by
*
 *= n= = 0  1  2  3  …

⚫ Positive Closure

 + = 1  2  3  …
 * = +   or + + 
 + = * - 
Strings and Languages
19
 Language: set of strings chosen from some alphabet
⚫ A language is a subset of *
 Example of languages:

⯍ The set of valid Arabic words


⯍ If ∑=(a, b) then L1 is Language of all strings of length two.
 L1={aa, bb, ab, ba}

⯍ If ∑=(a, b) then L2 is Language of all strings of length three.


 L2={aaa, bbb, aba, aab, abb, bab, bba, baa }

⯍ The set of strings consisting of n 0’s followed by n 1’s if ∑=(0, 1)


 {e, 01, 0011, 000111, …}
⯍ The set of strings with equal number of 0’s and 1’s if ∑=(0, 1)
 {e, 01, 10, 0011, 0101, 1010, 1001, 1100, …}
Strings and Languages
20

⚫ Empty language:  = { }

 The language { } consisting of the empty string

 Note:   {e}

⚫ Languages can be finite or infinite

 L1 = {a, aba, bba}

 L2 = {an | n > 0}={a, aa, aaa, aaaa,…….}

 If ∑=(a, b) then L3 is Language of all strings starts with a.

L3={a, aa, aaa, aaaa,…….ab, abb, aab,………..}


Strings and Languages
21

⚫ Can concatenate languages


 L1L2 = {xy | x  L1, y  L2}
 Ln = L concatenated with itself n times
 L0 = {e}
 L1 = L

⚫ Star-closure
 L* = L0  L1  L2  ...
 L+ = L* - L0
Strings and Languages
22

OPERATION DEFINITION
union of L and M L  M = {s | s is in L or s is in M}
written L  M
concatenation of L LM = {st | s is in L and t is in M}
and M written LM
Kleene closure of L
L* = L0  L1  L2  ...
written as L*
L* denotes “zero or more concatenations of “ L
positive closure of L
written as L+ L+ = L1  L2  ...
L+ denotes “one or more concatenations of “ L
L+ = LL*
Strings and Languages (Example)
23

⚫ The language L consists of strings over {a,b} in which each


string begins with an a should have an even length

 aa, ab  L
 aaaa, aaab, aaba ,aabb ,abaa, abab, abba, abbb  L

 baa  L
 aL
Strings and Languages (Example)
24

⚫ The language L consists of strings over {a,b} in which each occurring of b is

immediately preceded by a

 eL

 ab  L

 abaabab  L

 bb  L

 bab  L

 abb  L
Strings and Languages (Example)
25
⚫ Let X = {a,b,c} and Y = {abb, ba}. Then

 XY = {aabb, babb, cabb, aba, bba, cba}

 X0 = {e}

 X1 = X = {a,b,c}

 X2 = XX = {aa,ab,ac,ba,bb,bc,ca,cb,cc}

 X3 = XXX =
{aaa,aab,aac,aba,abb,abc,aca,acb,acc,baa,bab,bac,bba,bbb,
bbc,bca,bcb,bcc,caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc}
Strings and Languages (Example)
26
⚫ The language L = {a,b} consists of the strings over {a,b} that contain the
substring bb
 bb  L
 abb  L
 bbb  L
 aabb  L
 bbaaa  L
 bbabba  L
 abab  L
 bab  L
 bL
Strings and Languages (Example)
27
 Let L be the language that consists of all strings that begin
with aa or end with bb
 L1 = {aa}{a,b}*
 L2 = {a,b}*{bb}
 L = L1  L2 = {aa}{a,b}*  {a,b}*{bb}
 bb  L
 abb  L
 bbb  L
 aabb  L
 bbaaa  L
 bbabba  L
 abab  L
 bab  L
 ba  L
Finite Representations of Languages
28

 Languages may be infinite sets of strings. We need a finite notation


for them. There are at least four ways to do this:

1. Language generators. The language can be represented as a


mathematical sequence w1, w2, w3,……. such that the language is
equal to the {w1, w2, w3………}. Given an integer i, the generator will
produce the string wi.
2. Language acceptors. The language can be represented as a
mathematical predicate, a membership tester. Given a string, this will
tell if the string is in the language.
3. Mathematical descriptions, like { an bn : n>=0 }
4. Explicit listings, like {0, 1, 01, 10}.
Finite Representations of Languages
29

 Explicit listings work only for finite languages.

 Math descriptions are very general, but it may be hard to know if a string
is in the language.

 Language acceptors have a hard time answering some questions, such as

whether the language is empty.

 Language generators have a hard time testing if a string is in the language.

 There are uncountably many languages over a nonempty set ∑ but only

countable many representations in a finite set of symbols. Therefore most


languages will never have a finite representation.
Regular Expressions
for Representations of Languages
30

Regular Expressions: Regular expressions are one way to represent languages.


They are analogous to arithmetic expressions for representing quantities. This
notation will turn out to be useful for describing programming languages and
also for text searching applications.

 There are rules of inference for constructing regular expressions over an


alphabet .

1. If a Є ∑ then a itself is a regular expression over ∑.


2. φ is a regular expression over ∑ .
3. If E and F are regular expressions over ∑ then so is (EF).
4. If E and F are regular expressions over ∑ then so is (E U F).
5. If E is a regular expression over ∑ then so is (E).
6. Parentheses can often be omitted.
⚫ .
Regular Expressions
for Representations of Languages
31

 Example: Suppose Σ = {0, 1}.

⚫ Then 0 is a regular expression over {0, 1} by 1.


⚫ So (0) is a regular expression over {0, 1} by 5.
⚫ Also, 1 is a regular expression over {0, 1} by 1.
⚫ So 1.(0) is a regular expression over {0, 1} by 3.
⚫ Also (1) is a regular expression over {0, 1} by 5.
⚫ So 0.(1) is a regular expression over {0, 1} by 3.
⚫ Thus 1(0)U0(1) is a regular expression over {0, 1} by 4.
Regular Expressions
for Representations of Languages
32

 Language Represented by a Regular Expression


 If E is a regular expression then let L(E) be the language it represents.
 We have the following rules:

⚫ If a Є ∑ then L(a) = {a}


⚫ L(φ) = φ;
⚫ L(EF) = L(E) . L(F)
⚫ L(E U F) = L(E) U L(F)
⚫ L(E*) = L(E)*
Grammar
for Representations of Languages
33

 A grammar for a natural language tells us whether a


particular sentence is well-formed or not.
 It also tells us weather the sentence /string is a part of
language or not.
 Formal grammar:
G = (V, T, S, P)
V: finite set of variables
T: finite set of terminal symbols
SV: start variable
P: finite set of productions
Grammar
for Representations of Languages
34

⚫ G ({S, A}, {a,b}, S, P)


where P
S -> Ab,
A -> aAb,
A -> L.
Automata
35
⚫ An automaton also known as finite automata (FA) or Finite state
machine (FSM) is an abstract model of a digital computer.
⚫ A finite automaton (FA) is a simple idealized machine used to
recognize patterns within input taken from some character set (or
alphabet) C.
⚫ The job of an FA is to accept or reject an input depending on
whether the pattern defined by the FA occurs in the input.
Includes:
 Input file:
 Read as a string
 One symbol at a time, left to right, EOF.
 Can produce output
 Has temporary storage
⯍ Unlimited, one character, may change
 Control unit
⯍ Finite number of internal states, may change
Automata
36

 A finite automaton (FA) is used for solving some common types of


algorithms such as.

1. Design of digital circuit


2. String Matching
3. Communication protocols for information exchange
4. Lexical analyzer of a compiler
Automata
37

Input file

Control Unit

Output Accept / Reject Storage


Automata
38

 Input file: is divided into squares.

 Input is a string over a given alphabet.

 Each input square holds a symbol.

 The symbols are read from left to right, one at a time.

 The end of the input string can be detected.

 Storage: consists of an unlimited number of cells.

 Each cell can hold a symbol from an alphabet (which can be different from the input alphabet).

 The contents of the storage cells can be read and changed.


Automata
39

 Control unit: has a finite number of internal states.

 Can be in any one of the internal states.

 Can change state in some defined manner.


Automata
40

Finite Automata(FA) is the simplest machine to recognize patterns. The finite automata or finite state
machine is an abstract machine which have five elements or tuple. It has a set of states and rules for
moving from one state to another but it depends upon the applied input symbol. Basically it is an
abstract model of digital computer. Following figure shows some essential features of a general
automation.

Formal specification of machine is


{ Q, Σ, q, F, δ }.
Q : Finite set of states.
Σ : set of Input Symbols.
q : Initial state.
F : set of Final States.
δ : Transition Function.
Automata
41

To understand consider the example. Consider the two states q0, q1. q0 is a Initial state while q1 is final
state and if the input b is applied then its state is changes from q0 to q1 or q1 to q0. for input a it remains
in the same state.
Input file
a b
a
q a b b a a
0 q1
b

Control Unit
Q0bQ1
Q0aQ0
Q1bQ0
Q1aq1 Storage
Output
Accepted / Rejected
Basic Machine Vs Finite Automata
42

 Machine is a system in which energy, material or information can be transformed without any
human interaction.
 Ex. Photo printing machine, metal cutting machine etc.
 But it is very difficult to incorporate decision making power in machine using mechanical control
system.
 FA is mathematical model for actual physical process and it can be viewed as a several restricted
model of computer.
 A finite automaton (FA) is used for solving some common types of algorithms such as.
1. Design of digital circuit
2. String Matching
3. Communication protocols for information exchange
4. Lexical analyzer of a compiler
Limitations of Finite Automata
43

 It cannot be used for computations.

 It cannot modify its input.

 It cannot be used for context free language.

 It cannot be used for recursive languages


 It has a finite number of states and hence It cannot recognize

string of the form anbn


Types of Finite Automata
44

 Deterministic Finite Automata

 Non Deterministic Finite Automata


Deterministic Finite Automata (DFA)
45

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

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

1. Q is a finite set of states.


2. ∑ is a finite set of symbols called the alphabet.
3. δ is the transition function where δ: Q × ∑ → Q
4. q0 is the initial state from where any input is processed (q0 ∈ Q).
5. F is a set of final state/states of Q (F ⊆ Q).
Deterministic Finite Automata (DFA)
46

 A DFA is represented by digraphs called state diagram.


1. The vertices represent the states.
2. The arcs labeled with an input alphabet show the transitions.
3. The initial state is denoted by an empty single incoming arc.
4. The final state is indicated by double circles

 Example: Construct FA (state Diagram) for given M


 Let a deterministic finite automaton be →
 M=(Q, ∑, δ, q0, F) where
⚫ Q = {a, b, c},
⚫ ∑ = {0, 1},
⚫ q0 = {a},
⚫ F = {c}, and
Deterministic Finite Automata (DFA)
47

⚫ Transition function δ or state transition table can be shown as following


table −
Present State Next State for Input 0 Next State for Input 1

a a b
b c a
c b c

State Transaction diagram :


Initial State

Intermediate
c State

Final State
Example on Counting of Symbols (DFA)
48

Ex 1. Give DFA accepting the following language over the alphabet {0,1}
 1. Number of 1’s is multiple of 3.
 2. Number of 1’s not multiple of 3.
Solution:
1. Number of 1’s is multiple of 3: number of 1’s seen so far by machine can be
written as
i. 3n ii. 3(n+1) iii. 3(n+2)
Corresponding to three states mentioned above there will be 3 states.
⚫ State q0- no of 1’s so far is 3n
⚫ State q1- no of 1’s so far is 3n+1
⚫ State q2- no of 1’s so far is 3n+2
 Possible transactions that can cause are
⚫ q0 to q1 if machine is in q0
⚫ q1 to q2 if machine is in q1
⚫ q2 to q0 if machine is in q2
⚫ An input of 0 will cause transaction to same state.
Example on Counting of Symbols (DFA)
Solution: 1. Number of 1’s is multiple of 3.

0 0 0

1 1
q0 q1 q2

1
Input 0 1
Symbols
q0* q0 q1
q1 q1 q2
q2 q2 q0

q0 is final state . Machine will be in final state if number of 1’s


read in Multiple of 3n.
Thus L= { w  {0,1} | no of 1’s in multiple of 3. }
49
Example on Counting of Symbols (DFA)
Solution: 1. Number of 1’s is multiple of 3.

 M=(Q, ∑, δ, q0, F) where


Q = {q0, q1, q2},
∑ = {0, 1},
q0 = {q0},
F = {q0}, and

Input 0 1
Symbols
q0* q0 q1
q1 q1 q2
q2 q2 q0

q0 is final state . Machine will be in final state if number of 1’s


read in Multiple of 3n.
Thus L= { w  {0,1} | no of 1’s in multiple of 3. }
50
Example on Counting of Symbols (DFA)
 Solution: Number of 1’s not multiple of 3.
1. Let L be the language having Number of 1’s is multiple of 3 so:
Thus L= { w  {0,1} | no of 1’s in w multiple of 3. }
So Complement of L will be given by
L’= { w  {0,1} | no of 1’s in w not multiple of 3. }
So DFA for L’ can be obtained by following modifications in L:
1. Every Final state in L becomes non accepting / non final state in L’.
2. Every non Final state in L becomes accepting / final state in L’.
0 0
0 Input 0 1
Symbols
1 1 q0 q0 q1
q0 q1 q2
Q1* q1 q2
1
Q2* q2 q0

q1, q2 are final states. Machine will be in final state if number of 1’s read not in Multiple
of 3n. Thus L= { w  {0,1} | no of 1’s in multiple of 3. }
51
Example on Substring (DFA)
Ex 1. Draw DFA for the following language over the alphabet {a,b}
 1. All strings starting with abb.
 2. All strings with abb as substring.
 3. All strings ending in abb.
Solution:
 1. All strings starting with abb.
• First input b will take the machine to failure State.
• First two input as “aa” will take the machine to failure State.
• First three input as “aba” will take the machine to failure State.
• First three input as “abb” will take the machine to final State.
• So consider the states q0, q1, q2 and q3.
• Where q0 is initial state and q3 will be the final state.
• Failure state will be represented by qφ
• SO DFA can be constructed as

52
Example on Substring (DFA)

a, b

a b b
q0 q1 q2 q3

a
b
a
qφ Input a b
Symbols
a, b q0 q1 qφ
State Transition Diagram q1 qφ q2
q2 qφ q3
q3* q3 q3
qφ qφ qφ

State Transition table


53
Example on Substring (DFA)
Solution:
 2. All strings with abb as substring.

• q0 is the initial state First input a will take the machine to q1 State.
• For state q1 preceding character is a and required ab to complete abb, so
let us take b input to reach next State q2.
• For state q2 preceding characters are “ab” and required b to complete
abb, so let us take b input to reach next State q3.
• A input b to state q0 will bring it to same state.
• A input a to state q1 will bring it to same state.
• A input a to state q2 will bring it to q1 state.
• Q3 is the final state.
• So let us draw State Transition Diagram and State Transition table.

54
Example on Substring (DFA)

b a a, b

a b b
q0 q1 q2 q3

a
Input a b
Symbols
q0 q1 q0
State Transition Diagram q1 q1 q2
q2 q1 q3
q3* q3 q3

State Transition table


55
Example on Substring (DFA)
Solution:
 3. All strings ending in abb.

• q0 is the initial state First input a will take the machine to q1 State.
• For state q1 preceding character is a and required ab to complete abb, so
let us take b input to reach next State q2.
• For state q2 preceding characters are “ab” and required b to complete
abb, so let us take b input to reach next State q3.
• A input b to state q0 will bring it to same state.
• A input a to state q1 will bring it to same state.
• A input a to state q2 will bring it to q1 state.
• A input a to state q3 will bring it to q1 state.
• A input b to state q3 will bring it to q0 state.
• Q3 is the final state.
• So let us draw State Transition Diagram and State Transition table.

56
Example on Substring (DFA)
a
b a

a b b
q0 q1 q2 q3

b a
Input a b
Symbols
q0 q1 q0
State Transition Diagram q1 q1 q2
q2 q1 q3
q3* q1 q0

State Transition table


57
Example on Substring (DFA)
Ex. 2: Design DFA that reads strings made up of letters in the word
“CHARIOT” and recognize these strings that contain the word CAT as a
substring.

• q0 is the initial state First input C will take the machine to q1 State.
• For state q1 preceding character is C and required AT to complete CAT, so
let us take A input to reach next State q2.
• For state q2 preceding characters are “CA” and required T to complete
CAT, so let us take T input to reach next State q3.
• Any input (A,H,I,O,T,R) other than C to state q0 will bring it to same state.
• An input C to state q1 will bring it to same state.
• An input C to state q2 will bring it to q1 state and Any input (H,I,O,T,R)
other than C & T will bring it to q0 state .
• Any input to state q3 will bring it to same state.
• Q3 is the final state.
• So let us draw State Transition Diagram and State Transition table.
58
Example on Substring (DFA)
A,C,H,I,O,T,R
C a
A,H,I,O,T,R
H,I,O,T,R
State Transition Diagram
A T
q0 q1 q2 q3
C

A,H,I,O,R C

State Transition table

Input C H A R I O T
Symbols

q0 q1 q0 q0 q0 q0 q0 q0
q1 q1 q0 q2 q0 q0 q0 q0
q2 q1 q0 q0 q0 q0 q0 q3
q3* q3 q3 q3 q3 q3 q3 q3

59
Example on Divisibility(DFA)
Ex. 1: Design DFA Which can accept a binary number divisible by 3.
Solution:
 A binary number is divisible by 3 if the reminder is 0. So we must derive
the machine to determine the final reminder.

 The binary number system having only two symbols {0, 1}.

 The possible reminders could be


 0 Associated state q0

 1 Associated state q1

 2 Associated state q2

 Now let us try to evaluate reminder for binary numbers.

 Consider the following table to calculate reminder.

60
Example on Divisibility(DFA)
Ex. 1: Design DFA Which can accept a binary number divisible by 3.
Solution:

Input Binary Number Division of Reminder Input ends in


Binary state
Number By 3
0 00 00 % 3 0 q0
1 01 01 % 3 1 q1
0 10 10 % 3 2 q2
1 11 11 % 3 0 q0
0 100 100 % 3 1 q1
1 101 101 % 3 2 q2
0 110 110 % 3 0 q0

61
Example on Divisibility(DFA)
Ex. 1: Design DFA Which can accept a binary number divisible by 3.
Solution:
 So now let us draw the DFA for the given problem.

0 0 1

1 0
q0 q1 q2

Input 0 1
Symbols
q0* q0 q1
q1 q2 q0
q2 q1 q2

62
Example on Divisibility(DFA)
Ex. 2: Design DFA Which can accept a Decimal number divisible by 3.
Solution:
 A number is divisible by 3 if the reminder is 0. So we must derive the
machine to determine the final reminder.

 A decimal Number system having 10 symbols.

 ∑ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

 The possible reminders could be


 0 Associated state q0

 1 Associated state q1

 2 Associated state q2

 Now let us try to evaluate reminder for decimal numbers.

63
Example on Divisibility(DFA)
Ex. 2: Design DFA Which can accept a Decimal number divisible by 3.
Solution:
• As there are only three possible reminders so consider the transitions for
only three inputs

– 0 for (0, 3, 6, 9)

– 1 for (1, 4, 7)

– 2 for (2, 5, 8)

• Now let us draw the table to derive the reminders for decimal number.

64
Example on Divisibility(DFA)
Ex. 1: Design DFA Which can accept a decimal number divisible by 3.
Solution:
Input Decimal Number Division of Binary Reminder Input ends in
Number By 3 state
0 0 0%3 0 q0
1 1 1%3 1 q1
2 2 2%3 2 q2
0 3 3%3 0 q0
1 4 4%3 1 q1
2 5 5%3 2 q2
0 6 6%3 0 q0
1 7 7%3 1 q1
2 8 8%3 2 q2
0 9 9%3 0 q0
1 10 10 % 3 1 q1
65
Example on Divisibility(DFA)
Ex. 1: Design DFA Which can accept a decimal number divisible by 3.
Solution:
 So now let us draw the DFA for the given problem.

2 2
0 0

1 1
q0 q1 q2
0
2
1
Input 0 1 2
Symbols
q0* q0 q1 q2
q1 q1 q2 q0
q2 q2 q0 q1

66
Non Deterministic Finite Automata (NFA)
 In NFA, for each input symbol, one can determine the multiple states to
which the machine will move. Hence, it is called Non Deterministic
Automaton.
 In NFA, FA can reside in multiple states at same time for single input
symbol.
 As it has a finite number of states, the machine is called Deterministic
Finite Machine or Deterministic Finite Automaton.

 A NFA can be represented by a 5-tuple M=(Q, ∑, δ, q0, F) where −

1. Q is a finite set of states.


2. ∑ is a finite set of symbols called the alphabet.
3. δ is the transition function where δ: Q × ∑ → Q
4. q0 is the initial state from where any input is processed (q0 ∈ Q).
5. F is a set of final state/states of Q (F ⊆ Q).

67
Example of NFA
0,1 0, 1

1 0
q0 q1 q2

State Transition Diagram

Input 0 1
Symbols
q0 {q0} {q0,q1}
q1 {q2} φ
q2* {q2} {q2}

State Transition table

68
Processing of String by NFA
A string w ∈ ∑* is accepted by NFA M if δ* =(q0,w) containing a final state. Let us
See how the String 011010 is processed by given NFA.

0,1

1 0
q0 q1 q2

State Transition Diagram

69
Processing of String by NFA 011010
{q0}
0 1 1 0 1 0 0
q0 q0 q0 q0 q0 q0 q0
{q0}
1 1
1 1
q1 q1 q1
1
{q0, q1}
0
0
1
φ q2 q2
{q0, q1, φ}
0 1
0
φ φ
1 0 {q0, q2, φ}
φ φ 1
0
{q0, q1, φ}
φ
0

70 {q0, q2, φ}
Non Deterministic Finite Automata (NFA)
 On input 011010 the automata can take any of the following four Path.

0 1 1 0 1 0
1. q0 q0 q0 q0 q0 q0 q0

0 1 1 0 1 0
2. q0 q0 q0 q0 q0 q1 q2

0 1 1 0 1 0
3. q0 q0 q0 q1 q2 φ φ

0 1 1 0 1 0
4. q0 q0 q1 φ φ φ φ

So from above we can conclude that the given string is accepted as one of the solution (2)
Is ending to final state. Also every string ending with 10 is accepted by NFA.
71
Examples on NFA
EX.1 Draw NFA to accept strings containing the substring 00101.

0,1 0 0,1

0 1 0 1
q0 q1 q2 q3 q4

State Transition Diagram Input 0 1


Symbols
• To reach the final string from q0 to final q0 {q0,q1} {q0}
state q4 a substring 0101 is required. q1 {q1} {q2}
•Any string containing sub string 0101 is
accepted by above NFA. q2 {q3} φ
q3 φ {q4}
q4* {q4} {q4}

State Transition Table


72
Examples on NFA
EX.2 Draw NFA that accept various string from Language L={x ∈ {a,b} | x ends with
abb}. a
a, b

a b b
q0 q1 q2 q3
a
State Transition Diagram
Input a b
• To reach the final string from q0 to final Symbols
state q4 a substring aab is required. q0 {q0,q1} {q0}
•Any string containing sub string aab is q1 {q1} {q2}
accepted by above NFA.
q2 q1 {q3}
q3* φ φ

State Transition Table


73
Examples on NFA
EX.3 Consider the NFA with states 1-5 and input alphabet {a, b} has following
transaction table.
Input a b
Symbols
• Draw a Transaction Diagram
• Calculate δ*(1, ab) q1 {1,2} {1}
• Calculate δ*(1, abaab) q2 {3} {3}
q3 {4} {4}
q4 {5} φ
q5 φ {5}
Solution: b
State Transition Table
1. a, b

a a, b a, b
q3
a
q1 q2 q4 q5

State Transition Diagram


74
Examples on NFA
Solution:
2.
δ*(1, ab) = δ((δ(1, a), b)
= δ ((δ(1, 2), b)
= δ(1, b), U δ(2, b) ={1, 3}

3. δ*(1, abaab)= δ* (δ(1, a), baab) =δ* ((1, 2), baab)= δ* (δ(1,2),b),aab)
= δ* (1, 3), aab)
= δ* (1, 2, 4), ab)
= δ (1, 2, 3, 5), b)
= {1, 3, 4, 5}

75
NFA to DFA Conversion
 The conversion of NFA to equivalent DFA is based on Subset construction. If a NFA consists
of three states, Q= {q0,q1,q2}
 The Machine could be in any of the following states:
1. φ
2. (q0), (q1), (q2)
3. (q0, q1), (q1, q2), (q0, q2)
4. (q0, q1, q2)
 The no of possible states are 2Q
 The procedure of finding whether the given string is accepted by NFA includes following
steps.

1. Finding all possible paths followed by machine for given string.


2. Finding the set of states reached final state from the starting state by applying the string.
3. If the set of states obtained in step 2 contain a final state the given string is accepted by NFA.

 This procedure can be applied to any string by constructing a successor table.


76
NFA to DFA Conversion
 Step 1: Initially Q' = ϕ

 Step 2: Add q0 of NFA to Q'. Then find the transitions from this start state.

 Step 3: In Q', find the possible set of states for each input symbol. If this set of states is not in
Q', then add it to Q'.

 Step 4: In DFA, the final state will be all the states which contain F(final states of NFA)

77
NFA to DFA Conversion Example-1
Ex. 1: Construct the Equivalent DFA from given NFA.

0
Input 0 1
Symbols
q0 q2
0, 1 q0 {q2} φ
q1 φ {q0, q2}
1 1 q2 {q0, q1} {q0}

0
q1

Solution: Construct the successor for given NFA.


Step by step as explained follow

78
NFA to DFA Conversion Example-1
Step 1: Starting State {q0} is the first sub state.
O successor for q0 is q2 i.e δ: (q0, 0)→ q2
1 successor for q0 is qφ i.e δ: (q0, 1)→ qφ
0
q0 q2
Input 0 1
Symbols
{q0} {q2} φ
1
φ

So in this step new substate q2 is generated so find the successor for q2

79
NFA to DFA Conversion Example-1
Step 2: Consider sub State {q2} is the recently generated sub state.
O successor for q2 is q2 i.e δ: (q0, 0)→ (q0, q1)
1 successor for q2 is qφ i.e δ: (q0, 1)→ q0
1

0 Input 0 1
{q0} {q2} Symbols
{q0} {q2} φ
1
0 {q2} {q0, q1} {q0}
φ

{q0,q1}

So in this step new sub state {q0, q1} is generated so find the successor for {q0, q1}

80
NFA to DFA Conversion Example-1
Step 3: Consider sub State {q0, q1} is the recently generated sub state.
O successor for {q0, q1} is q2 i.e δ: ((q0,q1), 0)→ (q2)
1 successor for {q0, q1} are q0, q2 i.e δ: ((q0,q1), 1)→ (q0, q2)
1

0 Input 0 1
{q0} {q2} Symbols
{q0} {q2} φ
1 0
{q2} {q0, q1} {q0}
φ {q0, q1} {q2} {q0, q2}
0

{q0,q2} {q0,q1}
1

So in this step new sub state {q0, q2} is generated so find the successor for {q0, q2}

81
NFA to DFA Conversion Example-1
Step 4: Consider sub State {q0, q2} is the recently generated sub state.
O successor for {q0, q2} are q0, q1, q2 i.e δ: ((q0,q2), 0)→ (q0, q1, q2)
1 successor for {q0, q2} is q0 i.e δ: ((q0,q2), 1)→ (q0)
1

0 Input 0 1
{q0} {q2} Symbols
{q0} {q2} φ
1 0
{q2} {q0, q1} {q0}
φ {q0, q1} {q2} {q0, q2}
1 1
{q0, q2} {q0, q1, q2} {q0}
{q0,q2} {q0,q1}
1
0
So in this step new sub state {q0, q1, q2} is generated so find
the successor for {q0, q1, q2}
{q0, q1, q2}
Prepared by r. Vipin Wani 82
NFA to DFA Conversion Example-1
Step 5: Consider sub State {q0, q1, q2} is the recently generated sub state.
O successor for {q0, q1, q2} are q0, q1, q2 i.e δ: ((q0, q1, q2), 0)→ (q0, q1, q2)
1 successor for {q0, q1, q2} are q0, q2 i.e δ: ((q0, q1, q2), 1)→ (q0, q2)
1

0 Input 0 1
{q0} {q2} Symbols
{q0} {q2} φ
1 0
{q2} {q0, q1} {q0}
φ {q0, q1} {q2} {q0, q2}
1 1
{q0, q2} {q0, q1, q2} {q0}
{q0,q2} {q0,q1} {q0, q1, q2} {q0, q1, q2} {q0, q2}
1
0
1 As now no new sub state is generated so the process of sub set
generation stops.
{q0, q1, q2}
Prepared by r. Vipin Wani 0 83
NFA to DFA Conversion Example-1
Step 6: As the q2 is the final state in NFA so every sub state containing q2 will be
final state in DFA.

0 Input 0 1
{q0} {q2} Symbols
{q0} {q2} φ
1 0
{q2}* {q0, q1} {q0}
φ {q0, q1} {q2} {q0, q2}
1 1
{q0, q2}* {q0, q1, q2} {q0}
{q0,q2} {q0,q1} {q0, q1, q2}* {q0, q1, q2} {q0, q2}
1
0
1
This is the final DFA after representing Final states.
{q0, q1, q2}
Prepared by r. V pin Wani 0 84
NFA to DFA Conversion Example-2
Ex. 2: Construct the Equivalent DFA from given NFA.

Input 0 1
Symbols
p {p, q} {p}
q {r} {r}
r {s} φ
s* {s} {s}

Solution: Start the subset generation step by step.


The maximum number of possible sub states are 2Q = 16.

85
NFA to DFA Conversion Example-2
Input 0 1
Symbols

{p} {p, q} {p} A new subset {p, q} is generated

{p, q} {p, q, r} {p, r} A new subset {p, q, r} & {p, r} are generated

{p, q, r} {p, q, r, s} {p, r} A new subset {p, q, r, s} is generated

{p, r} {p, q, s} {p} A new subset {p, q, s} is generated


{p, q, s} {p, q, r, s} {p, r, s}
A new subset {p, r, s} is generated
{p, q, r, s} {p, q, r, s} {p, r, s} A new subset {p, s} is generated
{p, r, s} {p, q, s} {p, s}
A new subset {p, q, s} is generated
{p, s} {p, q, s} {p, s}
No new sub state so stop.
86
NFA to DFA Conversion Examples-2
1 1
1 0
{p}
0
{p, q} {p, r} {p, q, s}

0 0
1

{p, q, r}
1
0
0

1
{p, r, s}
{p, q, r, s}

1 0
0
{p, s}

1
87
NFA to DFA Conversion Example-3
Ex. 3: Construct the Equivalent DFA from given NFA.

Input 0 1
Symbols
p {p, q} {p}
q {r, s} {t}
r {p, r} {t}
s* φ φ
t* φ φ

Solution: Start the subset generation step by step.


The maximum number of possible sub states are 2Q = 32.

88
NFA to DFA Conversion Example-3
Input 0 1
Symbols

{p} {p, q} {p} A new subset {p, q} is generated

{p, q} {p, q, r, s} {p, t} A new subset {p, q, r, s} & {p, t} are generated

{p, q, r, s} {p, q, r, s} {p, t}

{p, t} {p, q} {p} No new sub state so stop.

89
NFA to DFA Conversion Example-3
1
0
{p}
{p, q}

1
1
0

1
{p, s}
{p, q, r, s}

90
Construction of NFA & DFA Example-1
Ex. 1: Construct the NFA and then Equivalent DFA accepting strings over {0,1}
For accepting all possible strings of Zero and ones not containing 101 as sub string.

Solution: This problem is fully deterministic. A DFA with φ transitions not mentioned
Is Called as NFA

0 1

1 0
q0 q1 q2

 State q0 is initial state which will cause machine to move in state q1 on input1.
 State q1 will cause machine to move in state q2 on input 0.
 State q2 will cause machine to move in state q1 on input 0 and on input 1 it will move
 to failure state φ.

91
Construction of NFA & DFA Example-1
 NFA can be converted into DFA by introducing an explicate failure state.
 So the equivalent DFA can be constructed as follow

0 1
0, 1

0 1
1
q0 q1 q2 φ

92
Construction of NFA & DFA Example-2
Ex. 1: Construct the NFA and then Equivalent DFA accepting strings over {0,1}
For accepting all possible strings of Zero and ones not containing 011 as sub string.

Solution: This problem is fully deterministic. A DFA with φ transitions not mentioned
Is Called as NFA

1 0

0 1
q0 q1 q2

 State q0 is initial state which will cause machine to move in state q1 on input 0.
 State q1 will cause machine to move in state q2 on input 1.
 State q2 will cause machine to move in state q1 on input 0 and on input 1 it will move
 to failure state φ.

93
Construction of NFA & DFA Example-1
 NFA can be converted into DFA by introducing an explicate failure state.
 So the equivalent DFA can be constructed as follow

1 0
0, 1

0 1 1
q0 q1 q2 φ

94
NFA with  Transitions
  stands for a null symbol. An  transition allows transition on  or no input the empty
string . This implies that a Machine can make a transition without any input.
 When finding the string describe by path containing arc with label  the  symbols are
discarded.
 The use of  transition may specify the transition graph by reducing numbers of labeled arcs.
 Steps to remove e transition from NFA.

S1 S2

Consider the  transition from state S1 to s2 then follow the following steps to remove
transition .
1. Find all edges starting from S2.
2. Duplicate all edges to S1 without changing the edge label.
3. If s1 is initial state then mark s2 also as initial state.
4. If s2 is final state then mark s1 also as final state.
5. Remove the dead states. 95
NFA with  Transitions Example
Ex. 1: Use direct methods to find an equivalent NFA without  moves for the given NFA bellow.


0 
 
q0 q1 q2
Solution:
Step 1: Transition from q2 duplicated on q1, and make a q1 as final state.

0  
 
q0 q1 q2

Step 2: Transition from q1 is duplicated on q0, and make a q0 as final state.

0  
 
q0 q1 q2


NFA with  Transitions Example-2
Ex. 2: Use direct methods to find an equivalent NFA without  moves for the given NFA bellow.


0  B C
A 

 E
D 
Outgoing transitions from B & D are duplicated on A as δ (A, ) = B andδ (A, ) = D.



0 B C

A  

E
D
97 
NFA with  Transitions Example-2
The state D can be deleted as it don’t have any incoming transitions.



0 B C

A  

98
 Closures
 Give formal definition of  closures with suitable example. for a null symbol.
  Closures of state qi is the set of states including qi where qi can be reached by
any numbers of  moves of given non deterministic finite automata.
  Closure of qi
  Closure of qi, includes qi
 Set of states reachable from qi on  moves.
 Set of states reachable from existing states in  closure using  moves and so on .

q2 q3
0 

 
 q7
q0 q1 q6

  
q4 q5
Prepared by 
 Closures Example
 Find  Closure for given NFA.
  Closures of state qi is the set of states including qi where qi can be reached by
any numbers of  moves of given non deterministic finite automata.
 so let us determine the  Closures for each sub state.
 Step 1:  Closures of q0= {q0, q1, q2, q4, q7}
The  moves from q0 are = {q0 to q1,
q0 to q7,
q1 to q2,
q1 to q4. }

 Step 2:  Closures of q1= {q1, q2, q4}


The  moves from q1 are = { q1 to q2,
q1 to q4. }

 Step 3:  Closures of q2= { q2 }


 There are no any  moves from q2
100
 Closures Example
 Step 4:  Closures of q3= {q3, q6, q7, q1, q2, q4}
The  moves from q3 are = {q3 to q6,
q6 to q7,
q6 to q1
q1 to q2,
q1 to q4. }

 Step 5:  Closures of q4= { q4 }


 There are no any  moves from q4
 Step 6:  Closures of q5= {q5, q6, q7, q1, q2, q4}
The  moves from q5 are = { q5 to q6,
q6 to q7,
q6 to q1,
q1 to q2,
q1 to q4}
101
 Closures Example
 Step 7:  Closures of q6= { q6, q7, q1, q2, q4}
The  moves from q6 are = { q6 to q7,
q6 to q1,
q1 to q2,
q1 to q4}

 Step 8:  Closures of q7= { q7 }


 There are no any  moves from q7 State  -Closures
q0 {q0, q1, q2, q4, q7}
 So the  Closures of all states can be q1 {q1, q2, q4}
Summarized in table shown bellow. q2 {q2}
q3 {q3, q6, q7, q1, q2, q4}
q4 { q4 }
q5 {q5, q6, q7, q1, q2, q4}
q6 { q6, q7, q1, q2, q4}
102 q7 {q7}
Construction of NFA & DFA Example

Construct NFA and then DFA with reduced states equivalent to


(0+1)* (00+11) (0+1)*
Solution: Construction of above mentioned NFA.

0, 1 0, 1
 
 
 

 

Now remove unnecessary  moves .

 

{q0, q1, q2} { q1, q2} { q2}
103
Construction of NFA & DFA Example
Solution: Construction of DFA.
  
 
{q0, q1, q2} { q1, q2} { q2}

   

 
The State {q0, q1, q3 } and {q0, q2, q3 } are not repeatable, as
they are having common outgoing behavior.

{ q0, q1}
 

{q0}  { q0, q3}

  
104 { q0, q2}
Deference Between NFA & DFA

DFA NFA
DFA is Deterministic Finite Automata. NFA is Nondeterministic Finite Automata.
For each symbolic representation of the For each symbolic representation of the
alphabet, there is only one state transition in alphabet, there are multiple state transition in
DFA. NFA.
DFA cannot use Empty String transition. NFA can use Empty String transition.
NFA can be understood as multiple little
DFA can be understood as one machine.
machines computing at the same time.
In NFA, each pair of state and input symbol
In DFA, the next possible state is distinctly set.
can have many possible next states.
DFA is more difficult to construct. NFA is easier to construct.
Time needed for executing an input string is Time needed for executing an input string is
less. more.
All DFA are NFA. Not all NFA are DFA.
DFA requires more space. NFA requires less space then DFA.
It is easy to determine weather w ∈ L as It is difficult to determine weather w ∈ L as
transitions are deterministic. transitions are non deterministic.

105
Finite automata as Output Device
(Moore / Mealy Machine)
 Finite automata we have discussed so far had limited functionalities.
 It was able to either accept or reject the string based on reachability of machine
from start to final state.
 Finite automata can also be used as an output device.
• Such machines don’t have final states.
• Such machines can generate output on every input.
• The value of output is a function of current state and current input.
• This machine can be characterized by two behaviors.
1. State Transition Function (STF ): denoted by δ
δ: ∑ X Q  Q
2. Output Function / Machine Function (MAF): denoted by 
: ∑ X Q  O / : Q  O

106
Formal Definition of Mealy Machine
 A Mealy machine is a finite-state machine whose output values are determined by
both its current state and the current inputs.
A Mealy machine can be represented by a 6-tuple M=(Q, ∑, O, δ, , q0) where −
1. Q is a finite set of states.
2. ∑ is a finite set of input symbols called the alphabet.
3. O is a finite set of output symbols.
4. δ is the transition function where δ: Q × ∑ → Q
5  is the output function where  : Q × ∑ → O
6. q0 is the initial state from where any input is processed (q0 ∈ Q).

a/ q0 a/0
a/
b/

b/ q2 q3
a/ b/
b/
q1

Prepared by: SMtra.VteipitnrWanansiitionDiagram For Mea10ly7machine


Mealy Machine
State table for both transition function (δ) and output function () can be shown as

Input a b States a b
Symbols q0 0 0
q0 q0 q1 q1 0 0
q1 q0 q2 q2 1 0
q2 q0 q3 q3 0 0
q3 q3 q3
output function for
State transition function Mealy machine
For Mealy machine

Input Symbols a b
Here in q1 / 0
q0 q0/0 q1/0 q1 is next state on transition.
q1 q0/0 q2/0 0 is a output on applying input.
q2 q0/1 q3/0
q3 q3/0 q3/0
SPtraetpearetdrabyn:sMitr.ioVinpinanWdanoi utput function combi1n0e8dFor Mealy machine
Formal Definition of Moore Machine
 A Moore machine is a finite-state machine whose output values are determined
solely by its current state only.
A Mealy machine can be represented by a 5-tuple M=(Q, ∑, O, δ, , q0) where −
1. Q is a finite set of states.
2. ∑ is a finite set of input symbols called the alphabet.
3. O is a finite set of output symbols.
4. δ is the transition function where δ: Q × ∑ → Q
5  is the output function where  : Q → O
6. q0 is the initial state from where any input is processed (q0 ∈ Q).
q1/
a 
 Input 0 1
Symbols
State output
q0/ q0 q1 q2 q0 
  q1 a
q1 q1 q2
 q2/ q2 q1 q2 q2 b
b
 State transition function output function for
For Moore machine Moore machine
SPtraetpearetdrabyn:sMitr.ioVinpinDWiaagniram 109
Moore Machine
State table for both transition function (δ) and output function () can be shown as

Input 0 1 output
Symbols
q0 q1 q2 
q1 q1 q2 a
q2 q1 q2 b

 Output in Moore machine is associated with a state and not with transition.
 In more machine length of output string will be equivalent to length of input
string plus one.
 i.e. if length of input string is 5 so length of output string will be 5+1=6.

110
Moore / Mealy Machine Examples
Construct moore & mealy machine for the input {0 ,1 ,2} print the residue module 5
Of the input treated as ternary (Base 3).




 
q0 q1 q2 q3 q4



Output in Moore machine is associated with a state and not with transition.
111
Moore / Mealy Machine Example-1
Ex 1: Construct Moore & mealy machine for the input {0 ,1 ,2} print the residue
module 5 Of the input treated as ternary (Base 3).
nstruct moore & mealy machine for the input {0 ,1 ,2} print the residue module 5
of the input treated as ternary (Base 3).

Meaning of various states is given bellow:


q0 is Running reminder is 0.
q1 is Running reminder is 1.
q2 is Running reminder is 2. Mealy Machine is shown in above diagram
q3 is Running reminder is 3 =(10)3.
q4 is Running reminder is 4=(11)3.
112
Moore / Mealy Machine Examples
Moore Machine:

Moore Machine is shown in above diagram

113
Moore / Mealy Machine Examples-2
Ex 2: Construct mealy machine that gives output of 1 if the input string ends in
“bab”.
a b/0 b/1
b/0 a
q0 q1 q2

a

Meaning of various states. Input Symbols a b


• q0 Starting state. q0 q0/0 q1/0
• q1 Make the preceding character b. q1 q2/0 q1/0
• q2 generate the preceding character ba
• q2 to q1transition will generate the q2 q0/0 q1/1
preceding character bab so output will
be 1.

114
Moore / Mealy Machine Examples-3
Ex 3: Construct Moore machine that gives output of 1 if the input strings ends in
“bab”.
a
a b
b a
q0/ q1/0 q2/0
0
a
b
b
q3/
1

Input a b Output
Meaning of various states. Symbols
• q0 Starting state.
q0 q0 q1 0
• q1 Make the preceding character a.
• q2 generate the preceding character ba q1 q2 q1 0
• q2 to q3 transition will generate the q2 q0 q3 0
preceding character bab so output will
be 1. q3 q2 q1 1
115
Moore / Mealy Machine Examples-4
Ex 4: Construct Moore machine that gives output of 1’s complement of binary
number.
1
1 0

0
q0/
q1/1
0

Meaning of various states.


• q0 Starting state.
• q0 moves the machine to q1 on input 0
& output 1. O’s complement is 1. Input 0 1 Output
• q1 moves the machine to q0 on input 1 Symbols
& output 0. 1’s complement is 0.
q0 q1 q0 0
q1 q1 q0 1

116
Moore / Mealy Machine Examples-5
Ex 5: Construct Mealy machine that gives output of 2’s complement of binary
number.
0/0 0/1
1/0
1/1
q0 q1

Meaning of various states.


• 2’s Complement of binary number can
be found by not changing the bits from Input 0 1
Symbols
right side till 1st ‘1’ and then
complementing remaining bits.
q0 q0 / 0 q0/ 0
• Ex. Consider Binary number 010110
1000 q1 q1 /1 q1 /1
010110 1000 = 1010011000

Complement No Change
Prepared by: Mr. Vipin Wani
Every bit 117
Moore / Mealy Machine Examples-6
Ex 6: Design Mealy machine that will read the sentence made up of vowels of
English language it will output in same sequences except in cases where i follows e
it will be converted to u.
a/a
i/i
e/e
o/o
u/u e/e
q0 q1

a/a
i/u
o/o
u/u

Meaning of various states.


• Machine must convert every occurrence of ei into eu. In other cases output
will be same as input.
• State q1 implies that thee preceding character is e.
• An Input I in state q1 is converted to u.

118
Moore / Mealy Machine Examples-6
State Transition & Output Function can be shown as bellow.

Input Next State/ Output


Symbols
a e i o u
q0 q0 q1 q0 q0 q0
a e i o u
q1 q0 q1 q0 q0 q0
a e u o u

119
Moore / Mealy Machine Example-7
Ex 7: Design Mealy and Moore machine for the following processes. For input from
(0+1)* if input end in 101 output ‘X’ and if input end in 110 output ‘Y’ , otherwise
output ‘Z’.
1/z
0/z 1/z q2

1/z
q0 q1 0/y
0/z

0/z
1/x q3

Mealy machine

Meaning of various states.


• Machine must produce output X on input 101 so q0 to q1, q1 to q3 and q3 to
q1 producing string 101 which will produce the output X.
• Machine must produce output Y on input 110 so q0 to q1, q1 to q2 and q2 to
q3 producing string 110 which will produce the output Y.
• All other transitions will produce output Z.
120
Moore / Mealy Machine Example-7

0
0 1
0
0 Q2/Z Q3/X
1
Q0/Z Q1/Z 1
1 0

0
Q4/Z Q5/Y
1
0,1

Moore machine

Meaning of various states.


• Machine must produce output X on input 101 so q0 to q1, q1 to q2 and q2 to
q3 producing string 101 which will produce the output X.
• Machine must produce output Y on input 110 so q0 to q1, q1 to q4 and q4 to
q5 producing string 110 which will produce the output Y.
• All other transitions will produce output Z.
121
Conversion of Mealy Machine to Moore Machine Example-1
Construct a mealy machine that accept string ending in 00 and 11. Convert the
same to moore machine.
Solution: Construct Mealy Machine.
0/1

0/0 q1

q0
0/0 1/0

1/0
q2
1/1
Input Next State /Output
Symbols
0 1 Required Mealy Machine, State transitio n
q0 q1 /0 q2/ 0 and output function as shown here.

q1 q1 /1 q2/ 0

q2 q1 /0 q2/ 1
122
Conversion of Mealy Machine to Moore Machine Example-1
Meaning of various states.
q0- is a initial state.
q1- has preceding input 0 from q0 next input 0 will complete the sequence 00.
q2- has preceding input 1 from q0 next input 1 will complete the sequence 11.

Conversion from Mealy to Moore Machine:


Step 1: Splitting of the states
 There is no incoming line associated with q0 so output associated with q0 will be

 There are three incoming lines to state q1
• q0 to q1 on input 0 and output 0.
• q1 to q1 on input 0 and output 1.
• q2 to q1 on input 0 and output 0.
 Since there are two different output we will split the state q1 in two sub states
namely q1 for output 0 and q1’ for output 1.
 Similarly split q2 into q2 for output 0 and q2’ for output 1.

 Step 2: Draw equivalent Moore machine after splitting.

123
Conversion of Mealy Machine to Moore Machine Example-1
Step 2: Conversion from Mealy to Moore Machine. 0
0
q1 /0 q1’ /1
0
0
q0 /  0
1
1

1
q2 / 0 q2’ / 1
1
1
Input Next State Output
Symbols
0 1  Required More Machine, State
q0 q1 q2  transition and output function as
shown here.
q1 q1’ q2 0  If mealy machine having m no of
q1’ q1’ q2 1 states and n output symbols then
possible no of states in resultant
q2 q1 q2’ 0
Moore machine will be mn.
q2’ q1 q2’ 1
124
Conversion of Mealy Machine to Moore Machine Example-2
Ex 2: Convert the given mealy machine to equivalent more machine.

Input Next State /Output


Symbols
0 1
q1 q1 /1 q2/ 0
q2 q4 /1 q4/ 1
q3 q2 /1 q3/ 1
q4 q3 /0 q1 /1

Solution:
Step 1: Splitting of the states: Split the states if the incoming arcs are having different
output.
Split the state q1 into q1 with output 0 and q1’ with output 1.
Split the state q2 into q2 with output 0 and q2’ with output 1.
Split the state q3 into q3 with output 0 and q3’ with output 1.
As all incoming edge to q4 are producing same output so no need to split it will always
produce the output 1.
125
Conversion of Mealy Machine to Moore Machine Example-2
Step 2: Convert to equivalent Moore machine.

1
q1/ q2/0 q2’/1
0, 1
1 0
0
0

0, 1
q1’/1 q3/0 1
q3’/1
1
0 1
0

q4/1

126
Conversion of Mealy Machine to Moore Machine Example-2
Step 2: Construct state transition and output function for Moore machine.

Input Next State Output


Symbols
0 1
q1 q1’ q2 
q1’ q1’ q2 1
q2 q4 q4 0
q2’ q4 q4 1
q3 q2’ q3’ 0
q3’ q2’ q3’ 1
q4 q3 q1’ 1

127
Conversion of Moore Machine to Mealy Machine Example-1
Ex1: Convert the given Moore machine in to mealy machine

q0/ q1/0 b
a b

a
b
a
q2/0
q3/1
a
b

q0 b/0
b/0 q1
a/0 Solution: Construction of trivial
mealy machine by moving output
associated with a state to transitions
b/1 a/0
entering that state, we get.
a/1

q3 q2
a/0
b/0
128
Conversion of Moore Machine to Mealy Machine Example-1
Construct state transition and output function for mealy machine.

Input Next State /Output


Symbols
0 1
q0 q2 /0 q3/ 1
q1 q3/ 1 q2 /0
q2 q1 /0 q2 /0
q3 q2 /0 q1 /0

Step 2: Minimization of mealy machine

 1 equivalent participations p1 based on output


P1= (q0), (q1), (q2, q3)
 2 equivalent participations p2 based on transition:
 q2 is mapped with block (q1) on input 0.
 q3 is mapped with block (q2, q3) on input 0.
P2= (q0), (q1), (q2) , (q3)

129
FSM for Vending Machine
 A typical vending machine look like as following.
Reset
N
Vending
Coin Release
Machine
Sensor Mechanism
FSM
D
Clock

 A vending machine can be designed using FSM model with auto billing. It reduces
the hardware. The typical no of steps included in FSM vending machines are:
1. Selection of product by User.
2. waiting for Insertion of Coin.
3. Product delivery and service.
 Entire things can be modeled using mealy machine.
 Machine can count the value of inserted coin and take the decision regarding
product release.
 FSM can also be used for spelling checking.

130
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 present Output depends only upon the present
state and the present input state.

Generally, it has fewer states than Moore Generally, it has more states than Mealy
Machine. Machine.
The value of the output function is a The value of the output function is a
function of the transitions and the changes, function of the current state and the
when the input logic on the present state is changes at the clock edges, whenever state
done. changes occur.
Mealy machines react faster to inputs. They In Moore machines, more logic is required
generally react in the same clock cycle. to decode the outputs resulting in more
circuit delays. They generally react one
clock cycle later.

131
132

You might also like