I'm trying to prove that for every multihead Turing machine X, there is a multihead Turing machine y such that for any input string z, we have volume(X, z) = Θ(Y(z)) and volume(Y,z) = Θ(Y(z)). In other words, the three values are all equal up to a constant. The volume is defined as the summation of all head movements during the computation. The tape is one-way infinite to the right.
So far, I have a representation that goes as the follow. Let Y have 3 areas for info. The areas do as follows:
- Simulates X
- Counts the current number of cells in use by X:
- Binary counter where the least significant bit is read first
- Initially every other symbol is a 1 i.e
| |1| |1| |....
- The * symbol will indicate where the head currently is
- For each move right in (1) a 1 gets written at the beginning
|1*|1| |1|...
, - For each move left in (1) a 0 gets written at the beginning
|0*|1| |1|
- If there is no shift in (1) after that step, don't do anything, continue to next transition
- Adding, subtracting, or no change, add the current amount to (3)
- Accumulation of volume (#heads used throughout X's computation):
- From the head's position in (2) add a 1 in the same position in (3)
- When the most significant bit in (2) is to be added (as like above), transition the head to (3), mark that position with a 1, transition back to (2), then add the 1 (namely, place the counter head in that spot as the 1 is already there)
At the end of (1)'s computation, (when the machine halts and all heads have dropped off the tape), the output of Y should be computed volume for X.
I am currently trying to figure out a relation between X, Y, and there runtime/volumes to prove my observation from above.