Transducers: Anab Batool Kazmi
Transducers: Anab Batool Kazmi
Finite State
Automata
Automata with
Automata without
Output
Output
(Transducer)
a/b -
+
Formal Definition of FST
A Finite State Transducer (FST) is a 6-tuple M = (Q, Σ, Γ, δ, s, F)
where
• Q is a finite set of states
• Σ is a finite set of input symbols called alphabet
• Γ is a finite set of output symbols called output alphabet
• δ: Q × Σ → Q × Γ ∗ is the transition function
• s ∈ Q is the start state.
• F ⊆ Q is the final state/s.(may have 0 final state)
Example Transducer
• Q={q1,q2}
• Σ={0,1,2}
• Γ={0,1}
• s={q1}
• F=none
Transition Function δ =
(q1,0,0,q1) (q2,0,0,q1)
(q1,1,0,q1) (q2,1,1,q2)
(q1,2,1,q2) (q2,2,1,q2)
Cont.
• On input 2212011, machine enter the sequence of states
q1,q2,q2,q2,q2,q1,q1,q1 and produces output 1,1,1,1,0,0,0
Contd.
• Give the sequence of states entered and the output produced in each
of the following inputs.
Input States Output
011 q1,q1,q1,q1 0,0,0
211 q1,q2,q2,q2 1,1,1
121 q1,q1,q2,q1 0,1,1
0202 q1,q1,q2,q1,q2 0,1,0,1
Example
Q={q1,q2,q3} Σ={a,b}
Γ={0,1} s={q1}
F=none
Transition Function δ =
(q1,a,1,q2) (q2,a,1,q3)
(q1,b,1,q3) (q2,b,0,q1)
(q3,a,0,q1)
(q3,b,1,q2)
Contd.
• Give the sequence of states entered and the output produced in each
of the following inputs.
• 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 −
• 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→ Q
• q0 is the initial state from where any input is processed (q0 ∈ Q).
Mealy Machine
• The state table of a Mealy Machine is shown below −
Next State
→a b x1 c x1
b b x2 d x3
c d x3 c x1
d d x3 d x2
Mealy Machine
• The state diagram of the above Mealy Machine is −
0 /x 2
b 0 /x , 1 / x
/x 1 1 /x 3 2
0
3
a d
1/ 0 /x
x 1
c 3
1 /x 1
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, q0) 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
• X is the output transition function where X: Q → O
• q0 is the initial state from where any input is processed (q0 ∈ Q).
Moore Machine
• 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
Moore Machine
• The state diagram of the above Moore Machine is −
0
b /x 0, 1
0
1
1
a /x 2 d /x 3
1 0
c /x 2
1
• Machine that inverts the input.
i.e: if given 1010 outputs 0101
1/0 0/1 1 0 0
q0 q0,0 q1,1
1
• Machine to Generate 1’s Complement
1/0 0/1 1 0 0
q0 q0,0 q1,1
1
• String = 01100
• Isc = 10011
• +1 = 10100
• String = 11
• 2sc = 01
• Machine to Generate 2’s Compliment
0 1
q0
1/1
q1 1/ q0,0 q1,1 q2,0
0
0/
1
Mealy Machine that count # of occurrences of int where ∑= {a,i,n,t}
(a+i+n+t)*int
String=aint
Outut =0001
1
i/0
a/ i/0 2
0,t/
0
n/0
a/ 3
0,n/
0
t/1
a/0,n/
0,t/0
4
Mooray Machine that count # of occurrences on int String=aint
0
1
i
a,n,t i a
i n t 0 1
-
2,0 3,0
1,0 4,1
i
a,t i
0 2
a,n 0 3
t
a,n,t
4
1
Moore Machine to Mealy Machine
• 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.
Moore Machine to Mealy Machine
• 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
Next State
Present State
a=0 a=1
State Output State Output
→a d 1 b
b a 1 d
c c 0 c
d b 0 a
Moore Machine to Mealy Machine
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 (Q i)
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.
Mealy Machine to Moore Machine
• Let us consider the following Mealy Machine −
Next State
Present State a=0 a=1
Next State Output Next State Output
→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.
Mealy Machine to Moore Machine
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
Mealy Machine to Moore Machine
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
• Mealy to Moore Conversion
Mealy Machine Moore Machine
b/1 States a b Output
q00 q4 q3 0
q1 a/1
q01 q4 q3 1
a/0 q1 q00 q1 1
q20 q1 q20 0
b/0 q21 q1 q20 1
q3 q20 q01 0
a/1 b/1 q4 q3 q21 1
q0 q4 q2
b
a
a Q1,
b/0 a/0 a
Q01, 1
b/1 a/0 1
b
a
q3 a Q4, q2.0,
Q00,0
b 1
b
b
0
States a b
q0 q4,1 q3, 0
b a
q1 q0,0 q1,1 b
q2 q1,1 q2,0
q3 q2,0 q0,1
a
q2.1,
q4 q3,0 q2,1 Q3,
0
0
• Mealy to Moore Conversion
Mealy Machine Moore Machine
States 1 0 Output
S0 S10 S0 0
S10 S10 S2 0
S11 S10 S2 1
S2 S11 S0 0
States 1 0
0
S0 S1,0 S0, 0
S1 S1,0 S2,0
S2 S1,1 S0,0
0 1
0
1
S0,0 S10,0 S2,0
0
1
1
S11,1