Co-evolving Demes of Non-uniform Cellular Automata for Synchronisation Vesselin K. Vassilev School of Computing Napier University 219 Colinton Road Edinburgh, EH14 1DJ, UK
[email protected]
Julian F. Miller School of Computing Napier University 219 Colinton Road Edinburgh, EH14 1DJ, UK
[email protected]
Abstract Emergent computation refers to systems in which global information processing appears as a result of the interactions among many components, each of which may be a system that exhibits an ability for emergent computation at a different level of self-organisation. In this paper, we employ a modification of cellular programming to evolve cellular machines for synchronisation. This allows global computation to occur by many local interactions among computational demes of interacting cells. The computational machine, derived from the non-uniform cellular automata model, consists of a grid of cells which are co-evolved in isolated demes. We describe experiments which show that demes can be co-evolved to perform non-trivial computation. We also analyse the mechanisms of computation within the different synchronising demes. Our results not only show that the co-evolution of demes is possible, but that they can attain high computational performance through co-operative action.
1. Introduction Non-uniform cellular automata (CAs) are discrete dynamical systems of simple locally connected interacting cells which may contain different transition rules [25, 26, 22, 20]. The cellular automata model is perhaps the simplest example of systems that are capable of emergent computation. The latter refers to systems in which global information processing appears as a result of the action of many interacting components [5, 3]. There exist many examples of CAs that are able to perform computational tasks that require global coordination, some of which have been designed by hand [6]. Recently, CAs have been evolved for which the goal has been to locate a single rule which when applied to all cells in the grid is able to perform a particular computational task [15, 4, 1, 9].
Terence C. Fogarty School of Computing Napier University 219 Colinton Road Edinburgh, EH14 1DJ, UK
[email protected]
However, computation requiring global coordination can be arduous for uniform CAs [10], even if they are designed by evolutionary techniques. It has been suggested that better computational performance can be attained by many CA rules or a non-uniform CA [19]. The evolvability of non-uniform CAs has been studied in [21] where a cellular programming algorithm has been employed to locate non-uniform CAs for different computational tasks. It appears that the evolution of non-uniformity leads to a quasiuniform CA with one dominant rule occupying most but not all of the cells [20]. This in turn, suggests that the computational power might be enhanced by allowing nonuniform CAs to co-evolve. Intuitively, the performance of such a computational machine might be increased, if the non-uniformity of the cells is higher. However, a number of questions arise. How can co-evolution to quasi-uniformity be prevented? How can non-uniform CAs be evolved with higher degree of heterogeneity? This paper presents work in progress. We employ a modification of cellular programming to evolve cellular machines, derived from the non-uniform CAs model, in which global computation occurs by local interactions among computational demes of interacting cells. The notion of a deme comes from biology where it refers to the formation of local subpopulations (demes) that are sufficiently isolated to permit differentiation in a population [27]. In evolutionary computation, the term pertains to various implementations of evolutionary algorithms in which several subpopulations are evolved in parallel [13]. We consider that emergent computation can appear in systems of interacting components, each of which can be a system that exhibits an ability for emergent computation at a different level of self-organisation. The paper describes some results of coevolving demes of non-uniform CAs for the synchronisation task. We show that this type of computation is possible and could lead to high computational performance. The paper is organised as follows. In sections 2 and 3 we introduce the cellular automata model, and describe the
synchronisation task. Section 4 defines the co-evolution of demes based on a modification of cellular programming. Section 5 analyses results of co-evolving computational demes of non-uniform CAs. Finally, we give conclusions and intentions for future work.
2. Cellular Automata A CA consists of an array of cells which accept a finite number of states, k , and a transition rule by which the states of the cells are changed synchronously in discrete time, t. We say that the cells interact locally since the state of each cell at the next time step is specified by the current states of the cell and its surrounding. The state of a cell together with the states of the surrounding cells is called a neighbourhood of the cell. The size of the neighbourhood refers to the number of inputs of the CA rule. Since we consider one-dimensional CAs, the size of each neighbourhood is 2r + 1 where r is the rule radius. Hence, the total number 2r+1 of one-dimensional CA rules is k k . We say that a CA is non-uniform, if its cells accept different transition rules. An illustration of a CA is given in Figure 1 [14]. The figure represents a one-dimensional uniform CA with k = 2 and rule radius 1. The grid is taken with spatially periodic boundary conditions, meaning that the grid is considered as a circle in which the leftmost and rightmost cells are immediate neighbours. The behaviour of the CA is illustrated by its space-time diagram in which the configuration of states in the grid is given as a function of time. The space-time diagram represents the evolution of a CA of 149 cells, starting from randomly generated initial configuration and iterated over 149 time steps with time increasing down the page. The diagram is depicted with white and black pixels which represent cells in states 0 and 1, respectively.
The synchronisation task was also studied by [20, 21] who employed cellular programming to co-evolve cellular machines, based on a non-uniform CAs model. The fitness value of each co-evolved non-uniform CA was the average of the fitness values of all cells calculated in the same manner as [4] with respect to each cell. The size of the search 2r+1 N space is (22 ) which for rule radius 3 and grid size 149 128 149 is (2 ) , much larger than that involved in the uniform case. Rule table: input bits: output bit:
000 001 010 011 100 101 110 111 0 1 1 1 0 1 1 0
Lattice: t=0
0 1 0 0 1 0 0 1 1 0 1 1 1 0 0
t=1
1 1 0 1 1 0 1 1 1 1 1 0 1 0 0
(a) 0
Time
148
0
Site
148
(b)
3. The Synchronisation Task The global synchronisation task is to locate a CA which performs a simple oscillation between 0's and 1's configurations of the lattice. The task is non-trivial for rule radius r N since the synchronous oscillation is a global property of the cellular array which must be attained by local interactions between neighbouring cells. The synchronisation task was introduced in [4]. They employed a genetic algorithm [8] to evolve a population of cellular automata rules for a uniform CA which can solve the task. The fitness value of each CA is the fraction of correct oscillations between 0's and 1's, attained after M = 149 iterations of randomly chosen initial configurations with densities of 1's that are uniformly distributed 2r+1 over (0) 2 [0:0; 1:0]. The size of the search space is 22 128 which for rule radius 3 is 2 .
Figure 1. An example of a one-dimensional CA in which the internal state of each cell depends on the previous states of the cell and its two nearest neighbours: (a) the rule table for updating the grid (top) and the grid configuration over one time step (bottom), and (b) the space-time diagram of the CA for grid of 149 cells. The grid is taken with spatially periodic boundary conditions. The white and black pixels in the space-time diagram represent cells in states 0 and 1, respectively. Figures 2 and 3 illustrate the evolution of two solvers of the synchronisation task, uniform [4] and non-uniform CAs, respectively, discovered by artificial evolution. The
0
0
Time
Time
148
0
Site
148
Figure 2. The synchronisation task: the space-time diagram of a uniform CA discovered by a genetic algorithm. The initial configuration is chosen randomly with density of 1’s (0) 0:51. The CA is one-dimensional with grid size 149, k = 2, and rule radius r = 3.
depicted plots reveal how the CAs converge to synchronous oscillations between 0's and 1's configurations for a certain number of time steps M = 149.
4. Co-evolving Demes for Computation In this section we show how it is possible to evolve parallel cellular machines with non-uniform CAs which are able to perform emergent computation at two different levels of self-organisation. In this method the global computation performed by a particular evolved non-uniform CA is attained by interactions among computational demes of cells where the computation of each deme arises from the interaction of all the cells belonging to the deme. This could be envisaged as a computational society of creatures grouped by their particular abilities of doing types of computation. Each group contributes to the global computation, however, the contribution of the group emerges by many local interactions among the creatures. Such a simple model is easily identifiable in many systems in nature capable of selforganisation [17]. A major impediment to the co-evolution of demes in a grid of cells stems from the difficulty of maintaining different clusters of automata rules in a population. This is a consequence of convergence which is inevitable in an adaptive population of interacting cells. We define an algorithm by which co-evolution in two different levels of selforganisation can be performed. The algorithm is a modification of cellular programming given by Sipper [19] and it
148
0
Site
148
Figure 3. The synchronisation task: the space-time diagram of a non-uniform CA discovered by cellular programming. The initial configuration is chosen randomly with density of 1’s (0) 0:51. The CA is onedimensional with grid size 149, k = 2, and rule radius r = 3.
is defined as follows: 1. Initialise the population of N cells at random with CA rules, uniformly distributed among different values (the percentage of all the entries in the rule table which map to non-zero states) [11], and set N demes, each of which has size 1 (a single cell). 2. Generate 2(N + 1) initial configurations at random with uniformly distributed density of 1's over the interval [0; 1]. 3. Run the CA N + 1 steps for each configuration and attach a fitness value to each cell by determining the number of correct states of the cell in the final configurations, then calculate the fitness value of each deme by averaging the fitness values of the deme's cells. 4. Label each cell with a fitness score that specifies the number of fitter neighbouring cells which are elements of the cell's deme. 5. Update the population. (a) Update the demes as follows: (1) if a deme of one cell is surrounded by fitter demes then the deme (cell) is invaded by the fittest deme; (2) if a deme of two or more cells has a fitter neighbour, then the border cell is invaded by the fitter neighbouring deme. The invaded cell is labelled with the highest possible fitness score.
(b) Update the cells as follows: if the fitness score of a cell is: 0, leave the rule unchanged; 1, replace the rule with the mutated fitter neighbour even if it is invaded by any neighbouring deme; 2 or higher, replace the rule by recombination of two fitter neighbouring rules even if they are invaded by neighbouring demes, followed by mutation. 6. If not finished, go to step 2. The algorithm is similar to cellular programming. The evolutionary process in the two levels of self-organisation is organised in a completely local manner. First, the interactions among the cells are local, since the rule of each cell can be replaced with a rule obtained by applying mutation or recombination to rules of neighbouring cells. The mutation is uniform with a certain probability of flipping a bit of the rule, and the operator for recombination is onepoint crossover. Second, the interactions among the demes are local, since each deme can see only its immediate neighbours, and the deme can invade only one cell per neighbour. We say that a deme invades a cell, when the deme expands over the cell. An important part of the algorithm that needs additional explanation is how to determine when a deme can invade cells of its neighbours. If a deme, which is fitter than its neighbours, is always able to expand over the grid then the population will converge very soon to only one deme, and the evolution in the deme's level will subside. To avoid the very fast expansion of the fitter demes over the grid, we employ a threshold function (t) = n(%t) in which % is a parameter, called deme's tolerance, and n(t) is the number of demes at evolutionary step t. So, a deme, d0 , will invade a cell of a neighbouring deme, d00 , if the deme's fitness value f (d0 ) is higher than f (d00 ) + (t). The mechanism allows us to maintain several isolated demes in a grid of strongly interacting cells, and thus, to attain a higher order of cellular computation. The co-evolutionary model, introduced above, differs from many parallel evolutionary algorithms defined mainly on the coarse-grained island or fine-grained cellular models [13, 12, 16, 7, 18, 20] in three aspects. Firstly, the evolution is performed in two different levels of self-organisation – evolution of demes, and evolution of cells within the demes, which in turn refers to the aforementioned island and cellular models, respectively. Secondly, the model deals with simple co-evolutionary mechanisms which lead to the appearance of interacting demes, each of which may differ from the other in size. The demes are implicitly defined, since they appear during the evolution by a simple unionisation of neighbouring cells. The formation, evolution, and extinction of demes lead to the evolution of unique cellular macrostructures with size strongly dependent upon the capabilities of the correspond-
ing cells to perform useful computation. Lastly, the algorithm maintains a population in which the communications between the demes are implicitly defined. At this point, our model strongly differ from the other coarse-grained parallel evolutionary algorithms in which the demes' interconnections are explicitly specified by a certain migration scheme. In our model, the demes communicate implicitly through the environment which is strongly dynamical, and the communications appear as a result of the endeavour of the demes to cooperate in order to perform useful computation.
5 Results We present results of co-evolving computational demes to a non-uniform CA that is able to perform the synchronisation task. The co-evolved non-uniform CAs are onedimensional with two possible cell states (0 and 1), and rule radius 2 (k = 2 and r = 2). The grid consists of 149 cells and it is taken with spatially periodic boundary conditions. Each example of synchronising CAs reported below has fitness value 1:0 which is the average fitness of all grid cells scaled in the interval [0; 1]. The mutation probability is 0:001, determined with respect to the quantity characteristics of the population as suggested in [23].
5.1. The Co-evolution of Computational Demes The evolutionary dynamics of the co-evolved demes for synchronisation did not differ significantly from those which were studied from co-evolved non-uniform CAs by cellular programming. The average fitness exhibited three phases of behaviour (low fitness, rapid fitness increase, high fitness) as reported in [2], where the third phase was characterised with epochs outlined by higher oscillations in the average fitness plot (see [23]). We also noticed that the first and the third phases in co-evolving demes were shorter, and often missing, which can be explained by the fast convergence of the population to a non-uniform CA with fitness 1:0. The “rapid fitness increase” phase is characterised by a fast extinction of computational demes which subsequently leads to a population of few demes where the number of demes is related to the tolerance parameter %. An example of co-evolving demes with tolerance % = 1:1 is given in Figure 4. The figure illustrates how the average fitness and the number of demes are changed during the co-evolution which subsides to 5 computational demes. It can be seen that initially (the first 10 evolutionary steps) the average fitness grows rapidly which is due to the fast extinction of computational demes. The reason for this is twofold. First, the tolerance among the demes is low since the number of demes is high. Second, the initial population comprises a high variety of cells, some of them extremely bad solvers of
is due to the two types of communication signals between the cells of the lattice, which are determined by the interactions between the cells within a deme, and the interactions performed by cells of different demes.
1
Average fitness
0.8
d2
0.6
0
d1
d2
0.4
0.2
0 0
10
20
30
40
50 Step
60
70
80
90
100
Time
(a) 150
120
Number of demes
148
0
Site
148
90
60
30
0 0
10
20
30
40
50 Step
60
70
80
90
100
(b) Figure 4. Co-evolving demes for synchronisation. Results of a typical evolutionary run with rule radius 2: (a) the average fitness of all grid cells, and (b) the number of computational demes.
the computational task. After this “wild” phase, the deme extinction is slower since the competition among the demes become much more dependent on the co-evolution of the cells within the demes. This is marked with a slow fitness increase, followed by a fitness jump (at step 38) which outlines the first co-evolutionary epoch. As we mentioned above, the epoch may never end since a CA with fitness 1:0 could be easily attained. For further details, we refer the reader to [24] where the process of “building” useful cellular computation is studied with respect to the average fitness of the population of co-evolving cells.
5.2. The Cellular Computation The non-uniform cellular computation attained by coevolving computational demes is extremely intriguing. This
Figure 5. Synchronising computational demes – computational strategy I. A spacetime diagram of the co-evolved non-uniform CA. The initial configuration is chosen randomly with density of 1’s (0) 0:503. The CA is one-dimensional with grid size 149 and k = 2, r = 2. We performed many experiments with different tolerance parameters in which various synchronising nonuniform CAs were discovered. The co-evolved nonuniform CAs consist of demes each of which is a quasiuniform CA. In our experiments, we observed two different computational strategies for achieving global synchronisation. The strategies are illustrated in Figures 5–10 which depict the space-time diagrams of two co-evolved non-uniform CAs (Figures 5 and 7–9) and their computational demes (Figures 6 and 10). In the first computational strategy the non-uniform CAs include some demes that are perfect solvers of the task while the remainder are only capable of propagating information signals to the nearest solver. An example of such a CA is shown in Figures 5 and 6. The CA consists of two demes attained by co-evolution in which the tolerance parameter, %, was set to 1:02. The figures reveal that the decisive computation is performed by deme d1 , which is capable of solving the task completely and independently. Its fitness value measured over 104 initial configurations with different densities of 1's is approximately 1:0. The computation implemented by deme d2 is different. It can be seen that d2 cannot perform the synchronisation task (Figure 6b), however, the deme is able to protect already attained synchronisation
0
0
0
Time
Time
Time
148
0
Site
(a)
110
148
0
Site
37
148
d1
0
d2
d3
Site
d4
d5
148
(b)
Figure 6. Synchronising computational demes: space-time diagrams of computational demes (a) d1 and (b) d2 of the non-uniform CA shown in Figure 5. The initial configurations are chosen randomly with densities of 1’s (a) (0) 0:505 and (b) (0) 0:5.
from disruption. In addition, it propagates the signals with respect to the information propagation in deme d1 . It appears that deme d2 is the perfect parasite which is helpless as well as harmless for the cellular computation performed by deme d1 . In the second computational strategy which emerged the non-uniform CAs are able to perform global synchronisation by cooperation of demes each of which unable to perform the task. Figures 7–10 depict the operation of one such co-evolved CA for three randomly chosen initial configurations with different densities of 1's, and its computational demes. The example is attained by co-evolving to 5 computational demes with tolerance parameter % = 1:1. It is shown that the demes perform completely different computations, and they cannot solve the synchronisation task individually. Of course, we found that some of them, such as demes d3 , d4 and d5 , are indeed solvers for initial configurations with very low densities of 1's, or low entropic initial configurations, which however was not observed for demes d1 and d2 . Despite the heterogeneity of the demes computation, a number of common features can be identified: firstly, all demes are able to protect attained synchronisation from disruption, and secondly, each deme propagates information signals to one of its neighbours. Consequently, we surmise that the decisive computation, after which a global synchronisation is expected to emerge, should arise from the inter-
Figure 7. Synchronising computational demes – computational strategy II. A spacetime diagram of the co-evolved non-uniform CA – initial density of 1’s (0) 0:034. The CA is one-dimensional with grid size 149 and k = 2, r = 2.
actions of two neighbouring demes. The space-time diagrams of the CA reveals that there are two crucial regions in the lattice where the cellular computation is expected to become simple oscillations between 0's and 1's. These are the cells around the border between demes d3 and d4 , and the ones around the border between demes d1 and d2 . It can be noticed that the interactions between demes d3 and d4 lead to the appearance of a synchronising area which grows since the demes propagate the information signals to d2 and d5 , respectively. The signals encounter each other between demes d1 and d2 where the cellular computation subsides to one of synchronisation. We found that d1 and d2 , taken together, solve the task almost perfectly in 300 iterations. The fitness value of this pair estimated over 104 configurations was approximately 0:98. The pair (d1 ; d2 ) solves the synchronisation task quite well, even if we expand the group over deme d3 . However, the group of demes d1 , d2 , d3 and d4 does not perform synchronisation. Thus, we found that the role of deme d5 is to pass the signals that come from d4 to deme d1 in an appropriate form. Like the first computational strategy, we have a pair of demes which is a solver whereas the remainder of the grid cannot perform the computational task. However, the role of demes d3 , d4 , and d5 , differs from that of deme d2 in the first strategy (Figures 5 and 6). We performed many iterations of the group (d1 ; d2 ) and the corresponding nonuniform CA with different randomly chosen initial configuration. Our observation showed that the CA (demes d1 , d2 ,
d1
0
d2
d3
d4
d5
Time
148
d1
0
d2
d3
d4
d5
Time
0
Site
148
Figure 8. Synchronising computational demes – computational strategy II. A spacetime diagram of the co-evolved non-uniform CA – initial density of 1’s (0) 0:503. The CA is one-dimensional with grid size 149 and k = 2, r = 2.
d3 , d4 , and d5 taken together) converges to oscillation much faster than the pair (d1 ; d2 ). It appears that the role of demes d3 , d4 and d5 is first, to ensure, and second, to accelerate the computation performed by the solver (d1 ; d2 ).
6. Conclusions and Future Work We have proposed a modification of cellular programming to co-evolve computational demes of non-uniform cellular automata for parallel cellular machines. The motivation has been threefold. Firstly, the desire to increase the computational power of the co-evolved cellular machines. Secondly, to study how the co-evolution in two or more levels of self-organisation can be implemented in a finite population of interacting cells. Lastly, to investigate the mechanisms of computation performed by interacting demes of cells in which the global computation appears as a result of many local interactions. Following our intuition that the performance of the co-evolved non-uniform CAs could be increased by coevolving a grid of cells with higher heterogeneity, we outlined a computational model in which the global information processing can appear in two different levels of selforganisation. In order to avoid premature convergence in the population to a single deme, we defined a tolerance parameter by which the activity of the demes were suppressed. Thus, we were able to co-evolve to non-uniform CAs of demes that perform the synchronisation task. Our results on the synchronisation task suggest that the co-evolution of
148
0
Site
148
Figure 9. Synchronising computational demes – computational strategy II. A spacetime diagram of the co-evolved non-uniform CA – initial density of 1’s (0) 0:966. The CA is one-dimensional with grid size 149 and k = 2, r = 2.
computational demes in a finite grid of cells is possible and can bring about a high computational performance. Studying the mechanisms of cellular computation, we identified two different computational strategies for achieving global synchronisation. An interesting issue in this direction will be to investigate the evolution of computational strategies for a particular non-trivial task, such as the synchronisation. How do the computational strategies emerge during the evolution? How are they related to the extinction of demes? We are also interested in the study of the relationship between the number of the co-evolved demes of cells, the size of the demes and the computational task. Another interesting direction for future work is to investigate the computational power of the model. We intend to test the success of the model for other computational tasks, such as the density classification task.
Acknowledgements The first author would like to thank Luis Miramontes Hercog (Napier University) for his helpful comments.
References [1] D. Andre, F. H. B. III, and J. R. Koza. Evolution of intricate long-distance communication signals in cellular automata using genetic programming. In C. Langton and T. Shimohara, editors, Artificial Life V: Proceedings of the 5th Inter-
0
Time
148 0 Site 12 0
Site
(a)
(b)
53
0 Site 18
0 Site 23
(c)
(d)
0
Site
38
(e)
Figure 10. Synchronising computational demes: space-time diagrams of computational demes (a) d1 , (b) d2 , (c) d3 , (d) d4 , and (e) d5 of the non-uniform CA shown in Figures 7, 8, and 9. The initial configurations are chosen randomly with densities of 1’s (a) (0) 0:538, (b) (0) 0:5, (c) (0) 0:526, (d) (0) 0:5, and (e) (0) 0:513.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
national Workshop on the Synthesis and Simulation of Living Systems, Cambridge, MA, 1996. MIT Press. M. Capcarrere, A. Tettamanzi, M. Tomassini, and M. Sipper. Studying parallel evolutionary algorithms: The cellular programming case. In A. E. Eiben, T. B¨ack, M. Schoenauer, and H.-P. Schwefel, editors, Parallel Problem Solving from Nature V, volume 1498 of Lecture Notes in Computer Science, pages 573–582, Berlin, 1998. Springer. J. P. Crutchfield and M. Mitchell. The evolution of emergent computation. Proceedings of the National Academy of Science U.S.A, 92:10742–10746, 1995. R. Das, J. P. Crutchfield, M. Mitchell, and J. E. Hanson. Evolving globally synchronised cellular automata. In L. J. Eshelman, editor, Proceedings of the 6th International Conference on Genetic Algorithms, pages 336–343, San Francisco, CA, 1995. Morgan Kaufmann. S. Forrest. Emergent computation: Self-organizing, collective, and cooperative phenomena in natural and artificial computing networks. Physica D, 42:1–11, 1990. P. Gacs, G. L. Kudryumov, and L. A. Levin. Onedimensional uniform arrays that wash out finite islands. Probl. Peredachi Inf., 14:92–98, 1978. M. Gorges-Schlenter. Explicit parallelism of genetic algorithms through population structures. In H.-P. Schwefel and R. M¨anner, editors, Parallel Problem Solving from Nature, volume 496 of Lecture Notes in Computer Science, pages 150–159, Berlin, 1992. Springer-Verlag. J. Holland. Adaptation in Natural and Artificial Systems. MIT Press, Cambridge, MA, 1992. second edition.
[9] H. Juill´e and J. B. Pollack. Coevolving the “ideal” trainer: Application to the discovery of cellular automata rules. In J. R. Koza, W. Banzhaf, K. Chellapilla, K. Deb, M. Dorigo, D. B. Fogel, M. H. Garzon, D. B. Goldberg, H. Iba, and R. L. Riolo, editors, Proceedings of the 3rd Annual Genetic Programming Conference, pages 519–527, Cambridge, MA, 1998. MIT Press. [10] M. Land and R. Belew. No perfect two-state cellular automata for density classification exists. Physical Review Letters, 74(25):5148–5150, 1995. [11] C. G. Langton. Computation at the edge of chaos: Phase transitions and emergent computation. Physica D, 42:12– 37, 1990. [12] B. Manderick and P. Spiessens. Fine-grained parallel genetic algorithms. In J. D. Schaffer, editor, Proceedings of the 3rd International Conference on Genetic Algorithms, pages 428–433, San Mateo, CA, 1989. Morgan Kaufmann. [13] W. N. Martin, J. Lienig, and J. P. Cohoon. Island (migration) models: Evolutionary algorithms based on punctuated equilibra. In T. B¨ack, D. B. Fogel, and Z. Michalewicz, editors, Handbook of Evolutionary Computation, chapter C6.3:1. Oxford University Press, New York, NY, 1997. [14] M. Mitchell. Computation in cellular automata: A selected review. In H. G. Schuster and T. Gramss, editors, Nonstandard Computation. VCH Verlagsgesellschaft, Weinheim, 1996. [15] M. Mitchell, J. P. Crutchfield, and P. T. Hraber. Evolving cellular automata to perform computations: Mechanisms and impediments. Physica D, 75:361–391, 1994. [16] H. M¨uhlenbein. Parallel genetic algorithms, population genetics and combinatorial optimisation. In J. D. Schaffer, editor, Proceedings of the 3rd International Conference on Genetic Algorithms, pages 416–421, San Mateo, CA, 1989. Morgan Kaufmann. [17] G. Nicolis and I. Prigogine. Self-Organization in Nonequilibrium Systems. Wiley Interscience, New York, NY, 1977. [18] R. Shonkwiler. Parallel genetic algorithms. In S. Forrest, editor, Proceedings of the 5th International Conference on Genetic Algorithms, pages 199–205, San Mateo, CA, 1993. Morgan Kaufmann. [19] M. Sipper. Co-evolving non-uniform cellular automata to perform computations. Physica D, 92:193–208, 1996. [20] M. Sipper. Evolution of Parallel Cellular Machines: The Cellular Programming Approach. Lecture Notes in Computer Science 1194. Springer-Verlag, Berlin, 1997. [21] M. Sipper. The evolution of parallel cellular machines: Toward evolware. BioSystems, 42:29–43, 1997. [22] T. Toffoli and N. Margolus. Cellular Automata Machines. MIT Press, Cambridge, MA, 1987. [23] V. Vassilev and T. Fogarty. Adaptation in co-evolving nonuniform cellular automata. In M. Sipper, D. Mange, and A. P´erez-Uribe, editors, Proceedings of the 2nd International Conference on Evolvable Systems: From Biology to Hardware, volume 1478 of Lecture Notes in Computer Science, pages 90–97, Heidelberg, 1998. Springer-Verlag. [24] V. K. Vassilev, J. F. Miller, and T. C. Fogarty. The evolution of computation in co-evolving demes of nonuniform cellular automata for global synchronisation. In
Proceedings of the 5th European Conference on Artificial Life, Berlin, 1999. Springer. To appear (available via http://www.dcs.napier.ac.uk/ vesselin/papers/ecal99.ps.gz). [25] J. von Neumann. Theory of Self-Reproducing Automata. University of Illinois, 1966. [26] S. Wolfram. Theory and Applications of Cellular Automata. World Scientific, 1986. [27] S. Wright. Stohastic processes in evolution. In J. Gurland, editor, Stohastic Models in Medicine and Biology, pages 199–241. University of Wisconsin Press, Madison, WI, 1964.