Artificial Life
The last topic we will talk about is artificial life. It studies systems resembling real life. The goal is to understand how life (organisms) work and communicate, or even to create life. In artificial life, the behavior of groups of different organisms is also studied.
The field of artificial life can be divided into three parts, according to the tools it uses. In software (soft) artificial life, computer simulations are used to describe and model life, interactions between individuals and species, etc. In hardware artificial life, the goal is to create artificial organisms, typically robots. Wet artificial life, on the other hand, studies biochemical processes with the aim of creating, for example, artificial DNA.
The field of artificial life also touches on philosophical questions, such as what is life and whether it can be created outside the field of chemistry and biology. Supporters of the so-called strong artificial life (strong ALife) claim that it is possible and that life is a general process that does not depend on a specific medium. On the contrary, the position of weak artificial life is that it cannot be done, and the goal of weak artificial life is to study life through simulations.
Cellular Automata
One of the first techniques that were studied in artificial life are cellular automata. These are (typically) 1D or 2D grids, where each box can have one of $k$ colors. In the simplest case, there are only two colors. Then it is often said that there are organisms on some squares and no organisms on others. Based on the color of the box and its neighbors up to a given distance, the rules for changing the colors of the boxes are then defined.
The goals of cellular automata research can be different - from the study of cellular automata as such, to the search for rules that enable modeling of real systems (e.g. the spread of fire, or the movement of cars on the road).
Game of Life
One of the most famous 2D cellular automata is Conway’s Game of Life. In 2D automata, the new value of each square depends on all surrounding squares. In the case of Game of Life, the rules are simple:
- a living cell with less than two or more than three living neighbors dies
- a living cell with two or three living neighbors survives
- a dead cell with exactly three living neighbors comes to life
Based on these very simple rules, quite interesting organisms can be implemented that multiply, move, etc. I recommend finding an online simulator and playing with it (or look at the materials from the exercises).
From the point of view of theoretical computer science, it is interesting that a cellular automaton defined in this way is actually Turing complete. You can see the game of life implementing a universal Turing machine at Paul Rendell’s website.
Langton’s Ant
Another example of simple behavior that can have relatively complicated manifestations is the so-called Langton’s ant. It is an ant that moves on a grid with two colors. With each move, it recolors its square to the opposite color. Depending on the initial color of the box, it then decides whether to go left or right.
These simple rules lead to very complex emergent behavior. At the beginning, the behavior of the ant is quite simple with the creation of simple shapes, then the ant starts to behave chaotically and pseudo-randomly. In the end, however, he begins to repeat the sequence of 104 steps that make up the so-called highway - the ant runs away in one direction.
It seems (but is not proven yet) that regardless of the initial configuration (if it is a finite one) the ant always eventually starts generating this highway.
Additionally, it has been proven that even ants can be considered a complete computational model.
Life Simulation (Tierra)
An interesting area of artificial life is the simulation of life and design of environments where the life of computer programs is simulated. A typical example from this area is the Tierra system. It is implemented as a simple computer code emulator with 32 different instructions (there are 32 possible combinations of instructions and their parameters). These instructions include simple arithmetic instructions, conditions, jumps and two types of no-op - NOP0 and NOP1. These two types are used to define jump targets. If we have a jump instruction somewhere, it is followed by several NOPx instructions. During a jump, the nearest place in memory is searched for, where there is a complementary sequence of instructions (NOP0 is complementary to NOP1 and vice versa). In this way, Tierra solves the addressing problem instead of using absolute or relative addresses. It is also meant to resemble complementary base pairs in DNA.
All individuals in the Tierra system run “in parallel” - each is assigned a virtual processor, which always executes several instructions of an individual, followed by several instructions of another individual, etc. Individuals cannot overwrite instructions of another individual, but they can read and execute them (jump targets can be also in other individuals).
At the beginning of the simulation, the system starts with one individual that can copy itself. When copying, there is little chance that a bit will mutate in an individual. It turns out that after some time interesting individuals develop in this way - some behave like parasites. They do not contain their own copying procedure, but if they live in a population with individuals who have it, they can use it. This makes them smaller and they can be copied faster. Other interesting types of individuals also appeared. Some are able to defend themselves against these parasites. Others are hyper-parasites - they “convince” the parasite to copy them instead of itself.
A very nice description of the Tierra system is in the original article.
The Tierra system inspired other similar systems, such as Avida.
Creatures
The computer game Creatures is another example of artificial life. In the game, the player has the task of taking care of the so-called Norns, which are playful monsters. The player has to teach them (the Norns use a neural network as their brain), help them explore the environment and defend them against other species.
Simulation of Complex Systems
One of the applications of artificial life is the simulation of complex (not only) biological systems. Such simulations can be of two basic types. Black-box simulations focus on imitating some behavior regardless of whether their internal structure is somehow related to the real internal structure. White-box models, on the other hand, focus on simulations based on principles that have been observed in the real world. They are typically based on an accurate understanding of the system being studied.