Lesson 22
Lesson 22
Lesson 22
0/0, 1/1
q1
0/1
q0 1/0
Applications of Incrementing and
Complementing machines
1’s complementing and incrementing machines
which are basically Mealy machines are very
much helpful in computing.
The incrementing machine helps in building a
machine that can perform the addition of binary
numbers.
Using the complementing machine along with
incrementing machine, one can build a machine
that can perform the subtraction of binary
numbers, as shown in the following method
Subtracting a binary number
from another
Method: To subtract a binary b from a binary
number a
1. Add 1’s complement of b to a (ignoring the
overflow, if any)
2. Increase the result, in magnitude, by 1
(use the incrementing machine ). Ignoring
the overflow if any.
Note: If there is no overflow in (1). Take 1’s
complement once again in (2), instead. This
situation occurs when b is greater than a, in
magnitude. Following is an example of
subtraction of binary numbers
Example
To subtract the binary number 101 from the binary
number 1110, let
a = 1110 and b = 101 = 0101.
(Here the number of digits of b are equated with that of
a)
i) Adding 1’s complement (1010) of b to a.
1110
+1010
11000 which gives 1000 ( ignoring the
overflow)
Example continued …
ii) Using the incrementing machine,
increase the above result 1000, in
magnitude, by 1
1000
+1
1001 which is the same as obtained by
ordinary subtraction.
Note
It may be noted that the above method of
subtraction of binary numbers may be
applied to subtraction of decimal numbers
with the change that 9’s complement of b
will be added to a, instead in step (1).
Following is the task in this regard
Task
Subtract 39 from 64
Solution: Taking a=64 and b=39.
i) Adding 9’s complement (60) of b to a.
64
+60
124 which gives 24 ( ignoring the overflow)
ii) Increasing the above result 24, in
magnitude, by 1 24
+1
25 which is the same
as obtained by ordinary subtraction.
Equivalent machines
Two machines are said to be equivalent if
they print the same output string when the
same input string is run on them.
Remark: Two Moore machines may be
equivalent. Similarly two Mealy machines
may also be equivalent, but a Moore
machine can’t be equivalent to any Mealy
machine. However, ignoring the extra
character printed by the Moore machine,
there exists a Mealy machine which is
equivalent to the Moore machine.
Theorem
Statement:
For every Moore machine there is a Mealy
machine that is equivalent to it (ignoring the
extra character printed by the Moore machine).
Proof: Let M be a Moore machine, then
shifting the output characters corresponding to
each state to the labels of corresponding
incoming transitions, machine thus obtained
will be a Mealy machine equivalent to M.
Following is a note
Note
It may be noted that while converting a Moore
machine into an equivalent Mealy machine, the
output character of a state will be ignored if there
is no incoming transition at that state. A loop at a
state is also supposed to be an incoming transition.
Following is the example of converting a
Moore machine into an equivalent Mealy
machine
Example
Consider the following Moore machine
a
q0/0 q1/1
b b a
a b a,b
q2/0 q3/1
b/0 b /0 a /1
a /0 b /1 a /1,b /1
q2 q3
Input a b b a b b b a
States q0 q1 q2 q3 q3 q3 q3 q3 q3
Moore 0 1 0 1 1 1 1 1 1
Mealy 1 0 1 1 1 1 1 1
Theorem
Statement:
For every Mealy machine there is a Moore
machine that is equivalent to it (ignoring the
extra character printed the Moore machine).
Proof: Let M be a Mealy machine. At each
state there are two possibilities for incoming
transitions
1. The incoming transitions have the same
output character.
2. The incoming transitions have different
output characters.
Proof continued …
If all the transitions have same output characters,
then shift that character to the corresponding state.
If all the transitions have different output
characters, then the state will be converted to as
many states as the number of different output
characters for these transitions, which shows that
if this happens at state qi then qi will be converted
to qi1 and qi2 i.e. if at qi there are the transitions
with two output characters then qi1 for one
character and qi2 for other character.
Proof continued …
Shift the output characters of the
transitions to the corresponding new
states qi1 and qi2. Moreover, these new
states qi1 and qi2 should behave like qi as
well. Continuing the process, the
machine thus obtained, will be a Moore
machine equivalent to Mealy machine M.
Following is a note
Note
It may be noted that if there is no incoming
transition at certain state then any of the output
characters may be associated with that state.
It may also be noted that if the initial state is
converted into more than one new states then
only one of these new states will be considered
to be the initial state. Following is an example
Example
Consider the following Mealy machine
q1 b/1 q2
b/0
q0 q3 a/1
b/1
Example continued ...
Shifting the output character 1 of transition b to q0
q1 b/1 q2
b/0
q0/1 q3 a/1
b
Example continued ...
Shifting the output character 0 of transition a to q1
b/1 q2
q1/0
b/0
q3 a/1
q0/1 b
Example continued ...
Shifting the output character 1 of transition b to q2
b
q1/0 q2/1
b/0
q3 a/1
q0/1 b
Example continued ...
Splitting q3 b
1 2 q1/0 q2/1
into q3 and q3
a b
a
a
q0/1
b a
1
b q3/1
b
a
2
q3/0
Example continued …
Running the string abbabbba on both the
machines, the output strings can be determined
by the following table
Input a b b a b b b a
States q0 q1 q2 q3 q3 q0 q3 q0 q1
Mealy 0 1 1 1 1 0 1 0
Moore 1 0 1 1 1 1 0 1 0
Summing Up