Vous êtes sur la page 1sur 2

Journées Automates Cellulaires 2008 (Uzès), pp.

15-16

ALGORITHMS AND COMPUTATIONS ON CELLULAR AUTOMATA

J. MAZOYER

Université de Lyon,
Laboratoire de L’Informatique et du Parallélisme,
École Normale Supérieure de Lyon, CNRS, Université Claude Bernard,
Institut des Systèmes Complexes.
E-mail address: mazoyer@ens-lyon.fr

Since their origin, algorithms on cellular automata have been defined. The noticeable
point is that algorithms and computations are disjoints notions. Besides many computations
(in the framework of Turing computability) as multiplication, real-time recognition of primes
in unary, . . . , algorithms without sequential counterpart have been defined as Firing Squad
Synchronization Problem, French Flag, self-reproduction, . . .
We recall the notion of signal or particle. It is simply the trajectory (a neighborhood-
connected line) of an information (subset of states up to a grouping operation) in the orbit of
some configuration. Basic signals are straight lines; from them a large variety of signals may
be constructed on a finite configuration: but all signals are not constructible and it remains
to characterize (if possible) such signals. When the initial configuration is infinite, all signal
are constructible: in some way input (of some computation) may define new signals.
On other hand, a signal viewed as a connected line in an orbit may be constructed in
different manners: so, states and their order used to defined a signal may be viewed as data
setting on the signal. Many algorithms in a geometrical way move this kind of data. We
briefly indicate main algorithms showing how to translate, reverse dat and to carry data
from one signal to another one. We also give an example of how transform parts of an
orbit using tiling of the orbit respecting the natural dependencies of cellular automata. We
observe that there exist in literature a large variety of methods; so, it is quite impossible to
list all of them.
Since work of K. Čulik and C. Choffrut, it is well done how to transform the graph of
dependencies of a 1D-CA of neighborhood {−1, 0, +1} into a graph of dependencies of a
1D-CA of neighborhood {−1, 0} and then to see the initial cellular automaton as a trellis
Z N
automaton. This leads us to the notion a grid (an injection of × into × ). Given Z N
a cellular automaton A which constructs a grid G on the initial configuration cA and an
another cellular automaton B, it is possible to algorithmically defined a new cellular automa-
ton C such that from every initial configuration cB , a new configuration cC has an orbit such
that the orbit of cB appears on grid G. This is a convenient way to move the whole orbit of
B in space-time. Another interest of grids is that when communication time between cells
or computational time of cells are not uniform, the grid is modified but remains a grid: this
allows, in some sense, to bypass to synchronous character of cellular automata.

15
16 J. MAZOYER

We study a typical example of Turing computation: the function (x, y) −→ (xy)2 . This
points that often "good" cellular computational algorithms are the "natural" ("human")
ones. This example also show how to compute composition of functions ( (x, y) −→ xy and
z −→ z 2 ) using grids. On a grid, we have two basic moves of information (to the right and
to the left), to stay on a cell (time move) is now to achieve a right move followed by a left
one. To compose functions we put first computation on a grid G1 and second computation
on a grid G2 the right move of which is a time move of G1 (we have choice for its left move).
Then we propose some hints to achieve a programming language for 1D-CA:
• The s-n-m theorem has two components: the classical one on local (cell based)
computations and a global one on the grid constructed during the computation. In
particular, not only the shape of the grid but also the size of its holes depend on the
data.
• Memory garbage is now synchronization of the active part (computations make sev-
eral composition and the efficient of the sequence of grids decrease).
• Recursive calls are now simply to construct a new grid in holes of the previous one.
• A while instruction is to construct an infinite family of grids.
• Clearly, problems about for loops remain.
Finally, we show that the situation for 2d-CA is far more complicated.

This work is licensed under the Creative Commons Attribution-NoDerivs License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nd/3.0/.

Vous aimerez peut-être aussi