The Turing Machine
The Turing Machine
One of Alan Turing’s many fundamental contributions to the foundations of computer science was his 1937 formulation of the Turing machine. A Turing machine is a general-purpose theoretical computer that provides a way to formalize and analyze computation. It consists of: 1) a line of cells known as a "tape" that can be moved back and forth; 2) an active element known as the "head" that possesses a property known as "state", and that can change the property known as "color" of the active cell underneath it; and 3) a set of instructions for modifying the active cell and subsequently moving the tape. At each step, the machine may modify the color of the active cell and change the state of the head. After this, it moves the tape one unit to the left or right.
Turing performed his foundational investigations of Turing machines using hand computation. With the benefit of modern electronic computers, a number of fascinating results concerning Turing machines have been investigated and established.
Exploring Turing machines is particularly straightforward in the Wolfram Language using the built-in TuringMachine function. To evaluate the examples below, simply click an input, hold and press the key.
A Simple Example
A Simple Example
First, consider a 2-state, 2-color Turing machine. Since there are two states and two colors, the number of possible rules (state/color transitions) needed to specify the machine's behavior is 4. Allow the state s of the head to be either 1 (visualized as the head pointing up) or 2 (head pointing down), and the color c under it to be 1 (indicated in yellow) or 2 (indicated in white). Further, denote a post-update tape movement to the left by -1, and a movement to the right by +1. The following set of four rules then defines a particular Turing machine (number 1222 in the Wolfram Language enumeration), whose action can be visualized as follows:
2
2
In[1]:=
RulePlot[TuringMachine[rules={{1,1}{1,1,-1},{1,0}{1,1,1},{2,1}{1,0,-1},{2,0}{2,1,-1}}]]
Out[1]=
Interpret the rules as {s, c} {s', c', Δ} , where s and s' are the original and changed states, c and c' are the original and changed colors and Δ is the direction in which the tape is moved. The first rule {1, 1} {1, 1, -1} says, "If the head is up and the color under it is yellow, keep the head up, mark the cell under it yellow and move the tape one step to the left." Similarly, the second rule says, "If the head is up and the color under it is white, keep the head up, mark the cell under it yellow and move the tape one step to the right."
We can now run this Turing machine with initial conditions {1, {{}, 0}}—meaning the head is in state 1 operating on a tape filled with all 0s—for some fixed number of steps, say 5:
In[2]:=
TuringMachine[rules,{1,{{},0}},5]//Column
Out[2]=
{{1,1,0},{0,0,0,0,0,0}} |
{{1,2,1},{1,0,0,0,0,0}} |
{{1,3,2},{1,1,0,0,0,0}} |
{{1,4,3},{1,1,1,0,0,0}} |
{{1,5,4},{1,1,1,1,0,0}} |
{{1,6,5},{1,1,1,1,1,0}} |
The result is a list of evolution steps of the form {{s, x, dx}, , where for each step, s indicates the state of the head, x is the head position, dx is the offset of the head from its initial position and gives the values written to the tape.
{,}}
a
1
a
2,…
{,}
a
1
a
2,…
The evolution can be easily visualized:
In[3]:=
RulePlot[TuringMachine[rules],{1,{{},0}},10,MeshTrue]
Out[3]=
As can be seen, the resulting computation performed after n steps is the coloring of n cells of the tape, which could be interpreted either as "counting" to n or, when the resulting strings of 1 are read as binary numbers from right to left, as encoding the Mersenne numbers -1:
n
2
In[4]:=
Map[Function[bits,FromDigits[Reverse[bits],2]],TuringMachine[rules,{1,{{},0}},10][[All,-1]]]
Out[4]=
{0,1,3,7,15,31,63,127,255,511,1023}
For a complete survey of results obtained for minimal Turing machines, see A New Kind of Science page 758 and Joosten et al.
Yedidia’s Turing Machine
Yedidia’s Turing Machine
Next, we examine a Turing machine due to Yedidia and Aaronson. This machine encodes the consistency of the Zermelo–Fraenkel axioms of set theory together with the axiom of choice (a combination known as ZFC), based on the ideas of Harvey Friedman. When run from a blank tape, it will halt only if ZFC is not consistent. Because such a halting would mean there was proof within ZFC of its own consistency, this machine cannot halt.
The rules of the Yedidia Turing machine are quite intricate. The following code contains the rules in a compressed form. After evaluation, they are uncompressed and activated. Evaluate the cell below to define the rules in the variable YedidiaAaronsonRules:
In[5]:=
Z0="1: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";YedidiaAaronsonRules=Flatten[MapIndexed[{{#,0}{#2,#3/.{"a"0,"b"1,"R"|"-"0},#4/.{"L"-1,"-"0,"R"1}},{#,1}{#5,#6/.{"a"0,"b"1,"R"|"-"1},#7/.{"L"-1,"-"0,"R"1}}}&[IntegerString[#2[[1]]-1,10,4],StringTake[#[[1]],4],StringTake[#[[1]],{5}],StringTake[#[[1]],{6}],StringTake[#[[2]],4],StringTake[#[[2]],{5}],StringTake[#[[2]],{6}]]&,Partition[StringPartition[Uncompress[Z0],6],2]]];
Now run the Turing machine starting with a blank tape and state "0000" for a given number of steps:
In[7]:=
steps=200;tm=TuringMachine[YedidiaAaronsonRules,{"0000",{{},0}},steps];
In[9]:=
Take[tm,10]//Column//Style[#,Small]&
Out[9]=
{{0000,1,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0001,2,1},{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0004,3,2},{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0005,4,3},{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0006,5,4},{1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0007,6,5},{1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0008,7,6},{1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0009,8,7},{1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0010,9,8},{1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
{{0011,10,9},{1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
... extract various components of the output for ease of display:
... and visualize the operation of the machine, where the state of the machine is shown in the left plot and the tape (with the head position indicated by the blue dot) is depicted on the right:
Universal Turing Machines
Universal Turing Machines
One of the most powerful ideas of Turing was his concept of the universal Turing machine, namely a Turing machine that, by appropriate programming using a finite length of input tape, can act as any Turing machine whatsoever. Universality means that any system that can be translated into another system known to be universal (be it a Turning machine, cellular automaton, cyclic tag system, etc.) must itself be universal.
Small universal Turing machines are of special interest, and the smallest currently known are the 14 essentially equivalent 2-state, 3-color machines identified by Stephen Wolfram as likely universal and subsequently proved as such by Alex Smith. One of these examples is illustrated below:
Stephen Wolfram's Principle of Computational Equivalence states that almost all processes that are not obviously simple can be viewed as computations of equivalent sophistication. One consequence of this principle is that Turing machines that are experimentally found to produce outputs with nontrivial (and presumably nonperiodic) structure from simple initial conditions are likely to be universal.