Autoconstructive
   HOME

TheInfoList



OR:

Autoconstructive evolution is a process in which the entities undergoing evolutionary change are themselves responsible for the construction of their own offspring and thus for aspects of the evolutionary process itself. Because
biological evolution Evolution is change in the heritable characteristics of biological populations over successive generations. These characteristics are the expressions of genes, which are passed on from parent to offspring during reproduction. Variation t ...
is always autoconstructive, this term mainly occurs in evolutionary computation, to distinguish
artificial life Artificial life (often abbreviated ALife or A-Life) is a field of study wherein researchers examine systems related to natural life, its processes, and its evolution, through the use of simulations with computer models, robotics, and biochemistry ...
type systems from conventional
genetic algorithms In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to gene ...
where the GA performs replication artificially. The term was coined by Lee Spector.


Importance of autoconstructive evolution

Autoconstructive evolution is a good platform for answering theoretical questions about the evolution of
evolvability Evolvability is defined as the capacity of a system for adaptive evolution. Evolvability is the ability of a population of organisms to not merely generate genetic diversity, but to generate ''adaptive'' genetic diversity, and thereby evolve throu ...
. Preliminary evidence suggests that the way in which offspring are generated changes substantially over the course of evolution. By studying these patterns, we can begin to understand how evolving systems organize themselves to evolve faster. Ultimately, such an understanding could allow us to improve our ability to solve problems with evolutionary computation. This increased ability for the process of self-replication to evolve is also thought to be important for recreating the open-ended evolutionary process observed on earth


Examples of autoconstructive evolution


Tierra and Avida

A relatively simple form of autoconstruction occurs in systems such as
Tierra Tierra may refer to: Astronomy *Earth in the Spanish and Asturian language Computing and games * Tierra (computer simulation), a computer simulation of life by the ecologist Thomas S. Ray * Tierra Entertainment, now known as AGD Interactive, a ...
and
Avida Avida is an artificial life software platform to study the evolutionary biology of self-replicating and evolving computer programs ( digital organisms). Avida is under active development by Charles Ofria's Digital Evolution Lab at Michigan Stat ...
. In these systems, programs replicate themselves by allocating space in memory for their offspring and then looping over all of the instructions in their genome and copying each into the newly allocated space. This is autoconstruction in that the programs are responsible for determining what code ends up in the offspring. Programs most commonly make exact copies of themselves, with changes being introduced exclusively through mutation events. In principle, however, programs can compose a wide range of possible offspring by only copying a subset of their genomes.


PushGP

PushGP is a
genetic programming In artificial intelligence, genetic programming (GP) is a technique of evolving programs, starting from a population of unfit (usually random) programs, fit for a particular task by applying operations analogous to natural genetic processes to t ...
system which evolves code written in the Push language. Push is a stack-based language designed for easy use in genetic programming, in which every variable type (e.g. strings, integers, etc.) has its own stack. All variables are stored on the stack associated with their type. One of the variable types is executable Push code. As a result, this language design allows for rich autoconstructive evolution by treating all code left on the code stack at the end of program execution as the program's offspring. Using this approach, programs have complete control over the offspring programs that they create.


References


External links


Autoconstructive evolution with PushGP and Pushpop
Evolutionary biology {{software-type-stub