You are on page 1of 58

Turing Machines (TM)

Model of Computation
Outlines
• Structure of Turing machines
• Deterministic Turing machines (DTM)
– Accepting a language
– Computing a function
• Composite Turing machines
• Multitape Turing machines
• Nondeterministic Turing machines (NTM)
• Universal Turing machines (UTM)

Jaruloj Chongstitvatana 2301379 Turing Machines 2


Structure of TM
Finite set of states

CONTROL Start state


UNIT
A single halt state

TAPE Move left or right one


HEAD cell at a time

TAPE

Store input for the TM


Can be of any length
Jaruloj Chongstitvatana 2301379 Can read from and write on tape3
Turing Machines
What does a TM do?
• Determine if an input x is in a language.
– That is, answer if the answer of a problem P for
the instance x is “yes”.
• Compute a function
– Given an input x, what is f(x)?

Jaruloj Chongstitvatana 2301379 Turing Machines 4


How does a TM work?
• At the beginning,
– A TM is in the start state (initial state)
– its tape head points at the first cell
– The tape contains , following by input
string, and the rest of the tape contains
.

Jaruloj Chongstitvatana 2301379 Turing Machines 5


How does a TM work?
• For each move, a TM
– reads the symbol under its tape head
– According to the transition function on the
symbol read from the tape and its current state,
the TM:
• write a symbol on the tape
• move its tape head to the left or right one cell or not
• changes its state to the next state

Jaruloj Chongstitvatana 2301379 Turing Machines 6


When does a TM stop working?
• A TM stops working,
– when it gets into the special state called
halt state. (halts)
• The output of the TM is on the tape.

– when the tape head is on the leftmost cell


and is moved to the left. (hangs)
– when there is no next state. (hangs)
Jaruloj Chongstitvatana 2301379 Turing Machines 7
How to define deterministic TM (DTM)
• a quintuple (Q, , , , s), where
– the set of states Q is finite, not containing halt state h,
– the input alphabet  is a finite set of symbols not
including the blank symbol ,
– the tape alphabet  is a finite set of symbols containing ,
but not including the blank symbol ,
– the start state s is in Q, and
– the transition function  is a partial function from Q 
({})  Q{h}  ({})  {L, R, S}.

Jaruloj Chongstitvatana 2301379 Turing Machines 8


Example of a DTM
• M= s
({s,p1,p2,p3,p4,q1,q2}, /,L
/@,R
{0,1},{0,1,@}, , s} 1/,R
p1 q1
/,R
0/0,L 0/,R
@/,R
1/1,L
0/0,R
p4 p2 1/1,R q2

/1,L
/,L
0/,L
p3 h
Jaruloj Chongstitvatana 2301379 Turing Machines 9
How a DTM works
s
/,L
/@,R
1/,R
p1 q1 
@ 1

0 0
 
0 1 0 0 
  0 
/,R
0/0,L 0/,R
@/,R
1/1,L
0/0,R
p4 p2 1/1,R q2

/1,L
/,L
0/,L
On the input 0001000,
p3 h the TM halts.
Jaruloj Chongstitvatana 2301379 Turing Machines 10
How a DTM works
s
/,L
/@,R
1/,R
p1 q1  
@ 0 0
 
0 0 0 0 
  0 
/,R
0/0,L 0/,R
@/,R
1/1,L
0/0,R
p4 p2 1/1,R q2

/1,L On the input 0000000,


/,L
0/,L the TM hangs.
p3 h
Jaruloj Chongstitvatana 2301379 Turing Machines 11
Configuration
Definition
• Let T = (Q, , , , s) be a DTM.
A configuration of T is an element of
Q  {h}  ({}) ({}) ({})
• Can be written as
– (q,l,a,r) or
string to the right of tape head
–Current
(q,lar) state
symbol under tape head

string to the left of tape head

Jaruloj Chongstitvatana 2301379 Turing Machines 12


Yield the next configuration
Definition
• Let T = (Q, , , , s) be a DTM, and (q1, 1a11)
and (q2, 2a22) be two configurations of T.
We say (q1, 1a11) yields (q2, 2a22) in one step,
denoted by (q1, 1a11) T (q2, 2a22), if
– (q1, a1) = (q2,a2,s), 1=2 and 1=2,
– (q1, a1) = (q2,b,R), 2=1b and 1=a22,
– (q1, a1) = (q2,b,L), 1=2a2 and 2=b1.

Jaruloj Chongstitvatana 2301379 Turing Machines 13


Yield in zero step or more
Definition
• Let T=(Q, , , , s) be a DTM, and (q1, 1a11) and
(q2, 2a22) be two configurations of T.
We say (q1, 1a11) yields (q2, 1a22) in zero step or
more, denoted by (q1, 1a11) -*T (q2, 1a22), if
– q1=q2, 1 =2, a1= a2, and 1= 2, or
– (q1,1a11)-T (q, a) and (q, a)-*T (q2,1a22)
for some q in Q, and  in *, and a in .
Jaruloj Chongstitvatana 2301379 Turing Machines 14
Yield in zero step or more: Example
(s,0001000) (p4,@010)
s (p1,@0001000) (p4,@010)
/,L (p2,@001000) (p1,@010)
/@,R (p2,@10)
1/,R (p2,@001000)
p1 q1 (p3,@001000) (p2,@10)
/,R (p4,@00100) (p2,@10)
0/,R (p3,@10)
0/0,L @/,R (p4,@00100)
1/1,L (p1,@00100) (p4,@1)
0/0,R (p2,@0100) (p4,@1)
p4 p2 1/1,R q2 (p2,@0100) (p1,@1)
(p3,@0100) (q1,@)
/1,L (q1,@)
/,L (q2,)
0/,L
p3 h (h ,1)

Jaruloj Chongstitvatana 2301379 Turing Machines 15


TM accepting a language
• Definition
Let T=(Q, , , , s) be a TM, and w*.
T accepts w if (s, , , w) |-T* (h, , , 1).
The language accepted by a TM T, denoted
by L(T), is the set of strings accepted by T.

Jaruloj Chongstitvatana 2301379 Turing Machines 16


Example of language accepted by a TM
L(T)={0n10n | n0}
s
• T halts on 0n10n /,L
/@,R
• T hangs on 0n+110n at p3 1/,R
p1 q1
• T hangs on 0n10n+1 at q1 /,R
• T hangs on 0n 12 0n at q1 0/0,L 0/,R
@/,R
1/1,L
0/0,R
p4 p2 1/1,R q2

/1,L
/,L
0/,L
p3 h
Jaruloj Chongstitvatana 2301379 Turing Machines 17
TM computing a function
• Definition
Let T=(Q, , , , s) be a TM, and f be a
function from * to *.
T computes f if, for any string w in *,
(s, , , w) |-T* (h, , , f(w)).

Jaruloj Chongstitvatana 2301379 Turing Machines 18


Example of TM Computing Function

1/1,R 1/1,L
1/1,R
/,R /1,R /,L 1/,L
s p1 p2 p3 p4

/,R

Jaruloj Chongstitvatana 2301379 Turing Machines 19


Example of TM Computing Function
0/0,L 0/0,R
1/1,L /0’,L 1/1,R
0’/0’,L q2 q1 h
1’/1’,L
0’/0,R /,S
@/0,R 0/@,R 1’/1,R
/,R 0’/0,R /,L
s p1 1’/1,R p2 p3

@/1,R 1/@,R 1/1,L


0/0,L
r2 r1 0/0,R
0/0,L /1’,L
1/1,L 1/1,R
0’/0’,L
1’/1’,L
Jaruloj Chongstitvatana 2301379 Turing Machines 20
Composite TM
• Let T1 and T2 be TM’s.
• T1  T2 means executing T1 until T1 halts
and then executing T2.
• T1 -a T2 means executing T1 until T1 halts
and if the symbol under the tape head when
T1 halts is a then executing T2.

Jaruloj Chongstitvatana 2301379 Turing Machines 21


Example of Composite TM
0/,R /,L 0/,L /,R
p1 p2 p3 p4 h
0/0,R
0/0,L
1/1,L
Ts
1/1,R
T0-0 0
1
1/,R /@,R T0-0 0
s h s h
1
Terase1 Ts
Terase1
/,L
@/,R /1,L

q1 q2 h Tout1
Tout1
Jaruloj Chongstitvatana 2301379 Turing Machines 22
Nondeterministic TM
• An NTM starts working and stops working
in the same way as a DTM.
• Each move of an NTM can be
nondeterministic.

Jaruloj Chongstitvatana 2301379 Turing Machines 23


Each Move in an NTM
• reads the symbol under its tape head
• According to the transition relation on the symbol
read from the tape and its current state, the TM
choose one move nondeterministically to:
– write a symbol on the tape
– move its tape head to the left or right one cell or not
– changes its state to the next state

Jaruloj Chongstitvatana 2301379 Turing Machines 24


How to define nondeterministic TM (NTM)

• a quintuple (Q, , , , s), where


– the set of states Q is finite, and does not contain halt
state h,
– the input alphabet  is a finite set of symbols, not
including the blank symbol ,
– the tape alphabet  is a finite set of symbols containing ,
but not including the blank symbol ,
– the start state s is in Q, and

– the transition fn :Q({})2Q{h}({}){L,R,S}.


Jaruloj Chongstitvatana 2301379 Turing Machines 25
Configuration of an NTM
Definition
• Let T = (Q, , , , s) be an TM.
A configuration of T is an element of Q     
• Can be written as
– (q,l,a,r) or
– (q,lar) string to the left of tape head

symbol under tape head

string to the right of tape head

Jaruloj Chongstitvatana 2301379 Turing Machines 26


Yield the next configuration
Definition
• Let T = (Q, , , , s) be an NTM, and (q1, 1a11)
and (q2, 2a22) be two configurations of T.
We say (q1, 1a11) yields (q2, 2a22) in one step,
denoted by (q1, 1a11) T (q2, 2a22), if
– (q2,a2,S)  (q1, a1), 1=2 and 1=2,
– (q2,b,R)  (q1, a1), 2=1b and 1=a22,
– (q2,b,L)  (q1, a1), 1=2a2 and 2=b1.
Jaruloj Chongstitvatana 2301379 Turing Machines 27
NTM accepting a language/computing a function

• Definition
Let T = (Q, , , , s) be an NTM.
Let w* and f be a function from * to *.
T accepts w if (s, , , w) |-T* (h, , , 1).
The language accepted by a TM T, denoted by L(T),
is the set of strings accepted by T.
T computes f if, for any string w in *, (s, , , w) |-T*
(h, , , f(w)).

Jaruloj Chongstitvatana 2301379 Turing Machines 28


Example of NTM
• Let L={ww| w{0,1}*}
0/0,L 0/0,R
s 1/1,L
/,L
r0 1/1,R

/@,R
0/0,L
1/1,L
q0 t0
/@,L
v p /,R
u
@/,L
h
0/0,R
1/1,R
q1 t1
0/0,L
1/1,L
/,L 0/0,R
r1 1/1,R
Jaruloj Chongstitvatana 2301379 Turing Machines 29
Multitape TM
• TM with more than one tape.
• Each tape has its own tape head.
• Each tape is independent.
CONTROL
UNIT

TAPE

TAPE
Jaruloj Chongstitvatana 2301379 Turing Machines 30
2-Tape Turing Machine
• a quintuple (Q, , , , s), where
– the set of states Q is finite, and does not contain the halt
state h,
– the input alphabet  is a finite set of symbols, not
including the blank symbol ,
– the tape alphabet  is a finite set of symbols containing ,
but not including the blank symbol ,
– the start state s is in Q, and
– the transition function  is a partial function from
Q  ({})2  Q{h}  ({})2  {L, R, S}2 .
Jaruloj Chongstitvatana 2301379 Turing Machines 31
Example of 2-Tape Turing Machine
,/(,),(R,S) ,/(,),(L,R) ,/(,),(R,S)
s p1 p2 p3
0,/(0,),(R,S) 0,/(0,0),(L,R) 0,/(0,),(R,S)
1,/(1,),(R,S) 1,/(1,1),(L,R) 1,/(1,),(R,S)

,/(,),(L,L)
,/(1,),(L,L) ,/(,),(R,R)
h q2 p4
0,0/(,),(L, L)
1,1/(,),(L, L)

Jaruloj Chongstitvatana 2301379 Turing Machines 32


Equivalence of 2-tape TM and single-tape TM

Theorem:
For any 2-tape TM T, there exists a single-
tape TM M such that for any string  in *:
– if T halts on  with  on its tape, then M halts
on  with  on its tape, and
– if T does not halt on , then M does not halt on
.

Jaruloj Chongstitvatana 2301379 Turing Machines 33


How 1-tape TM simulates 2-tape TM
• Marking the position of each tape head in the
content of the tape
• Encode content of 2 tapes on 1 tape
– When to convert 1-tape symbol into 2-tape symbol

cannot be done all at once because the tape is infinite


• Construct 1-tape TM simulating a transition in 2-
tape TM
• Convert the encoding of 2-tape symbols back to 1-
tape symbols
Jaruloj Chongstitvatana 2301379 Turing Machines 34
Encoding 2 tapes in 1 tape
 0 1 1 1 0    0 1 1 1 0  
 0 1 0 1   
 0 1 0 1   

• New alphabet contains:


– old alphabet
– encoding of a symbol on tape 1 and a symbol on tape 2
– encoding of a symbol on tape 1 pointed by its tape head and a
symbol on tape 2
– encoding of a symbol on tape 1 and a symbol on tape 2 pointed
by its tape head
– encoding of a symbol on tape 1 pointed by its tape head and a
symbol on tape 2 pointed by its tape head
Jaruloj Chongstitvatana 2301379 Turing Machines 35
How the tape content is changed

 0 1 1 1 0 
0 1 1 1 0 
      

Jaruloj Chongstitvatana 2301379 Turing Machines 36


Tape format

c(b,) # c(a,) c(b,) c(c,) c(d,) …

Encoded tape content

seperator

What’s read on tape 1 and 2

Jaruloj Chongstitvatana 2301379 Turing Machines 37


Simulating transitions in 2-tape TM in 1-tape TM

p
a1,a2/(b1,b2),(d1,d2)
q

c(a1,a2)
p T_tape1 (a1,b1,d1)

T_tape2 (a2,b2,d2) q

Jaruloj Chongstitvatana 2301379 Turing Machines 38


T_tape1(0,1,d)
Update the first
Convert cell symbol
1-tape
into 2-tape symbol

? and x are 0, 1, or  #/#,L

c(?,?)/c(?,?),R
S
not #/not #,L
#/#,R

c(0,?)/c(1,?),d c(1,x)/c(1,x),L
c(0,?)/c(1,?),d 1/c(1,),L #/#,L c(?,x)/c(1,x),R
h

c(?,x)/c(?,x),R not #/not #,L


c(?,x)/c(?,x),R

It is
Remember
not possible
symbol
that #/#,L
c(1,?)
under
is found
tape head
because
in
c(0,?) is wriiten
tape 1in cell 1.
not #/not #,L
Jaruloj Chongstitvatana 2301379 Turing Machines 39
Tcleanup

|, L
p1
0|0,L
?| , R

1|1,L
|,R
#/,R
/,L

c(,)|, S
c(0,)|0, S
c(1,)|1, S
|, L
pn

|, R |, R h

Jaruloj Chongstitvatana 2301379 Turing Machines 40


Tencode
/#,R /,L #/c(,),R /#,L
s h

0/0,R

/,L
1/1.R

/,R
/,R

/,L

Jaruloj Chongstitvatana 2301379 Turing Machines 41


Equivalence of 2-tape TM and single-tape TM

Proof:
Let T = (Q, , , , s) be a 2-tape TM.
We construct a 1-tape TM M=(K, , ’, ’, s’) such that
– ’ =  {c(a,b)| a,b are in {}} {c(a,b)| a,b
are in {}} {c(a,b)|a,b are in {}} 
{c(a,b)|a,b are in {}}  {#}
We need to prove that:
– if T halts on  with output , then M halts on  with
output , and
– if T does not halt on , then M does not halt on 

Jaruloj Chongstitvatana 2301379 Turing Machines 42


if T halts on  with output 

Jaruloj Chongstitvatana 2301379 Turing Machines 43


if T does not halt on 
• If T loops, then M loops.
• If T hangs in a state p, M hangs
somewhere from p to the next state.

Jaruloj Chongstitvatana 2301379 Turing Machines 44


Equivalence of NTM and DTM
Theorem: For any NTM Mn, there exists a DTM Md
such that:
– if Mn halts on input  with output , then Md halts on
input  with output , and
– if Mn does not halt on input , then Md does not halt on
input .
Proof:
Let Mn = (Q, , , , s) be an NTM.
We construct a 2-tape TM Md from Mn as follows:

Jaruloj Chongstitvatana 2301379 Turing Machines 45


Construct a DTM equivalent to an NTM
WriteInitialConfiguration Tape 1: simulate Mn’s tape
Tape 2: store configuration tree
Set WorkingTape FindNewConfiguration

FindStateinCurrentConfiguration EraseCurrentConfiguration

h WriteAllPossibleNextConfiguration

a is any symbol, q is any state in Q Depend on Mn


Jaruloj Chongstitvatana 2301379 Turing Machines 46
How Md works
WriteInitialConfiguration
Tape 1
Set Working Tape
 0 1 1 0 
@ FindNewConfiguration

FindStateinCurrentConfiguration EraseCurrentConfiguration
Current
Current state:
state: ssq
h WriteAllPossibleNextConfiguration
Tape 2

* 
- - s
- -
0 -
1 - 0 
1 - - 
- *
# - 0
- -
q -
1 - 0 
1 - - #
*

# @ s 0 1 1 0  #  0 1 q 1 0  #
*
/@,S /,R 0/0,R
s q
Jaruloj Chongstitvatana 2301379 Turing Machines 47
WriteAllPossibleNextConfiguration

a/b1,d1 a/bn,dn
q1 p qn
a/b2,d2
q2

For each (p,a,qi,bi,di), 1  i n

a,p
Writeq1b1d1 Writeq2b2d2 Writeqnbndn

Jaruloj Chongstitvatana 2301379 Turing Machines 48


Example: WriteAllPossibleNextConfiguration

/@,S 0/0,R
/,R
s q

,s
WriteqR Writes@R

Writeq0R Nondeterministic
move

… Deterministic
move
Jaruloj Chongstitvatana 2301379 Turing Machines 49
if Mn halts on input  with output 

• Then, there is a positive integer n such that


the initial configuration (s, ) of Mn yeilds a
halting configuration (h, ) in n steps.
• From the construction of Md, the
configuration (h, ) must appear on tape 2
at some time.
• Then, Md must halt with  on tape 1.

Jaruloj Chongstitvatana 2301379 Turing Machines 50


if Mn does not halt on input 
• Then, Mn cannot reach the halting
configuration. That is, (s, ) never yields a
halting configuration (h, ).
• From the construction of Md, the
configuration (h,) never appears on tape 2.
• Then, Md never halt.

Jaruloj Chongstitvatana 2301379 Turing Machines 51


Universal Turing Machine
• Given the description of a DTM T and an
input string z, a universal TM simulates how T
works on input z.
• What’s need to be done?
– How to describe T and z on tape
• Use an encoding function

– How to simulate T

Jaruloj Chongstitvatana 2301379 Turing Machines 52


Encoding function
• Let T=(Q, , , s) be a TM. The encoding function
e(T) is defined as follows:
– e(T)=e(s)#e(),
– e()=e(m1)#e(m2)#...#e(mn)#, where  = {m1, m2,..., mn}
– e(m)=e(p),e(a),e(q),e(b),e(d), where m = (p, a, q, b, d)
– e(z)=1e(z1)1e(z2)1…1e(zm)1, where z=z1z2…zm is a string
– e()=0, e(ai)=0i+1, where ai is in 
– e(h)=0, e(qi)=0i+1, where qi is in Q
– e(S)=0, e(L)=00, e(R)=000

Jaruloj Chongstitvatana 2301379 Turing Machines 53


Example of Encoded TM
• e()=0 , e(a1)=00 , e(a2)=000 a1/a2,R /,s
• e(h)=0, e(q1)=00, e(q2)=000 q1 q2 h
• e(S)=0, e(L)=00, e(R)=000
• e(a1a1a2) = 1e()1e(a1)1e(a1)1e(a2)1e()1
= 101001001000101
• e(m1) = (q1),e(a1),e(q2),e(a2),e(R)
= 00,00,000,000,000
• e(m2) = e(q2),e(),e(h),e(),e(S)
= 000,0,0,0,0
• e() = e(m1)#e(m2)#...#
= 00,00,000,000,000#000,0,0,0,0#...#
• e(T) = e(s)#e()
= 00#00,00,000,000,000#000,0,0,0,0#...#
• Input = e(Z)|e(T)|
= 101001001000101|00#00,00,000,000,000#000,0,0,0,0#...#|
Jaruloj Chongstitvatana 2301379 Turing Machines 54
Universal Turing Machine
Tape 1: I/O tape, store the transition function of T and
input of T
Tape 2: simulate T’s tape
Tape 3: store T’s state

CopyInputToTape2 CopyStartStateToTape3

UpdateTape2 FindRightMove
0

 (halt)
UpdateStateOnTape3 CopyTape2ToTape1

Jaruloj Chongstitvatana 2301379 Turing Machines 55


How UTM Works
12 0 0 1 0 1 | 0 0
a

Tape 1
# 0 0 , 0 0 , 0 0 0 , 0 0 0 , 0 0 0

# 0 0 0 , 0 , 0 , 0 , 0 # ... # |
Tape 2

1 0 0 1
0 0
1 1
0 1 CopyInputToTape2 CopyStartStateToTape3

Tape 3 UpdateTape2 FindRightMove

UpdateStateOnTape3 CopyTape2ToTape1
0 0 0 halt

Jaruloj Chongstitvatana 2301379 Turing Machines 56


Church-Turing Thesis
• Turing machines are formal versions of
algorithms.
• No computational procedure will be
considered an algorithm unless it can be
presented as a Turing machine.

Jaruloj Chongstitvatana 2301379 Turing Machines 57


Checklist
• Construct a DTM, • Describe the
multitape TM, NTM relationship between
accepting languages or TM and FA
computing function • Prove the relationship
• Construct composite between TM and FA
TM
• Prove properties of
languages accepted by
specific TM
• Prove the relationship
between different types
of TM
Jaruloj Chongstitvatana 2301379 Turing Machines 58

You might also like