Turing Machines (TM)

Download Report

Transcript Turing Machines (TM)

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
UNIT
Start state
A single halt state
Move left or right one
cell at a time
TAPE
HEAD
TAPE
Jaruloj Chongstitvatana
2301379
Store input for the TM
Can be of any length
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},
/@,R
{0,1},{0,1,@}, , s}
/,L
p1
/,R
0/0,L
1/1,L
p4
0/,L
0/,R
p2
2301379
0/0,R
1/1,R
/,L
p3
Jaruloj Chongstitvatana
1/,R
Turing Machines
q1
@/,R
q2
/1,L
h
9
How a DTM works
s
/,L
/@,R
p1
/,R
0/0,L
1/1,L
p4
1/,R
0/,R
p2
0/0,R
1/1,R
/,L
0/,L
p3
Jaruloj Chongstitvatana
2301379
q1


 
0 0
0 1
0 0 
0 
 1
 
@
@/,R
q2
/1,L
h
On the input 0001000,
the TM halts.
Turing Machines
10
How a DTM works
s
/,L
/@,R
p1
/,R
0/0,L
1/1,L
p4
1/,R
0/,R
p2
0/0,R
1/1,R
/,L
0/,L
p3
Jaruloj Chongstitvatana
2301379
q1
 
0 0
0 0
0 0 
0 
 
 
@
@/,R
q2
/1,L
h
On the input 0000000,
the TM hangs.
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
–Current
(q,lar) state
string to the right of tape head
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
/@,R
p1
/,R
0/0,L
1/1,L
p4
0/,L
1/,R
0/,R
p2
0/0,R
1/1,R
/,L
/1,L
h
p3
Jaruloj Chongstitvatana
(s,0001000)
(p1,@0001000)
/,L (p2,@001000)
(p2,@001000)
(p3,@001000)
q1
(p4,@00100)
@/,R (p4,@00100)
(p1,@00100)
(p2,@0100)
q2
(p2,@0100)
(p3,@0100)
2301379
Turing Machines
(p4,@010)
(p4,@010)
(p1,@010)
(p2,@10)
(p2,@10)
(p2,@10)
(p3,@10)
(p4,@1)
(p4,@1)
(p1,@1)
(q1,@)
(q1,@)
(q2,)
(h ,1)
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
/@,R
• T hangs on 0n+110n at p3
1/,R
p1
n
n+1
• T hangs on 0 10 at q1
/,R
0/,R
• T hangs on 0n 12 0n at q1 0/0,L
1/1,L
p4
0/,L
p2
/,L
p3
Jaruloj Chongstitvatana
2301379
0/0,R
1/1,R
Turing Machines
/,L
q1
@/,R
q2
/1,L
h
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
s
/,R
p1
1/1,L
1/1,R
/1,R
p2
/,L
p3
1/,L
p4
/,R
h
Jaruloj Chongstitvatana
2301379
Turing Machines
19
Example of TM Computing Function
0/0,L
1/1,L
0’/0’,L
1’/1’,L
q2
/0’,L
@/0,R
s
0/0,L
1/1,L
0’/0’,L
1’/1’,L
/,R
0/0,R
1/1,R
q1
0’/0,R
1’/1,R
@/1,R
1/@,R
r2
r1
Jaruloj Chongstitvatana
0’/0,R
1’/1,R
0/@,R
p1
/1’,L
2301379
h
p2
/,S
/,L
p3
1/1,L
0/0,L
0/0,R
1/1,R
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
p1
/,L
p2
0/0,R
1/1,R
s
1/,R
0/,L
p3
p4
/,R
0/0,L
1/1,L
T0-0
s
h
1
/@,R
/,L
q1
q2
/1,L
h
Ts
0
T0-0
0
1
Ts
Terase1
@/,R
h
h
Terase1

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
1/1,L
/,L
s
/@,R
v
p
0/0,L
1/1,L
/,L
2301379
t0
/,R
0/0,R
1/1,R
Jaruloj Chongstitvatana
r0
q0
0/0,L
1/1,L
/@,L
0/0,R
1/1,R
u
q1
h
t1
r1
Turing Machines
@/,L
0/0,R
1/1,R
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
s
,/(,),(R,S)
p1
p2
0,/(0,0),(L,R)
1,/(1,1),(L,R)
h
,/(1,),(L,L)
,/(,),(R,S)
p3
0,/(0,),(R,S)
1,/(1,),(R,S)
q2
,/(,),(R,R)
,/(,),(L,L)
0,/(0,),(R,S)
1,/(1,),(R,S)
,/(,),(L,R)
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 singletape 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 2tape TM
• Convert the encoding of 2-tape symbols back to 1tape symbols
Jaruloj Chongstitvatana
2301379
Turing Machines
34
Encoding 2 tapes in 1 tape
 0 1 1 1 0  
 0 1 0 1   
 0 1 1 1 0  
 0 1 0 1   
• New alphabet contains:
– old alphabet
– encoding of a symbol on tape 1
– encoding of a symbol on tape 1
symbol on tape 2
– encoding of a symbol on tape 1
by its tape head
– encoding of a symbol on tape 1
symbol on tape 2 pointed by its
Jaruloj Chongstitvatana
2301379
and a symbol on tape 2
pointed by its tape head and a
and a symbol on tape 2 pointed
pointed by its tape head and a
tape head
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
p
a1,a2/(b1,b2),(d1,d2)
c(a1,a2)
q
T_tape1 (a1,b1,d1)
T_tape2 (a2,b2,d2)
Jaruloj Chongstitvatana
2301379
Turing Machines
q
38
Update the first cell
T_tape1(0,1,d)
Convert 1-tape symbol
into 2-tape symbol
#/#,L
? and x are 0, 1, or 
#/#,R
c(?,?)/c(?,?),R
c(0,?)/c(1,?),d
c(0,?)/c(1,?),d
S
not #/not #,L
c(1,x)/c(1,x),L
#/#,L
1/c(1,),L
h
not #/not #,L
c(?,x)/c(?,x),R
c(?,x)/c(?,x),R
It is
Remember
not possible
symbol
that
c(1,?)
under
is found
tape head
because
in
c(0,?) is wriiten
tape 1in cell 1.
Jaruloj Chongstitvatana
c(?,x)/c(1,x),R
2301379
#/#,L
not #/not #,L
Turing Machines
39
p1
|, L
0|0,L
1|1,L
|,R
#/,R
/,L
pn
|, R
Jaruloj Chongstitvatana
2301379
c(0,)|0, S
c(1,)|1, S
c(,)|, S
?| , R
Tcleanup
|, L
|, R
Turing Machines
h
40
Tencode
/,L
/#,L
h
Jaruloj Chongstitvatana
/,L
/,R
/,L
0/0,R
1/1.R
#/c(,),R
2301379
/,R
s
/#,R
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
Jaruloj Chongstitvatana
2301379
Depend on Mn
Turing Machines
46
How Md works
WriteInitialConfiguration
Tape 1
Set Working Tape
FindNewConfiguration
FindStateinCurrentConfiguration
EraseCurrentConfiguration
@
 0 1 1 0 
Current
Current state:
state: ssq
h
Tape 2
WriteAllPossibleNextConfiguration
* 
s 0 1 1 0
- 
- 
#
0 q 1 1 0
- 
#
- - *
- - *
# @ s 0 1 1 0  #  0 1 q 1 0  #
*
/@,S
s
Jaruloj Chongstitvatana
/,R
2301379
q
0/0,R
Turing Machines
47
WriteAllPossibleNextConfiguration
q1
a/b1,d1
q2
p
a/bn,dn
qn
a/b2,d2
For each (p,a,qi,bi,di), 1  i n
a,p
Writeq1b1d1
Jaruloj Chongstitvatana
2301379
Writeq2b2d2
Turing Machines
Writeqnbndn
48
Example: WriteAllPossibleNextConfiguration
/@,S
s
,s
0/0,R
/,R
q
WriteqR
Writes@R
Writeq0R
…
Jaruloj Chongstitvatana
2301379
Nondeterministic
move
Deterministic
move
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(h)=0,
e(S)=0,
e(a1a1a2)
e(a1)=00 ,
e(a2)=000
a1/a2,R
/,s
q1
q2
e(q1)=00,
e(q2)=000
e(L)=00,
e(R)=000
= 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
h
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
UpdateStateOnTape3
Jaruloj Chongstitvatana
2301379
 (halt)
CopyTape2ToTape1
Turing Machines
55
How UTM Works
a
12 0 0 1 0 1 | 0 0
Tape 1
# 0 0 , 0 0 , 0 0 0 , 0 0 0 , 0 0 0
# 0 0 0 , 0 , 0 , 0 , 0 # ... # |
Tape 2
CopyInputToTape2
1 1
0 0
1 1
1 0 0 0
Tape 3
FindRightMove
UpdateTape2
UpdateStateOnTape3
0 0 0
Jaruloj Chongstitvatana
CopyStartStateToTape3
2301379
halt
Turing Machines
CopyTape2ToTape1
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,
multitape TM, NTM
accepting languages or
computing function
• Construct composite
TM
• Prove properties of
languages accepted by
specific TM
• Prove the relationship
between different types
of TM
Jaruloj Chongstitvatana
2301379
• Describe the
relationship between
TM and FA
• Prove the relationship
between TM and FA
Turing Machines
58