Fla Unit 4
Fla Unit 4
unit-4/Turning Machine 3
Turing Machine
• The tape consists of cells where each cell holds a symbol from the tape
alphabet. Initially the input consists of a finite-length string of symbols
and is placed on the tape. To the left of the input and to the right of the
input, extending to infinity, are placed blanks. The tape head is initially
positioned at the leftmost cell holding the input.
Finite control
… B B X 1 X2 … Xi Xn B B …
unit-4/Turning Machine 4
Turing Machine Details
• In one move the TM will:
– Change state, which may be the same as the current state
– Write a tape symbol in the current cell, which may be the
same as the current symbol
– Move the tape head left or right one cell
• Formally, the Turing Machine is denoted by the
7-tuple:
– M = (Q, ∑, Γ, δ, q0, B, F)
unit-4/Turning Machine 5
Turing Machine Description
• Q = finite states of the control
• ∑ = finite set of input symbols, which is a subset of Γ below
• Γ = finite set of tape symbols
• δ = transition function. δ(q,X) are a state and tape symbol X.
– The output is the triple, (p, Y, D)
– Where p = next state, Y = new symbol written on the tape, D =
direction to move the tape head
• q0= start state for finite control
• B = blank symbol. This symbol is in Γ but not in ∑.
• F= set of final or accepting states of Q.
unit-4/Turning Machine 6
Instantaneous Description
• Sometimes it is useful to describe what a TM does in terms of
its ID (instantaneous description), just as we did with the
PDA.
unit-4/Turning Machine 7
A Turing Machine
Tape
...... ......
Read-Write head
Control Unit
unit-4/Turning Machine 8
The Tape
No boundaries -- infinite length
...... ......
Read-Write head
Read-Write head
1. Reads a symbol
2. Writes a symbol
3. Moves Left or Right
unit-4/Turning Machine 10
Example:
Time 0
...... a b a c ......
Time 1
...... a b k c ......
a
1. Reads
2. Writes
k unit-4/Turning Machine 11
Time 1
...... a b k c ......
Time 2
...... a f k c ......
1. Reads b
2. Writes f
3. Moves Right unit-4/Turning Machine 12
The Input String
Input string Blank symbol
...... a b a c ......
head
Head starts at the leftmost position
of the input string
Are treated as left and right brackets for the
input written on the tape.
unit-4/Turning Machine 13
States & Transitions
Read Write
Move Left
q a b, L
q2
1
Move Right
q a b, R
q2
unit-4/Turning Machine 14
Example:
Time 1
...... a b a c ......
q1
current state
q a b, R
q2
1 unit-4/Turning Machine 15
Time 1
...... a b a c ......
q1
Time 2
...... a b b c ......
q2
q a b, R
q2
unit-4/Turning Machine 16
Example:
Time 1
...... a b a c ......
q1
Time 2
...... a b b c ......
q2
q a b, L
q2
unit-4/Turning Machine 17
Example:
Time 1
...... a b a c ......
q1
Time 2
...... a b b c g ......
q2
q g,
q2
R unit-4/Turning Machine 18
Determinism
Turing Machines are deterministic
Allowed Not
Allowed
a b, R q2 q2
a b, R
q q
1 b d, L q3 1 a d, L q3
unit-4/Turning Machine 19
Partial Transition
Function
Example:
...... a b a c ......
q
1
a b, R Allowed:
q2
q No transition
for input symbol
c
1 b d, L q3
unit-4/Turning Machine 20
The machine halts if there are
Halting
no possible transitions to follow
Example:
...... a b a c ......
q
1
a b, R q2
No possible transition
q
HALT!!!
1 b d, L q3
unit-4/Turning Machine 22
Final States
q q2 Allowed
1
q q2 Not
Allowed
1
unit-4/Turning Machine 24
Turing Machines as Acceptors
• We said a Turing machine accepts its input if it
halts in a final state. There are two ways this
could fail to happen:
• The Turing machine could halt in a nonfinal
state, or The Turing machine could never stop
(in which case we say it is in an infinite loop. )
• If a Turing machine halts, the sequence of
configurations leading to the halt state is
called a computation.
unit-4/Turning Machine 25
Acceptance
If machine halts
Accept Input
in a final state
If machinehalts
in a non-final state
Reject Input or
If machine enters
an infinite loop
unit-4/Turning Machine 26
Turing Machine Example
A Turing machine that accepts the language:
aa *
a a, R
, q
q0
L
1
unit-4/Turning Machine 27
Time 0 a a a
q0
a a, R
, q
q0
L
1
unit-4/Turning Machine 28
Time 1 a a a
q0
a a, R
, q
q0
L
1
unit-4/Turning Machine 29
Time 2 a a a
q0
a a, R
, q
q0
L
1
unit-4/Turning Machine 30
Time 3 a a a
q0
a a, R
, q
q0
L
1
unit-4/Turning Machine 31
Time 4 a a a
q
1
, q
q0
L
1
unit-4/Turning Machine 32
Rejection Example
Time 0 a b a
q0
a a, R
, q
q0
L
unit-4/Turning Machine 33
Time 1 a b a
q0
No possible Transition
a a, R Halt & Reject
, q
q0
L
unit-4/Turning Machine 34
Infinite Loop Example
b b, L
a a, R
, q
q0
L
1
unit-4/Turning Machine 35
Time 0 a b a
q0
b b, L
a a, R
, q
q0
L
1
unit-4/Turning Machine 36
Time 1 a b a
q0
b b, L
a a, R
, q
q0
L
1
unit-4/Turning Machine 37
Time 2 a b a
q0
b b, L
a a, R
, q
q0
L
1
unit-4/Turning Machine 38
Time 2 a b a
q0
Time 3 a b a
q0
Time 4 a b a
q0
Time 5 a b a
unit-4/Turning Machine 40
Another Turing Machine
Example n n
Turing machine for the language {a b
}
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 41
• aabb
• Xabb
• XaYb
• XXYb
• XXYY
unit-4/Turning Machine 42
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 43
Time 1 x a b b
q
1
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 44
Time 2 x a b b
q
1
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 45
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 46
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 47
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 48
Time 6 x x y b
q
1
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 49
Time 7 x x y b
q
1
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 50
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 51
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 52
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 53
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 54
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 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 55
Time 13 x x y y
q4
q4 y y, R y y, L
y y, R a a, R a a, L
,
L
y y, R 0 a x, b y,
q3 q q q2
R L
x 1 x,
unit-4/Turning Machine 56
Observation:
If we modify the
machine for the language n n
{a b }
unit-4/Turning Machine 57
Turing Machines as Language
Acceptors- Example 2
• Design a TM to recognize the language of
strings of the form 0n1n2n
unit-4/Turning Machine 58
• Construct a TM that accepts the palindrome of
the string over the alphabets {a,b}
b a b b a b B
unit-4/Turning Machine 59
unit-4/Turning Machine 60
Computing Functions
with
Turing Machines
A function has:
unit-4/Turning Machine 62
A function may have many parameters:
unit-4/Turning Machine 63
Integer Domain
Decimal: 5
Binary: 101
Unary: 11111
A function is computable if
there is a Turing Machine such that:
are integers
Turing Machine:
initial state
unit-4/Turning Machine 68
Start
initial state
Finish
final state
unit-4/Turning Machine 69
The 0 here helps when we use
the result for other operations
Finish
final state
unit-4/Turning Machine 70
Turing machine for function
unit-4/Turning Machine 71
Execution Example: Time 0
(=2)
(=2)
Final Result
unit-4/Turning Machine 72
Time 0
unit-4/Turning Machine 73
Time 1
unit-4/Turning Machine 74
Time 2
unit-4/Turning Machine 75
Time 3
unit-4/Turning Machine 76
Time 4
unit-4/Turning Machine 77
Time 5
unit-4/Turning Machine 78
Time 6
unit-4/Turning Machine 79
Time 7
unit-4/Turning Machine 80
Time 8
unit-4/Turning Machine 81
Time 9
unit-4/Turning Machine 82
Time 10
unit-4/Turning Machine 83
Time 11
unit-4/Turning Machine 84
Time 12
is integer
Turing Machine:
initial state
Finish
accept state
unit-4/Turning Machine 87
Turing Machine Pseudocode for
• Repeat:
• Find rightmost $, replace it with 1
unit-4/Turning Machine 88
Turing Machine for
unit-4/Turning Machine 89
Example
Start Finish
unit-4/Turning Machine 90
Back to binary!
• How do we add two binary numbers on a Turing
machine?
unit-4/Turning Machine 91
How to add 1 to a binary number?
•What is 11000 + 1 = ?
•What is 10111 + 1 = ?
unit-4/Turning Machine 92
Multitape Turing Machines
• A multitape Turing machine is like an ordinary TM
but it has several tapes instead of one tape.
• Initially the input starts on tape 1 and the other
tapes are blank.
• The transition function is changed to allow for
reading, writing, and moving the heads on all the
tapes simultaneously.
– This means we could read on multiples tape and move in
different directions on each tape as well as write a
different symbol on each tape, all in one move.
unit-4/Turning Machine 93
Multitape Turing Machine
• Theorem: A multitape TM is equivalent in power to an
ordinary TM. Recall that two TM’s are equivalent if they
recognize the same language. We can show how to convert
a multitape TM, M, to a single tape TM, S:
• Say that M has k tapes.
– Create the TM S to simulate having k tapes by interleaving the
information on each of the k tapes on its single tape
– Use a new symbol # as a delimiter to separate the contents of each
tape
– S must also keep track of the location on each of the simulated heads
• Write a type symbol with a * to mark the place where the head on the
tape would be
• The * symbols are new tape symbols that don’t exist with M
• The finite control must have the proper logic to distinguish say, x* and x
and realize both refer to the same thing, but one is the current tape
symbol.
unit-4/Turning Machine 94
Multitape Machine
unit-4/Turning Machine 95
Nondeterministic TM
• Replace the “DFA” part of the TM with an “NFA”
– Each time we make a nondeterministic move, you can think of this as a
branch or “fork” to two simultaneously running machines. Each
machine gets a copy of the entire tape. If any one of these machines
ends up in an accepting state, then the input is accepted.
• Although powerful, nondeterminism does not affect the
power of the TM model
• Theorem: Every nondeterministic TM has an equivalent
deterministic TM.
– We can prove this theorem by simulating any nondeterministic TM, N,
with a deterministic TM, D.
unit-4/Turning Machine 96
Nondeterministic TM
• Visualize N as a tree with branches whenever we fork off to two (or more)
simultaneous machines.
– Use D to try all possible branches of N, sequentially.
– If D ever finds the accept state on one of these branches, then D accepts.
– It is quite likely that D will never terminate in the event of a loop if there is no
accepting state.
• Search be done in a breadth-first rather than depth-first manner.
– An individual branch may extend to infinity, and if we start down this branch
then D will be stuck forever when some other branch may accept the input.
• We can simulate N on D by a tape with a queue of ID’s and a scratch tape
for temporary storage.
– Each ID contains all the moves we have made from one state to the next, for
one “branch” of the nondeterministic tree.
– From the previous theorem, we can make as many multiple tapes as we like and
this is still equivalent to a single tape machine. Initially, D looks like the
following:
unit-4/Turning Machine 97
Nondeterministic TM
• ID1 is the sequence of moves we make from the start state. The *
indicates that this is the current ID we are executing.
• We make a move on the TM. If this move results in a “fork” by following
nondeterministic paths, then we create a new ID and copy it to the end of
the queue using the scratch tape.
Scratch Tape
D
Scratch Tape
D
unit-4/Turning Machine 99
Nondeterministic TM
• After we’re done with a single move in ID1, which
may result in increasing the length of ID1 and storing
it back to the tape, we move on to ID2:
Scratch Tape
D