The transition function of a Non-Deterministic Turing Machine (NDTM) is mapped as follows
Similar to an NFA, an NDTM has multiple choices to change states. If there is some path that leads to , it leads to an accepting computation.
Computation Tree
The computation process of an NDTM can be visualized as a tree. Each node of the tree is a configuration. The subscripts denote the path to reach that node from the root. is the initial configuration.
Here is an example tree
Depth-First vs Breadth-First
A Depth-First search of the above tree can lead to an infinite search if a computation never halts on some branch.
However, a Breadth-First search will find an accepting computation at some finite depth. To carry out this search the tree needs an addressing mechanism.
Address
The transition function maps to a finite number of states. This number corresponds to the number of children at a given node. Let be the maximum value of given any and . In essence, is the maximum number of children for any node in the computation tree.
In the above example . Using this information, construct -bit addresses in non-decreasing order of length. This order emulates Breadth-First search.
Each address corresponds to a path in the computation tree (if it exists). For example
Multi-tape Deterministic Turing Machine
Here is the high-level description of an equivalent Multi-tape Deterministic TM for a NDTM.
The Turing Machine will have three tapes – input, work and address.
The input tape is populated with the input string.
On the address tape, enumerate the members of in non-decreasing order of length.
- Copy input tape to the work tape.
- On the work and address tapes, position the tape-heads at the left.
- Carry out the computation by emulating the contents on the address tape. This is basically a Breadth-First computation of the tree.
- If the machine enters , accept and halt.
- If the machine enters , increment the address and repeat from step 1.
- If the entire address is read (and the machine is not in , increment the address and repeat from step 1.