Multitape Turing machine

From HandWiki
(Redirected from Multi-tape Turing machine)

A multi-tape Turing machine is a variant of the Turing machine that utilizes several tapes. Each tape has its own head for reading and writing. Initially, the input appears on tape 1, and the others start out blank.[1]

This model intuitively seems much more powerful than the single-tape model, but any multi-tape machine—no matter how many tapes—can be simulated by a single-tape machine using only quadratically more computation time.[2] Thus, multi-tape machines cannot calculate any more functions than single-tape machines,[3] and none of the robust complexity classes (such as polynomial time) are affected by a change between single-tape and multi-tape machines.

Formal definition

[math]\displaystyle{ k }[/math]-tape Turing machine can be formally defined as a 7-tuple [math]\displaystyle{ M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle }[/math], following the notation of a Turing machine:

  • [math]\displaystyle{ \Gamma }[/math] is a finite, non-empty set of tape alphabet symbols;
  • [math]\displaystyle{ b \in \Gamma }[/math] is the blank symbol (the only symbol allowed to occur on the tape infinitely often at any step during the computation);
  • [math]\displaystyle{ \Sigma\subseteq\Gamma\setminus\{b\} }[/math] is the set of input symbols, that is, the set of symbols allowed to appear in the initial tape contents;
  • [math]\displaystyle{ Q }[/math] is a finite, non-empty set of states;
  • [math]\displaystyle{ q_0 \in Q }[/math] is the initial state;
  • [math]\displaystyle{ F \subseteq Q }[/math] is the set of final states or accepting states. The initial tape contents is said to be accepted by [math]\displaystyle{ M }[/math] if it eventually halts in a state from [math]\displaystyle{ F }[/math].
  • [math]\displaystyle{ \delta: (Q \setminus F) \times \Gamma^k \to Q \times \Gamma^k \times \{L,R\}^k }[/math] is a partial function called the transition function, where L is left shift, R is right shift.

A [math]\displaystyle{ k }[/math]-tape Turing machine [math]\displaystyle{ M }[/math] computes as follows. Initially, [math]\displaystyle{ M }[/math] receives its input [math]\displaystyle{ w=w_1w_2...w_n \in \Sigma^* }[/math] on the leftmost [math]\displaystyle{ n }[/math] positions of the first tape, the rest of the first tape as well as other tapes is blank (i.e., filled with blank symbols). All the heads start on the leftmost position of the tapes. Once [math]\displaystyle{ M }[/math] has started, the computation proceeds according to the rules described by the transition function. The computation continues until it enters the accept states, at which point it halts.

Two-stack Turing machine

Two-stack Turing machines have a read-only input and two storage tapes. If a head moves left on either tape a blank is printed on that tape, but one symbol from a "library" can be printed.

See also

References

  1. Sipser, Michael (2005). Introduction to the Theory of Computation. Thomson Course Technology. p. 148. ISBN 0-534-95097-3. 
  2. Papadimitriou, Christos (1994). Computational Complexity. Addison-Wesley. p. 53. ISBN 0-201-53082-1. https://archive.org/details/computationalcom00papa. 
  3. Martin, John (2010). Introduction to Languages and the Theory of Computation. McGraw Hill. pp. 243–246. ISBN 978-0071289429.