Simulating a Turing machine with a tableau
[cpsc/tm-tableau]
Simulating a Turing machine with a tableau [cpsc/tm-tableau]
Main idea: an algorithm can be converted to a Boolean circuit
…table…
M accepts w if and only if the tableau can be filled such that:
- The first row is the starting configuration of M on input w
- configuration follows from the configuration
- Eventually reach an accepting configuration
So how can this tableau be converted into a boolean formula? We’ll come up with some boolean variables to represent what is happening in the cells.
Let refer to the according tableau entry.
- Note: row i: time step, column j: head position,
- Our cell entries are not boolean values: but we still want to encode them as such!
- Create boolean variables where and
For a nondeterministic Turing machine:
- The same table as the deterministic Turing machine:
- only the configuration follows from the configuration using some nondeterministic choice
- : check if any cell is accepting
Window[i,j]: six cells of the table (six cells is convenient: 3x2, we need three to read the current, state, and next items)
- i.e. the window is size 3x2 because that’s exactly what we need to check that it is valid
note: pull examples, when there is no head the last two columns cannot change
… online lecture …