COMS W3261 CS Theory Lecture 13: Turing Machine Variants

1. Programming Techniques for Turing Machines

• The following programmming techniques can be used to make the behavior of a TM clearer but none of these techniques adds any additional computational power to a basic TM.
• Storage in the state
• We can make a state a tuple with a fixed number of fixed-size components.
• Components of the tuple can hold a fixed amount of data to simplify the behavior of a TM program.
• Multiple tracks
• We can make each symbol of the input alphabet a tuple with a fixed number of fixed-size components.
• Components of the tuple can hold marks and other other information to indicate that an input tape square has been previously visited or has been given some fixed value.
• Sets of states as subroutines
• We can group states into "subroutines" where a subroutine has its own start state and another state which can serve as a "return" state.

2. Extensions of the Basic Turing Machine

• The following extended models of Turing machines can make programming a TM more convenient but none of these extended versions adds any additional computational power to a basic TM. These extended models can be simulated by a basic TM.
• Multitape Turing machines
• Nondeterministic Turing machines
• All these machines are equivalent to a basic Turing machine.

3. Restricted Machines Equivalent to Turing Machines

• The following restricted models of computation can simulate a Turing machine and so can recognize any recursively enumerable language.
• Turing machines with semi-infinite tapes
• Pushdown automata with two or more stacks
• Two-counter machines
• All of these machines can be simulated by a basic TM.

4. Other Models of Computation Equivalent to Turing Machines

• There are many other models of computation that are equivalent in computational power to a Turing machine. Here are a few:
• Chomsky type 0 grammars. A type 0 grammar is like a context-free grammar (V, T, P, S) except that productions can be of the form α → β where α is a string of nonterminals and terminals with at least one nonterminal and β is any string of nonterminals and nonterminals.
• The lambda calculus
• Two-counter machines
• Random access machines
• Turing-complete programming languages. (Programming languages for doing computation such as C and Python are Turing complete. Markup languages used to represent structured data such as HTML and JSON are not Turing complete.)
• Real computers with potentially an unlimited amount of memory

5. The Church-Turing Thesis

• A Turing machine computes a function from an input to an output by reading the input, making a sequence of moves, and then halting, leaving only the output of the function on the tape.
• A recursive function is one that can be computed by a Turing machine that halts on all inputs.
• A partial-recursive function is one that can be computed by a Turing machine that need not halt on all inputs. The output of the function on an input for which the Turing machine does not halt is said to be undefined.
• The Church-Turing thesis says that any general way to compute will allow us to compute only the partial-recursive functions. The Church-Turing thesis is unprovable because there is no precise definition for "any general way to compute."
• An informal way of expressing the Church-Turing thesis is that any function that can be effectively computed can be computed by a Turing machine.

6. Practice Problems

1. Describe at a high level how a deterministic multitape TM can simulate a one-tape nondeterministic TM.
2. Describe how a TM with a tape that is infinite only to the right can simulate a basic TM.
3. Describe how a PDA with two stacks can simulate a TM.