Title: Turing Machines Variants
1Turing Machines Variants
2Announcement
- Midterms not graded yet
- Will get them back Tuesday
3Agenda
- Turing Machine Variants
- Non-deterministic TMs
- Multi-Tape
4Input-Output Turing Machines
- Input/output (or IO or transducing) Turing
Machines, differ from TM recognizers in that they
have a neutral halt state qhalt instead of the
accept and reject halt states. The TM is then
viewed as a string-function which takes initial
tape contents u to whatever the non blank portion
of the tape is when reaching qhalt . If v is the
tape content upon halting, the notation fM (u)
v is used. - If M crashes during the computation, or enters
into an infinite loop, M is said to be undefined
on u.
5Input-Output Turing Machines
- When fM crashes or goes into an infinite loop
for some contents, fM is a partial function - If M always halts properly for any possible
input, its function f is total (i.e. always
defined).
6TM Notations
- There are three ways that Sipser uses to describe
TM algorithms. - High level pseudocode which explains how
algorithm works without the technical snafoos of
TM notation - Implementation level describe how the TM
operates on its tape. No need to mention states
explicitly. - Low-level description. One of
- Set of complete goto style instructions
- State diagram
- Formal description spell out the 7-tuple
7High-Level TMExample
- Let's for example describe a Turing Machine M
which multiplies numbers by 2 in unary - M "On input w 1n
- For each character c in w
- copy c onto the next available b blank space"
8Implementation-Level TMExample
- The idea is to carry out the high level
description by copying each character to the end.
We also need to keep track of which characters
have already been copied (or were copies
themselves) by distinguishing these characters.
One way is to use a different character, say X. - EG Lets see how 11111 is transformed.
9Implementation-Level TMExample
- So round by round, tape transformed as follows
- 11111
- X1111X
- XX111XX
- XXX11XXX
- XXXX1XXXX
- XXXXXXXXXX
- 1111111111
10Implementation-Level TMExample
- Implementation level describes what algorithm
actually looks like on the Turing machine in a
way that can be easily turned into a
state-diagram - Some useful subroutines
- fast forward
- move to the right while the given condition holds
- rewind
- move to the left while the given condition holds
- May need to add extra functionality
- Add if need to tell when end of tape is
11Implementation-Level TMExample
- M "On input w 1n
- HALT if no input
- Write in left-most position
- Sweep right and write X in first blank
- Sweep left through X-streak and 1-streak
- Go right
- If read X, go right and goto 9. Else,
replace 1 by X, move right. - If read X finished original w goto 8
Else, goto 3 - Sweep to the right until reach blank, replace by
X - Sweep left replacing everything non-blank by 1
- HALT
12Implementation-Level TMExample
- At the low level the Turing Machine is
completely described, usually using a state
diagram
9
?R
1?L
X?L
1?,R
?X,L
1?L
0
2
3
4
X?R
1X?R
1?R
1?X,R
X?1,L
5
6
?R
X?1,L
X?R
?1,L
?1,L
X?R
8
9
halt
13Non-Deterministic TMs
- A non-Deterministic Turing Machine N allows more
than one possible action per given state-tape
symbol pair. - A string w is accepted by N if after being put on
the tape and letting N run, N eventually enters
qacc on some computation branch. - If, on the other hand, given any branch, N
eventually enters qrej or crashes or enters an
infinite loop on, w is not accepted. - Symbolically as before
- L(N) x ? S ? accepting config. y, q0 x ?
y - (No change needed as ? need not be function)
14Non-Deterministic TMsRecognizers vs. Deciders
- N is always called a non-deterministic recognizer
and is said to recognize L(N) furthermore, if in
addition for all inputs and all computation
branches, N always halts, then N is called a
non-deterministic decider and is said to decide
L(N).
15Non-Deterministic TMExample
- Consider the non-deterministic method
- void nonDeterministicCrossOut(char c)
- while()
- if (read blank) go left
- else
- if (read c)
- cross out, go right, return
- OR go right // even when reading c
- OR go left // even when reading c
16Non-Deterministic TMExample
- Using randomCross() put together a
non-deterministic program - 1. while(some character not crossed out)
- nonDeterministicCrossOut(0)
- nonDeterministicCrossOut(1)
- nonDeterministicCrossOut(2)
- 2. ACCEPT
- Q What language does this non-deterministic
program recognize ?
17Non-Deterministic TMExample
- A x ? 0,1,2 x has the same no.
- of 0s as 1s as 2s
- Q Suppose q is the state of the TM while running
inside nonDeterministicCrossOut(1) and q is
the state of the TM inside nonDeterministicCrossOu
t(2). - Suppose that current configuration is
- u 0XX1Xq12X2
- For which v do we have u ? v ?
18Non-Deterministic TMExample
- A 0XX1Xq12X2 ?
- 0XX1qX12X2 0XX1X1q2X2 0XX1XXq 2X2
- These define 3 branches of computation tree
- Q Is this a non-deterministic TM decider?
0XX1Xq12X2
0XX1XXq 2X2
0XX1X1q2X2
0XX1qX12X2
19Non-Deterministic TMExample
- A No. This is a TM recognizer, but not a
decider. nonDeterministicCrossOut() often enters
an infinite branch of computation since can
see-saw from right to left to right, etc. ad
infinitum without ever crossing out anything.
I.e., computation tree is infinite! - Note If you draw out state-diagrams, you will
see that the NTM is more compact, than TM version
so there are some advantages to non-determinism!
Later, will encounter examples of efficient
nondeterministic programs for practically
important problems, with no known efficient
counterpart The P vs. NP Problem.
20NTMsKonigs Infinity Lemma
- For Problem 3.3 in Sipser the following fact is
important - If a NTM is a decider then given any input, there
is a number h such that all computation branches
involve at most h basic steps. I.e., computation
tree has height h. Follows from - Konigs Infinity Lemma An infinite tree with
finite branching at each node must contain an
infinitely long path from the root. - Or really, the contrapositive is used A tree
with no infinite paths, and with finite branching
must itself be finite.
21Konigs Infinity LemmaProof Idea
- Idea is to smell-out where the infinite part of
the tree is and go in that direction
?
?
22Konigs Infinity LemmaProof Idea
- Idea is to smell-out where the infinite part of
the tree is and go in that direction
?
?
?
23Konigs Infinity LemmaProof Idea
- Idea is to smell-out where the infinite part of
the tree is and go in that direction
?
?
?
?
24Konigs Infinity LemmaProof Idea
- Idea is to smell-out where the infinite part of
the tree is and go in that direction
?
?
?
?
?
25Konigs Infinity LemmaProof Idea
- Idea is to smell-out where the infinite part of
the tree is and go in that direction
?
?
?
?
?
?
26Konigs Infinity LemmaProof
- Proof. Given an infinite tree with finite
branching construct an infinite path inductively - Vertex v0 Take the root.
- Edge vn ? vn1 Suppose v0?v1vn-1?vn has been
constructed and that the subtree from vn is
infinite. Then one of vns finite no. of
children, call it vn1, must have an infinite
subtree, so add the edge vn ? vn1.
27Multi-tape TMs
- Often its useful to have several tapes when
carrying out a computations. For example,
consider a two tape I/O TM for adding numbers (we
show only how it acts on a typical input)
28Multi Tape TMAddition Example
Input string
29Multi Tape TMAddition Example
30Multi Tape TMAddition Example
31Multi Tape TMAddition Example
32Multi Tape TMAddition Example
33Multi Tape TMAddition Example
34Multi Tape TMAddition Example
35Multi Tape TMAddition Example
36Multi Tape TMAddition Example
37Multi Tape TMAddition Example
38Multi Tape TMAddition Example
39Multi Tape TMAddition Example
40Multi Tape TMAddition Example
41Multi Tape TMAddition Example
42Multi Tape TMAddition Example
43Multi Tape TMAddition Example
44Multi Tape TMAddition Example
45Multi Tape TMAddition Example
46Multi Tape TMAddition Example
47Multi Tape TMAddition Example
48Multi Tape TMAddition Example
49Multi Tape TMAddition Example
50Multi Tape TMAddition Example
51Multi Tape TMAddition Example
52Multi Tape TMAddition Example
HALT!
Output string
53Multitape TMsFormal Notation
- NOTE Sipsers multitape machines cannot pause
on one of the tapes as above example. This isnt
a problem since pausing 1-tape machines can
simulate pausing k-tape machines, and non-pausing
1-tape machines can simulate 1-tape pausing
machines by adding dummy R-L moves for each
pause. - Formally, the d-function of a k-tape machine
54Multitape TMsConventions
- Input always put on the first tape
- If I/O machine, output also on first tape
- Can consider machines as string-vector
generators. E.g., a 4 tape machine could be
considered as outputting in (S)4