itle{turing universality of the game of...

13
AA Book P.Rendell Chapter Draft 3 03/11/01 Page 1 of 13 1 Turing Universality of the Game of Life This chapter describes a Turing machine built from patterns in the Conway's Game of Life cellular automaton. It describes the architecture of the construction, the structure of its parts and explains how the machine works. It also illustrates the principle choices made during the design [17] Background information about Turing machines, minimal universal Turing machines (those that simulate any other Turing machine) and non-erasing Turing machines can be found in [16, 20, 7, 15, 14, 18]. The importance of Turing machines is the existence of universal Turing machines. Thus a machine that can simulate any Turing machine can simulate a universal Turing machine. It has been proved that Turing machines can be simulated by many types of machine: cellular automata (as can see in this and other chapters of this book), random access machines [4], register machines [1] and others. In particular Minsk'y [1] describes a register machine which can simulate a Turing machine. The registers have the unusual property of being able to store positive numbers of any size. Remarkably, a long time ago Conway described [1] a method of constructing a register of this form in the Game of Life. This is discussed later in this chapter. 1.1 The Game of Life The Game of Life, invented by J.H. Conway [8,9] is essentially a cellular automaton, where an infinite universe is divided into cells. Each cell takes a state from a binary set and updates its state according to strict rules. All cells change their states simultaneously to create a time dimension measured in generations. For Conway's Game of Life the cells have two states, call them live and dead, and the rules are based on the number of the eight neighbouring cells, which are alive. If a cell is alive and has two or three live neighbours, then it will stay alive, otherwise it will die. If a cell is dead and has exactly three live neighbours it will change its state to live, i.e. be born. The author examined other cellular automata by making simple variations to the rules. The simplest variations are changes to the neighbour counts which cause a change in state. The authors objective was to keep the rules as simple as possible. Some sets of rules cause patterns to shrink quickly to clusters of stable or short period oscillating patterns and other sets of rules cause patterns to expand and fill the universe like a writhing fireball. The Game of Life rules seem to be close to the boundary between these. With the Game of Life rules, most simple patterns are stable, oscillate or will shrink quickly to stable or oscillating patterns. Some patterns last longer and some of these generate a common oscillating pattern that moves diagonally by one square every four generations. This pattern is called the glider. Configurations of a glider and dynamic of gliders collisions are discussed in Chapter XX of this book as well as forming the basis for the Turing machine simulation described in this chapter. Fig 1.1 Snapshots of Spaceships. The spaceships move upward. Time (Generations) goes rightwards. A family of three patterns, which move orthogonally by two cells in four generations was discovered by Conway. These are called the Light Weight Space Ship (LWSS) Medium Weight Space Ship (MWSS) and Heavy Weight Space Ship (HWSS). (Fig 1.1 )The term “space ship” is now the generic name for moving patterns. The pattern which really opened things up was the glider gun, found by Bill Gosper. This pattern generates gliders every 30 generations. Guns have now been found which produce gliders at most periods above 14 [13] there are now more than 700 basic patterns, which have been named and are described in Stephen Silver's Lexicon [19].

Upload: others

Post on 20-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 1 of 13

1 Turing Universality of the Game of Life This chapter describes a Turing machine built from patterns in the Conway's Game of Life cellular automaton. It describes the architecture of the construction, the structure of its parts and explains how the machine works. It also illustrates the principle choices made during the design [17]

Background information about Turing machines, minimal universal Turing machines (those that simulate any other Turing machine) and non-erasing Turing machines can be found in [16, 20, 7, 15, 14, 18]. The importance of Turing machines is the existence of universal Turing machines. Thus a machine that can simulate any Turing machine can simulate a universal Turing machine. It has been proved that Turing machines can be simulated by many types of machine: cellular automata (as can see in this and other chapters of this book), random access machines [4], register machines [1] and others.

In particular Minsk'y [1] describes a register machine which can simulate a Turing machine. The registers have the unusual property of being able to store positive numbers of any size. Remarkably, a long time ago Conway described [1] a method of constructing a register of this form in the Game of Life. This is discussed later in this chapter.

1.1 The Game of Life The Game of Life, invented by J.H. Conway [8,9] is essentially a cellular automaton, where an infinite universe is divided into cells. Each cell takes a state from a binary set and updates its state according to strict rules. All cells change their states simultaneously to create a time dimension measured in generations. For Conway's Game of Life the cells have two states, call them live and dead, and the rules are based on the number of the eight neighbouring cells, which are alive.

If a cell is alive and has two or three live neighbours, then it will stay alive, otherwise it will die. If a cell is dead and has exactly three live neighbours it will change its state to live, i.e. be born.

The author examined other cellular automata by making simple variations to the rules. The simplest variations are changes to the neighbour counts which cause a change in state. The authors objective was to keep the rules as simple as possible. Some sets of rules cause patterns to shrink quickly to clusters of stable or short period oscillating patterns and other sets of rules cause patterns to expand and fill the universe like a writhing fireball. The Game of Life rules seem to be close to the boundary between these.

With the Game of Life rules, most simple patterns are stable, oscillate or will shrink quickly to stable or oscillating patterns. Some patterns last longer and some of these generate a common oscillating pattern that moves diagonally by one square every four generations. This pattern is called the glider. Configurations of a glider and dynamic of gliders collisions are discussed in Chapter XX of this book as well as forming the basis for the Turing machine simulation described in this chapter.

Fig 1.1 Snapshots of Spaceships. The spaceships move upward. Time (Generations) goes rightwards.

A family of three patterns, which move orthogonally by two cells in four generations was discovered by Conway. These are called the Light Weight Space Ship (LWSS) Medium Weight Space Ship (MWSS) and Heavy Weight Space Ship (HWSS). (Fig 1.1 )The term “space ship” is now the generic name for moving patterns.

The pattern which really opened things up was the glider gun, found by Bill Gosper. This pattern generates gliders every 30 generations. Guns have now been found which produce gliders at most periods above 14 [13] there are now more than 700 basic patterns, which have been named and are described in Stephen Silver's Lexicon [19].

Page 2: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 2 of 13

1.2 Some Game of Life Patterns Many virtual artefacts and machines have been designed using the Game of Life patterns. Three examples are picked out here as they could all be useful in building a universal computing machine.

The first is an adder, which is shown in (Fig.~1.2), a remarkable device built by David Buckingham and Mark Niemec in the middle of eighties. The device implements binary addition of two glider streams and emits a resulting glider stream. The snapshot in figure ~1.2 shows the live cells in black. Yellow has been added to show the grouping of these cells into patterns such as period 60 glider guns. The green lines show the tracks of gliders. Numbers are coded by the presence or absence of a glider every 60 generations. The code is a binary representation with the lowest value bit sent first. By this means that numbers

of any size can be added.

The machine performs the addition in two stages as shown in the schematic (Fig. ~ 1.3). The first stage has two outputs. The addition of the two bits of the same value and any carry. The results from the first stage are passed to the second stage with the carry travelling a longer path so that it is added to the next partial sum bit. This calculation may generate another carry that is looped back inside the second stage to add to the next bit and so on and so on. The advantage of using two stages for the addition is that it guarantees that the two sources of carry never occur together, i.e. When the first stage creates a carry the first stage result is zero. The second stage only generates a carry when the first stage result is not zero.

Fig 1.2 A snapshot of an adder.

The first stage uses a neat tricks involving one glider deleting two other to provide the two outputs. The second stage uses: the kick back reaction, the reaction that converts two gliders to an eater and the reaction between a glider and an eater which results in glider. These are shown as snapshots above (Fig ~1.4). The

kickback reaction is the reaction between two gliders, whose paths meet at 90 degrees, resulting in a glider travelling the opposite direction to one of the input gliders.

Fig 1.3 Schematic of the adder.

The second life pattern with potential for use in a universal computing machine is the sliding block memory (Fig.~1.5) constructed by Dean Hickerson in 1990. This is a practical implementation of a concept described by Conway in [1] for building a universal computing machine based on the work of Minsky [16]. Minsky employed the concept of a counter register. A counter register has the novel property that it can store a positive number of any size. Minsky's proved that a universal computing machine could be build using counter registers of this form. The only operations that the registers need to support are increment, decrement and test for zero. This was achieved by Dean Hickersons

Fig 1.4 Snapshots of the adder second stage reactions. This shows a carry from the 1st state combining with a one from thepartial sum. Not all generations are shown.

Page 3: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 3 of 13

design shown in Figure 1.5. In this snapshot blue has been used as well as yellow to group patterns into clusters to show the period 120 gun designs more clearly. The design incorporates a number of period 120 guns to generate salvoes of gliders for moving the block and one for testing for zero. Since this pattern was built a smaller period 120 gun has been designed. The period 120 guns used here are built using various ingenious arrangements of two period 30 guns with a glider shuttling to and fro by using the kickback reaction. The sliding block memory uses a salvo of two gliders to decrement the counter by moving it diagonally one space closer. Three gliders are used to increment it by pushing it further away. An additional glider is sent across the pattern during the decrement. This is deleted by the decrement operation when the block is decremented to zero.

The pattern in Fig 1.5 generates 4 gliders each 120 generations but these are blocked by two blocking controls. If one of these is missing one of the 4 gliders is deleted and the other three perform the increment. If the other blocking glider is missing the two of the four gliders are deleted and the remaining two gliders perform the decrement.

This pattern is a demonstration pattern and has the increment run from a long period clock generated by a kickback reaction and the decrement run from the zero not detected output.

Fig 1.5 A snapshot of a sliding block memory.

Fig 1.6 A sketch of the sliding block memory

The third life pattern with potential for use in a universal computing machine is a memory cell (Fig ~ 1.7). This was build by the author in the early 1980's and published in 1999. The version shown here was published in 2000. The cell is designed to be built into a matrix pattern of similar cells. The contents of the cell are output following the collision of an MWSS going across the top of the cell and an LWSS coming up the side. The pattern resulting from this collision interacts with a pentadecathlon (shown in Fig ~ 1.15). This produces a glider which then which opens an 8-glider hole in the gate to the cell. The gate itself is the glider gun across the top firing down to the right

and blocking the output of the cell. Fig 1.7 Memory cell.

Fig 1.8 Snapshots of the Fan-Out. Not all generations are shown

The heart of the cell is the fan-out pattern in the centre snapshots of which are shown in figure ~ 1.8. This pattern uses two queen bee shuttles to reflect glider streams. They are arranged back to back so that the queen bee reflecting the glider from the left stabilises the one reflecting the input signal coming from the right. In the process the input signal is duplicated. For the memory cell three buckaroos are used to loop one output back to the input so that the pattern in the loop repeats forever.

A buckaroo is a queen bee shuttle stabilised at one end by an eater so that it can interact with a glider and produce another glider on a course at right angles from the original.

Page 4: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 4 of 13

Fig 1.9 A snapshot of the pattern of a Turing machine in the Game of Life.

1.3 Construction of the Turing Machine The patterns described in section 1.2 can be used as the basis of a universal computing machine along the lines described by Conway [1]. The memory cell can be built into a memory unit containing many cells. The adder provides the ability to increment the address to fetch the next instruction from the memory unit and the sliding block memory is a counter register capable of storing a value of any size.

Fig 1.10 Schematic of the Turing Machine Pattern

The decision to build a Turing machine pattern before building a Register Machine pattern was taken on the grounds that the operation of a Turing machine is more visible and that Turing machines are more widely known. The Turing machine pattern is shown in figure 1.9. This shows the pattern before the machine has run.

Figure1.10 shows a diagram of the Turing machine. The finite state machine contains the memory unit built up of the memory cells described in section 1.2. In each cycle of the Turing machine the finite state machine sends its output to the signal detector and the stacks.

Page 5: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 5 of 13

The signal detector separates the next state part of the output and sends this through a delay loop back to the finite state machine where it will form part of the address in the next cycle. It also sends a “Signal Present” glider to the stack control logic of both stacks.

The stacks act as the Turing tape. Each cycle one stack performs a pop operation and the other performs a push operation. In this way one symbol is popped from the stacks into the machine and another is pushed from the machine onto the stack as if the Tape was moving past the machine.

The stack control logic is triggered by the “Signal Present” glider to use the output of the finite state machine to determine when to perform a pop and when to perform a push and also the symbol which is to be pushed. The output of the pop operation is send through to the finite state machine to form the other part of the address for the next cycle.

1.4 The Finite State Machine The finite state machine (fig ~ 1.11) consists of the memory unit built up of an array of the memory cells described in section 1.2. It has two inputs. One from the signal detector which represent the next state and is used to select a row. The other input is from one of the stacks which is the symbol read and is used to select a column. The pattern at the foot of the selected column generates an LWSS and the pattern at the end of the selected row generates an MWSS. these then go through the matrix and hit each other by the selected cell.

The output of the selected cell is collected by a fleet of eight LWSSes send along the selected row which in turn is picked up by another fleet of eight LWSSes sent up after the final column.

1.4.1 Selection of a row A period 30 MWSS spaceship gun is used to feed the row address to the end of each row. This gun was designed by Dieter Leithner, with contributions from a number of people.

The selection of a row is shown in the Fig.~1.12. The gliders from the glider gun to the left are destroyed by the MWSS of the address stream but survive if an MWSS is missing. The resulting pattern is compared with the contents of the memory cell at the top. The comparison is made by a head on collision. The results of the collision are sensed by the output of another glider gun: the gliders of the gun are destroyed by a mismatch. When not destroyed the gliders form the rest leg of a set reset latch in the centre of the pattern ( see 1.4.3). The set leg is the inverted

output of a period 240 glider gun (fig ~ 1.13). The output of the latch is sensed at the end of the address cycle by another period 240 gun on the right. If the glider from the gun is not destroyed by the output of the latch it triggers the pattern at the bottom to generate an MWSS.

Fig 1.11 Schematic of the Finite State Machine

Fig 1.12 Row selection.

Fig 1.13 Period 240 gun from Dieter & Peter's gun collection [13].

Page 6: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 6 of 13

1.4.2 Selection of a column The pattern to select a column (fig ~ 1.14) is very similar to the pattern to select a row (fig ~ 1.12). The difference is that the final MWSS generator used for row selection is replaced by a LWSS generator.

1.4.3 A Set Reset Latch The latch design used in row and column selection exploits the two collision modes of two period 30 glider streams meeting at 90o and out of phase. Gaps in one stream switch the mode so that the head of its gliders interact with the tails of the other streams gliders. Gaps in the other glider streams switch the mode back. In this version both modes are stabilised with a pentadecathlon (a period 15 oscillator). One mode produces the output gliders. Figure 1.15 shows some snapshots of the latch.

1.4.4 Collecting Data from the Memory Cell

Fig 1.15 Snapshots of a set reset latch using pentadecathlons. The upper row shows the reset mode. The lower row shows the set mode

Fig 1.14 Column selection.

A snapshot of the pattern used to collect the output form the selected memory cell is shown in Fig1.16. There the MWSS, generated by the row address comparitor, is detected and used to make an eight-glider hole in the glider stream blocking the output of a period 30 LWSS gun. This releases eight LWSSes which collect the data from the selected memory cell somewhere down the row.

Figure 1.17 shows the variation of this design used to pick up the remaining LWSSes at the end of the selected row and transfer the data to the stack. The structure is triggered directly from the MWSS of the column address and the period 240 gun is used to detect the “address present” label which is added to the row and column numbers so that value zero can be used.

Fig 1.17 Column data collector

Fig 1.16 Row data collector

Page 7: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 7 of 13

1.5 The Tape The tape is built from two stacks so that to move the tape past the read/write head requires one stack to perform a pop and the other to perform a push. With this arrangement there is no representation for the piece of tape with the current symbol on it. The cellular-automaton construction replaces this symbol by pushing its representation onto one of the stacks at the start of the cycle.

A sketch of the stack is shown in Fig.~ 1.18.The design chosen is to use the kickback reaction to trap the gliders, representing the symbol between two opposite glider streams. To delay symbol gliders during the push operation an arrangement of pentadecathlons is used to create a convoluted path to the next cell. A similar arrangement is used for the pop path to maintain the alignment.

Figure.~1.19 shows an example of two cells linked by the delay mechanism. The figure shows the patterns during their development. The logic to duplicate the streams of gliders keeping the symbols in one cell is not complete and has not been applied to the outer walls. The upper cell in the Figure

~ 1.19 is about to let its symbol out through a gap four gliders wide. The hole to let the first glider into the bottom cell can be seen on control signal on the left.

Fig 1.18 Schematic of the stack cell

The logic to control the transfer of information on and off each stack (pushing and popping) is shown schematically in figure ~ 1.20. The first stage is labelled “control conversion”, a slightly different version is used for each stack so that one does a push when the other does

a pop. Figure 1.21 shows a snapshot of top stack version which includes the logic for the “left control” of figure ~ 1.20. The output from the finite state machine comes up from the middle right of figure ~ 1.21 where is hits a glider gun which inverts the signal. A period 240 gun samples this inverted signal passing through only if the finite state machine

Fig ~ 1.19 Example Stack Cell pattern

Page 8: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 8 of 13

output had a glider present in the position indicating a push operation for this stack. If the sampling glider goes through it becomes the input of a fan-out. One output of the fan-out becomes the push control for the stack and the other deletes the “Signal Present” glider. If the operation is a push then the “Signal Present” glider is not deleted and initiates the pop operation.

Figure~1.22 shows the “control conversion” version for the bottom stack. This layout is a little different from the previous ones so that the “Signal Present” glider going down from the left becomes the push control. From this point on the two stacks are Fig ~ 1.21 Top left Stack Control

Fig ~ 1.20 Schematic of Stack control

Page 9: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 9 of 13

symmetrical except for a slight difference in the layout of the path the data takes to reach the in gate that allows the symbol through onto the stack.

Figure ~ 1.21 shows the creation of the control signals for the left hand side of the top stack. Holes in the control signals that pass up the left hand side of the top stack create openings in the stack cells walls for the symbols to leave during a pop and enter during a push. The pop control goes through a fan-out so that one copy goes to the right hand stack control ( fig ~ 23)

and the other copy makes a four glider hole in the left stack control.

The push operation needs three copies as can be seen from figure 1.20. One goes to the right stack control (Fig .~ 1.23), one goes to the gate which allows data onto the stack (Fig .~ 1.25), and the other goes to the

pattern in the lower centre part of figure 1.21 which makes the three holes required for the symbol gliders to enter the stack cell.

This three hole punch pattern is actually a bit bigger than could be made with two fan-outs but its visual impact makes up for that. It is made from three period 120 guns (an example of period 120 gun is shown in Fig 1.24) synchronised so that each puts one hole in the stack control but the outputs of all three are blocked by another glider stream. The pop control makes a three glider hole in this to let them through.

Figure ~ 1.23 shows the

Fig 1.25 Stack symbol input gate

Fig 1.24 Period 120 gun from Dieter & Peter's gun collection [13].

Fig 1.23 Right stack control.

Fig 1.22 Bottom stack control conversion

Page 10: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 10 of 13

right stack control which is very similar. The push control glider makes a four-glider hole in the control signal to let the symbol gliders out of the stack cells and the pop control glider activates a version of the three hole punch pattern for making the entry holes.

Fig 1.26 Stack output

The gate which allows the symbol onto the stack (Fig ~ 1.25) is fead the symbol gliders in every cycle. This comes through a bit of a delay loop shown at the bottom right. A glider from the stack control logic arrives during a push operation and makes a three-glider hole in a blocking glider stream to allow the symbol gliders through only in the pop cycle. These gliders make a hole in another blocking glider stream. This time the stream is blocking the output a three period120 guns which are aligned and synchronised to inject the symbol gliders into the stack. The normal stack controls will have ensured that the stack cell wall has holes to allow the symbol gliders in.

A bit of a trick is used to get the symbol gliders out of the stack during a pop operation. Figure ~ 1.26 shows the pattern. A period 120 gun at the bottom right is normally blocked by the stack cell wall. This has two functions. Firstly the hole it makes together with the holes made by any symbol gliders create a four-glider pattern which is ideal for the addressing the finite state machine. This extra hole has becomes the “address present” label. Secondly during a pop operation the four holes which are required to let the three gliders out also let the period 120 gun output through. It then passes in front of the stack where is makes a hole four-gliders wide in a blocking glider stream. The pattern of gliders let through is the stack output.

The gliders in the stack cell are destroyed by three copies of a period 8 oscillating pattern known as a blocker This pattern is also used for the period 120 gun and can be seen in figure 1.24. The pattern shown in figure ~ 1.20 is a period 60 gun with the blocker placed to delete half of these.

The outputs of both stacks are combined through a simple inverting OR reaction and feed back to the finite state machine to form part of the address.

1.6 Coupling the Finite State Machine with the Stacks Connecting the finite state machine and the stacks is quite a challenge. The data coming from the finite state machine must be split to feed the stacks and the next state. The next state must be returned to the finite state machine at the time that a symbol is popped from one of the stacks. The finite state machine is triggered to generate an output by receiving addresses that match the row and column addresses. These address values must be synchronised to the 240 generation cycle time of the memory cells that hold the addresses in the competitors and arranged so that a zero value is not used as an address. A similar solution was adopted for triggering operation of the stacks. This meant building a signal detector which could detect a non zero value in any 240 generation frame. The result is shown in figure ~ 1.27.

A set reset latch is at the core of the detector. The latch is similar to that shown in the Fig.~1.14 and 1.15. However it uses its own output to reset itself after 240 generations. In order to get the delay that short a new design was required. The design uses a queen bee shuttle reflecting gliders in the same way as the fan out (fig 1.8). One mode of the latch prevents the queen bee from reflecting a glider while the other mode does not. The negative feedback loop which resets the latch also containing a fan-out. Again to make thing fit the

Fig 1.27 Signal Detector

Page 11: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 11 of 13

inverting reaction had to be stabilised with a pentadecathlon. The other leg of the fun-out blocks the output of a period 240 gun. If the latch detects any glider in a 240 period then the output of this gun is not blocked and becomes the “signal present” glider.

Figure~ 1.28 shows the next stage of the coupling. The original data from the finite state machine and the output of the signal detector are passed to each stack with another copy of the data starting a long loop back to the finite state machine. This last is

modified at the bottom of the pattern by using the signal detector output to create the address present

mark for the finite state machine row

address.

Part of the way through the loop, the pattern in Fig.~ 1.29 tidies up the next state address by deleting three gliders. This is done using a period 240 gun to create a hole three-gliders wide, inverting the result and deleting the three leading gliders in each frame. This leave the “address present” label followed by the next state. The other outputs from the part shown in Fig.~ 1.28 go to each stack. Both stacks get a “Signal Present” glider and the data from the memory cell. These are inputs to figures 1.21 and 1.22.

This completes the description of the architecture of the Turimg machine pattern. The pattern itself is configured with data in the finite state machine to represent a specific Turing Machine and the stack is set up with initial data for this machine to process.

1.7 The Machine in the pattern A very simple Turing machine was chosen for the example. The program is shown in figure ~ 1.30. It duplicates a pattern of 1's. The arrows show the transitions between states with the symbol which initiates the transition at the tail of the arrow and the symbol to write and direction of movement of the reading head in the middle of the arrow. For example, if the machine is in the state 0 and reads 1 it will take the state 1, write 2 to the tape and move its reading head to the right.

Started with two 1's on the tape to the right of the current read head position it takes the machine 16 cycles to stop with four 1's on the tape.

In the example pattern a starting transition is triggered by period 240 glider gun placed behind a blocking glider stream. This is synchronised so that when the blocking glider is deleted it inserts the instruction in the path taken by gliders from the stack. A snapshot of simulation is shown in Fig.~ 1.9.

Fig 1.28 Signal Distributor

Fig 1.29 Next State Delay

Fig 1.30 Example Turing Machine

1.9 Extending the pattern to make a Universal Turing Machine A Universal Turing Machine will need a larger finite state machine than the simple example presented here. The architecture of the pattern shown here is limited to a machine with 16 states and 8 symbols. This limitation is built into the way the contents of the memory cells are interpreted. The memory cells shown in figure ~ 1.7 holds 8 bits of data. These are interpreted as 4 bit for the next state, 3 bit for the symbol to write and 1 bit for the direction of movement. In addition a value of zero halts the machine.

Page 12: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 12 of 13

Minsky showed that a Universal Turing Machine can be built with just 7 states and 4 symbols [16]. So the basic architecture is not a constraint. Adding rows and columns to the finite state machine pattern described here is quite straightforward. The only difficulty is that the cycle time of the machine must be modified in multiples of 240 generations. However there are plenty of techniques for making timing adjustments so this is easy to overcome.

One limitation of the pattern described here is that the machine has to be provided with sufficient blank tape to perform its calculation. This is a requirement of all Turing machines. It can be argued that Conway's Game Life has a theoretical unlimited empty universe at its disposal and that a design that could make use of this would be an improvement. The author is currently working on a pattern that will move through the empty universe, building blank stack cells as it goes, to extend the stack faster than the machine can use it. Constructing a reasonable dense dynamic pattern using collisions is presenting a very different set of problems to those overcome in building the Turing Machine pattern presented here.

1.10 Conclusion The Turing machine pattern in the Game of Life cellular automaton presented here has been built. It can be found on the WEB [ 17] downloaded and run. It is a simple matter to modify the initial data on the stack to show that it performs the correct operation of a finite state machine with different data. In fact it halts with the tape showing the result in the same format as an input tape so it can be started again with no change to the stack contents.

The changes needed to extending the pattern to build an example Universal Turing Machine pattern are explained in section 1.9. These present no technical difficulty. The task of populating such a pattern with the correct data so that it acts as a Universal Turing Machine with an input tape programmed with a specific machine description plus its data is another matter, well outside the scope of the work undertaken here.

Acknowledgement The author is indebted to many people who developed the Life patterns used in the constructions presented here and also to those who made them available to the author. The patterns illustrating this chapter can be downloaded from the authors web site [17]. Several freeware programs are available to run these patterns. The author used Life32 by Johan Bontes [2] for much of the development of these patterns. The pictures themselves were generated by the MCELL [22] written by M. Wojtowicz. Many of the patterns are animated on the authors web site [17] by a Java applet written by Paul Callahan [3].

References 1 Berlekamp E.R., Conway J.H. and Guy R. Winning Ways for Your Mathematical Plays, vol 2 (Academic

Press, 1982).

2 Bontes J. Life32 PC Program for Conway's Game Life, http://psoup.math.wisc.edu/Life32.html

3 Callahan P. Java Applet was written by Paul Callahan. http://www.radicaleye.com/lifepage

4 Cook S. and Reckhow K.R. Time bounded random access machines J. Comput. System Sci. 7 (1973) 354--375.

5 Cook S.A. Characterizations of pushdown machines in terms of time-bounded computers J. Ass. Comput. Mach. 18 (1971) 14--18.

6 Hopcroft J.E. and Ullman J.D. Introduction to Automata Theory, Languages and Computation (Addison-Wesley, 1979).

7 Hopcroft J.E. Turing machines Scientific American 250 (1984) 86--98.

8 Gardner M. Mathematical Games articles in Scientific American: On Cellular automata, self-reproduction, and the game “life” (February, 1971) The fantastic combinations of John Conway's new solitaire game “life” (October, 1970).

9 Gardner M. Wheels, Life and Other Mathematical Amusements (Freeman, 1983).

10 Ginsburg S., Greibach S.A. and Harrison M. A. One-way stack automata J. Assoc. Comput. Mach. 14 (1967) 389--418.

11 Gruska J. Computational Complexity (XXXX, 19XX).

12 Korec I. Small universal register machines Theor. Comput. Sci. 168 (1996) 267-301.

Page 13: itle{Turing Universality of the Game of Life}users.salleurl.edu/~gpazienza/seminarios/profundizar/cnn_polinomial/Rendell_01-GoL_and...AA Book P.Rendell Chapter Draft 3 03/11/01 Page

AA Book P.Rendell Chapter Draft 3 03/11/01 Page 13 of 13

13 Leithner D. and Rott P. Dieter and Peter's Gun Collection http://www.mindspring.com/\%7Ealanh/guns.zip and http://www.mindspring.com/\%7Ealanh/guns2.zip

14 Margenstern M. Nonerasing Turing machines: A frontier between a decidable halting problem and universality Theoret. Comput. Sci. 129 (1994) 419--424.

15 Margenstern M. On quasi-unilateral universal Turing machines Theor. Comput. Sci. 257 (2001) 153--166.

16 Minsky M.L. Computation: Finite and Infinite Machines (Prentice-Hall, 1967).

17 Rendell P. Conway's Game Life Turing Machine www.rendell.uk.co/gol

18 Rogozhin Y. Small universal Turing machines Theor. Comput. Sci. 168 (1996) 215--240.

19 Silver S. Stephen Silver's Life Lexicon http://www.argentum.freeserve.co.uk/lex_home.htm

20 Turing A.M. On computable numbers, with applications to the entscheidungsproblem Proc. London Math. Soc. 42 (1937 230--265.

21 Wojna A. Counter machines Information Processing Lett. 71 (1999) 193--197.

22 Wojtowicz M. Mirek's Cellebration (MCELL) http://www.mirwoj.opus.chelm.pl

End of Chapter