Turing Machines (TM) : Model of Computation

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy