You are on page 1of 428

 

 
a, b, c ....... , z
Cancel
2
1
3
Validate
Transfer

Pays

Cancels

Pay Validate Transfer Ship


1 2 3 4 5
F K

S1 Represents the state

Represents transition from


one state to another

S–
0
Start state
OR Start
S0

S+n

Final state
OR

Sn

S1
1
0
S0
S1 S0 S0 S2
S4
1
S2 0
S4 S3
0

a a b b
S0 S1 S2 S3 S4

S0 S4 a, b
S1 , S2 , S 3
a

q0 q1

q1 q2

q2 q2

Q, , , q0, F

q0 q0 q0 Q

a b a b a b a Input tape

Tape reader
reading the input
symbol

Finite control
q w

q , w

q,

({q 0 , q 1}, {0}, , q 0 , q 0 )

0
Start
q0 q1

0
Finite Automata

Deterministic Non deterministic


Finite Automata Finite Automata
(DFA) (NFA)
a
a
q0 q2

q1

0
S2
0

S0 1
0

1 S1

1
S1 S2

S2

S1

S2

S2

S2

S 0 | 1011
1S 1 | 011
10 S 2 | 11
101 S 1 | 1
1011 S 1 |

S1 |
|
|

S0 S2 S1

S1 S2 S1

S2 S2 S1
S0
S2 S1
S0 S2

0
S1
1

S0 1
1

0 S2

q0 1 q1 1 q2 1 q3

1
q0 q1

q1 q2

q2 q3

q3 q1

q3

q0
q1
q2
q3
q1
q2
q3

S0
S1
S2

S0 S1 S2 S0
(2,5,8)
(2,5,8) (0,3,6,9)
S S2

(1 (1,4,7)
,4
(0,3,6,9) ,7
)
(2,5,8)
(1,4,7)
S0 S1

(2,5,8) (0,3,6,9)
(0,3,6,9)
(1,4,7)

From
start 3 6

go to state S0

3 6

from S0 to S0
36

input ends and we are in


final state S0

S1
S0
S1
0

0
S S0

1 1
1
0
S0
S1 S2 1
S1
S2 0

S0 S1 S2

S2

S1 S2 S1 S0
0
q01 q1
q0 0
1 1 1 1
0
q0 q3 q2

0
q1

q2
q3

q0 q1 q3

q1 q0 q2

q2 q3 q1

q3 q2 q0

1 0

Start q0 0 q1 0 q2

q2
Start
0 1 0 0 1 1 0 0

q0 q1 q0 q1 q2 q0 q0 q1 q2
0 1 1
q0 q1 q2

0
q3 1 0

0,1 q3 Dead
state

b b

q0 a q1 a q2 a q3

S0
S1
S2
b

a a b
S0 S1 S2

b
a

Start C A T
q0 q1 q2 q3

H,A,R,I,O,T

C A T
Start
q0 H,R,I,O,T q1 q2 q3
C

C,H,A,R,I,O,T
C

H,A,R,I,O
1
0 0
Start 1
q0 q1 q2

a,b

Start a,b a,b a,b a,b


q1 q2 q3 q4 q5
a

q 1 , abbb q 2 , bbb
q 3 , bb
q4,b
q5 ,

q 1 , ababa q 2 , b ba
q 3 , ba
q4,b
q5 , a
q 1,
0 1

S0 S1
0
1

S2

S1 S0
S2

S1
S0
S1
S1
S0
S2
S2

S0 S1 S2

S1 S0 S1

S2
b b b

a a
q0 q1 q2

q3

a,b

q0 q1 q0

q1 q2 q1

q2 q3 q2

q3 q3 q3

S0 1 S1

0 1
1n 1
S0 S1
S0 S0 S1

S1 S1

S0 , 0 0 1 1 1 S 0 , 0111
S 0 , 111
S 1 , 11
S1 , 1
S1 ,
S1

q0 q1

a b
q0 q1 q2

q 0 , ab q 1, b
q0,
q0
q 0 , ab q 1, b
q2,
q2

1-9
q0 q1

0
0-9

a
a,b

q0 b q1 a,b q2

q0

q2
q2 q2

n
L b | n 0

0 1

q0 1 q1 0 q2

1
0 1
0
q0 1 q1 1 q2
q1 1 q1

0
0
0

b a
b

q0 a q1 q2 b q3

H,A,R,I,O,T
C
C A T
qO
0
q1 q2 q3
H, R, I, O, T C
C,H,A,R,I,O,T
H, A, R, I, O

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

({q 0 , q 1 , q 2 , q 3 }, {C, H, A, R, I, O, T}, , q 0 , {q 3 })


q3
a a

a a
q0 q1 q2

b
b

q4

b q5

1 1

q0 0 q1 1 q2

0 0 0 0

1 1 1
q0 q1 q2 q3

1
q0
0q 0
01q 1
010q 1
0100q 0
01001q 2
010011q 3
0100110q 3

0
q0 q1

1 1 1 1

0
q3 q2

q0 0 q1 0 q2

1 1 1

q3 0

1 0

q4
0 1 1 1
1 0
1 0
0 q0 q1 q0 q1
q0 q1

0 0

q 0 q1 q 2 q3
q0
q1
q2
q3

q0

q0 q0 q1 q2 q3

q1 q2 q3 q0 q1

q2 q0 q1 q2 q3

q3 q2 q3 q0 q1
{3,7}

{0,4,8}
{1,5,9}
{3,7}
q0 {2,6} q1

{0,4,8}

{2,6} {2,6} {0,4,8}


{3,7} {1,5,9}
{1,5,9}
{0,4,8}
q3 q2

{3,7}
{1,5,9}
{2,6}

0 1

1 0
q0 q1 q2

1
q0
q1
q2
q3
q0
0 2 2
1
q0 q1 q3

1
2 1
2 q2 1

1
0,1
q0 0 q1 0 q2 0 q3

q1
0 0

q0 q3

1 1
q2

0
a
a,b
q0 b q1 b q2
a b
q0 q1 q2

a a

0
1

1 0
0000 0001 0010 0011

0 1 1
0 1

0
1 0111,
0 1 0100 0101 0110 1011, a, b
0 1101
0
1
0 1 1
0

1000 1001 1010 1100


1
0
q0
F Q

b a

q0 a q1

b
a

q2
q, a q, b

1, ab 1, abaab

a,b
a a,b
1 2 3

a,b

a
5 4

1, ab
1, abaab
0

1 0

1 0 1 0,1
q0 q1 q2 q3

q4 1

q5 q6 0,1
0

0,1 1

q0 1 q1 0 q2

1
0 1 2

q0 0, q1 1, q2

q0
q 0 or q 1
q1 q2
q1 q2

Q, , , q0, F
Q, , , q0, F

Q
q0

q0

a b c

Start q0  q1  q2
a

q0 q0 q1

q1 q1 q2

q2 q2

q0 | q 0 , abbcc
| q 0 , bbcc
| (q 0 , bbcc)
| q 1 , bbcc
| q 1 , bcc
| q 1 , cc
| q 1 , cc
| q 2 , cc
| q2, c
| q2,

q,
a b c

q0  q1  q2

q0 q 0 , q 1, q 2
q1 q 1, q 2 q1 q2
q1
q2 q2

qi

q, a - closure q, , a

q - closure q
0 1 2

q0  q1  q2

q0 q 0 , q 1, q 2
q1 q 1, q 2
q2 q2
q0
q2 q1 q2

(q 0 , 0) q0, ,0

- closure q 0 , 0
q 0 , q 1, q 2 , 0
q0, 0 q 1, 0 q2, 0
q0
q0 q 0 , q 1, q 2

(q 0 , 1) q0, ,1

q 0 , q 1, q 2 , 1
q0, 1 q 1, 1 q2, 1
q1
q1
(q 0 , 1) q 1, q 2

(q 1 , 0) q 1, ,0

- closure q 1 , 0
q 1, q 2 , 0
q 1, 0 q2, 0

(q 1 , 1) q 1, ,1

- closure q 1 , 1
q 1, q 2 , 1
q 1, 1 q2, 1
q1
q1
q 1, q 2
(q 2 , 0) q2, ,0

- closure q 2 , 0
q2

(q 2 , 1) q2, ,1

- closure q 2 , 1
q2

(q 2 , 1)
(q 0 , 2) q0, ,2

- closure q 0 , 2
q 0 , q 1, q 2 , 2
q0, 2 q 1, 2 q2, 2
q2
q2
q2
(q 1 , 2) q 1, ,2

- closure q 1 , 2
q 1, q 2 , 2
q 1, 2 q2, 2
q2
q2

(q 2 , 2) q2, ,2

- closure q 2 , 2
q2
q2
q2

q0, 0 q 0 , q 1, q 2
q0, 1 q 1, q 2
q0, 2 q2
q 1, 0
q 1, 1 q 1, q 2
q 1, 2 q2
q2, 0
q2, 1
q2, 2 q2

q0 q 0, q1, q 2 q1, q 2 q2

q1 q1, q 2 q2

q2 q2
0 1

0,1
q0 q1

0,1,2
1,2

q2

q0 q1 q2 q0
q1 q2 q2

a 
q0 q1 q2

q0, q1 q2

q0 q0
q1 q 1, q 2
q2 q2

q0, - closure q0, ,a

- closure - closure q 0 , a
- closure q0,a
- closure q 1
q 1, q 2

q0, b - closure q0, ,b

- closure - closure q 0 , b
- closure q0, b

q 1, - closure q 1, ,a

- closure - closure q 1 , a
- closure q 1, q 2 a
- closure q 1, q2,a
- closure

q 1, b - closure q 1, ,b

- closure - closure q 1 , b
- closure q 1, q 2 b
- closure q 1, b q2, b
- closure q2
- closure q 2
q2

q2,a - closure q2, ,a

- closure - closure q 2 , a
- closure q2 a
- closure

q2, b - closure q2, ,b

- closure - closure q 2 , b
- closure q2 b
- closure q 2
q2
a

q0 q1, q 2

q1 q2

q2 q2

q1 q2 b
q1 q2
a b
q2 q0 q1 q2

1
B
0  0

qA0 D

1

C

0
0
1
0, 1
A B

0,1
0 0

1
0 C D

[q 1 , q 2 , q 3 , ......... q i ]

q 1, a q2,a qi,a
q 1 , q 2 , ...... q k
q 1 , q 2 , ...... q k

q 1 , q 2 , ...... q k q 1 , q 2 , ...... q n
q 1 , q 2 , ...... q n
q 1 , q 2 , ...... q n

q0 q 0, q1 q0

q1 q2 q1

q2 q3 q3

q3

q0 q0 q1
q0 q0 q1

q0 q0
q0 q0

q0 q1

q0 q1 q0 q1
q0 q1 q2
q0 q1 q2

q0 q1 q2

q0 q1 q0 q1
q0 q1
q0 q1
q0 q1 q2

q0 q 0, q1 q0

q 0, q1 q 0 , q1 , q 2 q 0 , q1

q 0, q1 , q 2 q 0 , q1 , q 2 , q 3 q 0 , q1 , q 3

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

q0 q 0, q1 q0

q1 q2 q1

q2 q3 q3

q3 q2

q 0, q1 q 0, q1 , q 2 q 0, q1

q 0, q1 , q 2 q 0, q1 , q 2 q 3 q 0, q1 , q3

q 0, q1 , q3 q 0, q1 , q 2 q 0, q1 , q 2

q 0, q1 , q 2 q 3 q 0, q1 , q 2 q 3 q 0, q1 , q 2 q 3
F

0 0
[p] [p,q] [p,q,r]

1 1 1
1
Part I

1 0
[p,r,s] [p,q,s] [p,r]
0 0
0
[p,q,r,s]
0
q
1
[p,s] 1
0,1

0
r s 0,1

Part II

0 0,1 0,1
0
1
q0 q1 q2

1
q0 q0 q1

q1 {q 1 , q 2 } q1

q2 {q 2 } {q 1 , q 2 }

[q 0 ], 0 {q 0 }
[q 0
[q 0 ], 1 {q 1 }
[q 1
[q 1 ], 0 {q 1 , q 2 }
[q 1 , q 2
[q 1 ], 1 {q 1 } [q 1 ]
[q 2 ], 0 {q 2 }
[q 2 ]
[q 2 ], 1 {q 1 , q 2 }
[q 1 , q 2 ]

[q 1 , q 2 ]
[q 1 , q 2 ], 0 [q 1 ], 0 [q 2 ], 0
{q 1 , q 2 } {q 2 }
{q 1 , q 2 }
[q 1 , q 2 ]
[q 1 , q 2 ], 1 [q 1 ], 1 [q 2 ], 1
{q 1 } {q 1 , q 2 }
[q 1 , q 2 ]
[q 1 , q 2 ] q2

[q 0 ] [q 0 ] [q 1]

[q 1] [q 1, q 2 ] [q 1]

[q 2 ] [q 2 ] [q 1, q 2 ]

[q 1, q 2 ] [q 1, q 2 ] [q 1, q 2 ]

0 1
0
q0 1 q1 q2

0 Can be
1 eliminated
0,1
[q1,q2]

q0 q0
q0
q1
q1
q2 q1

q0 q0
q0
q1
q1
[q 1 , q 2 ]

0 1 0

1 0 1 q4
q0 q2 q3

0
0

q1

0 1 0

1 0 1 q4
q0 q2 q3

1 0 0
0, 1
0 1 1
q0 q1 q2 q3

1 0
0, 1
0 1 1
q0 q1 q2 q3

0
1 0
0 1
[p] [p,q] [p,r]

1
0

[p,q,r]

0,1

(P, 0) P, Q [P, Q]

(P, 1)

(Q, 0)

(Q, 1)

(R, 0)

(R, 1)

(S, 0)

(S, 1)

[P, Q], 0)
[P, Q], 1)
[P, Q, R], 0)
[P, Q, R), 1)
[P, Q, R, S], 0)
[P, Q, R, S), 1)
[R, Q], 0)
[R, Q), 1)
[R, Q, S], 0)
[R, Q, S), 1)
[R, S], 0)
[R, S), 1)
[Q, S], 0)
[Q, S), 1)

States/ 0 1

p {p, q} {q}

q {r} {r}

r – {r}
p
p
p q], 0
p q],
p q, r], 0
p q, r],1
q r], 0
q r],1

State

0 0
p [p,q] [p,q,r]

1
1
q

[q,r]
q {q 0 , q 1 }
q {q 1 }
q
q {q 0 , q 1 } q0 {q 0 , q1} {q1}

{q 0 , q 1 } q1 {q 0 , q1}

([q 0 , q 1 ], 0) [q 0 , q 1 ]

([q 0 , q 1 ], 1) [q 0 , q 1 ]

0,1
0
q0 [q0,q1]

[q 0 ] [q 0 ,q1 ] [q1 ]
1
[q 0 ,q1 ] [q 0 ,q1 ] [q 0 ,q1 ] 1

[q1 ] [q 0 ,q1 ] q1
b a

Start 
q0 q1 q2

a

a
a
a a a

q 1, q 2
a
a b

A B A

B B A

b a
a
A B

0 1 2

q0  q1  q2
0

1
A B

C
0
1
1
A B

2
2

C
0

1 1
A B

2
2

q 1, q 2

q1
 0

Start q0 q3 1 q4

 1
q2
0
A B
1

0
Start
A B
1
1

C
0
C
B 1
0
 1

A
E

0
D

(A, 0)

(A, 0)
(A, 1)

(A, 1)
(B, 0)

(B, 0)
(B, 1)
(C, 0)

(C, 0)
(C, 1)

(C, 1)
(D, 0)

(D, 1)

(D, 1)
(E, 0)

(E, 0)
(E, 1)
Q 01 , Q 02 Q 01

Q 02 Q – Q 01
QK
i
QK
i

a
b
b
Start b a
q0 q3 q4 q5
b

b a a
a a a

b
q1 q2 q7 a q6

b b
q0 q1 q0

q1 q0 q2

q2 q3 q1

q3 q3 q0

q4 q3 q5

q5 q6 q4

q6 q5 q6

q7 q6 q3
[q 0 , q 6 ] [q1 , q5 ] [q 0 , q 6 ]

[q1 , q5 ] [q 0 , q 6 ] [q 2 , q 4 ]

[q 2 , q 4 ] [q 3 ] [q1 , q5 ]

[q 3 ] [q 3 ] [q 0 , q 6 ]

[q 7 ] [q 0 , q 6 ] [q 3 ]

b b
[q0,q6] q3 q7

a
a a a

b
[q1,q5] [q2,q4]
b
1
Start 0
q0/1 q1/1

1
0

1
q2/0

0
0/0
Start 1/0
q0 q1

0/1
1/1

1/0
q2 0/0
0
0
q1/1

Start q0/0 1 0

1 q2/0

 
Current Next state
Output
state 0 1
q0 q1 q2 0
q1 q1 q2 1
q2 q1 q2 0
q 0 , q 1, q 2

Start 1 0 1
q0/C q1/C q2/C q3/A

q4/C 0 q5/B

0
0 0
Start 1 0 1
q0/C q1/C q2/C q3/A

1
1

q4/C 0 q5/B

1
0
0/C
0/C 1/A

q0 1/C 0/C q2
q1

1/C

0/B
q3

1/C

0/0 0/1

q0 1/1
q1

1/0
1/0 1/1
Start 0/1
q0 q1

0/0
q4/4 0
2 q2/2

q3/3
0
2
Start
q0/0 q1/1
1

0
2 0 2
1

2 1
q2/2 q3/3
1
0
0
1

q4/4

1/0
0/0
2/0
Start
q0 q1

1/1

0/3
2/2 2/1
0/1

1/4
2/3
q2 q3
1/2

0/2 0/4

1/3

q4

2/4
E

q1/E

E I,U
A E E

I I U
Start
q0/A q2/I q4/U
A
A I U

A U
O I
O
O

q3/O

A
O
A/A
I/I

Start E/E
q0 q1

A/A, E/E
O/O O/O U/U
U/U
I/U

0
1
Start
q0/0 q1/1

0 0

q2/2

1
1/ODD 0/ODD
0/EVEN
q0 q1

1/EVEN

0/Z
0/Z 0/Z

1/Z 0/Z 1/X


q0 q1 q2 q3

0/Z 1/Z 1/Z


1/X

0/Y
q4 q5

1/Z
0
0 0

1 0 1
q0/Z qq
1/Z
1 q2/Z q3/X

1 1
1

0
q4/Z q5/Y

0/1

1/0
q1 q2

/1
1/1 1,1 0/1
0/

q4 0/0 q3

1/1
q1 q4
0
q3
q1/1 1 q2/0 q 2/1
q2

1 0,1 0,1
0 0
q2 q2
q2
0 1
q3 q3 q3 q4/1 q3/0 q 3/1 1

1011
Read from LSB

q2/1
0

1
q0/0 q1/1 0 1

1
q3/0
 0 1 Output ()
Q
q0 q0 q1 0
q1 q2 q0 1
q2 q1 q2 2

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

1 0
1
 Input 0 Input 1
Q State O/P State O/P
q0 q0 0 q1 1
q1 q2 2 q0 0
q2 q1 1 q2 2
0/0
1/1 0/2
q0 q1 q2
1/0 1/1
0/2

b
b
q0/0 q1/1
a
a
 Input a Input b
Q State O/P State O/P
q0 q0 0 q1 1
q1 q0 0 q1 1

a/0 b/1
b/1
q0 q1

a/0

a b b a
q0 q0 q1 q1 q0

a b b
q0 q1 q1 q1 q0
0 0

q1/0 q2/0
1

0 1

q3/1

0/0
0/0

q1 q2

1/0
0/0 1/1

q3

1/1
0
1
q0/0 q1/1

0 1 1

0
q3/0 1 q2/0

q q, 0))

q0 q 0 , 0))
q
(q 0 , 0)
q0 q 0 ,1))
q
q0

0/1
q0 1/1 q1

0/0 1/0 1/0

0/0
q3 1/0 q2

0/0
0/A 0/B
1/B
q0 q1

1/A

' ((q0, A), 0) = [(q0, 0),  (q0, 0)]


i.e [next state of q0 on input 0, output of q0 on input 0 ]

q0 A

= [q0, A]
I/P 0 1 Output
State
[q0 , A] [q0 , A] [q1 , B] A
[q0 , B] [q0 , A] [q1 , B] B
[q1 , A] [q1 , B] [q0 , A] A
[q1 , B] [q1 , B] [q0 , A] B

0
1 0

[q0,A]/A [q1,B]/B
1

0 1 1 0

[q0,B]/B [q1,A]/A

q1 0/Y

0/N

q0 1/N 0/N

1/N
q2

1/Y
I/P 0 1 Output
State
[q0 , N] [q1 , N] [q2 , N] N
 0 1 Output
State
[q0 , N] [q1 , N] [q2 , N] N
[q0 , Y] [q1 , N] [q2 , N] Y
[q1 , N] [q1 , Y] [q2 , N] N
[q1 , Y] [q1 , Y] [q2 , N] Y
[q2 , N] [q1 , N] [q2 , Y] N
[q2 , Y] [q1 , N] [q2 , Y] Y
0/1

q1 1/0 q2

0/1 0,1/1

[q1] [q1] [q2 ]


q3 q4
[q2 ] [q4 ] [q4 ] 0/0
[q3 ] [q2 ] [q3 ]
1/1
[q4 ] [q3 ] [q1]
1/1

q1/1 1 q2/0

1
0 0,1
q3/0 q'2 /1

1
0 0,1
q4/1
q3/1

1
q 0 , 0) ( (q 0 , 0)) (q 1 )
q 0 , 1) ( (q 0 , 1)) (q 2 )
q 1 , 0) ( (q 1 , 0)) (q 3 )
q 1 , 1) ( (q 1 , 1)) (q 2 )
q 2 , 0) ( (q 2 , 0)) (q 2 )
q 2 , 1) ( (q 2 , 1)) (q 1 )
q 3 , 0) ( (q 3 , 0)) (q 0 )
q 3 , 1) ( (q 3 , 1)) (q 3 )

q0 q1 q2

q1 q3 q2

q2 q2 q1

q3 q0 q3

0/1
q1
0/0 0/1
q0 q3
1/0 1/1

1/1
q2 1/1

0/1
a/0

b/0 a/1
s0 s1

b/1

S0 S0
S1 S1 S1

b
a
S0/0 S1/0
b
b a a

S0/1 S1/1
b
a

b/0 a/0 a/1

S0 S1

b/1

[S 0 ,0], [S 0 ,1], [S1 ,0], [S1 ,1]

((S 0 ,0), a) (S 0 , a), (S 0 , a )]


[S1 , 0]
' ([S 0 , 0])
((S 0 ,0), b) (S 0 , b), (S 0 , b)]
[S 0 , 0]
' ([S 0 , 0])
((S1 ,0), a) (S1 , a), (S1 , a)]
[S1 , 1]
' ([S1 , 0])
((S1 ,0), b) (S1 , b), (S1 , b)]
[S 0 , 1]
' ([S1 , 0])
((S 0 ,1), a) (S 0 , a), (S 0 , a)]
[S1 , 0]
' ([S 0 , 1])
((S 0 ,1), b) (S 0 , b), (S 0 , b)]
[S 0 , 0]
' ([S 0 , 1])
([S1 ,1], a) (S1 , a), (S1 , a)]
[S1 , 1]
' ([S1 , 1])
([S1 ,1], b) (S1 , b), (S1 , b)]
[S 0 , 1]
' ([S1 , 1])
b
a

[S0, 0] / 0 [S1, 0] / 0

b a
b
a

[S0, 1] / 1 [S1, 1] / 1 a

b
Vending Open
Coin Coins Release
machine
sensor 10 mechanism
FSM
or
5

10

q0 5 q1 5 q2 5 q3

10
l l o t
allot

a o n e
alone

n t ant

i m a l
animal

a t bat
b

d
bad

g
bag
, ,
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


L1 L2

L1 L2
L1 L2
L*1

L+ L

R a

L+

2 3

L L L L L L
b
b c
L1 L2
L1
L2

L1 L2
L1
L1

L2

a a a

3 rd 2nd 1st
a b*

L
L
L L
L1 L L1 L
L L
L1 {b 2 , b 5 , b 8 , b 11 , b 14 . . .}
L1 {b 2 , b 5 , b 8 , b 11 , ...}

L2 {a 2n 1| n 0}
L2 {a 2n 1
| n 0}
a (aa)

0* (10* 10*) * 1 (0* 10* 1) * 0*

0* (0* 10* 1) * 0*

(b * a b * a b*)
a *(bbb)* a *
00 (0 1)*
1 (0 1)* 00

ab) b)* a a ((ba) b)* /((ba) a)* bb ((ab) a)*

b * (aaa)* b *

(a b)* (aa) (bb) (aa) (a b)*


a (a b) ab a b b a
y xy xy

(x y) yx (x y) x y

yy (x y)

b ab ab

(a c) b

(a b)
(a ba ba )
(a + b) (ab ba bb)

a b a b a n bn
a b a n bn
a n bn
R R R

R R
R

R
(R R
RR R

(P Q) (P Q ) (P Q )
R* ( R) R) R * R*
(R ) R
R R
(PQ) P P (QP)
R R R R R

QP
QP

Q QP P
Q( P P)
QP R R R

QP

QP

Q QP RP 2

Q QP (Q RP) P 2
Q QP QP 2 RP 3

Q QP QP 2 .... QP i RP i 1

Q( P P2 .... P i ) RP i 1

Q( P P2 .... Pi ) RP i 1

Q( P P2 ... Pi RP i 1

P
QP RP i 1

RP i 1
RP i 1

QP *
QP

(1 00 * 1) (1 00 * 1) (0 10 * 1)* (0 10 * 1) 0 * 1 (0 10 * 1)*

R* R where R 0 10 * 1

0 * 1* * 0 1 *
r s r t
b
b

1* (011)* (1* (011)* )* (1 011)*

P1
P1 P1
P1 P1 P1 P1
P1

P2 P3 (011)
P2 P3
(P2 P3 ) (P Q ) (P Q)

1 (011) (1 (011) )
(rs r) r r (sr r)
r1 (rs r) r

r2 r (sr r)

(rs r) r r (sr + r)
s (rs s) r rr s (rr s)
r1 s(rs s) r

r2 rr s (rr s)

(r { , r, rr, rrr, rrrr .....} s)

{rs} { , r, rr, rrr, rrrr ......}

s (rs s) r rr s (rr s)
(r s) r s
r1 (r s)

r2 r s
(r s) r s

L
L

L L

L
L L L
L

*
S (S* )*
r1 r1 r1 r 2 r 2 r1
r1 r1 r1 r1 + (r 2 r 3 ) (r1 r 2 ) (r1 r 3 )
r1 a, r2 b, r3 ab

r1
r1

r1 r
r2 r

r1 r
r

r1 (r2 r 3 )

(r1 r2 (r1 r 3

(PQ) * P P (QP) *
a* b b b a* = a* b b b a* *

P P P P
Q Q

((a bb) * aa) *


{ , aaa, bbaa, aaaa, bbaaa, abbaa, ...}
(a bb) * aa
{ , aaa, bbaa, aaaa, bbaaa, abbaa, ...}

RE to FA
conversion

Using Thompson`s Using Direct


construction method

Start a
q0 q0 q1 q0

r= r= r=a


(no path to final state)
q1 M1 f1
 
Start
q0 f0

 q2 M2 f2 

r r1 r2 r1 r2

Start 
q1 M1 f1 q2 M2 f2

r r1 r2

r r1

Start  
q0 q1 M1 f1 f0


q2 a q3

 
Start   a
q0 q1 q6 q7 q8
 
b
q4 b q5
q9

b

q10

q0 q 1, q 2 , q 4 , q7
A, a q 1, q 2 , q 4 , q7 , a
q 3, q8
q 1, q 2 , q 3 , q 4 , q 6 , q7 , q 8
A, a
A, b q 1, q 2 , q 4 , q7 , b
q5 q 1, q 2 , q 4 , q5 q 6 q7
A, a
B, a q 1, q 2 , q 3 , q 4 , q 6 , q7 , q 8 , a
q 3,q8
B, a
B, b q 1, q 2 , q 3 , q 4 , q 6 , q7 , q 8 b
q5 , q 9
q 1, q 2 , q 4 , q5 , q 6 , q7 , q 9
B, b
C, a q 1, q 2 , q 4 , q5 , q 6 , q7 , , a
q 3,q8
C, a
c, b q 1, q 2 , q 4 , q5 , q 6 , q7 b
q5
C, b
D, a q 1, q 2 , q 4 , q5 , q 6 , q7 q 9 a
q 3,q8
D, a
D, b q 1, q 2 , q 4 , q5 , q 6 , q7 q 9 b
q 5 , q 10
q 1 , q 2 , q 4 , q 5 , q 6 , q 7 , q 10
D, b
E, a q 1 , q 2 , q 4 , q 5 , q 6 , q 7 q 10 a
q 3,q8
E, a
E, b q 1 , q 2 , q 4 , q 5 , q 6 , q 7 q 10 b
q5
E, b

I/P a b
State
A B C

B B D

C B C

D B E

E B C

b
C
b
b a
b
a b
A B D E
a
a a
b
a b
A B D E
a
b
a a

P Q P
q0 q1 q2 q3 q4 q5 q6 q7 q8

q9

q0

q2 P q3

q0 q1 q6 q7

q4 Q q5
P
q0

q2 R q3 S q4

q0 q1 q7 q8 q9 R q10 S q11

q5 q6
R

q0 R q1 S q2

q0 RR*S
q1

R
q0 R q1 S q2
R
q0

q0 R q1 R

q2 S

10 (0 11) 0* 1

10+(0+11)01
q0 qf

10
q0 qf
(0
+1
1)
0
1

q1
0
1

q0 qf

(0+11)
01
q2
q1
1 0

q0 qf

(0+11)
1
q2

1
q0 q1
0
1

0 q2 qf

1 1

q3

q0 q3 { q1, q2 }

q1 qf

q2 q3

q3 q3 qf

qf
[q0 ] [q3 ] [q1, q2

[q1] [q f ]

[q ] [q ]

[q ] [q ] [q f ]

[q1, q2 [q f ] [q3 ]

[q f ]

q7 q8 2 q9 q10

0 1 2
0 1 2
q0 q1 q2 q3

0
q0
1
2
0
0, 1

q0 0 q1 1 q2 0 q3

1
1

q4 0 q5

0
1

q0 (11)* 010 (11)* qf

q0 (11)* 010 (11)* qf

1
q0 q1

1
q2 1 q3 0 q4 q5

1
0
0
q1/1

Start q0/0 1 0

1 q2/0

 
Current Next state
Output
state 0 1
q0 q1 q2 0
q1 q1 q2 1
q2 q1 q2 0

q 0 , q 1, q 2

0/1

q0

1/0
Mealy machine
01 [((10)* + 111)* + 0]* 1
q0 qf

01 [((10)* + 111)* + 0]* 1


q0 q1 q2 qf

(((10)* + 111)* + 0)*


0 1 1
q0 q1 q2 qf

((10)* + 111)

0 1 1
q0 q1 q2 qf

0 1 1
q2 q1 q2 qf

0
0 1
1

1(1 + 10)* + 10(0+01)*


q0 qf

(1+ 10)
1
q0 q1

1 0 + 01
q2 0 q3

1 1
1
q0 q1 q2

0
1
0 0
0
q3 q4 q5

1
q0 1(01+10)* qf

q0 1(01+10)*+0(11+10)* qf 0(11+10)*

qf

0
q0 1 q1 q2

1
0 1 0
1
q5 q4 q3
1,0

(0 1) * 1 (0 1)

0
q2 q3
 
  
q0 q1 q6 q7 q8

 1  1
q4 q5

q9


q10

0 1

q11
(q 0 ) {q 0 }
(q 1 ) {q 1 , q 2 , q 4 }
(q 2 ) {q 2 }
(q 3 ) {q 3 , q 6 , q 1 , q 2 , q 4 , q 7 , q 8 }
(q 4 ) {q 4 }
(q 5 ) {q 5 , q 6 , q 1 , q 2 , q 4 , q 7 , q 8 }
(q 6 ) {q 6 , q 7 , q 8 , q 1 , q 2 , q 4 }
(q 7 ) {q 7 , q 8 }
(q 8 ) {q 8 }
(q 9 ) {q 9 }
(q 10 ) {q 10 }
(q 11 ) {q 11 }

1
0,1
q0 0 q1 0 q2 0 q3

q1
0 0

q0 q3

1 1
q2

0

a  b q15 a q16

q17 b
 q1 q2 q3 q4   

q0 q9  q10 a q11  q12 a q13  q14 q22

 b  a   q b  a 
q5 q6 q7 q8 18 q19 q20 q21


(ab) *

a
q0 q1

a * b*

q0

(ab) * a * b*

(a b) * (a b) * (a b) *

(a b) * (a b) * (a b) *

(1 0) (00 11 10) 1(01 10) 0(11 10)

(0+1)*(00+11+10)
q0 qf

q0 (0+1)* q1 (00+11+10) qf
0,1

q0 1 q1 1,0 qf

0 0
q2

q0 1(01+10)* + 0(11+10)* qf

1 (01+10)*
q0

qf

0 (11+10)*

0 q2

q0 1 q1 1

0
0
1 1
q5 q4 q3

1,0

DFA to RE
conversion

Using state/loop Using Arden's


elimination method
a

q0 a q1 a q2

a aaa

q0 aa q2 q0

aaa

2
0 0

q0 q1 q2

1 1


02 0

q0 q2

1 21
0

0 1
0,1
q1 1 q2 0 q3 1 q4

q0
q5

0 1
0,1
q0 q1 1 q2 0 q3 1 q4

q5

q4

0 1

q0 q1 1 q2 0 q3

q5
q3

0 1

q0 q1 1 q2

00

+0

q5

q2
0 + 11*00

q0 q1

+ 11*( + 0)

q5

q1

(0 + 11*00)*( + 11*( + 0))


q0 q5

1 1 0,1

q0 0 q1 0 q2 0 q3

1
1 1 0,1

q0 0 q1 0 q2 0 q3

1 1

q0 0 q1 0 q2

1 + 01 1

q0 0 q1 0 q2

1 + 01 + 001

q0 0 q1 0 q2

q0 1 q1 1 q2 0 q3

0 1

q0 1 q1 1 q2 0 q3

0 1
[0 (10) 1 ]

q1
q2 q 3 q4 qn qj

ji qj qi
qi
qi ji qj

qi
qi ji qj

a b
Start b q2 a q3
q1

q1 q1

q1 q1 q1

q2 q1 b q2 b
q1
q1 q1

q1 q1
q1
q1 *
q1
q1 q2
q2 q1 b q2 b
q2 q2

q2

q2
R
q2 b

q2
q2 *b b

Start q1
1
1
0 q2
1

q3 0

q1 q1 q3
q2 q 21 q3 1 q1 1
q3 q2

q1
q2 q2 q2 q1
q2 q2 q1
q2 q1 P

q2 q1
q1
q1 q1 q3
q1 q2
q1 q1
q1 q1

q1

q1 0 1 1 01 * 00 *
q1

q1 0,1
1

q0

0
q2 0,1

q0
q2 q2 q2 1 q0
q0 q2
q2 q2
q2 q2
q2 q2
a,b

Start q0 q1

a,b

q0 q1 q1 b
q1 q0

q0
q0 q1

q0
q1 b q1
q1 q1

q1

q1 b b *

0 1

1
q0 q1

0
0 0
q0
q0 q00 q20 q30 q3 q2
1

q1 q 01 q 11 q 31
1
q2 q 10
q3 q 21

q2
q3 q 1 01

q1 q 01 q 11 (q 1 01) 1
q1 q 01 q 11 q 1 011
q1 q 1 (1 011) q0 1
R R P Q

q1 q 0 1 (1 011) R Q RP R QP

q0
q0 q00 q20 q30
q00 (q 1 0) 0 (q 1 01)0
q0 q00 q 1 (00 010)
q00 q 0 1 (1 011) (00 010)
q0 q 0 (0 1 (1 011) (00 010))
q0

q3 q 1 01
q 0 1 (1 011) 01
q3 (0 1(1 011) (00 010)) 1 (1 011) 01

q3 q3

(0 1(1 011) (00 010)) 1 (1 011) 01)


0 0

q3 q1 q2

1 1

q2 1 q 3
q1
q1

q1 = q1 (01 + 10) + 

R R P Q

q q 21 q
q 1 01 q
q
q R R

1 0
0 1
0
A B C

1
A = A 1 + B11 + 

RP Q

B11+ )1 *

(B 11 )

B = B ( 0 + 111* 0 + 10 ) + 1* 0

R P Q

1 0,1

q1 0 q2

q1 q1
q2 q1 q2

q1 = q1, 1 + 

R R P Q

q1 QP
q1
q2 = 1* 0 + q2 (0+ 1)

R Q R P
q2

q q

2
0
q1
1
q0 0
1
q2
0,1

q0 q1 q2
q1 q 0 +q 1
q2 q q0

q0 q1 q0 q1
q0 q1 q0 q0 q1 q1
+q 1 q0

q0 =  + q1(1 + 00 + 01) + q01(0 + 1)

R Q R P

q0 [ +q 1

q1 q0 q1
q1 +q 1 q1
(1(0 +1)) * q1 q1

q1 = (1 (0 + 1))*0 + q1 [(1 + 00 + 01)(1(0 + 1)) 0 + 2]

R Q R P
q1 (1(0 +1)) *
q0
q0 +q 1
q1
q 1(0 +1)) *

q 0 q1

i 0
v i

M Q, , , q 0 , F

1, 2, 3,.... m , m n
q0 q1 q2 q 3 qi qi

aj+1....ak

ai.....aj ak+1....am
q0 qj = qk qm
qm q1 q2 q 3 qm 1, 2 , ... j k 1 k 2 ...... m
q0 qm qj
j 1 .... k

q0, 1, j k 1 ... m q0 q1 qj k 1 .... m

q j q k+1 qm

q k q k+1 qm

qm

2
L bi

2
b1
2
b2

2
bn n2

n2

|v| n
uvi w
n2
1 | v | n
n2 1 | uvw | n n2
n2 1 |uvw| n2 n n 1
2
n2 1 |uvw| n 1
2
n2 |uvw| n 1

2
bi
0 2n
2n uvi w

uvi w

p 1

0n 1n 1
xy ny

L
a mbn m n

a mbn m n

i j

z = 0 0 0 1 1 1

u v w
w an b
an b an b
2n 2 n

x iz L
xy i z

ak

am b an b
n k

{a, b} *

xy i z

xz L

y
xy
xy i z

0m 1n 0m n

m n m n
0 1 0

x y z

xy i z
0m 1n 1n 0m n

0 m 1 2n 0 m n L
xy
m–k k n–p p m+n
w = 0 0 1 1 0

x y z

0m k (0 k 1 n p) (0 k 1 n p) 1p 0m n

0m k 0 2k 1 2n 2p 1p 0m n

0m k 1 2n p 0m n L

xy i z L
ab ab ba ba
n n n n

a b ab ba ba
u 1 w
L1 L2 L1 L2
L1 L2 L1 L (R 1 )
L2 L (R 2 ) L1 L2 L (R 1 R2 ) L1 L2

L1
M (Q, , , q 0 , F) L1
M' (Q, , , q 0 , Q F) M

M'
M'
L1 M'

L1 L2 L1 L2
L1 M1
L1 (Q 1 , , 1, q 1 , F1 ) L2
M2 (Q 2 , , 2 , q 2 , F2 )
L1 L2
M (Q, , , q, F)
Q1 Q2

F1 F2 M1 M2

L1 L2
L1 L2
L1 L2

L 1 and L 2 L1 L2
L1 L2 L1 L2
L1 M (Q, q 0 , F)
L1 L1 M (Q, , , q 0 , Q F)
M

L 1 and L 2
L 1 L(R 1 ) L2 L (R 2 ) L1 L2
L (R 1 + R 2 ) . L1 L2 L1 L2
wR L (w R ) (L(w)) R

w wR
( )R ( )R
L(w R )

w1 w2
(w 1 ) R (w) R

w1 w2
w1
w2
wR
1
wR
2
wR
1
wR
2

L1 L1 L(R *1 )

L1

L1 L2 L1 L2

L1 L2 L1 L(R 1 )
L2 L(R 2 ) L1 L 2 L(R 1 R 2 )
h
0 1 a bb
q0 q1 q2 q0 q1 q2
i.e.

a
0 h(L)
L

a bb
q0 q1 q2

a
–1
h (L)
a, b
letter/digit

q0 letter q1

TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


Sentence

Noun Verb

Sita Sings

G =(V, T, P, S)
l

l l l l l
a
L n bn where n 1
L wcwT

a a

a b a

a b c b a

madam
read read

It is the same !
a a
ab ba
abaab
abaaba
abaaba

a aa a a

aa aa a a

aa aaba

aa a aab a a

aa a aabab
A aa

one occurrence
anything
of double

a
ab
ab
abaa
abaab
abaab
abaab

0, 1
1

a n bn

a xb y | x y

bR2 | b

regular expression = (110 + 11)* (10)*

Can be represented
by the non
terminal
A B
0i 1j 2k | j i k

0 i 1 j 2k

i i k p k
L = 0 1 1 1 2

This will be
greater than
i+k
i i p k k
L= 0 1 1 1 2

define
rule using define rule
define using
rule using B
C
NT A

0i 1j 2k | i j

0i 1j 2k | j k

L1 0i 1j 2 j
L2 0i 1j 2 k
0i 1j 2 j 2 k
2n
a b
S A B
a b
b b a
qf

C
a
qf

a b
S A B
a b

b a

b a
C

b a

a b
S A B

a aa b b b

0 m 1n 0 m n m, n 0 0 a 1b 2 c a–c b

0m 1n 0m n
am bn | n m
S
A

B
a,b

S T
a,b

L {a n b m|n m}
{a n b m c k|n m or m k}

a n b m c k|n m
a n b m c k|m k
A b|

Ab

a a
ab ba
abaab
abaaba
abaaba

am b n cn cm
a n a m bmc n
{0 i 1 j 0 k j i k }
{0 i 1 j 2 k j k}

0i 1j 2k | i j k}
0 j 0k 1j 2k
0k 0 j 1j 2k
0X 2 | 0 2
0X 1 |
S ABC
A 0A1|
B 1B |1
C 1 C0 |

Derivation of 0111100
S

A B
C

0 A 1 1
1 C 0

1 C 0

b b
S

b S b

a
S

b b
S

b S b

a a
S We have chosen S aSa

b b We have chosen S aSb


S

a a We have chosen S aSa


S

 S  is chosen
S

a B

a B B

b S b S

b A
b A
a
a
E E

E E
E + E *
Or
id E + E
E * E id

id id id id

i c t S e S

b i c t S a

b i c t S

b a
S

i c t S

b i c t S

i c t S e S
b

b a a

S S

A A A A

b A b A A b b A

A b A b b A A b

b a a a

(a) (b)
S

A A

b A A b

b A
a
b A

a
(c)

S S

X Y Z a a Y b b

b a
a a b a b b

Parse tree 1 Parse tree 2


E E

E E E E
+ *

id E + E id
E * E

id id
id id

(a) Parse tree 1 (b) Parse tree 2


F E

E F

E E

F _ E E _ F

a E _ F E _ F a

F a F b

b a

Parse tree 1 Parse tree 2

E F | F
{ab, baba, abbbaa} L (G)

S S

b A b A

b A A b A A

a S a a b A A

b A a a

Parse tree 1 Parse tree 2

Left derivation tree

s s

a A b a b
b s

b s
S a S|
S a Sb S.

S S

aS a S b S

a S 
SbS

  

(a) (b)

S a S|X S |
X aXXb|
S

X S

a b
X X
S

a B

a B B

a B Bb S

a S b b A

b A a

a
S S

a B a B

a B B a B B

b S b b b S

b A a B

a b
E

E * E

( E ( ( E (

E + E E + E

I I I I

I 1 I 1 I 1 b

I 0 b a

I 1

E E

E + E E * E

I + I
E * E E E

a I I I I a

a a a a
Parse tree 1 Parse tree 2
Reduced grammar

Removal of Elimination of Removal of


useless symbols  production unit production

ap

ap
S  aA
A  aaA
Dab Ea
EaC d

S  aA
A  aA a
D  ab Ea
E  a
Y
X 1 X 2 X 3 ..... X n

A X 1 X 2 X 3 .... X n
S A 0C1
A B 01 10
C CD

S A B
C

S 01 10

S AS B
A aAS
B SbS A bb

ASB

aAS

SbS aAS bb

ASB AB AS SB

aAS aA a

SbS aAS bb Sb bS b aA aS bb
P1
P1
P1
P1
P1 P2
P1 P2

P2
P2 P3
P2 P3 P3
P2 P3

P1

P1 P2

P2 P3

P3

P4 P5

P4 P5

P4 P5

P4 P4

P1
P1 P2
P2 P3
P3
P4 P4
P4

A1
A1
A1

A2
A2
A2

A1
A1

A2
A2

R1
R1
R2

R1 R2

R3
R3
R4 R3
R4

R1 R3
R1 R3

R1 R2 R4
R4 R3
R1 R3
R2
R1 R3
R1
R1
R2
R2

R1

R2 R3
R3
R 2R 3

R2

R1 R1
R4
R1 R4

R1
R2
R1
R2 R3

R2
R1 R4
R1
R2
R3
R4
R1

R1

R2

R2

R2

R3

R3

R2

R3

R1 R2 R3
R2
R3
R1
R2
R3

R1 R2
R1
R2

R1 R2
R1
R2
[S S]
A CA| becomes
A CA | 011| 1

B DB | becomes
B DB | 01

S AB
A CA
A 011 A XY
X 0
Y ZZ
Z 1
B DB
B XZ

is in GNF

is not in GNF

A 1, A 2 , A 3

Ai A jA k

Ai A jA k
A A

A A|
A

S abSb

NT t (set of NT)

S abSb S XY
X AB
Y SB
A a
B b
S aa S AA

S XY A1 A2A3

X AB A2 A4A5

Y SB A3 A 1A 5

A a A4 a

B b A5 b

Ai, Aj Ai < Aj
A1  A2A3

A2  A4A5

A3  A1A5 A3  A1 A5 Here i > j


  i.e. 3 > 1
A4  a Ai Aj

A5  b

A1

A 3  A1 A 5
 
A3  A2 A3A5 A1  A2A3

A3  A4A5A3A5

Ai A jA k

A1 A 2A 3
A2 A 4A 5
A3 A 4 A 5 A 3A 5
A4 a
A5 b
A2 A3 A4

A1 A 2A 3
A2 aA 5
A3 aA 5 A 3 A 5
A4 a
A5 b

A1 A 2A 3
A2
A1 aA 5 A 3
A1 aA 5 A 3
A2 aA 5
A3 aA 5 A 3 A 5
A4 a
A5 b

S ABA|BA|AB|AA|A|B
A aA|a
B bB|b

S A|B

S ABA|BA|AB|AA|aA|a|bB|b
A aA|a
B bB|b

S ABA|BA|AB|AA

Ai Aj,Ak

S ABA S aA BA|aBA
S BA S bBA|bA
S AB S aAB|aB
S AA S aAA|aA
S aABA|aBA|bBA|bA|aAB|aB|aAA|aA
S aA|a|bB|b
A aA|a
B bB|b

S AA|0
A SS|1

S AA|0 A1 A 2 A 2|0
A SS|1 A2 A 1 A 1|1

A1  A2 A2


Ai and Aj with i < j This is allowed.

A2  A1 A1 | 1


Ai and Aj with i > j This is not allowed.

A1
A2 A 2 A 2 A 1|0A 1|1

A2  A2A2A1 | 0A1 | 1

This is left recursion

A A | A A|
A A|
A2  A2A2A1 | 0A1 | 1

 1 2

A2 0A1A |1A |0A 1|1

A A 2 A 1 A |A 2 A 1
A2
A1
A1 A 2 A 2|0

A2
A1 0A 1 A A 2|1A A 2|0A 1 A 2|1A 2|0
A1 A2
A A
A A 2 A 1 A |A 2 A 1

A2
A 0A 1 A A 1 A |1A A 1 A |0A 1 A 1 A |1A 1 A
A 0A1A A 1|1A A 1|0A 1 A 1|1A 1

A1 0A 1 A A 2|1A A 2|0A 1 A 2|1A 2|0


A2 0A 1 A |1A |0A 1|1
A 0A 1 A A 1 A |1A A 1 A |0A 1 A 1 A |1A 1 A
A 0A 1 A A 1|1A A 1|0A 1 A 1|1A 1

A 1, A 2 , A 3
A1 A2 A3
A1 A 2A 3
A2 A 3 A 1|b
A3 A 1 A 2|a
A1 A 2A 3
A2 A 3 A 1|b
Ai A jA k

A3 A 1 A 2|a
A3
A3 A 1 A 2|a
A3 A 2 A 3 A 2|a A1 A 2A 3
A3 A 3 A 1 A 3 A 2|bA 3 A 2|a A2 A 3 A 1|b

A3  A3A1A3A2 | bA3A2 | a

left recursion

A A | A A|
A A|

A3 bA 3 A 2 A |aA

A A 1 A 3 A 2 A |A 1 A 3 A 2

A3  A3A1A3A2 | bA3A2 | a

 1 2

A3
A2
A2 A 3 A 1|b

A2 bA 3 A 2 A A 1|aA A 1|b

A2
A1
A1 A 2A 3

A1 bA 3 A 2 A A 1 A 3|aA A 1 A 3|bA 3

A1
A
A A 1 A 3 A 2 A |A 1 A 3 A 2

A bA 3 A 2 A A 1 A 3 A 3 A 2 A |aA A 1 A 3 A 1 A 3 A 2 A
|bA 3 A 3 A 2 A |bA 3 A 2 A A 1 A 3 A 3 A 2|aA A 1 A 3 A 3 A 2|bA 3 A 3 A 2
A

A1 bA 3 A 2 A A 1 A 3|aA A 1 A 3|bA 3
A2 bA 3 A 2 A A 1|aA A 1|b
A3 bA 3 A 2 A |aA
A bA 3 A 2 A A 1 A 3 A 3 A 2 A |aA A 1 A 3 A 1 A 3 A 2 A
bA 3 A 3 A 2 A |bA 3 A 2 A A 1 A 3 A 3 A 2|aA A 1 A 3 A 3 A 2|bA 3 A 3 A 2
w w

p qi r si t

2i 1

S
2i 1

n 2k w A
k 1
w 2

B C

w w w w
b
2i 1
w B A
Path

b a

A, B, C A BC
B b ,A

w 2i 1

w 2i 1 n

a i b j c k|i j k

p qi r si t

w
w p q 0r s0 t

an b n cn

pq i rs i t
pq i rs i t

q0 s0

w = aa bb cc
pqrst

a 2 bc

pq i rs i t

w = aa bb cc
pqrst

a2 b 3 c3 L

w = aa bbb ccc
p qq r ss t
L 1L 2
a

a
a

an b n

n
a n b cn

utable languages
Comp
t sensitive languag
ntex es
Co
t f r e e l anguag
tex
on Regular
e
C

language
V ij
S

id = E T

E + E
;

F id

id

Types of parser

Top-down Bottom-up
parser parser

Backtracking Predictive Shift


LR parser
parser reduce parser

SLR LALR LR
parser parser parser
aSb|bSa
a|b|
|
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


b

Input tape a a b b $     

Finite
control
Stack

q0 q0
Z0
a1 a2 a3 a4 a5 a1 a2 a3 a4 a5

Current
input
Current S1 Z1 S2 X1
state Current
stack Z2 X2
symbol
Z3 Move Z1

Z4 Z2

Z3

2 S1
Z1 S2
Current stack top

(q0, x, Z0) = (q1, x, Z0)

Push x onto
the stack
Read input Change the
on the tape state from
q0 to q1
(a) Push operation

(q0,x, y) = (q1, )

Change Pop
the the stack
Read input state from
on tape q0 to q1

Current stack
top
(b) Pop operation

L an b n | n 1

(q 0 , a , Z 0 ) (q 0 , aZ 0 )
(q 0 , a , a ) (q 0 , a a )
(q 0 , b, a ) (q 1 , )
(q 1 , b, a ) (q 1 , )
(q 1 , , Z 0 ) (q 2 , )

q0 q2
(q 0 , aaabbb, Z 0 ) (q 0 , aabbb, aZ 0 )
(q 0 , abbb, aaZ 0 )
(q 0 , bbb, aaaZ 0 )
(q 1 , bb, aaZ 0 )
(q 1 , b, aZ 0 )
q1 Z0
(q 2

a n b2n

(q 0 , a , Z 0 ) (q 0 , a a Z 0 )
(q 0 , a , a ) (q 0 , a a a )

q0 q1

(q 0 , b, a ) q1

q1
(q 1 , b, a ) q1

(q 1 , , Z0 ) q2
{q 0 , q 1 , q 2 }, { a , b}, { a , Z 0 }, q 0 , Z 0 , {q 2 }

(q 0 , a , Z 0 ) (q 0 , aaZ 0 )
(q 0 , a , a ) (q 0 , aaa )
(q 0 , b, a ) q1
(q 1 , b, ) q1
(q 1 , , Z0 ) q2

(q 0 , bbbbbb, Z 0 ) (q 0 , aabbbbbb, aaZ 0 )


(q 0 , abbbbbb, aaaaZ 0 )
(q 0 , bbbbbb, aaaaaaZ 0 )
(q 1 , bbbbb, aaaaaZ 0 )
(q 1 , bbbb, aaaaZ 0 )
(q 1 , bbb, aaaZ 0 )
(q 1 , bb, aaZ 0 )
(q 1 , b, aZ 0 )
(q 1 , , Z0 )
(q 2 , )

XcX r|X {a, b} *

M q 0 , q 1 , q 2 , a, b, c , a, b, Z 0
q0 , Z0 , q2

R1 q 0 , a, Z 0 q0 , a Z0

R2 q 0 , b, Z 0 q0 , b Z0

R3 q 0 , a, a q0, a a

R4 q 0 , b, a q0, b a

R5 q 0 , a, b q0, a b

R6 q 0 , b, b q0, b b

R7 q 0 , c, Z 0 q 1, Z0
R8 q 0 , c, a q 1, a
R9 q 0 , c, b q 1, b
R 10 q 1 , a, a q1
R 11 q 1 , b, b q1
R 12 q1 Z0 q2 , Z0

a, a/
b, b/

q0 q1 q2
c, Z0/Z0 , Z0/Z0
c, a/a
a, Z0/aZ0 c, b/b
b, Z0/bZ0
a, a/aa
b, a/ba
a, b/ab
b, b/bb

R1 R 12
(q 0 , bbacabb, Z 0 ) (q 0 , b acabb, bZ 0 )
(q 0 , acabb, bbZ 0 )
(q 0 , cabb, abbZ 0 )
(q 1 , abb, a bbZ 0 )
(q 1 , bb, bbZ 0 )
(q 1 , b, bZ 0 )
(q 1 , , Z 0 )
(q 2 , Z 0 )

w w (a b) * and n a (w) n b (w)


(q 0 , a , Z 0 ) (q 0 , aZ 0 )
(q 0 , b, Z 0 ) (q 0 , bZ 0 )
(q 0 , a , a ) (q 0 , aa )
(q 0 , b, b) (q 0 , bb)
(q 0 , a , b) (q 0 , )
(q 0 , b, a ) (q 0 , )
(q 0 , , Z 0 ) (q 1 , )

q0 q1

(q 0 , aababb, Z 0 ) (q 0 , ababb, aZ 0 )
(q 0 , babb, aaZ 0 )
(q 0 , abb, aZ 0 )
(q 0 , bb, aaZ 0 )
(q 0 , b, aZ 0 )
q0 Z0
(q 1

n a(w) n b(w)
(q 0 , a , Z 0 ) (q 0 , aZ 0 )
(q 0 , b, Z 0 ) (q 0 , bZ 0 )
(q 0 , a , a ) (q 0 , aa )
(q 0 , b, b) (q 0 , bb)
(q 0 , a , b) (q 0 , )
(q 0 , b, a ) q0
(q 0 , , a ) q f , a)
{q 0 , q f }, { , b}, { , b, Z 0 }, , q 0 , Z 0 , {q f }

(q 0 , aababab, Z 0 ) (q 0 , ababab, aZ 0 )
(q 0 , babab, aZ 0 )
(q 0 , abab, aZ 0 )
(q 0 , bab, aaZ 0 )
(q 0 , ab, aZ 0 )
(q 0 , b, aaZ 0 )
(q 0 , , aZ 0 )
(q f , a )
(q 0 , a , Z 0 ) (q 0 , aZ 0 )
(q 0 , b, Z 0 ) (q 0 , bZ 0 )
(q 0 , a , a ) (q 0 , aa )
(q 0 , b, b) (q 0 , bb)
(q 0 , b, a ) q0
(q 0 , a , b) q0
(q 0 , , b) q f , b)

(q 0 , abbab, Z 0 ) (q 0 , bbab, aZ 0 )
(q 0 , bab, Z 0 )
(q 0 , ab, bZ 0 )
(q 0 , b, Z 0 )
(q 0 , , bZ 0 )
(q f , b)

q0

(q 0 , (, Z 0 ) (q 1 , ( Z 0 )
(q 0 , [, Z 0 ) (q 1 , [ Z 0 )
(q 0 , {, Z 0 ) (q 1 , { Z 0 )
q 1 , (, ( q 1, ( (
q 1 , [, [ q 1, [ [
q 1 , {, { q 1, { {
q 1 , (, [ q 1, ( [
q 1 , (, { q 1, ( {
q 1 , [,( q 1 , [(
q 1 , {,( q 1 , {(
q 1 , {, [ q 1, { [
q 1, [ , { q 1, [ {

q 1 , ), ( (q 1 , )
q 1 , ], [ (q 1 , )
q 1 , }, { (q 1 , )

Z0
q0

(q 1 , , Z 0 ) (q 0 , Z 0 )

(q 0 , (, Z 0 ) (q 1 , ( Z 0 )
(q 0 , [, Z 0 ) (q 1 , [ Z 0 )
(q 0 , {, Z 0 ) (q 1 , { Z 0 )
(q 1 , (, ( ) (q 1 , (( )
(q 1 , [, [ ) (q 1 , [ [ )
(q 1 , {, { ) (q 1 , { { )
(q 1 , (, [ ) (q 1 , ( [ )
(q 1 , (, { ) (q 1 , ( { )
(q 1 , [, ( ) (q 1 , [( )
(q 1 , {, ( ) (q 1 , {( )
(q 1 , {, [ ) (q 1 , { [ )
(q 1 , [, { ) (q 1 , [ { )
(q 1 , ), ( ) (q 1 , )
(q 1 , ], [ ) (q 1 , )
(q 1 , }, { ) (q 1 , )
(q 1 , , Z 0 ) (q 0 , )
{ q 0 , q 1 }, { (, [, {, ), ] , } }, { [, (, {, Z 0 }, q 0 , Z 0 ,{q 0 }

q 0 , ( { } [ ] ), Z 0 q 1 , { } [ ] , (Z 0 )
q 1 , } [ ] , { (Z 0 )
q 1 , [ ] , (Z 0 )
q 1 , ] , [ (Z 0 )
(q 1 , ), (Z 0 )
q 1, Z0
(q 0 , Z 0 )

L a m b m c n | m, n 1

(q 0 , a , z 0 ) (q 0 , a Z 0 )
(q 0 , a , a ) (q 0 , aa )
(q 0 , b, a ) (q 1 , )
(q 1 , b, a ) (q 1 , )
(q 1 , c, 0) (q 1 , Z 0 )
(q 1 , , 0) (q 2 , Z 0 )

(q 0 , aabbccc , Z 0 ) (q 0 , abbccc , aZ 0 )
(q 0 , bbccc , aaZ 0 )
(q 1 , bccc , aZ 0 )
(q 1 , ccc , Z 0 )
(q 1 , cc , Z 0 )
(q 1 , c , Z 0 )
(q 1 , , Z0 )
(q 2 , Z 0 )

Start

b a b
READ POP READ

c
a

PUSH a
c
READ READ

ACCEPT

L 0 n 1m 0 n | m, n 1
0011100 Pushing 0
0

0
0011100 Pushing 0
0

0
0011100 Skip 1
0

0011100 0
0 Skip 1

0011100 0
0 Skip 1

0011100 0 Pop 0

0011100 Pop 0

0011100 ACCEPT

(q 0 , 0, Z 0 ) (q 0 , 0 Z 0 )
(q 0 , 0, 0) (q 0 , 00)
(q 0 , 1, 0) (q 1 ,0)
(q 0 , 1, 0) (q 1 , 0)
(q 1 , 0, 0) (q 1 , )
(q 0 , , Z 0 ) (q 2 , Z 0 )

(q 0 , 0011100, Z 0 ) (q 0 , 011100, 0Z 0 )
(q 0 , 11100, 00Z 0 )
(q 0 , 1100, 00Z 0 )
(q 1 , 100, 00Z 0 )
(q 1 , 00, 00Z 0 )
(q 1 , 0, 0Z 0 )
(q 1 , , Z0 )
(q 2 , Z 0 )
q0 , a, Z 0 )

q1, a, Z 0 )

q0 , , Z 0 )

q1, b, Z 0 )

q0 , a, )

q0 , a, )

q0 , , )
q1, a, )
q1, a, )

q0 , , )

q 1, , ) BB
q0 , , )
bbaaa a b b a a a, 0

a b b a a a, 0

a b b a a a, 0

a b b a a, 0

a b b a a, 0

abb , 0

abbaa , 0

L ai b j ck| i j or j k
(q, P),(q, Q),(q, R),(q, T),(q, M)
A) (q, aA),( , )
B (q, bB),( , b)
C (q, cC),( , c)
P (q, AD),( , ADC)
(q, aDb),( , )
Q (q, DB),( , DBC)
R (q, BE),( , ABE)
E (q, bEc),( , )
(q, , ),( , AEC)
a (q, )
b, b (q, )
c c (q, )

a, Z0 / aZ0
Pushing b, Z0 / bZ0
symbols
a, a / aa
onto Popping
a, b / ab
stack b, b / symbol
b, a / ba
b, b / bb a, a / from the
stack

q0 q1 q2
, Z0 / Z0 , Z0 / Z0
a, a / a
b, a / a Acceptance
b, b / b move
a, b / b

Reading
middle a or b
q 0 , a, Z 0 )

q 1 , a, Z 0 ) q0

q 0 , a, )

q 1 , a, A ) AA

q 0 , , A)

q0, , )

(q 0 , aaaaaabbb, Z 0 ) q 1 , aaaaabbb, Z 0

(q 0 , aaaa bbb, AZ 0 )

(q 1 , aaa bbb, AZ 0 )

(q 0 , aa bbb, AAZ 0 )

(q 1 , abbb, AAZ 0 )

(q 0 , bbb, AAAZ 0 )

(q 0 , bb, AAZ 0 )

(q 0 , b, AZ 0 )

(q 0 , , Z 0 )
(Q, , , , q 0 , Z 0 , F)

{w | (q 0 , w, Z 0 ) (p, , )}

(Q, , , , q 0 , Z 0 , F)

{w | (q 0 , w, Z 0 ) (p, , )}

N(P1 ) P1 P2 L (P2 )

L (P1 ) P1 P2
N(P2 )

P2 P1

P2 Q q0, qf X0 , q 0 , X 0 , {q f

q X q0 , Z0 X0
q a Z q, a, z
q X qf
P2 P1
P1 P1
P2 qf

P2 P1
P2 Q q0, qf X0 , q0 , X0 ,

q X q0 , Z0 X0
q a Z q, a, Z
q (q Z) Z X q F

d X
P2 P1
P1
P1 P2

P2 P1 P2

P2

L ai b j ck | i j k
(q 0 , a, Z 0 ) ( 1 , AZ 0 )
(q 1 , a, A) ( 1 , AA) no 'a' is present
j k Pushing A
(q 0 , b, Z 0 ) (q 2 , AZ 0 ) b c is a string.
onto the stack
(q 1 , b, A) (q 2 , AA)
(q , b, A) (q 2 , AA)
2

(q 2 , c, A)=(q 3 , )
(q 3 , c, A) = (q 3 , )

q 3, , 0 q3

q 0 , a, Z 0 q 1, A Z0 )
q 1 , a, A q 1 , A A)
q 0 , b, Z 0 q2 , A Z0 )
q 1 , b, A q 2 , A A)
q 2 , b, q2,A )
q 2 , c, A q 3, )
q 3 , c, A q 3, )
q 3, , 0 q0, )

q0 , Z0 , F
q Z0
q S
q 4 q
q + q
q * q

(q 0 , a, Z 0 ) = (q 1 , aZ 0 )
Push
(q 1 , a, a) = (q 1 , aa)

(q 1 , a, a) = (q 2 )
(q 2 , a, a) = (q 3 ) POP
(q 2 , , Z 0 ) = (q 3 )

(q 3 , , Z 0 ) = (q 3 )

q0 qn [q 0 Z q n ]
(q i , a , Z 0 ) (q i+1 , Z 1 Z 2 )

(q i Z 0 q i k) a (q i Z 1 q m ) (q m Z 2 q i k)
qi, qm Z0 , Z1, Z2

(q i , a , Z 0 ) (q i+ 1 , ) (q i Z 0 q i 1) a

(q0 , a,Z0 ) { (q0 ,a , Z0 )}


(q0 , a, a) {(q0 , a a)}
(q0 , b,a) {(q 1 e)}
(q1 , b, a) { (q 1 , e) }
(q 0 , e, Z 0 ) { (q 1 , e) }

q 0 Z0 q 0
q 0 Z 0 q1
(q 0 , a, Z 0 ) (q 0 , aZ 0 )
q 0 Z0 q 0 a (q 0 , a, q 0 q 0 Z 0 q 0
q 0 Z0 q 0 a (q 0 a, q 1 q 1 Z 0 q 0
q 0 Z 0 q1 a (q 0 a, q 0 q 0 Z 0 q 1
q 0 Z 0 q1 a (q 0 a, q 1 q 1 Z 0 q 1
(q 0 , a, a) (q 0 a a)
q 0 a, q 0 a (q 0 a, q 0 q 0 a, q 0
(q 0 a, q 0 a (q 0 a, q 1 q 1 a, q 0
(q 0 a, q 1 a (q 0 a, q 0 q 0 a, q 1
q 0 a, q 1 a (q 0 a, q 1 q 1 a, q 1
(q 0 , b, a) (q1 , )
(q 0 a, q 1
(q 1 b, a) (q1 , )
(q 1 a, q 1
(q 0 , , Z 0 ) (q1 , )
(q 0 q1

q 0 Z0 q 0

q0 Z0 q1
Conversion
q0 a q0

q1 a q1

q1 Z0 q0

q1 Z0 q1

q1 a q0

q1 a q1

(q0 , 1, Z0 ) { q0 , XZ0 )
(q0 , 1, X) (q0 , XX)
(q0 , 0, X) (q1 , X)
(q 0 , e, Z 0 ) (q 0 , e)
(q1 , 1, X) (q 1 , e)
(q0 , 1, Z0 ) (q0 , Z0 )

q 0 Z0 q 0
q0 q1
(q 0 , 1, Z 0 ) (q 0 , XZ 0 )
q 0 Z0 q 0 1(q 0 X, q 0 q 0 Z 0 q 0
q 0 Z0 q 0 1(q 0 X, q 0 q 0 Z 0 q 0
q 0 Z 0 q1 1(q 0 X, q 0 q 0 Z 0 q 1
q 0 Z 0 q1 1(q 0 X, q 1 q 1 Z 0 q 1
(q 0 , 1, X) (q 0 X X)
q 0 X, q 0 1 (q 0 X, q 0 q 0 X, q 0
(q 0 X, q 0 1 (q 0 X, q 1 q 1 X, q 0
(q 0 X, q 1 1 (q 0 X, q 0 q 0 X, q 1
q 0 X, q 1 1 (q 0 X, q 1 q 1 X, q 1
q 0 0, X) = (q 1 X)
(q 0 X, q 0 0 (q 0 X, q 0
(q 0 X, q 1 0 (q 0 X, q 1
(q 0 , , Z 0 ) = (q 0 , )
(q 0 q0
(q1 , 1, X) = (q1 , )
(q 1 X, q 1
(q 0 , 1, Z 0 ) = (q 0 , Z 0 )
(q 0 q0 q 0 Z0 q 0
(q 0 Z 0 q 1 1 (q 0 Z 0 q 1

(q 0 , Z 0 , q 0 )
(q 0 , Z 0 , q1 )
(q 0 , X, q 0 ) CFG rules
(q 0 , X, q1 )
(q1 , Z 0 , q 0 )
(q1 , Z 0 , q1 )
(q1 , X, q 0 )
(q1 , X, q1 )
({q 0 , q 1 }, {0,1}, {X, Z 0 }, q 0 , Z 0 , d, f)
(q0 , 0, Z0 ) (q0 , XZ0 ) (q0 , 0, X) (q0 , XX)
(q0 , 1, X) (q1 , ) (q1 , 1, X) (q1 , )
(q 1 , , X) (q1 , ) (q1 , , Z0 ) (q1 , )

(q 0 , Z 0 , q 0 )
(q 0 , Z 0 , q 1 )

(q 0 , 0, Z 0 ) (q 0 , X Z 0 )
(q 0 , Z 0 , q 0 ) 0 (q 0 , X, q 0 ) (q 0 , Z 0 , q 0 )
(q 0 , Z 0 , q 0 ) 0 (q 0 , X, q 1 ) (q 1 , Z 0 , q 0 )
(q 0 , Z 0 , q 1 ) 0 (q 0 , X, q 0 ) (q 0 , Z 0 , q 1 )
(q 0 , Z 0 , q 1 ) 0 (q 0 , X, q 1 ) (q 1 , Z 0 , q 1 )
(q 0 ,0, X) (q 0 , X X)
(q 0 , X, q 0 ) 0 (q 0 , X, q 0 ) (q 0 , X, q 0 )
(q 0 , X, q 0 ) 0 (q 0 , X, q 1 ) (q 1 , X, q 0 )
(q 0 , X, q 1 ) 0 (q 0 , X, q 0 ) (q 0 , X, q 1 )
(q 0 , X, q 1 ) 0 (q 0 , X, q 1 ) (q 1 , X, q 1 )
(q 0 ,1, X) (q1 , )
(q 0 , X, q 1 )
(q 1 ,1, X) (q 1 , )
(q 1 , X, q 1 )
(q 1 , , X) (q 1 , )
(q 1 , X, q 1 )
(q 1 , , Z 0 ) (q 1 , )
(q 1 , Z 0 , q 1 )

(q1 , Z 0 , q 0 )

(q 0 , Z 0 , q1 )

(q 0 , X, q 0 )
The
(q 0 , X, q1 )
CFG will be

(q1 , Z 0 , q 0 )

(q1 , X, q 0 )

(q1 Z 0 q1 )

(q1 X q1 )
a n b m a n |n, m 1

(q 0 , a, Z 0 ) (q 0 , a, Z 0 )
(q 0 , a, a) (q 0 , aa)
(q 0 , b, a) (q 1 , a)
(q 1 , b, a) (q 1 , a)
(q 1 , a, a) (q 1 , )
(q 1 , , Z 0 ) (q 2 , )
q A

q a, a
B S

S 0BB

B
B
B
B
B
B
0

S, A
(q, 0S1),(q, A)
A (q, 1 0),(q, ),( ,
0, 0 (q,
, (q,

q S
q q
q q

b a,b
a
a
Start 1 2 3

b
b a(ba) a(a b)

q S
q X
q Y
q Z

CFL
DCFL
Regular ww
R
language

n
(ab)

n n
a b
Finite
control

PDA New

FA

Accept
Input of or reject
the form AND
LR PDA

Stack
FA
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


a b c      

nput tape

nput tape
  a b A A B b a   
Tape head

Finite
control
q0 q1 R

q0
q1

q0 (a,A,R)
q3 Start (a,A,R)
q0 q1

(b,B,R) (,,R) (,,R)


q0 q1 (a,A,R)

q2 q3
(,,R)
(b,B,R)
q3 q3
# 1 1 1 1 1 $
B B B B 1 1 B
B 1 1 1 B B B

Finite
control

a b a c a b a  
a b a c a b a   * * a c * * a  

Read a Mark it
and mark it if it is
same as
* b a c a b a   marked

* * a c * * a 

* b a c a b a  
* * a c * * a  

* b a c a b a  
* * a c * * a  

* b a c a b a  
* * a c * * a  

It is
same as a
* * * c * *  
marked one

* b a c * b a  
* * * c * * a  

* b a c * b a  
* * * c * * *  

* b a c * b a  
* * * c * * *  

* b a c * b a  
* * * c * * *  

* * a c * b a  
* * * c * * *  

Mark it
* * a c * b a   * * * c * * *  

* * a c * b a  

* * a c * b a  
1 1 $ 1 1 1

a b
1 1 $ 1 1 1  1 1 1 1 1 1 

a b Answer

(1,1,R)

(1,X,R) ($,$,R) (1,Y,R) (,,R)


Start q1 q2 q3 q4

(X,X,R) (,1,L)
(1,1,L)
(Y,Y (1,1,L)
,R)
q8 (,,L) q5

(1,1,L)
(X,1,L) ($,$,L)
HALT q7 q6 (Y,1,L)

(X,1,L)
0 0
q0 1 q1

(0,0,R) (1,1,R)

Start q1 (0,0,R)

(,,L) (1,1,R)

HALT

q1
q1

q1

(0,1,R)
(1,1,R)

(1,1,R) (0,1,R) (1,0,R) (1,1,L)


Start q0 q1 q2 q3 q5

(0,0,R)
(0,0,R)
(0,0,R)
(0,0,L) (,,R) q6

(1,0,L) (,,R)
q4
HALT
q1

q0

q0

q1

q2

q3

q6

1
q0 q1

1
0 0 0 0
1
q3 q2

HALT

(,,R)
(1,1,R)

Start q0 q1

(1,1,R)

(0,0,R) (0,0,R) (0,0,R) (0,0,R)

(1,1,R)

q3 q2

(1,1,R)
n bn

aa

a
(B,B,R)
(a,a,R)
(B,B,L)
(a,a,L)
Start (a,A,R) (b,B,L)
q0 q1 q2

(B,B,R)
(A,A,R)

q3 (B,B,R)

(,,L)

HALT

aa q1

a a q1

a q2

a q0

a q1

q2

q0

q3
a

a a b b c c 

(B,B,R) (C,C,R)
(a,a,R) (b,b,R) (b,b,L)
(a,a,L)
Start (a,A,R) (b,B,R) (C,C,L) (B,B,L)
q0 q1 q2 q3 (C,C,L)

(B,B,R)
(A,A,R)
q4 (B,B,R)
(C,C,R)

(,,R)

HALT
aa a q0 q1

a q1 q2

a q2 q3

a a q3

a a

q1 q2

q3

q0 q4

q4

n b n cn
a a a a a

a a a

a a a

a a a a

a a a

a a

a a

a a

a a

a a

a a

a a

a a

a a
(a,a,R)
(b,b,R)

(a,*,R) (,,L) (a,,L)


q1 q2 q3 (b,b,L)
(a,a,L)

(*,*,R)
Start
q0 HALT
(,,L)

(*,*,R)

(b,b,L)
q4 q5 q6 (a,a,L)
(b,*,R) (,,L) (b,,L)

( ,a,R)
(b,b,R)
(*,*,R)
(0,0,R)
(1,1,R)

(0,*,R) (,,L) (0,,L)


q1 q2 q3 (0,0,L)
(1,1,L)

(*,*,S)

Start
q0 HALT

(*,*,S)

q4 q5 q6 (0,0,L)
(,,L) (1,1,L)
(1,*,R) (1,,L)
(0,0,R)
(1,1,R)
(*,*,R)
1 1 1 1 $ 1 1 1 

HALT

($,,R)

q5

(1,1,R)
(,,R)

Start (1,1,R) ($,$,R) (1,1,L) ($,1,R)


q0 q1 q2 q3 q4

(1,$,R)
(1,1,R)

Start (1,1,R) (,1,R) (,,S)


q0 q1 q2 HALT

q0 q1 , 1, R

q1 q1 , 1, R q 2 , 1, R

q2
(1,1,R) (1,1,R)

Start (1,1,R) (+,1,R) (,,L)


q0 q1 q2 q3

(1,,R)

q4

(,,R)

HALT

a
f a b c

1 1 1 – 1 1 
(,,S)
HALT
(1,1,R)
(*,*,R)

Start (1,1,R) (–,–,R) (1,*,L) (–,–,L) (*,*,L)


q1 q2 q3 q4 q5

(*,*,L) (1,*,R)

L 0n n, m 0

(0,0,R) (1,1,R)

q0 (0,0,R) (0,1,L) q2
q1

(,,R)
(,,R) (,,R)

HALT

L x 0,1} x end in 00

1 0
q0 0 0 q2
q1
1

1
(0,0,R)
(1,1,R)

q0 (0,0,R) (0,0,R) q2 (,,R)


q1 HALT

(1,1,R)

(1,1,R)

(0,0,R) (1,1,R)

(1,1,R) (1,1,R) 0,1,L


q0 q1 q2 q3

(0,0,R)
(1,0,R)

,,R q4

HALT (1,1,R)

{ a i b j i j}

(Y,Y,R) (Y,Y,R)
(a,a,R) (b,b,R) (Y,Y,L) b,b,L

(a,X,R) (b,b,R) (,,L) (b,Y,L) (X,X,L)


q0 q1 q2 q3 q4 HALT

(a,a,L)

q5
(X,X,R) (a,a,L)
q0 q1

q1 q1 q2

q2 q2 q2 q3

q3 q4 q3

q4 q5 q4

q5 q5 q0

(,*,R

(,(,R *,*,L
*,*,R

Start (,(,R ),*,L


q0 q1 q2

),*,L
(,,S)

HALT

q0 q1 , (, R q 2 , *, L q 0 , *, R

q1 q1 , (, R q 2 , *, L

q2 q 2 , *, R q 2 , *, L
(B,B,R) (C,C,R)
(1,1,R) (2,2,R) (2,2,L)
(1,1,L)
Start (1,A,R) (2,B,R) (3,C,L) (B,B,L)
q0 q1 q2 q3 (C,C,L)

(B,B,R)
(A,A,R)
q4 (B,B,R)
(C,C,R)
(,,R)

HALT

(b, b, R) (a, b, R) (b, b, R)

(a, b, R) (b, a, R) (b, a, R)


q0 q1 q2 q3

(a, b, R) , , R

(a, b, R) HALT

0,1,R

0,1,R)
q0 q1
,,
R)

(1,0,R) HALT
,1,R)

,R)
1,0,R)
q2 ,

1,0,R)
(0,0,R)
(1,1,R) (0,0,R) (1,1,R)

q0 (0,0,R) q1 (0,0,R) q2 (1,1,R) q3

(1,1,R) (,,R)

HALT

(a,a,R)

q0
(b,b,R)
q1
(b,b,R)
q2 ,,R
HALT

(a,a,R)

(a,a,R)

q0
(a,a,R)
q1
(b,b,R)
q2
(b,b,R)
q3 ,,R)
HALT

{0 2n }

{0 2n } q0 q1

0
(0,0,R)
q0 q1

(0,0,R)
(1,1,R)
(,,R)
(1,1,R)

(,,R)

HALT

1 1 1
q0 0 q1 0 q2 0 q3

1
0

(1,1,R) (1,1,R) (1,1,R)

q0 (0,0,R) q1 (0,0,R) q2 (0,0,R) q3

(1,1,R)
(0,0,R)

(,,R)

HALT

{ a n bc n n 1}
(A,a,R)
a (C,C,R) (C,C,L)

a
(A,A,R) (B,b,R)
b (C,C,L)
c (B,b,L)
b
q0 q1 q2 q3
(A,a,L)
a

(B,b,R)
b

(A,A,R)
q4 (C,C,R)

,,R

HALT

 0 1 1 0 1 1 

M1
M1 Q1, 1, 1, 1, q 1 , B, F1
M2
M2 Q2 , 2, 2, 2, S 1 , B, F2
  a5 a4 a3 a2 a1 a0  

(a)

# a5 a4 a3 a2 a1 a0 

(b)
L q 0 , q 1, q 2 , q 3, q 4 , q 5
M2
M1

 a5 a4 a3 a2 a1 a0 

M2

Start (a0,a0,L) (a1,a1,L) (a2,a2,L)


q1 q2 q3 q4

(a3,a3,L)

HALT q7 q6 q5
(,,S) (a5,a5,L) (a4,a4,L)

q7
# a5 a4 a3 a2 a1 a0 

M1

Start (a0,a0,L) (a1,a1,L) (a2,a2,L)


S0 S1 S2 S3

(a3,a3,L)

HALT S6 S5 S4
(#,#,S) (a5,a5,L) (a4,a4,L)
 b a a b 

a a a

aa a

a a
(,,R)

A,A,R
B,B,R
(b,b,L)
(a,A,R) (b,B,L) (a,a,L)
Start q0 q1 q2 (A,A,L)
(B,B,L)
(,,S)

(b,B,R) (a,A,L)
q3
HALT

(b,b,R)
(A,A,R)
(B,B,R)

a a a

a
a

a a
(0,0,R)
(0,0,L)
(1,1,R)
(0,1,L)
Start (,,L) (1,1,L) (1,0,L)
q0 q1 q2

(,,S)

HALT
(,*,R

(,(,R *,*,L
*,*,R

Start (,(,R ),*,L


q0 q1 q2

),*,L
(,,S)

HALT

q0 q1, (, R q2, *, L q0 , *, R

q1 q1, (, R q2, *, L

q2 q2, *, R q2, *, L
(*,*,L)

(0,0,R)
(*,*,R) (1,1,R)

(1,*,R) (,,R) (,1,L) (0,0,L)


q2 q3 q4 (1,1,L)
(,,L)
(1,1,R)
(0,0,R)
(*,*,S)

Start (,,L) (,,S)


q0 q1 HALT

(*,*,L)
(*,*,S)

(0,*,R) (,,R) (,0,L) (,,L)


q5 q6 q7 (0,0,L)
(1,1,L)

(*,*,R) (0,0,R)
(1,1,R)

(*,*,L)

q0 q 0 , 0, R q 0 , 1, R q2 , , L

q1 q 5 , *, R q 2 , *, R q1 , *, L

q2 q 2 , *, R q3 , , R

q3 q 3 , 0, R q 3 , 1, R q 4 , 1, L

q4 q 4 , 0, L q 4 , 1, L q1 , *, L q4 , , L

q5 q 5 , *, R q6 , , R

q6 q 6 , 0, R q 6 , 1, R q 7 , 0, L

q7 q 7 , 0, L q 7 , 0, L q1 , *, L q7 , , L
(A,A,R)

(1,1,R) (1,1,R) (1,1,L)

Start (1,A,R) (,,R) (,1,L) (,,L)


q0 q1 q2 q3 q4

(,,L)
(1,1,L)

q5 (A,1,L)

(,,L)

HALT

q0

q1

q1 to q2
(0,A,R)
(A,A,L)
(1,1,R) ,,L)
q0 q1 q2

(1,,L)

q3

,,L)

HALT
(0, 0, R) (2, 2, R) (2, 2, R)

Start (1, 1, R) (0, 0, R)


q0 q1 q3
HALT
(, , R) (1, 1, R) (0, 0, R)

(2, 2, R) (1, 1, R)

(2, 2, R) (1, 1, R)

q2
(1,1,R)

Start (,1,R) (,1,R) (,1,R)


q0 q1 q2 HALT

1 1 1  go to q0 state and move right

1 1 1  go to q0 state and move right

1 1 1    go to q0 state and move right

replace  by 1,go to state


1 1 1 1   q1 and move right

replace  by 1,go to state


1 1 1 1 1   q2 and move right

replace  by 1,go to halt


1 1 1 1 1 1 1  state move right

Thus TM halts
1 1 1 1 1 1 1  successfully
(1,0,L) (0,0,L)
(0,1,L)
S0 S1

(1,1,R)

B,B,L
HALT

 0 0 0 1 0 0 1  

m n
(0,,R)

(1,,R) (1,,R)
Halt q11 q10

(0,0,R)
,,R)

Start (0,,R) (1,1,R) (0,0,L) (1,1,L)


q0 q1 q2 q6 q7 q8

Subroutine 'copy' (0,0,L)

q9

(,,R) (0,0,L)

(1,1,R)
(0,0,R)

(1,1,L)
(0,X,R) (,0,L)
q2 q3 q4 (0,0,L)

(X,X,R)

(1,1,R)
q5 q6

(X,0,L)
{0 n 1n 0 n | n 1}

(B,B,R) (C,C,R) (1,1,L)


(0,0,R) (1,1,R) (0,0,L)
(B,B,L)
(1,B,R) (0,C,L) (C,C,L)
q0 (0,A,R) q1 q2 q3

(B,B,R)
(A,A,R)

q4 (B,B,R)
(C,C,R)
(,,R)

HALT
a ba b

a a

q0 b q1 b q2

(a,a,R) (a,a,R)

q0 (b,b,R) q1 (b,b,R) q2 (,,R)


HALT

 1 1 1 1 # 1 1 

m n
B,B,L

,,L #,#,L 1,1,R #,G,R


q4 q5 q6
(B,B,R)
(1,1,R)
(B,B,L)
(1,A,R) (#,#,R) 1,B,L
q0 q1 q2 q3 (#,#,L)
(1,1,L)

(#,#,R) (A,A,R)
B,B,L

B,B,R 1,1,L #, L,R


q7 q8 q9 HALT

(B,B,R)
,,L #,E,L
q10

B,B,L

(1,1,R)
(0,0,R)

(0,0,R)
(1,1,R) ,,L
q0 q1 q2

1,,L
0,,L

q3 0,0,L
1,1,L

,0,R

HALT
(b,b,R)
(A,,R)
(a,a,R) (b,b,L)
(B,B,R) (a,a,L)

(b,b,R) (B,B,L) (a,A,R) q3 ,a,L q4


(a,a,R) (A,A,L)
(b,b,R)
(a,a,R) (,,L) (A,A,L)/(B,B,L)
q0 q1 q2 (b,b,L)
(a,a,L)

(b,B,R)
q5 ,b,L q6
(,,L)

,,L q7 A,a,R (B,B,R)/(A,A,R)


HALT (b,b,R)/(a,a,R)
B,b,R

(A,A,L)/(B,B,L)

abab

ab ab

ab ab

ab ab

ab aB

ab aB b

ab aB b

ab aB b

ab A B b
ab A B b a

ab A B b a

ab A B b a

aB A B b a

aB A B b a

aB A B b ab

aB A B b ab

A B A B b ab

A B A B b ab a

A B A B b ab a

A B A B b ab a

ab ab b ab a
a,A,R a,a,L
q0 q1 HALT

a,B,L

q2

Finite control

nput
M w

Tape
0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 ........

State
Finite
control

nput tape 1

nput tape 2

When
T halts for t
M1
(t,dT) ACCEPT halt

input REJECT halt

When T does
not halt for t
T halts for
M2 input t = dT

dT Loops
Copy T (dT, dT) Modified M1
(Input) Halts

T does not
halt for t = dT

M2 halts for
M2 input dM2

dM2 Loop

(input) Halt

M2 dose not
halt for input dM2
Yes
Input string Accept and halt
Turing machine
No
Reject and halt
Infinite loop
Yes
Input string q0 qf
Turing machine
No
Reject and halt

w Accept
TM
nput string Reject

w Accept
TM
nput string Loops for ever
Partial recursive functions

General recursive functions

Primitive recursive
functions
< a a a b b b >

Left end Right end


marker marker
Finite
control
Q, , , , q 0 , q accept , q reject

an b n cn | n 1

< a a b b c c >

Finite
control
(B,B,R)
(C,C,R)
(B,B,R) (>,>,L)
q5 HALT
a,a,L
B,B,L
(B,B,R) b,b,L
(a,a,R) (b,b,R) C,C,L

(<,<,R) (a,A,R) (b,B,R) (c,C,L)


q0 q1 q2 q3 q4

(A,A,R)
a n b n c n|n 1

an b n cn n 1
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


M1 M2 M1 M2
M1 M2
S1 T(M 1 T(M 2

T(M 2 T(M 1
S2 T(M 2 T(M l

L(M 1 and L(M 2

L(M L(M 1 L(M 2 L(M 1 L(M 2


G L(G )
w|– 1
L(G )
L r L G

L r L G
L r L G

x 1 , x 2 .... x k y 1 , y 2 , y 3 ... y k

S1 a i S 1x i

S1 ai xi

S2 ai S 2 yi

S2 ai yi

a in a in – 1 ... a i1 x i1 x i2 ... x in

a in a in – 1 ... a i1 y i1 y i2 ... y in
Non-recursively enumerable language

Recursively enumerable and not recursive This shows that


language every recursively
enumerable set
has recursive
subset.
Recursive
language
Accept Reject
Turing
machine M Reject Accept

Turing machine M'

TM

M1 Accept Accept

Input w
[Binary string]

M2 Accept Reject

Complemented TM
L1 L2 L1 L2
L1 L2

L1
L2
L1 L2 M1 L1
M1
L1 L2
M1

w M1 Accept Accept
(Input string)
No Accept
M2
Start Reject
M

M1 M2 M2
M2 L1 L2

L1 L2
L1 L2
Accept
Accept
WL M1 Reject M2
Reject

M1 L1 M2 L2
L1 L2

M
Yes No
Yes
w M1 No M2 Yes No
w1 w2 w1 w3 w3 w4

1 0 1 010 010 11 Read from


left to right

x1 x2 x1 x3 x3 x4

10 10 10 01 01 1 Read from
left to right
c  g(n)

f(n)

n0 n
F(n) O(g(n))

n0 n0
n0
f(n) c g(n)
n2
n2

n2 (1)2

( 2
n2

n
2 3
65536 n

32768

16384
2
n
8192

4096

2048

1024
n log2 n
512

256
n
128

64

32

16 log2 n

1 2 4 8 16 32 64 128
Computational complexity problems

P - class NP - class

NP - complete NP - hard
1

a 1 b 2 c

2 2 1
2 1

3 1 1 2
f e d

2 3 3 3
3

g 3 h 3 i

5
1

a 1 b c
a b
1 1
1
1 1 2
f e d

a 1 b c
1

i
a b c 1

1
a 1 b c
1
d
e 1

1 1 2
f e d

g 3 h i
3
a b
6
5
7
1
8 4 9
c d

2
3

e
NP - Problems

P Problems

NP complete
P class problems
problems
NP

NP hard
problems
NP

P NP - complete

Poly Poly Poly


A B A

P
T
Every problem in NP

CIRCUIT - SAT

CNF - SAT

3 - SAT

VERTEX COVER

CLIQUE SET - COVER SUBSET SUM HAMILTONIAN-CYCLE

KNAPSACK TSP
1 1 0
1

1
1
0
1

0
1 0 1

AND NOT OR
a b ain amid aout bin bmid bout

d c dout dmid din cin cmid cout


xi
X NP

x X.

q0
q ACCEPT
q REJECT

q ACCEPT q REJECT
Length n

........    a b a    ........ Input tape

Tape head

q ACCEPT
q REJECT

j th

q ACCEPT
Q i, q 1 , Q i, q 2 , ... , Q i, q k
q 1 , q 2 , ...q k Q.
Q i, q r , Q i, q t

H i,–p n , H i,–p n 1 , ...H i, p n 1


H i, r , H i, t

Q p n , q ACCEPT

q ACCEPT

q curr,s curr , q next , s next , dir

q curr s curr q next


s next
a g e b f h

a g e b h
 

1
B
0  0

qA0 D

1

C

0
L  L *

 

(a. b)  a *  b * ( a  b)  ( a  b) *  (a  b) *

G  V , T , P , S
a 
 
a b
a a

a xb y | x  y

{ a n b 2n | n  1}

 (q0 , a,Z0 ) { (q0 ,a , Z0 )}


 (q0 , a, a) {(q0 , a a)}
 (q0 , b,a) {(q 1 e)}
 (q1 , b, a) { (q 1 , e) }
 (q 0 , e, Z 0 ) { (q 1 , e) }


L  an b n  n 1
  0, 1

You might also like