The Turing machine is used as a model for computation because of its simplicity. I'm curious whether it's a minimal model. Starting from the TM over the alphabet ${0, 1}$ (with a potentially unlimited amount of states), the one thing that strikes me as possibly overpowered is the possibility to jump from any state to any other. I wonder whether this could be weakened.
Let's define a restricted Turing machine (RTM) to be any Turing machine (TM) (also over ${0, 1}$) where all changes of state happen between adjacent states in a circular order -- i.e., states are given numbers $S_i$, $i = 0 .. (n - 1)$ (where $n$ is the total amount of states), and all state changes go from $S_i$ to $S_{i - 1}$ or $S_{i + 1}$ (mod $n$).
Is this limited programming system still Turing complete?
By Turing complete I mean precisely this: Give the TM and RTM two additional halting states, accepting and rejecting. These states aren't a part of the circular order, so any state may transition to them (i.e., there is no restriction compared to the regular TM). In addition, create an injective map $m$ between the initial tape states of the TMs and RTMs, in case there might be some kind of encoding needed. This encoding is shared by all RTMs.
For any TM $T$, is there a corresponding RTM $R$ that accepts and rejects the same set of tape states as $T$? I.e., if $R$ rejects a state $s$, $T$ rejects $m(s)$, same for accepting, and if $R$ doesn't halt on $s$, then we make no demands of $T$ on $m(s)$.
My attempts at answering this:
Initially, I thought it might be possible to simulate the full Turing machine by storing the desired destination state on the tape, but there doesn't seem to be any way to write it down.
In fact, neglecting the halting states and states moving to them, there are only 16 possible different states (2 binary choices for each of 0 and 1), so a single state cannot store arbitrarily much information and we would have to rely on some combination of them to specify the end state. This makes the problem nonlocal in a way I don't know how to handle. (The halting states don't add information in a helpful way, since entering them stops the machine and thus can only be done once.)
Another part of me says this system is probably too weak. But the global program behaviour depends on the order of states and the situation on the tape. It's somewhat reminiscent of cellular automata, which have local limited rules, but can still be Turing complete thanks to complex interactions between specifically designed board states.
I have no idea how to prove the system cannot do something.
Is there a simple reason one way or the other I'm overlooking?
Regarding an idea in the comments ("Important sub-problem: can a single RTM simulate a finite set of $n$ RTMs running in parallel?"):
- One would have to somehow encode all the states and all the tape positions of the $n$ RTMs. I don't know how to do this and maintain the state changes, the shifts on the tape, and the writing onto the tape.
- One obvious idea is to divide the tape into blocks of $n$ symbols and intertwine the tapes of the individual machines, but each tape can be at a different position, and I don't see how to remember the state when changing which RTM you're currently emulating.
- In fact, when people build more complex programming languages on top of the regular TM (e.g. here from slide 35), one helpful feature is the ability to add a $k$-state memory by duplicating all states into $k$ copies for different values of the memory. But this kind of thing is not possible for RTMs, which is why I don't know how to extend them.
- I had the related idea to ask whether one RTM over ${0, 1}$ could simulate an RTM over a larger alphabet, perhaps ${0, 1, 2}$ to start. That seems like a simpler version of the same problem, because one only needs to stay within a local area to compute one step. But this 3-state RTM has $(2 \cdot 3)^3 = 216$ possible states (again excluding halting ones and states moving to halting ones), so one would need at least $4$ more bits of information somewhere on the tape, or having at least $\frac{216}{16}$ times as many states and somehow encoding the actions by the state number. Both of those would require lining up the movements on the tape and through the state space...
- In fact, all of that makes me now consider the possibility that this system is not Turing-complete. I'll try to figure out whether there's a way to solve its halting problem.
The last two points are what I am currently trying to do.