Variants of Turing Machines.pdf - Hampden-Sydney College
Variants of Turing Machines.pdf - Hampden-Sydney College
Variants of Turing Machines.pdf - Hampden-Sydney College
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
<strong>Variants</strong> <strong>of</strong> <strong>Turing</strong> <strong>Machines</strong><br />
Lecture 26<br />
Section 3.2<br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Robb T. Koether<br />
<strong>Hampden</strong>-<strong>Sydney</strong> <strong>College</strong><br />
Mon, Oct 27, 2008
Outline<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
1 Homework Review<br />
2 <strong>Variants</strong> <strong>of</strong> <strong>Turing</strong> <strong>Machines</strong><br />
3 Multiple Tapes<br />
4 Two-Way Infinite Tape<br />
5 Nondeterminism<br />
6 Other <strong>Variants</strong><br />
7 Assignment
Homework Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Exercise 3.1(d), page 159.<br />
This exercise concerns TM M 2 whose description and<br />
state diagram appear in Example 3.7 (page 144). In<br />
each <strong>of</strong> the parts, give the sequence <strong>of</strong> configurations<br />
that M 2 enters when started on the input string 000000.<br />
Other <strong>Variants</strong><br />
Assignment
Homework Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Solution<br />
The configurations:<br />
q 1 000000 ⊔xq 5 0x0x<br />
⊔q 2 00000 ⊔q 5 x0x0x<br />
⊔xq 3 0000 q 5 ⊔ x0x0x<br />
⊔x0q 4 000 ⊔q 2 x0x0x<br />
⊔x0xq 3 00 ⊔xq 2 0x0x<br />
⊔x0x0q 4 0 ⊔xxq 3 x0x<br />
⊔x0x0xq 3 ⊔xxxq 3 0x<br />
⊔x0x0q 5 x ⊔xxx0q 4 x<br />
⊔x0xq 5 0x ⊔xxx0xq 4<br />
⊔x0q 5 x0x ⊔xxx0x ⊔ q reject
Increasing the Power <strong>of</strong> a <strong>Turing</strong> Machine<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
It is hard to believe that something as simple as a<br />
<strong>Turing</strong> machine could be powerful enough for<br />
complicated problems.<br />
We can imagine a number <strong>of</strong> improvements.<br />
Multiple tapes<br />
Two-way infinite tape (n-way infinite)<br />
Two-dimensional tape (n-dimensional tape)<br />
Addressable memory<br />
Nondeterminism<br />
etc.
Multiple Tapes<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Would a <strong>Turing</strong> machine with k tapes, k > 1, be more<br />
powerful than a standard <strong>Turing</strong> machine<br />
Each tape could be processed independently <strong>of</strong> the<br />
others.<br />
In other words, each transition would read each tape,<br />
write to each tape, and move left or right independently<br />
on each tape.<br />
Assignment
Multiple Tapes<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Theorem<br />
Any language that is accepted by a multitape <strong>Turing</strong><br />
machine is also accepted by a standard <strong>Turing</strong> machine.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Multiple Tapes<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Pro<strong>of</strong> (sketch):<br />
On a single tape, we could write the contents <strong>of</strong> all k<br />
tapes.<br />
If tape i contains x 1i x 2i x 3i . . . x ni i, for each i, then write<br />
#x 11 x 12 . . . x 1n1 #x 21 x 22 . . . x 2n2 # . . . #x k1 x k2 . . . x knk #<br />
on the single tape.<br />
Assignment
Multiple Tapes<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Pro<strong>of</strong> (sketch):<br />
To show the current location on each tape, put a special<br />
markˆon one <strong>of</strong> that tape’s symbols:<br />
#x 11ˆx 12 . . . x 1n1 #ˆx 21 x 22 . . . x 2n2 # . . . #x k1ˆx k2 . . . x knk #<br />
Begin with<br />
#ˆx 11 x 12 . . . x 1n1 # ⊔ # . . . # ⊔ #<br />
Now the <strong>Turing</strong> machine scans the tape, locating the<br />
current symbol on each “tape.”
Multiple Tapes<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Pro<strong>of</strong> (sketch):<br />
It then makes the appropriate transition.<br />
Write a symbol over each <strong>of</strong> the current symbols.<br />
Move the location <strong>of</strong> the current symbol one space left<br />
or right for each tape.<br />
Of course, the devil is in the details.<br />
Other <strong>Variants</strong><br />
Assignment
Two-way Infinite Tape<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Would a <strong>Turing</strong> machine with a two-way infinite tape be<br />
more powerful than a standard <strong>Turing</strong> machine<br />
Processing could move as far to the left as necessary.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Two-way Infinite Tape<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
We can use a two-tape machine to simulate the<br />
two-way infinite tape.<br />
The right half <strong>of</strong> the two-way tape is stored on tape 1.<br />
The left half is stored on tape 2.<br />
Transitions are modified to handle the transition from<br />
tape 1 to tape 2.<br />
Assignment
Two-way Infinite Tape<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Theorem<br />
Any language accepted by a two-way infinite tape is also<br />
accepted by a standard <strong>Turing</strong> machine.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
A nondeterministic <strong>Turing</strong> machine is defined like a<br />
standard <strong>Turing</strong> machine except for the transition<br />
function:<br />
δ : Q ′ × Γ → P(Q × Γ × {L, R})<br />
where Q ′ = Q − {q accept , q reject }.<br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
That is, δ(q, a) may result in any <strong>of</strong> a number <strong>of</strong> actions.<br />
If any sequence <strong>of</strong> transitions leads to the accept state,<br />
then the input is accepted.<br />
If all sequences <strong>of</strong> transitions lead to the reject state or<br />
to looping, then the input is not accepted.<br />
Other <strong>Variants</strong><br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Theorem<br />
Any language accepted by a nondeterministic <strong>Turing</strong><br />
machine is also accepted by a standard <strong>Turing</strong> machine.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Pro<strong>of</strong>.<br />
We may use a three-tape machine to simulate a<br />
nondeterministic <strong>Turing</strong> machine.<br />
Tape 1 preserves a copy <strong>of</strong> the original input.<br />
Tape 2 contains a “working” copy <strong>of</strong> the input.<br />
Tape 3 keeps track <strong>of</strong> the current state in the<br />
nondeterministic machine.<br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Pro<strong>of</strong>.<br />
Start with the input w on Tape 1 and with Tapes 2 and 3<br />
empty.<br />
Copy w from Tape 1 to Tape 2.<br />
For Tape 3, imagine the transitions starting from the<br />
start state as forming a tree.<br />
Each state has child states, namely, the states are that<br />
are accessible in one transition.
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Pro<strong>of</strong>.<br />
Let b be the largest number <strong>of</strong> children <strong>of</strong> any node.<br />
Number the children <strong>of</strong> each state using the numbers 1,<br />
2, . . . , b (as many as needed).<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Pro<strong>of</strong>.<br />
Now each finite string <strong>of</strong> numbers from {1, 2, . . . , b}<br />
represents a particular path through the<br />
nondeterministic <strong>Turing</strong> machine, or else represents no<br />
path at all.<br />
Begin by writing the empty string on Tape 3,<br />
representing no moves at all.<br />
Assignment
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Pro<strong>of</strong>.<br />
If that leads to acceptance, then quit.<br />
If not, then replace ε with its lexicographical successor.<br />
For that string, follow the sequence <strong>of</strong> transitions that it<br />
describes.<br />
If that sequence leads to acceptance, then quit and<br />
accept.<br />
If not, then continue in the same manner.
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment<br />
Pro<strong>of</strong>.<br />
If w is accepted by the nondeterministic <strong>Turing</strong><br />
machine, then some sequence <strong>of</strong> transitions leads to<br />
the accept state.<br />
Eventually that sequence will be written on Tape 3 and<br />
tried.<br />
On the other hand, if no sequence <strong>of</strong> transitions leads<br />
to the accept state, then the deterministic <strong>Turing</strong><br />
machine will loop.
Nondeterminism<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Note that the deterministic <strong>Turing</strong> machine will never<br />
reject its input unless it runs out <strong>of</strong> paths to try.<br />
Two-Way<br />
Infinite Tape<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Other <strong>Variants</strong><br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Theorem (Meta-theorem)<br />
Any language accepted by a <strong>Turing</strong> machine with any<br />
variant that anyone has ever thought <strong>of</strong> is also accepted by<br />
a standard <strong>Turing</strong> machine.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment
Assignment<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Robb T.<br />
Koether<br />
Homework<br />
Review<br />
<strong>Variants</strong> <strong>of</strong><br />
<strong>Turing</strong><br />
<strong>Machines</strong><br />
Multiple Tapes<br />
Two-Way<br />
Infinite Tape<br />
Homework<br />
Read Section 3.2, pages 148 - 154.<br />
Problems 9, 12, 13, pages 160 - 161.<br />
Nondeterminism<br />
Other <strong>Variants</strong><br />
Assignment