Professional Documents
Culture Documents
n n n
a b c ? ww ?
Context-Free Languages
n n R
a b ww
Regular Languages
a* a *b *
Fall 2020 M.Anand 2
Languages accepted by
Turing Machines
n n n
a b c ww
Context-Free Languages
n n R
a b ww
Regular Languages
a* a *b *
Fall 2020 M.Anand 3
A Turing Machine
Tape
...... ......
Read-Write head
Control Unit
Read-Write head
Read-Write head
1. Reads a symbol
2. Writes a symbol
3. Moves Left or Right
Fall 2020 M.Anand 6
Example:
Time 0
...... a b a c ......
Time 1
...... a b k c ......
1. Reads a
2. Writes k
3. Moves Left
Fall 2020 M.Anand 7
Time 1
...... a b k c ......
Time 2
...... a f k c ......
1. Reads b
2. Writes f
3. Moves Right
Fall 2020 M.Anand 8
The Input String
...... a b a c ......
head
Read Write
Move Left
q1 a b, L q2
Move Right
q1 a b, R q2
Fall 2020 M.Anand 10
Example:
Time 1
...... a b a c ......
q1
current state
q1 a b, R q2
Fall 2020 M.Anand 11
Time 1
...... a b a c ......
q1
Time 2
...... a b b c ......
q2
q1 a b, R q2
Fall 2020 M.Anand 12
Example:
Time 1
...... a b a c ......
q1
Time 2
...... a b b c ......
q2
q1 a b, L q2
Fall 2020 M.Anand 13
Example:
Time 1
...... a b a c ......
q1
Time 2
...... a b b c g ......
q2
q1 g, R q2
Fall 2020 M.Anand 14
Determinism
Turing Machines are deterministic
q1 q1
q3 a d, L q3
b d, L
...... a b a c ......
q1
a b, R q2 Allowed:
q1 No transition
for input symbol c
b d, L q3
Fall 2020 M.Anand 16
Halting
...... a b a c ......
q1
q1 No transition from q1
HALT!!!
...... a b a c ......
q1
a b, R q2
No possible transition
q1 from q1 and symbol c
b d, L q3 HALT!!!
Fall 2020 M.Anand 19
Accepting States
q1 q2 Allowed
q1 q2 Not Allowed
If machine halts
Accept Input
string in an accept state
If machine halts
in a non-accept state
Reject Input or
string
If machine enters
an infinite loop
Fall 2020 M.Anand 21
Observation:
In order to accept an input string,
it is not necessary to scan all the
symbols in the string
Input alphabet {a , b }
, L
q0 q1
q0
a a, R
, L
q0 q1
q0
a a, R
, L
q0 q1
q0
a a, R
, L
q0 q1
q0
a a, R
, L
q0 q1
q1
, L
q0 q1
Time 0 a b a
q0
a a, R
, L
q0 q1
Fall 2020 M.Anand 29
Time 1 a b a
q0
No possible Transition
a a, R Halt & Reject
, L
q0 q1
Fall 2020 M.Anand 30
A simpler machine for same language
but for input alphabet {a }
q0
q0
q0
b b, L
a a, R
, L
q0 q1
q0
b b, L
a a, R
, L
q0 q1
q0
b b, L
a a, R
, L
q0 q1
q0
b b, L
a a, R
, L
q0 q1
Infinite loop
q0
Time 4 a b a
q0
Time 5 a b a
q0
Fall 2020 M.Anand 37
Because of the infinite loop:
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 39
Basic Idea:
Match a’s with b’s:
Repeat:
replace leftmost a with x
find leftmost b and replace it with y
Until there are no more a’s or b’s
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 41
Time 1 x a b b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 42
Time 2 x a b b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 43
Time 3 x a y b
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 44
Time 4 x a y b
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 45
Time 5 x a y b
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 46
Time 6 x x y b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 47
Time 7 x x y b
q1
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 48
Time 8 x x y y
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 49
Time 9 x x y y
q2
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 50
Time 10 x x y y
q0
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 51
Time 11 x x y y
q3
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 52
Time 12 x x y y
q3
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 53
Time 13 x x y y
q4
Halt & Accept
q4 y y, R y y, L
y y, R a a, R a a, L
, L
y y, R a x, R b y, L
q3 q0 q1 q2
x x, R
Fall 2020 M.Anand 54
Observation:
If we modify the
n n
machine for the language {a b }
q1 a b, R q2
(q1, a ) (q2 , b, R )
q1 c d, L q2
(q1, c) (q2 , d , L)
Input Tape
alphabet alphabet
States
M (Q, , , , q0 , , F )
Transition Accept
function states
Initial blank
Fall 2020
state M.Anand 59
Configuration
c a b a
q1
Instantaneous description: ca q1 ba
q2 q0
q2 q0
Time 6 Time 7
x x y b x x y b
q1 q1
A computation
q2 xayb x q0 ayb xx q1 yb xxy q1 b
Fall 2020 M.Anand 62
q2 xayb x q0 ayb xx q1 yb xxy q1 b
Equivalent notation: q2 xayb xxy q1 b
Input string
w
a a b b
q0
L( M ) {w : q0 w x1 q f x2 }
•Turing Recognizable
f (w)
w D f ( w) S
f ( x, y ) x y
Decimal: 5
Binary: 101
Unary: 11111
A function f is computable if
there is a Turing Machine M such that:
q0 qf
initial state accept state
A function f is computable if
there is a Turing Machine M such that:
q0 w q f f ( w)
Initial Final
Configuration Configuration
x, y are integers
Turing Machine:
Start 1 1 1 0 1 1
q0
initial state
Start 1 1 1 0 1 1
q0 initial state
x y
Finish 1 1 1 1 0
q f final state
Fall 2020 M.Anand 75
The 0 here helps when we use
the result for other operations
x y
Finish 1 1 1 1 0
q f final state
Fall 2020 M.Anand 76
Turing machine for function f ( x, y ) x y
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 77
Execution Example: Time 0
x y
x 11 (=2)
1 1 0 1 1
y 11 (=2) q0
Final Result
x y
1 1 1 1 0
q4
Fall 2020 M.Anand 78
Time 0 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 79
Time 1 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 80
Time 2 1 1 0 1 1
q0
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 81
Time 3 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 82
Time 4 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 83
Time 5 1 1 1 1 1
q1
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 84
Time 6 1 1 1 1 1
q2
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 85
Time 7 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 86
Time 8 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 87
Time 9 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 88
Time 10 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 89
Time 11 1 1 1 1 0
q3
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
q4
Fall 2020 M.Anand 90
Time 12 1 1 1 1 0
q4
1 1, R 1 1, R 1 1, L
q0 0 1, R q1 , L q 1 0, L q3
2
, R
HALT & accept q4
Fall 2020 M.Anand 91
Another Example
x is integer
Turing Machine:
Start 1 1 1
q0 initial state
2x
Finish 1 1 1 1 1
q f accept state
Fall 2020 M.Anand 93
Turing Machine Pseudocode for f ( x) 2 x
• Repeat:
• Find rightmost $, replace it with 1
1 $, R 1 1, L 1 1, R
q0 , L q1 $ 1, R q2
, R 1, L
q3
Fall 2020 M.Anand 95
Example
Start Finish
1 1 1 1 1 1
q0 q3
1 $, R 1 1, L 1 1, R
q0 , L q1 $ 1, R q2
, R 1, L
q3
Fall 2020 M.Anand 96
Another Example
1 if x y
The function f ( x, y )
is computable 0 if x y
Input: x0 y
Output: 1 or 0
Fall 2020 M.Anand 97
Turing Machine Pseudocode:
• Repeat
Turing
input output
Machine
x, y
Adder x y
x, y x y
Comparator
x y Eraser 0