You are on page 1of 17

Frequently Asked Questions About Cellular Automata Contributions from the CA community edited by Howard Gutowitz ESPCI 10 rue

Vauquelin 75005 Paris, France December 8, 1993 Abstract This FAQ (Frequently Asked Questions) list is updated regularly. Please send corrections, additions, and comments to <hag@santafe.edu>

1 What are Cellular Automata (CA)? Here is one physicist's view of the relevant definitions: A cellular automaton is a discrete dynamical system. Space, time, and the states of the system are discrete. Each point in a regular spatial lattice, called a cell, can have any one of a finite number of states. The states of the cells in the lattice are updated according to a local rule. That is, the state of a cell at a given time depends only on its own state one time step previously, and the states of its nearby neighbors at the previous time step. All cells on the lattice are updated synchronously. Thus the state of the entire lattice advances in discrete time steps. Here is one mathematician's view of the relevant definitions: Conventions d=dimension, k=states per site, r=radius (all explained below). For simplicity, assume d=1 for the moment. A d-dimensional cellular automaton takes as its underlying space the lattice S Z (Z=integers, infinite in both positive and negative directions) where S is a finite set of k elements. The dynamics are determined by a global function

F: S Z S Z
whose dynamics are determined locally as defined below. A local (or neighborhood) function f is defined on a finite region

(1)

f : S 2 r +1 S

(2)

The all-important property of cellular automata, is that this function is determined by a finite lookup table. Both the domain and range of f are finite. The global function F arises from f by defining:

F (c)i = f (ci r ,..., ci + r )

(3)

A concrete example with k=2,r=1 would take a doubly infinite string of zeroes and ones to a new string at which each site is replaced by the logical and of its two neighbors (Wolfram's elementary rule 90). Some relevant facts from a topological standpoint are: 1.The base space S Z is compact and the global function F is continuous. To insert an editorial comment, this makes CA an ideal meeting point between continuous dynamics and complexity theory, since they are discretely defined but exhibit continuous dynamics. 2.The map F commutes with the shift operator which takes ci to ci +1 .

In fact cellular automata are characterized completely by properties 1) and 2) (Hedlund). The transition todmore dimensions is straightforward. The only difference is that the global function F d is defined over S Z (functions from a d-dimensional lattice to S) and the local function f is determined by enumerating the image of all patches of size2 r + 1 .
d

2 CA Simulators. 2.1 How can I make CA simulations run fast? I can think of four main tricks for making a CA program run fast. 1.Lookup table. Generally a cell takes on a NewC value which is computed on the basis of info in the cell's neighborhood. Try to find a way to pack the neighborhood info bitwise into a nabecode number. Then use nabecode as an index into a lookup table. Thus NewC = lookup[nabecode]. You precompute the lookup values for all possible nabecodes before running the CA. Lookups can be saved, as Walker and I did in CA LAB. 2.Pointer swap. To run a CA, you need two buffers, one for the current world of cells, and one for the updated world of cells. After the update, don't copy the updated world onto the current world. Just swap the pointers to world and new world. 3.The flywheel. In stepping through the cells of the CA, you repeatedly compute a cell's nabecode, then compute the nabecode of the next cell over, and so on. Because the neighborhoods overlap, a lot of the info in the next cell's nabecode is the same as in the old cell's nabecode. Try to arrange nabecode so that you can left shift out the old info and OR in the new info. 4.Assembly language. A 2D VGA CA is going to have about 300K cells. That means you are going to assemble nabecodes and lookup the NewC values about 300K times per screen. This means that your inner loop for flywheeling the nabecode must be as efficient as possible. If you can write this in assembly language, and keep an eye on the listed clocks per instruction, you can shave off a few clocks here and there, which really adds up when done 300K times. If the rule set is known to lead to sparse configurations, e.g. Life Game with a small initial pattern, then one can use sparse matrix tricks. That is, to just compute in the vicinity of occupied cells. Generally these do not compile as efficiently as a full matrix method, because there is more indirect address and branches. However, one could include both a sparse and full matrix method in the same program, then convert when the cross-over density is reached. 2.2 What hardware implementations exist for CA? The "trick" of the CAM-6 was to encode the rules as a lookup table accessed by an "address" formed of the states of the neighborhood. For example, one bit states of cell plus eight neighboors is a 512 possible results. There was also a "rule compiler" that built the transition table and other computations from a special programming language. You might also want to look at [HTA92 ] which describes a 3D automata engine, computation is performed through the reconfiguration (at a very low level) of the hardware.

2.3 Are there simulators for self-criticality? I have written a program, in Mathematica, for a cellular automaton simulation of earthquakes, mudslides, avalanches and other `'self-critical phenomena. The full article (with words) will be published in my column Simulating Experiences: Excursions in Programming" in Mathematica in Education," an outstanding (and inexpensive) newsletter. 2.4 What about running CA's on parallel or distributed machines? Yes, CA are pretty trivial on massively parallel computers. Especially if you have data parallel software (e.g. CM-Fortran or C on the Connection Machine), then you just create a virtual processor for each cell, and then have each cell fetch its neighbors and do a table-lookup or computation. If you are not using data parallel software, but instead are using message-passing, it is still pretty simple. I typically partition the 2-D array into a set of stripes". E.g. on a 128-node machine, if I want to run a 1024x1024 array, I give each processor a 128x8 patch of cells (plus one extra row of boundary condition at the top and bottom, so actually 128x10 with some redundancy). Each processor updates its local array, and then exchanges its top and bottom row with its neighbors. So you alternate between a step of computation where you loop over your patch of cells (lots of work if you have a big patch), and doing 2 sends and 2 receives (hopefully pretty quick). Imagine the processors are connected as a ring; you don't need any more connectivity than that (although it's good to have some nice way to dump data out to disk or a machine for analysis). Partitioning the array into stripes minimizes the surface area" of the cell patches, and so minimizes the communication you have to do (if you partitioned it as a checkerboard," you'd have more data to exchange with more neighbors). It also makes your inner loops more efficient, because you have really wide rows to loop over, instead of a bunch of short rows. It also makes each boundary a contiguous block of memory, so it's easy to send to its neighbor. If you have a high overhead for sending, you may want to consider having 2 boundary-rows, and doing a little bit of redundant computation, so that you only do communication every other step. In fact, I implemented a CA simulation using a network of Sun workstations using the above layout, and BSD sockets. Using 16 Suns, I think I had CA code running about 10-12 times faster than a single Sun. This was a few years ago on Sun 3/50's at RPI. I had grand visions of turning the whole campus into a monster CA simulation environment, but shortly after that, I got access to a CM-2 and forgot about the Suns. :-) Actually, there's no need to stay on Suns only { you could have some other machines in there as well, as long as they can do socket communication to exchange data with the neighbors. 3 Applications 3.1 What computations can CA do? If you just want a CA that does !gates then 'Wireworld', a CA that simulates 'electron streams' is probably an easier starting point than Conway's Life that exhibits the same level of computational complexity, just on a more manageable scale. It's in the CA Lab (Rudy Rucker's PC-based CA package), but the rules are fairly simple and it may well be elsewhere too.

3.2 How do you do computations with the Game of Life? The constructive proof that the game of life is capable of supporting universal computation is built around colliding glider streams into one another. colliding glider streams form the basic AND, OR, and NOT gates, out of which one then goes on to engineer a general purpose computer. However, one need not construct a general purpose computer, one could arrange the same computational primitives into a device that computes only a specific function. One example, computing the logical NOT of a byte, is straightforward. Arrange for a stream of gliders (the input stream) to collide with the output of a glider gun at right-angles in such a way that the gliders in the input stream occur with the same spacing as the gliders coming from the glider gun. Furthermore, time the arrival of gliders in the input stream so that they collide with gliders in the output of the glider gun and annihilate each other. Then, encode the byte you want to compute the logical NOT of in the following way: For every 0 in the input byte, remove a glider from the input stream, for every 1, leave a glider. Thus, the input byte 10110010 will be represented by the glider stream: glider noglider glider glider noglider noglider glider noglider where the "nogliders" are spots where gliders in a regular periodic stream of gliders have been removed. When this stream is collided into the regular stream of gliders coming out of a glider gun, observe what happens. For every 0 in the input byte, the missing glider in the input stream allows a glider from the glider gun to pass, whereas for every 1 in the input byte, a glider in the input stream annihilates the corresponding glider coming from the glider gun. Thus, looking at the output stream from the glider-gun DOWNSTREAM of the collision site, there is a glider (a 1) for every "hole" in the input stream (a 0) and there is a hole (a 0) for every glider (1) in the input stream. Thus, the filtered output of the glidergun is the logical NOT of the encoded input stream. And not a universal computer in sight! By colliding this output stream (call it NOT A if the input steam is A) with another input stream, B, one gets A AND B in the continuation of the input stream B after the collision site. If one collides the downstream portion of the NOT A stream from this latter gate with the output of another glider gun, one obtains A OR B as the continuation of the second glider gun output downstream of the collision. By hooking up a sequence of AND, OR, and NOT gates built in this way, one can compute any function that can be expressed by these logical operations (a great many functions indeed). For complex functions, involving many gates, one needs to cross glider streams, redirect glider streams, and so forth. This leads to more complication. However, the basic idea is as sketched out above. 3.3 Can CA be used to model ecological systems? Recently there has been a significant increase in the number of articles that deal with cellular automata (CA) and ecological modeling. There are also several questions on how various aspects of CA affect their usefulness in ecological models. What follows are some quick thoughts on where the major difficulties with CA and ecological models lie. It is not intended to be thorough, and it is not as well argued as I'd like. At the end is a list of interesting references in the area. The major question that needs to be addressed is that of CA's synchronicity, P.Hogeweg and others, have claimed that the simultaneous updating of all cells is at odds with the localness of interaction that is one of the strengths of CA. It has been shown that changing the definition of a CA to allow for asynchronous updating of cells can dramatically alter the behavior of the CA

In particular, frequently the interesting structure seen in the evolution of a CA is, in fact, an artifact of the synchronous updating. What needs to be addressed is whether or not there are ecological systems for which universal updating is not an unwarranted assumption. For example, [SHJD92 ] develop a CA model of competition between grass species. I have not yet researched the characteristics of the species involved in their model, but it is not inconceivable to think that the dynamics of a set of annual plants may be modeled synchronously (perhaps the species all germinate at close enough times that on the scale of a year, we can think of it as synchronous). On the other hand, [Gre90] develops a CA model of the effects of fire and dispersal on spatial patterns in forests. I see no a priori reason, however, to assume that synchronous updating is reasonable in this situation. Another issue that needs to be investigated is the problems associated with multiple scales, both spatial and temporal. Typically CA models are developed with the assumption that a cell is a physcial region of the right size for one (or, perhaps, a few) individuals. Consider a model of plankton in the Celtic Sea (I have, which is why I bring it up). If we assume that over a certain horizontal distance, conditions are homogeneous, it suffices to limit ourselves to a water column, i.e. we only need one spatial dimension. At typical concentrations (private communication with R.A. Parker) we have enough plankton that it is impractical to assume one plankton (or a few) per cell. Now the relevant scales for the diffusion of plankton nutrients (such as nitrate) is even smaller. Also, consider three typical organisms: cyanobacteria, flagellates, diatoms, and copepods. The ratio of the fastest sinking rate to the slowest is 200:1. Thus, if we use this information to scale spatially or temporally, we also run into difficulties (again, the temporal scale of diffusion for nutrients is smaller still). Are these problems insurmountable? Is this even the best way to begin thinking about such a model? I don't have the answers. Finally, are there systems with inherent action-at-a-distance? Returning to the plankton model mentioned above, we note that during chlorophyll maxima (blooms of plankton) it is not uncommon for the plankton near the surface to dramatically decrease the amount of light to plankton at depth due to shading. Thus, we have an effect that (rapidly) is felt at great distance. Is this incompatible with the CA methodology? 3.4 The Universe as a Cellular Automata? There is a great collection of papers . These are the proceedings of a conference on the Physics of Computation and Computational models of Physics. They contain some classic papers, including many that view the universe as a CA. Authors include Toffoli, Fredkin, Bennett, Landauer, Hillis, Feynman, Wheeler, and so forth. There is a fascinating paper by Marvin Minsky entitled Cellular Vacuum in which he shows that a version of relativity holds in CA's as clocks (oscillators) approach the speed of light - they slow down, but not in the same way that they do in continuous space. All in all, this collection is a must for those interested in computational aspects of the physical universe or in the physics of computation. 4 Special Types of CA 4.1 What are Lattice Gas Automata?

4.1.1 Does the lack of symmetry in the HPP model have any obvious bad effect, other than to remove the inertial term? I don't think it removes the inertial term. There is still a form of the inertial term with HPP, though it is not isotropic. And, yes, it does have another effect on the equation: The viscous term, like the inertial term, is present but anisotropic. 4.1.2 Are there unphysical conservation laws with HPP? Yes, HPP has several unphysical conservation laws. First, if you color the sites white and black, like a checkerboard, you can convince yourself that the dynamics on the white squares are completely independent of the dynamics on the black squares. Thus, all conserved quantities (mass and momentum) are conserved separately on the two checkerboard sublattices. More seriously, y-momentum is conserved separately within each column, and x-momentum is conserved separately within each row (assuming periodic b.c.'s). 4.1.3 What are the physical manifestations of anisotropy? Here is a physical manifestation of the problem of anisotropy: If you tried to do a Poiseuille flow simulation with HPP, you would find that the drag on the plates depended on the angle of orientation of the plates with respect to the underlying lattice. This problem would be present even at low Reynolds number. With FHP, on the other hand, the drag would be independent of this orientation. 4.2 What are continuous spatial CA? A continuous spatial automaton is analogous to a cellular automaton, except that the cells form a continuum, as do the possible states of the cells. After an informal mathematical description of spatial automata, we describe in detail a continuous analog of Conway's Life," and show how the automaton can be implemented using the basic operations of field computation. 4.3 What's the Hodge Rule? HODGE-C is a (`mostly ANSI') C language implementation of Gerhard & Schuster's hodge-podge machine. It implements a class of cellular automata, that resemble very closely autocatalytic chemical reactions, like for example, the Belousov-Zhabotinskii (BZ) reaction. 4.4 What are Vants? The Vant rule, by Chris Langton, describes the path of an ant who starts pointing in a certain direction. If the ant is on a non-white square it turns the square red, rotates 90 degrees clockwise and moves one pixel in the direction it is pointing. If it is on a red square it turns the square white, rotates 90 degrees counterclockwise and moves one pixel in the direction it is pointing. 5 Properties of CA.

5.1 What are inhomogeneous CA? When each cell has a different rule, the resulting CA is called inhomogeneous". Kauffman's "random Boolean network" model allows different rules AND connections, with applications in theoretical biology. [Wue93] discusses intermediate architectures between CA and random Boolean networks. Homogeneous rules - varying degrees of random wiring, homogeneous wiring template - various degrees of rule mix. 5.2 How important is Synchronicity in CA? Cellular automata are discrete, regular, and synchronous. Those interested in cellular automata as such begin with the CA definition and work to discover the implications of these properties. Those interested in using CA as models in the natural sciences, on the other hand, begin with a natural system in mind and work to discover how well the behavior of their system can be approximated by a CA model. Both those interested in abstract properties of CA and those interested in applications find discreteness and regularity uncontroversial compared to synchronicity. Many of the unique features of cellular automaton dynamics can be traced to the synchronous update of cell-states. An abstract of some of the discussion on this matters follows. An example of the importance of synchronicity in CA dynamics is the work of Chate and Manneville [CM91 ] on collective behavior in CA and coupled-map lattices. This behavior is of major importance in the field of dynamical systems. Indeed, before this work appeared, some had "proved" (in the physicists sense of proof) that such behavior was impossible. Collective behavior seems to be stable to all sorts of perturbations of the model except giving up on synchronous updates. The paper by Huberman and Glance [HG93 ] supports the opinion that the organization of the subunits in a model must approximate the organization of the subunits in the system to be modeled, and the dynamics of the model must be a good approximation of the dynamics in the real world. [not always the case for CA]. For some examples of CA models in the natural sciences which "work" see Ermentrout and Leah Edelstein-Keshet [EEK93 ] and the section on lattice-gas automata. An early reference: [Ing84] They investigate Wolfram's CA rules using a probabilistic method for updating cells. Some of the rules give patterns, some don't. From the Abstract: "...some of the apparent self-organization of (CA) is an artifact of the synchronization of the clocks." Greenberg-Hastings type models of reaction-diffusion systems do a decent job of arriving at the same qualitative spatial structure as the real phenomenon (e.g. Zhabotinsky reaction), in this case stable rotating spirals of activity. However, if the Greenberg-Hastings model is executed with asynchronous update, mayhem breaks loose; rather than, say, one stable spiral, the spiral fractures into a thousand jumbly pieces. Thus, synchronous and asynchronous update schemes may lead to vastly different results, and a modeler must be careful in using either one. But the real issue is is not at all new -modelers must be explicit about what assumptions they make when designing their model. In CA, conserved quantities and conserved properties of the system have vast consequences on its subsequent evolution, and must be carefully analyzed. For example, in the Greenberg-Hastings model, a conserved quantity is that the winding number of every closed path remains unchanged over the course of the evolution. This property is also true for simple PDE models of excitable media. (In more complicated versions of both models, unfortunately, this breaks down in some cases.) But the point is that the CA model is decent because the conserved

properties of its evolution are right. For G-H, single local applications of the CA rule may not preserve the conservation law, and thus a radically different steady-state is seen in asynchronous simulations. In the neural network community there is the same sort of concerns with regard to synchronicity of updates. People implementing parallel machines are interested in synchronized systems, while others whose models depend on a sequential update rule will argue from the biological plausibility of asynchronousness. A typical "biological plausibility" statement is found in Daniel Amit's book modeling brain function (p. 80): to reiterate, the asymptotic behavior of the network, on which we focus our interest, may depend on the dynamical procedure, but such dependence is unwarranted because no particular procedure is a faithful representation of the activity in the biological network. We therefore look for asymptotic properties which are insensitive to the updating procedures 5.3 Which computations can 1D CA perform? Ruff: I have set up a 1d2n22s CA which performs binary multiplication by 79 transition rules. Result of n*m digits is available after maximal n + m + 2 steps. 5.4 Is there is universal 1D CA? Biggar: Sure if you allow for more then 2 states and/or neighborhoods greater then 3 wide. First I work with more then 2 states and then with wide neighbor hoods. Suppose that you have a N state M symbol Turning machine, this maps to a 1D (N+1)*M state 3 wide neighbor hood as follows: M of the states correspond to tape squares were thr turning machine read/write head is not located and are direct mapping of the turning machine's tape. The other N*M states represent the tape square where where the read/write head is located. A state at that position represents the tape has one of the allowed symbols and the machine is in a given state giving N*M possibilities. Using a width 3 neighborhood then most cells are quiescent and don't change only the three cells with on of the M*N states in their neighborhood can change in a given time. Defining the rules based on the original turning machine is obvious. Now if you start with a Universial Turning machine you end with a Universal Automata. w to go back to a Binary Automata. If I have N states in the above Automata it can be easily mapped to a binary automata with a neighbor hood of width 4*N+11 as follows: For now assume that there are only 4 state (to make the cases to be examined small) the each cell in the 4 state 1D automata will map to a row of 9 cells like so: state 10 cell pattern 0 110000011 1 110100011 2 110010011 3 110001011 These patterns will overlap 1 cel on each end so the turning tape ...102... would be represented as: ...111010001110000011100100111 ... Using a 27 cell neighborhood it is easy to define rules that correspond to the original 4 state automata. the 111's in the pattern act as registration marks the other cells can determine which position they are in.

The original set up of the 1D automata does not need the registration marks already in place out to infinity they can propogte themselves out automatically and keep ahead of the non-empty part of the tape with ease. More compact coding are possible, but this one is wasly to explain and gives a automata that runs at the same speed as the original. There is a 4 symbol 7 state Univ Turing machine described in Computation: Finite and Infinite Machines by Minsky. Rucker: It is pretty simple to model a standard turing machine as a 1d CA. If the TM uses k symbols and n states, then you can make a 1d CA with k*(n + 1) states per cell. Most cells are in the state i,0 for some i < k. The cell where the head resides is in the state i,j for some i < k and 1 < j <= n. The update rule is for each cell to stay the same unless the cell is where the head is or is a cell that the head is about to move into. 5.5 How to perform computations in the Game of Life? Using the interaction of glider streams, the Game of Life can be programmed to perform computations. Indeed, it is a universal computer. 5.5.1 Must one use all of the logical gates to perform computations in the Game of Life? The three logical gates AND, OR, NOT are sufficient for all logical functions, but not necessary. not only two basic gates are enough, one basic gate is also enough! for example, gate NAND, which is negation of AND," can lead to all three previously considered basic" gates: NOT(a) = (a NAND a) AND(a,b) = (a NAND b) NAND (a NAND b) OR(a,b) = (a NAND a) NAND (b NAND b) another example is the NOR (negation of OR): NOT(a) = (a NOR a) OR(a,b) = (a NOR b) NOR (a NOR b) AND(a,b) = (a NOR a) NOR (b NOR b) The relevance to CA/Game of Life is that the requirement for having three logical gates in a CA rule so that it can do all computations can be (two) too much. at least in principle, having one NAND should be enough for constructing all logical functions. 5.6 What about running a CA backwards? 5.6.1 The General Case I will assume that a configuration" comprises a N x N square of symbols 0,1 with the sites outside of this square assumed 0 (this is what I would term a finite configuration. One can ask:

1.Is there a configuration which maps onto this configuration? 2.Is there a finite configuration which maps onto this configuration? In one-dimension there are much-explored algorithms which answer to both questions. Fundamental to the algorithm is the existence of bounds based on the parameters of the CA rule (specifically the states per site and number of sites distant the rule takes into account, Wolfram's k and r). Based on these one finds a bound phi(N) (recaall N is the initial size of our finite neighborhood) for which if there is any finite predecessor, there must be one of length at most phi(N). The first question is slightly more complicated, but the procedure is similar. In two dimensions both questions are undecidable. This means that the function phi while it still exists abstractly (there are still a finite number of rules with a given k and r), grows faster than any recursive function. The proofs of the above statements are not difficult, and relate to the undecidability of the tiling problem for Wang tiles. Note that none of the above discussion means that the problem cannot be solved in the specific case of the game of Life. It would be impressive to demonstrate such a technique, as Life is sufficiently complicated to be computationally universal. 5.7 What are some reversible rules? The following reversible cellular automaton has been presented by Jarkko Kari. It has 2 neighbors (the cell itself and its right neighbor). The set of states is 1,2,: :,:n. The local transition rule f:

a f (a , b) = 1 a + 1

if if if

b <= a b = a +1 b > a +1

5.8 What is known about periodic orbits in CA? Hurd: In a recent paper I used the terms temporally and spatially periodic, but informally I sometimes just say horizontally or vertically periodic. Here is an (I think) interesting result: Assume that a 1-d CA has a quiescent state. I will (informally) call a configuration trivial if it evolves to the all-quiescent state which I will assume is a fixed point. A CA for which ALL configurations are trivial, will be called nilpotent. 1) A CA has a non-trivial temporally periodic orbit if and only if it has a non-trivial spatially periodic orbit (one half of this proof is easy). 2) There exists a cellular automaton for which EVERY periodic (spatially or temporally, equivalent by (1)) orbit is trivial BUT for which not every configuration is trivial. This example (OK I did not give an example I just stated it exists|in fact Kari, Culik and I have a specific example with 17 states) means that there can be dynamics missed entirely by the restriction to spatially periodic configurations no matter what the finite lattice size. PART II: The following proof is due to K. Culik. To show that a finite configuration must have an (eventually) periodic predecessor, if it has a predecessor at all, consider the following state:

Assume that the rule has radius one (the proof goes through in general with obvious modifications). Denote by k the number of states per site. c =...000 c0c1 ...c N 0000... has a predecessor: d =....d 2 d 1d 0d1d 2 ... Lining them up: d =...d 2 d 1d 0d1d 2 ... d N d N +1 ... c =...00c0c1c2 ... c N 0000... Consider a window which is two high and three wide (if R is the radius, 2R+1), sliding over the pair of configurations. Start with:

000

dn +1d N + 2 d N + 3

and continue to the right. There are only k3 possible values so at SOME point the list must have a duplicate, i.e.,

d N + i d N + i +1d N + i + 2 = d N + j d N + j +1d N + j + 2
000000 Now we can replace d with a configuration periodic on the right by defining:

dn = dn

if

n < dN + j

and otherwise

dn = dn ( j i )
A similar trick works on the left and QED. The same technique shows the stronger result (of Golze) that periodic configurations must have periodic predecessors. 5.9 What are Subshifts of Finite Type/Sophic Systems? Historically the study of SFT's got a lot of impetus from hyperbolic dynamics, where SFT's are the natural symbolic dynamics for making use of Markov partitions. You can do a lot of your analysis of equilibrium states and periodic points on the SFT. (The analysis of equilibrium states on sofic shifts is much harder.)

This is an historical reason for the focus on SFT's but it is also a mathematical one. It is completely reasonable on mathematical grounds that SFT's should be distinguished as the most important subclass of sofic systems. It is for SFT's that finiteness conditions, coding constructions and algebraic invariants are most transparent; and one key to studying a sofic system is to understand how its properties relate to those of the SFT underlying the minimal deterministic finite automaton for the regular language of the sofic system. But: I think Prof. McIntosh's consideration of sofic systems as a fundamental class is absolutely correct. It is in various ways a more natural class than the class of SFT's. For example, it is closed under quotients and unions. More fundamentally, it is much more naturally the class of subshifts with a finite presentation than are SFT's. I think this represents the consensus among workers in symbolic dynamics. Prof. McIntosh's interest in sofic systems is especially gratifying to me, as I work in symbolic dynamics myself and have formed the impression that most workers in cellular automata regard even SFT's which are not full shifts as esoterica. It seems to me that symbolic dynamics provides at the least tools and a perspective useful for some problems about automata, but these have not been much used in c.a. Just one example: from the symbolic viewpoint the c.a. insistence that its automata be block codes on full shifts (versus block codes on SFT's or other subshifts) seems unnatural. The latter viewpoint finds some justification in the recent work of Alejandro Maass. He uses techniques of symbolic dynamics to show that any endomorphism f of a mixing SFT S is the restriction of some c.a. map which has image S, under the necessary assumption that S has a fixed point. (He also has more sophisticated and less easily stated results about c.a. limit sets and dynamics.) In other words, to understand the limit dynamics of c.a., you must understand the limit dynamics of endomorphisms of SFT's. This is not just a problem, it is also an opportunity, because tools for studying SFT's can contribute some understanding. 5.10 What is the mean field theory? The mean field theory is a way of approximating the action of a CA by a map with continuous parameters. The approximation is derived by assuming that the states of cells at different locations in space are not correlated. A simple version of the mean field theory is the parameter of Langton, more general versions, which take into acount spatial correlations, have also been developed. 5.11 When is a CA injective, surjective? A CA is injective if its global function F satisfies F ( f ) = F ( y ) implies x is the general definition for functions. In the case of CA a stronger result holds. Theorem A. CA is injective if and only if it is reversible (i.e., bijective).

= y . This, of course,

Surjectivity for cellular automata (although not in general) is a strictly weaker condition that for all y there exists x such that F ( x ) = y . For 1-dimensional CA there exist well-known algorithms to determine surjectivity and injectivity (by an algorithm is meant, you hand it a rule table and in guaranteed finite time the answer comes back for all possible 1D CA). In 2 and more dimensions a highly non-trivial result of Jarkko Kari shows that the question is undecidable. The question is linked in a deep way with Berger's Theorem about the undecidability of tiling by Wang tiles.

It is trivially verifiable when two rules invert each other. Kari's Theorem then implies that there must exist 2D rules for which the complexity of describing its inverse vastly exceeds the complexity of the rule itself. If we take r (the radius) and a rough determinant of complexity, for any recursive function phi, there must exist a rule with radius r whose inverse rule has radius greater than phi(r). 5.12 Can one decide if a 2D rule is reversible/surjective? Jarkko Kari has proven that the reversibility question for 2D or higher CA is undecidable. It is true in all dimesions that a rule is reversible if and only if it is injective. Kari also has proven that the surjectivity problem is undecidable (a necessary but not sufficient condition for reversibility). As he points out, the two questions are somewhat different. In the case of surjectivity one can demonstrate its lack by giving a finite configuration which one can test exhaustively cannot be reached. This provides a semi-procedure even though no corresponding semi-procedure can be found in the other case. On the other hand, it can be finitely demonstrated that two rules indeed invert one another, so there is a semi-procedure to show that a CA IS reversible. One way to show decidability in the 1D case for both questions consists of proving recursive bounds on how big a string one would need to find to show a counterexample to surjectivity or how large a radius rule one needs to examine to prove reversibility. In both cases such a bound (as a function of the number of states per site and radius) exist, although I do not recall their exact form (I used to know, step in anyone who remembers). Kari's proffs suffice to say that there is no such recursive bound for 2 or more dimensions. 5.13 Where do I read about reversible cellular automata? The name most prominently associated with reversible cellular automata seems to be Tommaso Toffoli; his most accessible work is probably [TM87 ]. Whereas the book describes a number of reversible rules for the CAM-6, Edward Fredkin's analogy with second order differential equations is the only background theory mentioned, in section 14.2. The Margolus neighborhood, strongly featured in the book, was evidently created to facilitate reversibility. In turn, Fredkin has acquired widespread fame for the replication properties of the <exclusive or> when taken as a rule of evolution. However, it is difficult to encounter a single reference which can be cited, for either Toffoli or Fredkin, that can be fairly said to present their own views. Martin Gardner reported Fredkin's replication in his second article on Life in 1971, reprinted in [Gar83] thereby giving the idea worldwide publicity. Perhaps the computer science community's outstanding early contact with reversible automata was [AP72 ]. Non-reversibility, in the form of the Garden of Eden, seems to go back to [Moo70]. What seems to be quite remarkable is the degree to which such issues were worked out by mathematicians, within the context of symbolic dynamics, during the 1950's and 1960's. The fundamental paper in this respect is [Hed69]. It is in fact a summary of quite a bit of work, carried out by Hedlund himself and others. One of their important concepts is a "subshift of finite type" which is a biinfinite string of symbols from which a certain finite set of words has been excluded. Sort of like excluding all the 1's from trinary (i.e., 0, 1, 2) decimals to get the Cantor set. Shifting the decimal point in one such number gives another. Topology figures very strongly in symbolic dynamics, which may have restricted its appreciation; on the other hand it facilitates talking about limits and leads to a useful measure theory and probabilities. The topology is such that two strings are closer, the longer their central segments which match up; it

turns out that those continuous functions which commute with the shift are each generated by the transition rule for some linear cellular automaton. Thus symbolic dynamics is an application of automata theory, or vice versa. The two theories overlap, but have tended to emphasize different features. Would a symbolic dynamicist have discovered Wolfram's class iv on his/her own? Subshifts of finite type arise from graphs whose nodes are symbols and whose arrows show admissible sequences; missing arrows result from the operative exclusions. Someone realized that a much more interesting model resulted from using the symbols as links among arbitrary nodes; the publication generally credited for this is [Wei73]. It should be noted that the language of his presentation is semigroup theory, not graph theory. Several articles by Masakazu Nasu, written in the spirit of Hedlund's symbolic dynamics, appeared in the late 70's and early 80's. Somewhat later the ideas were generalized to apply to flows through graphs: [Nas82]. An early attempt to relate reversibility and Gardens of Eden and to use the interplay between global and local mappings was [Ric72]. A somewhat later paper [SH77] works out in considerable detail the relationships between injectivity, surjectivity, and several other properties of cellular automata. Slightly earlier, [Yak76] appeared. The reasons for interest in reversible automata seem to have been varied. A formal theory such as Hedlund's would naturally have been concerned with the kind of details represented by surjectivity, injectivity, continuity, the existence of limits, and so on; all of his results may well have been worked out simply for the sake of presenting a thorough and complete theory. One would have to ask him, or someone who was very familiar with his work. Garden of Eden theorems seem to have resulted more as a counterbalance to von Neumann's universal constructor; the reversible machines which they imply seem to have been less of an issue than the fact that some specific automata were <<not>> reversible, and the momentary confusion between the implications of the two concepts. Consequently Toffoli seems to be a plausible candidate to have been the first proponent of reversible automata as such. His publications are not all that easy to track down, consisting of his thesis, laboratory reports, contributions to conference proceedings, and so on. However, [Tof77] states that "an arbitrary ddimensional cellular automaton can be constructively embedded in a reversible one having d + 1 dimensions," and precedes to show how to do so. This approach is different from Fredkin's, which merely uses an arbitrary cellular automaton to construct another which is reversible, without pretending to embed the original; indeed it usually does not. There is also a joint paper, [FT82] which goes into some of their mutual ideas.

References [AP72] S. Amoroso and Y. N. Patt. Decision procedures for surjectivity and injectivity of parallel maps for tesselation structures. Journal of Computer and System Sciences, 6, 448-464, 1972. [CM91] H. Chate and P. Maneville. Evidence of collective behavior in cellular automata. EuroPhys. Let, 14, 409-413, 1991. [EEK93] G. Bard Ermentrout and Leah Edelstein-Keshet. Cellular automata approaches to biological modeling. Journal of Theoretical Biology, 160,97-133, January 1993. [Ft82] Edward Fredkin and Tommaso Toffoli. Conservative Logic. International Journal of Theoretical Physics, 21, 219-253, 1982 [Gar83] Martin Gardner. Wheels, Life, and Other mathematical Amusements. W.H.Freeman and Company, New-York, 1983. ISBN 0-7176-1589-9. [Gre90] D.G.Green. Cellular automata models of crown-of-thorns outbreaks. Physica D, 24, 169-188, 1978 [Hed69] G.A.Hedlund. Endomorphisms and automorphisms of the shift dynamical systems. Mathematical Systems Theory, 3:320-375, 1969 [HG93] B. A. Huberman and N. Glance. Evolutionary games and computer simulations. Proc. Natl. Acad. Sci. USA, 90, 7716-7718, August 1993. [HTA92] N. Howard, R. Taylor, and N. Allinson. The design and implementation of a massivelyparallel fuzzy architecture. Proc. IEEE, 545-552, March 1992. [Ing84] R. L. Buvel T. E. Ingerson. Structure in asynchronous cellular automata. Physica D, 1, 59-68, 1984. [Moo70] Edward F. Moore. Machine models of self reproduction. In Arthur W. Burks, editor, Essays on Cellular Automata. University of Illinois Press, Urbana, 1970. [Nas82] Masakazu Nasu. Uniformly finite-to-one and onto extensions of homomorphisms between strongly connected graphs. Discrete Mathematics, 39, 171-197, 1982. [Ric72] D. Richardson. Tesselations with local transformations. Journal of Computer and System Sciences, 5, 373-388, 1972. [SH77] Tadakazu Sato and Namio Honda. Certain relations between properties of maps of tesselation automata. Journal of System and Computer Sciences, 15, 121-145, 1977. [SHJD92] Jonathan Silvertown, Senino Holtier, Jeff Johnson, and Pam Dale. Cellular automaton models of interspecific competition for space-the effect of pattern on process. Journal of Ecology, 80, 527-534, 1992.

[Tof77] Tommaso Toffoli. Computation and construction universality of reversible cellular automata. Journal of Computer and System Sciences, 15, 213-231, 1977. [Wei73] Benjamin Weiss. Subshifts of finite type and sofic systems. Monatshefte fuer Mathematik, 77, 462-474, 1973. [Wue93] Andrew Wuensche. The ghost in the machine:basins of attraction of random boolean networks. Cognitive Science Research Paper 281, University of Sussex, 1993, [Yak76] Takeo Yaku. Inverse and injectivity of parallel relations induced by cellular automata. Proceedings of the American Mathematical Society, 58, 216-220, 1976.

You might also like