The multi-tape Turing machine is an extension of the standard Turing machine which adds finite ‘work tapes’, essentially increasing the size of the tape the Turing machine can use as ‘scratch paper’ to compute on. This does not affect the input tape. Multi-tape TM’s are, in fact, equivalent in power to their standard counterpart.
Definition
Multi-tape Turing Machine
A multi-tape Turing Machine with tapes ( ‘work tapes’), is defined as the 8-tuple:
- See Turing Machine definition for the meaning of the symbols
- Only the first tape has the input string. The remaining work tapes are filled with blank () symbols.
The key difference in a multi-tape TM is that the transition function, , takes in a state () and different input characters (one per tape), then transitions to another state () moving each tape left or right independently, optionally overwriting characters.
For example, take a 3-tape Turing Machine, having 2 work tapes would have a given by:
Theorems
T1: Turing recognisability is equivalent for multi-tape Turing machines
Let be a language. Then:
Proof
Since this proof is an equivalence we need to prove both sides.
Let’s start with the right side :
- being T-recognisable implies there exists a Turing machine, that recognises
- is technically a multi-tape Turing Machine ()
- Hence we have a multi-tape TM that recognises .
Now the left side is a bit harder:
- We need to convert our multi-tape TM to a single-tape TM.
- We can do this by a TM Simulation
- Let be a single-tape TM that simulates
- It combines all of ’s tapes into one tape, by using a symbol to allocate ‘blocks’ of tapes (such as a vertical divider | )
- Note: The only reason this works is that we can capture the infinite blank symbols of each work tape onto a single tape because the TM will always halt on accepting inputs. So there are only a finite number of symbols that are actually important for each work tape.
- It simulates the head of each tape by replacing a symbol with a dotted version of it.
- At every step it:
- Scans the entire tape to find all the head’s location (by dotted symbols)
- Scans again to overwrite the tape according to the of
- If the allocated blocks are too small, it ‘shifts’ them by copy-pasting each symbol to the right as needed. Note the similarities to memory reallocation for arrays
- accepts/rejects whenever it goes to the same or as