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.