slides

advertisement
91.304 Foundations of
(Theoretical) Computer Science
Chapter 3 Lecture Notes (Section 3.1: Turing Machines)
David Martin
dm@cs.uml.edu
With some modifications by Prof. Karen Daniels, Fall 2013
This work is licensed under the Creative Commons Attribution-ShareAlike License.
To view a copy of this license, visit http://creativecommons.org/licenses/bysa/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
1
“Manners are not
taught in lessons,”
said Alice. “Lessons
teach you to do
sums, and things of
that sort.”
“And you do
Addition?” the White
Queen asked.
“What's one and one
and one and one and
one and one and one
and one and one and
one?”
“I don't know,” said
Alice. “I lost count.”
“She can't do
Addition,” the Red
Queen interrupted.
2
Excerpt: Through the Looking Glass, Lewis Carroll
tape
a|b|a|b|a|b|t|t|t|t|t|t|t|L
control
Turing machine syntax
†
1.
2.
3.
4.
Definition A Turing Machine is an automaton
M=(Q,Σ,Γ,δ,q0,qacc,qrej) where
Q is a finite set of states
Σ is an input alphabet that does not include " t", the
special blank character
Γ is a tape alphabet satisfying
1. t ∈ Γ
2. Σ ⊂ Γ
δ:Q×Γ→ Q×Γ×{L,R} is the transition function
1.
5.
6.
7.
“staying put” is not an option, except at left end of tape
q0 is the initial state
qacc is the single accepting state
qrej is the single rejecting state
Alan Turing proposed the Turing Machine in 1936!
3
Differences from Finite Automata
† Turing machine
„ Can both read from and write onto tape.
† No LIFO access restriction as in PDA’s stack
„ Read/write head (control) can move both
left and right.
„ Tape is infinite.
„ Special states for rejecting and accepting
take effect immediately.
„ In some cases machine can fail to halt…
tape
a|b|a|b|a|b|t|t|t|t|t|t|t|L
4
control
Differences in input mechanism
† A TM has a "tape head" that points to exactly one cell
on its tape, which extends infinitely to the right
„ At each transition, the TM looks at the current state
and the current cell, and decides what new state to
move to, what to write on the current cell, and
whether to move one cell to the left or one cell to the
right (or stay put at left end of tape)
„ Hence the transition function δ:Q×Γ→ Q×Γ×{L,R}
† Each tape cell initially contains the blank character t
† Our previous automata (DFAs, NFAs, PDAs) all had a
separate read-only input stream
† But in a TM, the input is given all at once and just
written onto the left end of the tape — overwriting the
blanks there
a|b|a|b|a|b|t|t|t|t|t|t|t|L
5
in state q7
Turing machine computation
† We define a set of instantaneous descriptions (IDs or
configurations) and then show what memory-state
snapshots may follow each other, according to the
program M.
† First, the snapshots: in a TM, ID(M) = Γ* Q Γ*
„ Each element of this set represents the entire tape
contents, the current state, and the location of the
tape head
„ In example below, the ID is ab q7a babttL
„ So the character to the right of the state name is the
"current" character
„ The tape always has infinitely many blanks on the
right; we can write them or omit them as we please
a|b|a|b|a|b|t|t|t|t|t|t|t|L
6
in state q7
Turing machine computation
† Two IDs are related to each other (by `) if one can
lead to the other (via 1 transition) according to the δ
function
† So we look at all of the things that δ can say, starting
with right moves:
„ Suppose δ(q,b) = (t,c,R) where
† q ∈ Q - {qacc, qrej} and b ∈ Γ (states in green)
† t ∈ Q and c ∈ Γ
† R means "right move“ (after reading/writing)
„ Then
u qb v ` u ct v
where u,v∈Γ* are undisturbed, the state has changed
from q to t, the tape cell has changed from b to c,
and the head has moved one character to the right
(over the now-changed character)
7
Turing machine computation
† Left moves
„ Suppose δ(q,b) = (t,c,L) where
† q ∈ Q - {qacc, qrej} and b ∈ Γ (states in green)
† t ∈ Q and c ∈ Γ
„ Then
ua qb v ` u tac v
where u,v∈Γ* and a∈Γ are undisturbed, the state
has changed from q to t, the tape cell has
changed from b to c, and the head has moved
one character to the left
„ This says that one ID can lead to another ID
when δ says to move left and there is a
character a∈Γ to the left. What if there is no
such character?
8
Turing machine computation
† Left moves at left edge of tape
„ Suppose δ(q,b) = (t,c,L) where
† q ∈ Q - {qacc, qrej} and b ∈ Γ (states in green)
† t ∈ Q and c ∈ Γ
„ Then
qb v ` tc v
where v∈Γ* is undisturbed, the state has changed
from q to t, the tape cell has changed from b to c
„ Where does this put the tape head in this case?
† Note we have not explicitly covered the case where
δ(q,b) = (t,c,L) and q∈{qacc,qrej}
„ Or when we move R instead of L
„ Conclusion: well, if the current ID is u qb v
and q∈{qacc,qrej}, then no "next ID" is possible. We
say that the TM halts
9
Some Ways to Describe Turing
Machine Computation
1. Implementation-level description (high-level)
2. Instantaneous descriptions (IDs or configurations)
specifying snapshots of tape and read-write head position
as computation progresses.
3. Formal description (7-tuple)
4. Detailed state diagram.
† We’ll discuss all 4 ways using Turing machine M1 in
textbook (p. 138, 139, 145) for language:
B = {w# w | w ∈ {0,1}*}
† We’ll also discuss Turing machine M2 in textbook (p. 143,
144) for language:
2n
A = {0 | n ≥ 0}
10
Implementation-Level Description
B = {w# w | w ∈ {0,1}*}
Small Examples:
- Accepting input: 101#101ttL
- Rejecting input: 0101#1000ttL
11
Instantaneous Descriptions
(Snapshots) B = {w# w | w ∈ {0,1}*}
Sample Input: 011000#011000
12
Formal Description and Detailed
State Diagram B = {w# w | w ∈ {0,1}*}
8
Can 0,1 happen here?
13
Detailed State Diagram
B = {w# w | w ∈ {0,1}*}
Can 0,1 happen here?
Small Examples:
- Accepting input: 101#101ttL
- Rejecting input: 0101#1000ttL
14
Implementation-Level Description
2n
A = {0 | n ≥ 0}
A = {0 2 | n ≥ 0}
n
15
Formal Description (7-tuple)
A = {0 | n ≥ 0}
2n
16
Detailed State
Diagram
2n
A = {0 | n ≥ 0}
Note different way of
marking left end.
17
Instantaneous Descriptions
n
2
(IDs or configurations) A = {0 | n ≥ 0}
Sample Input: 0000
18
Detailed State
Diagram
2n
A = {0 | n ≥ 0}
19
More Examples…
† See Textbook Examples:
„ Example 3.11
C = {a i b j c k | i × j = k and i, j , k ≥ 1}
† Subtlety on detecting left end of tape.
„ Example 3.12 (element distinctness)
E = {# x1 # x2 # L # xl | each xi ∈ {0,1} * and xi ≠ x j for each i ≠ j}
20
Language recognized by TM
† Finally, we let `* be the transitive, reflexive
closure of `. So if α and β are IDs, the
statement α `* β means "the TM can go
from α to β in 0 or more steps"
† The language recognized by M is
L(M) = { x∈Σ* | q0 x `* u qacc v for
some u,v∈Γ* } (strings that are accepted by M)
† Translation?
† Note x ∈Σ*, not Γ*
21
TM language classes
† Definition A language L is Turingrecognizable if there exists a TM M such
that L = L(M).
„ Synonym: L is recursively enumerable,
abbreviated "r.e.“ (see Section 3.2)
† Definition The class of all Turingrecognizable languages is
Σ1 = { L ⊆ Σ* | L is Turing-recognizable }
„ The textbook does not assign a name like this; it
just says "class of TM-recognizable langs"
„ Beware: The class Σ1 is not an alphabet like Σ
„ The naming is unfortunate but better than some 22
of the alternatives
Turing-Recognizable Languages
ALL
Turing
Recognizable
Σ1
CFPP
RPP
CFL
REG
Each point is
a language in
this Venn
diagram
FIN
23
Deciders
† We've seen that when you start a TM with
an input x, it can do three distinct things:
„ Accept x
„ Reject x
„ Run forever without accepting or rejecting x
† We call this "looping" -- meaning that the TM
runs forever. (The "loop" might not be so
simple, the point is it runs forever.)
† Some TMs always accept or reject and
never loop on any input whatsoever. You
could easily write an example of one. A TM
with this property is called a decider.
„ A decider always halts on every input
24
Decidable languages
† Definition A language is decidable if
there exists a decider TM M such that L =
L(M)
„ Synonyms: L is "computable" and "recursive"
„ It is in general not easy to tell if a language is
decidable or not
† Definition The class of all Turingdecidable languages is
Σ0 = { L ⊆ Σ* | L is Turing-decidable}
„ Note Σ0 (decidable) versus Σ1 (recognizable)
versus Σ (alphabet)
25
Turing-Decidable Languages
ALL
Turing
Recognizable
Turing
Decidable
Σ1
CFPP
RPP
Σ0
CFL
REG
Each point is
a language in
this Venn
diagram
FIN
26
Decidable versus recognizable
† Fact (obvious) Σ0 ⊆ Σ1
„ Every decider is automatically a recognizer too
† Fact (not at all obvious) Σ0 ≠ Σ1
„ This means that there exists some language
H ∈ Σ1 - Σ0
† H is a language that can be recognized by some
TM, but can't be recognized by any TM that
always halts!
† Fact (not at all obvious) Σ1 ≠ ALL
„ This means that there exists some language
H2 ∈ ALL - Σ1
† H2 is a language that can't even be recognized
by any TM
27
Ultimately…
ALL
H2
Turing
Recognizable
Turing
Decidable
Σ1
H
CFPP
RPP
Σ0
CFL
REG
Each point is
a language in
this Venn
diagram
FIN
28
Reminder
† The decidable languages: Σ0
† The recognizable languages: Σ1
29
Closure properties of Σ0 and Σ1
† Σ1 is closed under ∪,∩, ·, ∗, reversal
„ Proofs for ∪ and ∩ are similar to the NFA
constructions we used, if you use a 2tape TM (section 3.2)
„ Proof for reversal is also easy with a 2tape TM (section 3.2)
„ · and ∗ are somewhat harder
„ Not closed under complement
† Σ0 is closed under all of these
operations and complement as well
30
Preview: a non-recognizable L
† This all means that some L exists that
is not recognized by any TM
„ What does it look like?
„ Is it important?
YES, because of Church-Turing Thesis
† Intuitive notion of algorithms = Turing
machine algorithms
† To be defined and discussed in Section 3.3
31
Download