Content uploaded by Thomas E. Portegys

Author content

All content in this area was uploaded by Thomas E. Portegys on Sep 02, 2019

Content may be subject to copyright.

A Robust Game of Life

Thomas E. Portegys

Illinois State University

portegys@gmail.com

Janet Wiles

The University of Queensland

wiles@itee.uq.edu.au

Biological life is characterized by a robustness to noise often lacking in digital

models. Although noise in the form of mutations has an important evolutionary purpose, it is

also a threat that living systems are particularly adept at defending against. Artificial Life

systems are frequently state-machines of some sort, requiring robustness mechanisms aimed at

preserving and correcting state information. We explore a class of mechanisms based on

robustness in transition dynamics rather than robustness in the emergent patterns of complex

systems. We propose a Game of Life enhancement in which disrupting noise in the form of

random state changes is corrected using a “light cone” of spatial and temporal context

information. This enhancement does not change the original rules: a noiseless enhanced run is

identical to an unenhanced run. We believe this general scheme could be applicable to other

parallel computing systems in which contextual information determines state transitions.

1 Introduction – biological robustness and the challenge

for digital models

A characteristic feature of biological life is its robustness to many types of

perturbations. The genetic code precisely specifies a mapping between DNA and

proteins, yet inbuilt redundancy and error correction mechanisms make genomes

stable over millions of years. In contrast to biological systems, digital systems have

some areas of robustness, but they are frequently brittle with respect to many types of

damage, including random noise.

The process of creating a model of a biological system necessarily abstracts

and simplifies components. In the past, models have frequently omitted any stochastic

components in the search for other insights from natural computation. Many

properties of biological systems are emergent, and computational models are a

powerful method for studying how complexity emerges from simple processes. The

Game of Life is one such model for studying the emergence of dynamic propagating

patterns from simple local rules (Gardner 1970). Models of the emergence of different

forms of complex structures are now an established area of study of computational

modelling and insights are being integrated into systems biology.

A major challenge for computational modellers in general, and systems

biologists in particular, is how to model robustness in biological systems. Precise

definitions of robustness differ depending on the source of variation. The first step in

modeling the robustness of living systems lies in identifying which features a system

are most significant for robust dynamics and what kinds of abstractions provide

informative analogues. Models such as the Game of Life provided powerful analogies

for studying emergent dynamics, but the patterns of gliders, glider guns and other

structures are very brittle, in the sense that any non-zero probability of noise destroys

the intricate dynamics. A critical phase transition occurs in the Game of Life as the

fraction of cells that are updated changes from low to high synchrony (Blok and

Bergerson 1999) and has been shown to affect the number and length of limit cycles

in genetic regulatory networks (Harvey and Bossomaier 1997; Di Paolo 2001;

Hallinan and Wiles 2004). Random noise has some similarities to stochastic updating

in destroying structures that depend on synchronous transitions.

2 Dynamic vs. static forms of error correction

In this study, noise is implemented as randomly changing the value of every cell on a

grid with a small probability, p. To an extent the rules of Life provide for a certain

level of self-correction, for example, a cell becoming alive due to noise in a

neighbourhood of dead cells will immediately die. However, in general the game is

quite fragile to stochastic noise.

We wanted an approach that preserves the original rules so that in the

absense of noise, the system behaves exactly the same as the classic model. We

developed a discrete approach to robustness that uses information from the history of

a system to constrain the allowable dynamics. This approach is consistent with the

idea of adding robust mechanisms to the generators of a pattern, rather than to the

emergent patterns themselves.

Because the updating rules in the Game of Life are localised to a small

neighbourhood, there are a restricted set of allowable transitions in any region of the

grid. Consider a 3x3 grid in which the value of the central cell is unknown. If the

states of the 8 neighbours are known for the previous time step, then in many cases

the state of the central cell will be completely determined. In a 3x3 grid, there are 29

possible states. After the initial burn in, many of these states do not occur. If the

number of active neighbours was 0 or more than 3 at the previous time step, then the

central cell must be off. If the number of active neighbours was exactly 3, then the

central cell must be on. It is only the cases where the number of active neighbours was

1 or 2 that the value of the central cell is uncertain. Such conditions constitute

8C1+8C2=32 cases, or 6.25% of the 512 possible states.

3 Methodology

We enhanced the Game of Life by adding a “light cone” (to borrow a term from

astrophysics) of spatial and temporal context information to correct erroneous values.

This enhancement does not change the original rules: a noiseless enhanced run is

identical to an unenhanced run.

The error-correction scheme is based on propagating state information

across the grid. Chemical signals diffusing in a medium would be a plausible natural

analogy. Cells in the grid transmit their states to each other via signals sent at the

"speed of light" (one cell per step), limited by a maximum range. Noise

probabilistically causes signals to be misread by destination cells in proportion to the

distance traveled. A cell uses this cone of information to construct a set of state

histories for its locale. The most recent history, that of the previous step, is the

conventional 3x3 Life neighbourhood. The cone can then be used for error-correction.

A neighbour's state is compared against its neighbours' states during the previous step.

If they agree according to Game of Life rules, then the neighbour is considered to be

valid. If they disagree, then an error must have occurred either in the neighbour or its

neighbours. The checking then continues back in time. Once a cell's neighbourhood is

corrected, limited by the number of available histories, the next state can be

determined.

Figure 1. Glider and cone of correction. In the top row, the glider is shown in

successive steps crossing the grid. The last image shows an error occurring as the gray

cell. The cone for the central cell adjacent to the error is shown going back 3 steps in

time (bottom row). As can be seen, the gray cell contradicts the prediction of its

previous neighbourhood. But the cells in the neighbourhood agree with their

respective neighbourhoods going back 2 more steps in time. So it is likely that the

gray cell is an error.

A glider is a pattern that recurs, moving across the grid and repeating every

four stes. Corruption to any one of the active cells causes the pattern to disintegrate.

The cone provides a way of correcting such dynamic patterns (see Figure 1).

Defininitions:

Let a grain g be defined as a cell c in a cellular automaton at time t:

g = grain(c, t)

Also define cell, time and state functions to extract these quantities from a grain g:

c = cell(g), t = time(g), s = state(g)

A cone for a grain g is a pyramidal set of layers of grains, up to height h, each

successive layer containing increasing numbers of increasingly older contiguous

grains that are centered about g:

cone(g) = { layer0(g), layer1(g), ... layerh(g) }

where the top layer0(g) contains the 3x3 Moore neighbourhood of g, and successive

layers are grains that are neighbours of the previous layer:

layeri(g) =

k

j1

grain(Nj, time(g) – i)

where N is the set neighbour cells in the Moore neighbourhoods of the cells in the

previous layer:

N = neighbours(cells(Li-1(g)))

Thus the radius of each successive layer increases by 1.

Error-correction:

Assign the initial probability that a grain x in cone(g) has an erroneous value caused

by noise to be proportional to its spatial distance from g:

error(x) = max(dist(cell(g), cell(x)) * noise, 1)

where dist is a city-block distance, and noise is a unit of noise probability.

The probability that a set G of grains contains an error is:

error(G) = 1 -

k

j1

(1 – error(Gj))

Define the context(x) of grain x to be the set of grains in cone(g) containing x’s Moore

neighbourhood in the successive layer, i.e., at the previous time(x) – 1.

The recursive error-correction algorithm for x is:

correct(x):

if (x in deepest layer) return

for (each grain y in context(x))

do

correct(y)

enddo

if (state(x) = gol(context(x)))

then

error(x) = 1 – (error(x) * error(context(x)))

else

if (error(x) > error(context(x)))

then

state(x) = gol(context(x))

error(x) = error(context(x))

endif

endif

where gol computes a state from a given context neighbourhood according to the

Game of Life rules.

The rule checks the state of a grain against what its context (neighbourhood

in the previous time step) predicts that it should be. If they agree, then the reliability

of the grain is increased by virtue of the support it receives from the reliability of its

context. If they disagree, then the state can be corrected by its context only if the

context’s error probability is lower than that of the grain; otherwise, the context is

assumed to be in error and the state of the grain remains unchanged. Optimally, by

applying the rule from the deepest layer upward the reliability of the grains in the

upper portions of the cone will improve.

4 Results

The algorithm was coded in Java and a variety of comparison runs made on a 50x50

grid. Each run consisted of 50 trials of 50 steps. For each trial, 10% of the cells in the

grid were randomly made live. Two independent variables were selected: range,

defined as the maximum cell state signal propagation distance, and hence the cone

depth; and noise, a unit of signal distortion probability that multiplies with city-block

distance from the central cell. The dependent variable is the number of successful

trials compared to an identical noise-free trial. Figure 2 shows the results. A range of

1 represents the Game of Life with no error correction. It can be seen that even at a

noise setting of .00005, which translates to an average of only one misread neighbour

in the entire grid per time step, there is very little chance of a trial completing

successfully, testifying to the fragility of the game.

Increasing the range above 5 effectively corrects for noise settings of .00005

and .0001. However, at higher levels of noise, it appears that error correction cannot

be accomplished by increasing the range. This is likely because as a cone grows

larger, it encompasses more and more errors within it.

0

0.2

0.4

0.6

0.8

1

1.2

1 3 5 7 9

Range

Success Rate

Noise=.00005

Noise=.0001

Noise=.0005

Noise=.001

Figure 2. Error-correction performance

In the previous trials, cells noise applies only to cells reading the states of other cells;

a cell’s own state is read error-free. A situation in which noise also affects a cell’s

reading of its state can be modeled by adding an “internal distance” to the city-block

distance from the central cell in a cone. Thus even the central cell becomes subject to

noise errors. The graph in Figure 3 shows the results of an internal distance of 1. The

graph shows an expected diminishment of error-correction performance with the

additional noise.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1 3 5 7 9

Range

Success Rate

Noise=.00005

Noise=.0001

Noise=.005

Noise=.001

Figure 3. Error-correction performance with internal distance = 1

5 Discussion and Conclusions

The mechanism we propose for robust behaviour in the Game of Life is based on

error-correction of the allowable dynamic trajectories in the system rather than error-

correction on the emergent patterns themselves. This approach provides a new way of

thinking about the study of robust behaviour in complex systems. The Game of Life

has been used as a way of thinking about emergent complexity in biology as well as

other systems.

In conclusion, we have explored how one particular mechanism of

robustness may be studied in the Game of Life. The dynamics of the Game of Life

mean that only a subset of the possible patterns occur after the initial burn in. The

essential princple of dynamic systems are their dynamics, and in this paper we have

considered error correction based on the allowable transitions within a local

neighbourhood.

The Java code is available at:

www.itk.ilstu.edu/faculty/portegys/research/robustlife.zip

References

Blok, H. J. and B. Bergerson (1999). "Synchronous vs. asynchronous updating in the

Game of Life." Phys. Rev. E 59(3876).

Di Paolo, E. A. (2001). "Rhythmic and non-rhythmic attractors in asynchronous

random Boolean networks." Biosystems 59: 185-195.

Gardner, M. (1970). "Mathematical Games: The fantastic combinations of John

Conway's new solitaire game "life"." Scientific American 223: 120-123.

Hallinan, J. and J. Wiles (2004). Asynchronous Dynamics of an Artificial Genetic

Regulatory Network. ALife IX The 9th International Conference on

Artificial Life, Boston, Ma, MIT Press.

Harvey, I. and T. Bossomaier (1997). Time out of joint: Attractors in random

Boolean networks. Proceedings of the Fourth European Conference on

Artificial Life (ECAL97). MIT Press.