To play life you must have a fairly large checkerboard and a plentiful supply of flat counters of two colors.”
Martin Gardner, Scientific American (October 1970)
The Game of life of stated the core principles behind complex systems: more than the sum of its parts, a complex system is a system of elements, operating in parallel, with short-range relationships that as a whole exhibit emergent behavior.
We will start expaining the rules of the Game of Life and defining some characteristic paterns that appear in it. We will learn how to create our own patterrns and play with them at the exercises. After that, the idea of autopeisis will be explained, relating a pattern of the Game of Life, the glider, with the concept of an autonomuos entity moving around its environment.
Finally, the viability of the Game is Life is studied, with exercises to change the rules of the Game of life to study how they affect the duration of the ecosystem.
We will build a system out of the simplest digital element possible, a single bit. This bit is going to be called a cell and its value (0 or 1) will be called its state. Working with such simple elements will help us understand more of the details behind how complex systems work. Its core principles are tied directly to simulate the natural world with code. The algorithm and its technical implementation will provide us with the inspiration and foundation to build simulations that exhibit the characteristics and behaviors of biological systems of reproduction.
Martin Gardner outlined Conway’s goals as follows:
- There should be no initial pattern for which there is a simple proof that the population can grow without limit.
- There should be initial patterns that apparently do grow without limit.
- There should be simple initial patterns that grow and change for a considerable period of time before coming to an end in three possible ways: fading away completely (from overcrowding or becoming too sparse), settling into a stable configuration that remains unchanged thereafter, or entering an oscillating phase in which they repeat an endless cycle of two or more periods.
Martin Gardner, Scientific American 223 (October 1970): 120-123.
The above might sound a bit cryptic, but it essentially describes a Wolfram class 4 CA. The CA should be patterned but unpredictable over time, eventually settling into a uniform or oscillating state. In other words, it should have all those properties of a complex system
Instead of a line of cells, we now have a two-dimensional matrix of cells. The possible states are 0 or 1. Since we’re talking about “life," 0 means dead and 1 means alive. The cell’s neighborhood is the nine adjacent cells. The rules of life are:
Examples:
In a cellular automaton, a pattern is any particular configuration of cells covering the infinite plane (or other backdrop) that the automaton operates on. A bounding box can be defined for any finite pattern, as the smallest rectangular area that contains all the live cells of a pattern. A simple description of a pattern is to enumerate the state of each cell within the bounding box.
Two patterns are considered the same, if they differ only by an isometry: a rotation, reflection or translation. For certain pattern types, other criteria may also be established: typically e.g. the phases of an oscillator are not considered different patterns entirely.
A still life is a pattern that does not change from one generation to the next, and thus is a parent of itself.
An oscillator is a pattern that is a predecessor of itself. That is, it is a pattern that repeats itself after a fixed number of generations (known as its period).
A spaceship is a finite pattern that reappears (without additions or losses) after a fixed number of generations displaced on space by a non-zero amount. That is, they move about the grid. It’s important to note that the cells themselves aren’t actually moving, although we see the appearance of motion in the result as the cells turn on and off.
A gun is a stationary pattern that emits spaceships (or rakes) repeatedly forever.
Next, we are going to create our own patterns. To do so, click on the OpenProcessing logo of the example below to open the webpage of the associated code. In that page, click the </> symbol to modify the code.
In [1]:
%%HTML
<iframe src="https://www.openprocessing.org/sketch/433158/embed/" width="650" height="378"></iframe>
When is a physical system alive? When is a physical system cognitive? This necessarily involves identifying and characterizing living systems as coherent spatiotemporal structures that are generated and maintained through the interactions among their physical constituents.
Roughly speaking, an autopoietic (literally, self-producing) system is a network of component-producing processes with the property that the interactions between the components generate the very same network of processes that produced them, as well as constituting it as a distinct entity in the space in which it exists. The paradigmatic example of autopoiesis is a cell, in which the components are molecules, the interactions are chemical reactions, and the cell membrane serves as a physical boundary that spatially localizes these reactions into an entity (or “unity”) distinguishable from its environment.
To many biologists, life is either a long list of phenomenological properties (e.g., the ability to reproduce and evolve) or a long list of physical components (e.g., DNA). Instead, Maturana and Varela offer a view of life as a specific organization of physical processes that has as its principal product the maintenance of its own organization: an organizational homeostasis.
Consider a glider, the simplest oscillatory structure that moves in the Game of life universe. A glider is a configuration of five ON cells that undergoes a sequence of transformations that ultimately leave the original glider displaced by one cell both horizontally and vertically. These transformations repeat every four cycles, so that, over time, a glider moves diagonally across the life universe. In short, a glider is a coherent localized pattern of spatiotemporal activity in the life universe that continuously reconstitutes itself.
Normally, the label “glider” refers to the distinctive pattern of five ON cells shown in Figure 1. However, this characterization seems incomplete from an autopoietic perspective. In order for these configurations of ON cells to undergo the sequence of transformations and renewal that we associate with a glider, they must be surrounded by a layer of OFF cells. This layer forms the environment necessary for the ON cells to undergo the required transitions, and the ON cells themselves participate in the production and maintenance of the OFF layer. In other words, the layer of OFF cells serves as a boundary necessary for the continued existence and propagation of a glider. The extent to which this boundary is analogous to the cell membrane of a living cell is an interesting open question.
The interaction between a unity and its environment takes the form of mutual structural perturbations. Since a glider can interact with its environment only through its boundary, these perturbations consist of cell state changes at the interface between the glider’s boundary and the part of the environment that immediately surrounds that boundary (cross-hatched regions in below figure). The glider’s internal state can likewise only influence its environment through the states of its OFF boundary cells. Indeed, because the cells on either side of this glider-environment interface have Moore neighborhoods that overlap both, their states are co-specified by both the glider and the environment.
Maturana and Varela distinguish two broad classes of outcomes that can result from an interaction between a unity and its environment. In a destructive interaction, the unity is unable to compensate for the structural changes induced by an environmental perturbation, and it disintegrates.
In contrast, in a nondestructive interaction, the unity’s organization is preserved, but its structure may be affected.
Identical environmental perturbations can affect a glider differently, depending on the state the glider is in when they occur. The converse is also true. Different perturbations can leave a unity in the same state, in which case that unity is incapable of making any distinction between them.
For Maturana and Varela, the ability of a unity to draw distinctions through its selective response to perturbations is the hallmark of the cognitive. Indeed, they refer to the domain of interactions in which a unity can engage without disintegration as its “cognitive domain.”
By virtue of the structural changes that a perturbation induces in a unity, the effect of a second perturbation can be different than it would otherwise have been.Thus, each perturbation that a unity experiences, as well as the structural changes that it undergoes even in the absence of perturbations, influences its sensitivity and response to subsequent perturbations.
As long as no interaction leads to a loss of identity, this state-dependent differential sensitivity to perturbations can continue indefinitely, with each perturbation orienting the unity to different possibilities for future interaction. By undergoing a succession of perturbations and corresponding structural changes, any unity that persists must necessarily exhibit a certain congruence or fit with its environment. Maturana and Varela have used the term “structural coupling” to denote this process by which the structural changes of a unity become coordinated with those of its environment. The notion of structural coupling serves to remind us that a unity-centric perspective of environmental perturbation is not the only one we can take. Structurally, we can also view the unity and its environment as a single dynamical system.
An especially interesting and important special case of structural coupling occurs when multiple unities share the same environment. Not only do such unities interact with their environment, they also serve as mutual sources of perturbation to one another. Indeed, to any particular unity, other unities literally are a part of their environment. Ongoing interactions between multiple unities can lead to structural coupling between them, so that the pathways they take through their respective interaction graphs become coordinated. Such a community of interacting unities can form what Maturana and Varela call a “consensual domain,” in which interactions serve to orient the other agents to similar possibilities for future action. It is this mutual orientation within shared domains that forms the basis of linguistic interactions, or “languaging”.
Most perturbations to gliders are destructive. Thus, their cognitive domains are extremely limited. Although this may reflect either the discrete nature of cellular automata or the reactivity of Conway’s update rules, I suspect that it is primarily due to the simplicity of gliders.
Embodiment and situatedness emphasize the roles played by an agent’s physical and contextual circumstances in the generation of its behavior. For a situated, embodied agent, taking appropriate action becomes the primary concern, and an agent’s biomechanics, the structure of its environment, and its social context become sources of both significant constraints on and resources for action. Dynamical approaches emphasize the way in which an agent’s behavior arises from the ongoing interaction between its brain, its body, and its environment.
A dynamical perspective on behavior and cognition follows directly from an autopoietic perspective on life when two key abstractions are made.
First, we focus on an agent’s behavioral dynamics. An agent’s behavior takes place within its cognitive domain, which is a highly structured subset of its total domain of interaction. A glider, for example, is instantiated in the states and arrangements of individual lattice cells in the life universe. However, the behavior of a glider, as opposed to its constituent lattice cells, is better described in terms of changes in position, orientation, phase, and so on, of the entire spatiotemporal pattern. Each nondestructive perturbation to a glider induces changes in these variables, as can the glider’s own dynamics. Thus, our first abstraction involves formulating a higher-level set of neural, somatic, and environmental state variables more directly related to an agent’s behavioral degrees of freedom, and then describing its behavioral dynamics in these terms.
Second, we abstract the set of destructive perturbations that an agent can undergo as a viability constraint on its behavioral dynamics. Since it is meaningful to study an agent’s behavior only so long as that agent actually exists, we largely take an agent’s autopoiesis for granted in behavioral and cognitive analyses. However, we must somehow represent in our behavioral description the limitations that autopoiesis imposes on an agent’s interactions, or we will have no way of deciding if a given behavior is adaptive or not. Thus, our second abstraction involves collapsing all perturbations that lead to a loss of identity into a single terminal state that serves as a viability constraint on the agent’s behavior.
There are many consequences of taking an embodied, situated, and dynamical perspective on adaptive behavior and cognition. Perception becomes a kind of perturbation to an agent’s dynamics. An agent’s internal state sets a context in which the effects of a given perturbation play out without necessarily playing any representational role. Behavior becomes a property of an entire coupled agent-environment system rather than being generated by any one component. The joint dynamics of multiple interacting agents leads to such structurally coupled phenomena as languaging, which involves the mutual orientation of agents in their respective cognitive domains to shared possibilities for future interaction. Learning can be understood as dynamics on multiple time scales. And so on.
Now, we will practice some examples of the glider. To remark the autopoises of the glider, its surrounding cells, i.e. its membrane, it is red coloured when the glider is alive.
In [4]:
%%HTML
<iframe src="https://www.openprocessing.org/sketch/433149/embed/" width="630" height="378"></iframe>
Now, we will play a grid of the game of life started with random living cells at a probability of 0.5, i.e. half of the cells will be alive and half dead at the start.
In [5]:
%%HTML
<iframe src="https://www.openprocessing.org/sketch/433075/embed/" width="800" height="410"></iframe>
Finally, we have a world where we can modify the parameters in a continuous way.
In [7]:
%%HTML
<iframe src="https://www.openprocessing.org/sketch/431684/embed/" width="1210" height="554"></iframe>