13BSC203 Turing Machine
13BSC203 Turing Machine
Turing Machines
Turing Machines
n n n ?
a b c
Context-Free Languages
n n R
a b ww
Regular Languages
a* a *b *
Costas Busch - RPI
4
Languages accepted by
Turing Machines
n n n
a b c
Context-Free Languages
n n R
a b ww
Regular Languages
a* a *b *
Costas Busch - RPI
5
A Turing Machine
Tape
...... ......
Read-Write head
Control Unit
The Tape
...... ......
Read-Write head
...... ......
Read-Write head
1. Reads a symbol
2. Writes a symbol
3. Moves Left or Right
Time 0
...... ......
a b a c
Time 1
...... ......
a b k c
1. Reads a
2. Writes k
3. Moves Left
Costas Busch - RPI
9
Time 1
...... ......
a b k c
Time 2
...... ......
a f k c
1. Reads b
2. Writes f
3. Moves Right
Costas Busch - RPI
10
a b a c
...... ......
head
Read Write
Move Left
q1 a → b, L q2
Move Right
q1 a → b, R q2
Costas Busch - RPI
13
Example:
Time 1
a b a c
...... ......
q1
current state
q1 a → b, R q2
Costas Busch - RPI
14
Time 1
a b a c
...... ......
q1
Time 2
a b b c
...... ......
q2
q1 a → b, R q2
Costas Busch - RPI
Example: 15
Time 1
a b a c
...... ......
q1
Time 2
a b b c
...... ......
q2
q1 a → b, L q2
Costas Busch - RPI
16
Example:
Time 1
a b a c
...... ......
q1
Time 2
a b b c g
...... ......
q2
q1 → g, R q2
Costas Busch - RPI
17
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:
No transition
q1 for input symbol c
b → d, L q3
Costas Busch - RPI
19
Halting
a b a c
...... ......
q1
a → b, R q2
No possible transition
q1
HALT!!!
b → d, L q3
Costas Busch - RPI
21
Final States
q1 q2 Allowed
q1 q2 Not Allowed
Acceptance
If machine halts
Accept Input in a final state
If machine halts
in a non-final state
or
Reject Input If machine enters
an infinite loop
aa *
a → a, R
→ , L
q0 q1
Time 0 a a a
q0
a → a, R
→ , L
q0 q1
Time 1 a a a
q0
a → a, R
→ , L
q0 q1
Time 2 a a a
q0
a → a, R
→ , L
q0 q1
Time 3 a a a
q0
a → a, R
→ , L
q0 q1
Time 4 a a a
q1
→ , L
q0 q1
Time 0 a b a
q0
a → a, R
→ , L
q0 q1
Costas Busch - RPI
30
Time 1 a b a
q0
No possible Transition
→ , L
q0 q1
Costas Busch - RPI
31
b → b, L
a → a, R
→ , L
q0 q1
Time 0 a b a
q0
b → b, L
a → a, R
→ , L
q0 q1
Time 1 a b a
q0
b → b, L
a → a, R
→ , L
q0 q1
Time 2 a b a
q0
b → b, L
a → a, R
→ , L
q0 q1
Time 2 a b a
q0
a b a
Infinite loop
Time 3
q0
Time 4 a b a
q0
Time 5 a b a
q0
Costas Busch - RPI
36
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
Costas Busch - RPI
38
Time 0 a a b 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
Costas Busch - RPI
39
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
Costas Busch - RPI
40
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
Costas Busch - RPI
41
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
Costas Busch - RPI
42
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
Costas Busch - RPI
43
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
Costas Busch - RPI
44
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
Costas Busch - RPI
45
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
Costas Busch - RPI
46
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
Costas Busch - RPI
47
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
Costas Busch - RPI
48
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
Costas Busch - RPI
49
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
Costas Busch - RPI
50
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
Costas Busch - RPI
51
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
Costas Busch - RPI
52
Observation:
If we modify the
machine for the language n n
{a b }
Formal Definitions
for
Turing Machines
Transition Function
q1 a → b, R q2
(q1, a) = (q2 , b, R)
Transition Function
q1 c → d, L q2
(q1, c) = (q2 , d , L)
Input Tape
alphabet alphabet
States
M = (Q, , , , q0 , , F )
Transition Final
function states
Initial blank
state
Costas Busch - RPI
57
Configuration
c a b a
q1
Instantaneous description: ca q1 ba
x a y b x a y b
q2 q0
x a y b x a y b
q2 q0
Time 6 Time 7
x x y b x x y b
q1 q1
Equivalent notation: q2 xayb xxy q1 b
Initial configuration: q0 w
Input string
a a b b
q0
L( M ) = {w : q0 w x1 q f x2 }
• Deterministic
• Accepted