You are on page 1of 21

Finite state Machines with

output

Moore and Mealy machines

1
Moore Machine output is associated with
states

A Moore machine is a six tuple


(Q , , , , , q0)
 : Is the output alphabet
 : I s a mapping from Q to  giving output
associated with each state.
Output in response to input a1 a2 …an is
(q0) (q1) (q2)… (qn)

Where q0, q1,…qn is the sequence of states such


that  (qi-1,ai) = qi
STRING LENGTH
2
N+1
Note
Any Moore machine gives output

(q0) in response to input - empty


string

3
DFA may be viewed as a special case of
Moore machine where

output for accepting state is 1

output for nonaccepting state is 0

4
Example
To find the residue mod 3 for binary string treated
as a binary integer
if a number i written in binary is followed by 0,
resulting string has value 2i
If I is followed by 1 the resulting string has value 2i
+1
If a string x(when treated as binary integer) has
remainder p(when divided by 3) then string ‘x0’
will have remainder 2p mod 3
And string ‘X1’ will have remainder 2p+1 mod 3

5
input 1010 value 10 so 10 mod 3 = 1
q0 1 q1 0 q2 1 q2 0 q1
output 0 1 2 2 1

0 1 2
1 0
q0 q1 q2

1 0

1
0
6
• 25 = 1 1 0 0 1
• Q0- 1 q1 – 1- q0 0- q0- 0 - q0 – 1 – q1
•0 1 0 0 0 1

7
Mealy Machine out put is associated with
transition

A Mealy machine is a six tuple


(Q , , , , , q0)
 : Is the output alphabet
 : I s a mapping from QX  to  giving
output (q,a) associated with the
transitions from state q and input each
state.

8
Output in response to input a1 a2 …an is
(q0, a1) (q1,a2) (q2,a3)… (qn-1,an)
Where q0, q1,…qn is the sequence of states
such that  (qi-1,ai) = qi

Note that this sequence has length n


rather that n+1 as in Moore machine

9
Mealy machine to add two integers
using their binary expansions
Inputs xn xn-1 …x0
yn yn-1…y0
We assume that both xn and yn are zero.
a state q0 represents that previous carry is
zero
A state q1 represents that previous carry was
1
Inputs to the machine are pairs of bits: there
are four possible inputs(00,01,10,11)
10
Input 010010 18
011101 29
01, 1 01, 0 47
11, 0

q0 q1

00, 0 00, 1 11, 1

10, 1
10, 0

0 - 01- q0 - 10 - q0 - 01 - q0- 01 - q0- 11 - q1 - 00- q0


1 1 1 1 0 1
11
out put is : 1 0 1 1 1 1 value 47
Equivalence of Moore and Mealy
Machines
A Moore machine M can never be correctly
equivalent to a Mealy machine M’
because the length of output string from a
Moore machine M is one greater than that
from the Mealy machine M’ on the same
input.
However we may neglect the response of
Moore machine to input  and say

12
Moore machine M and a Mealy machine M’
are equivalent if for all inputs w

b TM’ (w) = TM(w)

where b is the output of Moore machine M


for its initial state

13
• Theorem: I If M1= (Q , , , , , q0)
is a Moore machine then there is a
Mealy machineM2 equivalent to M1
• Proof: Construct Mealy machine M2 as
(Q , , , , ’, q0)
’ is defined as:

’(q,a) = ((q,a)) for all states q and


input symbols a

14
input 1010 value 10 so 10 mod 3 = 1
q0 1 q1 0 q2 1 q2 0 q1
output of Moore 0 1 2 2 1

0 1 2
1/1 0/2
q0 q1 q2

1/0 0/1

1/2
0/0
Out put for Mealy machine on the same input
15
q0 - 1 (1) q1 - 0 (2) q2- 1 (2) q2 - 0 (1) q1
• on input 1010 out by Moore machine is
0 1 2 2 1
While output from the constructed Mealy
machine is
1 2 2 1
By the condition of equivalence
we should add out put of q0 0 of Moore
machine in the beginning of out put of
Mealy machine
Hence the machine made is equivalent to
the give Moore machine.
16
• Theorem: If M1= (Q , , , , , q0)
is a Mealy machine then there is a
Moore machine M2 equivalent to M1.
• Proof:We can do the reverse of what we
did in the construction of Mealy
machine.
As the different edges terminating to a
node may have different outputs.

17
We look into each state and see the edges with
different outputs are terminating to it.
Say state qi is having all the terminating edges
with 0,1, 2 as outs on them.
State qi is split into
Qi0, qi1, qi2 ie. In the Moore machine in place
of qi state we take three state
qi0, qi1, qi2.
With these states we associate outputs as
0,1,2 respectively in the Moore machine

18
In q0 four edges are terminating and in different outputs
on them are only two 0 and 1
So q0 is split into two states q00 and q01
01, 1 01, 0

11, 0

q0 q1

00, 0 00, 1 11, 1

10, 1
10, 0

Similarly on state q1 four edges are terminating with two


different output vales 0 and 1 so it is also split into two
new states as q10 and q11.
19
01,10

00 00
00
q01 1 1
01
11 10, 01
q11
q00
10
0 00 11
11
11
q10
0

01,10
010010 18 q00 -01-q01-10-q01-01-q01-01-q01-11-q10-00-
q01
20
011101 29 0 1 1 1 1 0 1 ie 101111 = 47
• 0 1 0 0 1 0 18
• 0 1 1 1 0 1 29 47

q00 - 01- q01 -10 - q01 - 01- q01 - 01- q01-


11- q10 – 00 - q01
• 0 1 1 1 1 0 1 ie
• 101111 = 47

21

You might also like