Variants of Turing Machines - 2/23/05
Variants of Turing Machines - 2/23/05
k tapes
input tape
: Q x k Q x k x {L,R}k
Standard Turing Machine (STM) Multitape Turing Machine (MTTM)
MTTM STM
input tape:
--
--
= { a, b, c }
--
--
= { a, b, c, --, a, b, c, --, # }
Steps to convert:
1. Place dots and extra tape squares separated by #
2. Let S be an STM:
a. S scans tape for all symbols at tape head positions
b. S makes a second pass to update the tape
3. If S moves onto a #, make this square blank and copy each subsequent square
over to the right one spot
MTTMs can now be used in place of STMs for homework and further proofs.
For a string to be accepted there must exist a computation path that leads the machine
into qaccept.
Standard Turing Machine (STM) Nondeterministic Turing Machines (NDTM)
NDTM STM
The NDTM can be simulated on a STM using a MTTM with 3 tapes.
a
input tape
simulation tape
address/ computation tree tape
Let k be the maximum number of possible transitions from any (state, alpha) pair.
Ex. If k = 3: { 1, 2, 3, 11, 12, 13, 21, 22, 23, 31, 32, 33, 111, 112, }
The numbers correspond to the branch of computation chosen. These numbers are
listed in lexicographical order. k is determined by looking at the description of the
NDTM.
Steps to convert:
1. Copy input onto the simulation tape
2. Initialize or increment the address counter
3. Simulate running the CDTM with the computation path on the simulation tape. If it
accepts, accept and halt. Otherwise, clear the simulation tape and go to step 1.
Enumerators
Starts by working on a blank tape.
Writes out strings on the tape to the printer in any order, possibly with repetitions.
The language that an enumerator describes is the set of distinct strings that that it prints
out.
Standard Turing Machine (STM) Enumerators (EN)
EN STM
Steps to convert:
1. Run the enumerator. Compare each outputted string to the string w.
2. If w ever appears in the output of the enumerator, accept.
STM EN
Steps to convert:
1. Repeat steps 2 and 3 for i = 1, 2, 3,
2. Run M for i steps on each input s1, s2, , si
3. If any computations accept, print out the corresponding s k