Digital evolution systems are a class of Artificial Life systems in which populations of computational agents undergo evolution . These systems generally encode the three ingredients for evolution by natural selection (inheritance, variation, and selection) as some sort of axioms or ground rules. The presence of these ingredients means that evolution will, unavoidably, happen. Traditionally, the organisms in digital evolution have been sequences of self-replicating assembly code. However, it can also involve other types of computational entities.
Rather than simulating evolution (as many purely mathematical models do), digital evolution systems instantiate evolution . In the same way that evolution might proceed differently in two very different model systems in biology, evolution might also proceed very differently in a digital evolution system than it would in nature. However, in both of these cases, the differences are the result of differences in the evolutionary substrate, not differences in the fundamental process that is happening. Just as we wouldn’t say that evolution in plants is a simulation of evolution in animals, it’s generally not accurate to say that digital evolution is a simulation of evolution in nature. Evolution is being given different sets of rules and constraints to operate within in each of these systems. When we observe them, we can understand more about what evolution will do within that set of constraints. By comparing across a range of very different systems we can learn more about what we expect evolution to do in the general case.
For a longer-form explanation of Digital Evolution, see this keynote talk by Luis Zaman from ALife 2020:
Components of Digital Evolution
Digital evolution systems vary in many aspects and there are several different definitions in use. Here we outline components and properties that may be in a digital evolution system.
Requirements for Evolution by Natural Selection
The main things that all digital evolution systems must have are 1) inheritance, 2) variation, and 3) selection. In addition, they obviously need to be digital.
Inheritance is the idea that parents have offspring and those offspring inherit their parents’ traits. In biological evolution, this is usually through DNA or RNA. In digital evolution, this can be a computer program or a list of numbers or a 3D body, or anything else you can imagine!
In addition, there must be some amount of variation. If every offspring was always a perfect clone of their parent, not much would change over time. Variation is often achieved through mutation: when an organism reproduces, its offspring’s genome has a chance of a few things changing. Variation can also be achieved through a lot of other mechanisms.
Finally, there must also be selection. If every organism was able to survive and reproduce for ever, even if there was variation and inheritance, we would just get a really really big population of random organisms. Instead, organisms must die eventually and which die or which are able to reproduce can’t be random. Some digital evolution systems have organisms die of old age or starvation, but many let the death process by random and instead focus on the reproduction process. Selection for reproduction happens when organisms need to do something to successfully reproduce. That could be getting enough resources or copying their genome piece by piece or finding a mate.
Some definitions of digital evolution specifically state that organisms must be self-replicating, meaning that they must actively copy themselves. For example, in the Avida system, organisms have a genome made up of computer instructions that includes instructions for copying that genome, line by line, into another memory space. To determine if an organism is self-replicating, it helps to ask “is it possible for a mutation to make this organism no longer able to replicate?”
However, other digital evolution systems, such as Stringmol, focus on organisms that are not able to copy themselves and instead rely on other organisms to copy them, as is hypothesized to be the case when life was first emerging.
Finally, some definitions do not require explicit self-replication to the point of the organism copying its genome piece by piece. Instead, systems under these definitions may require organisms to collect enough resources to reproduce, such as Symbulation.
Implicit vs Explicit Fitness
In biology, the term fitness generally refers to how many viable offspring an organism is able to make in its lifetime. (There are a lot of complications to the term though, that is just the high-level idea!) This way of defining fitness is implicit: the system is not saying from the top down that an organism is going to have X offspring. Instead, how many offspring an organism has is determined by a lot of factors from the bottom up, including things like how good it is at surviving in the first place, finding a mate, raising its offspring, and a whole lot of chance.
On the other hand, explicit fitness is when the system evaluates an organism and declares how many offspring it will have. This is a common technique in evolutionary computation, evolutionary algorithms, genetic algorithms, and genetic programming. For example, an evolutionary algorithm that is trying to solve a particular problem will usually check how good an organism is at solving that problem and then make offspring from that organism based on that metric. There might be some chance involved still, but how many offspring the organism has is determined top down in comparison to all the other organisms in the population. You can also think of this as artificial selection, like when people are breeding dogs to get a certain color of fur. If they had the power, they would decide exactly how many offspring each of their dogs would have, and so it wouldn’t be based on all those other factors.
Most digital evolution systems (and definitions) specify or assume that fitness is implicit, in the same way as biological systems. That is, even though the organisms are in a computer program, how many offspring they end up having depends on how good they are at surviving, acquiring resources, making offspring, and, again, a whole lot of chance. Some very broad definitions of digital evolution have included evolutionary algorithms, but it is rare.
For a deep dive into the history of self-replicating machines, see this keynote by Tim Taylor: