Evolvica:
Evolutionary Algorithms in Action
An Interactive Tutorial
Abstract
Evolvica is a hypertext-based tutorial about Evolutionary Algorithms and is being developed at the Evolutionary & Swarm Design Laboratory, Department of Computer Science, University of Calgary..
Mainly based on Mathematica's programming environment Evolvica comprises a collection of HTML documents in combination with Mathematica notebooks (versions 3.0 and 2.x).
Evolutionary algorithms
In a biological sense, evolution subsumes a huge number of complex interaction, mutation, and selection processes which finally after millions and millions of years have come up with a fascinating diversity of life forms in nature. Furthermore, evolution may describe any kind of organism development, as for instance structure formation or growth processes.
Especially for these two aspects of evolution on a populational scale of competing and interacting organisms as well as on the scale of developing single organisms Evolvica´s World of Evolution offers a collection of algorithmic models, which will be briefly characterized in the sequel.
- Evolution Strategies:
Evolution Strategies (ES) represent a widely applied class of optimization algorithms based on evolutionary principles. Features of an object to be optimized are parametrized as vectors of numbers. "Populations" of these vectors are evolved via selection and variation processes over a number of generations. Fitness values, defined according to the optimization task to be solved, decide about the individuals´ survival probabilities from generation to generation.
References:
- Evolution Strategies and Bionics (Univ. of Berlin, Germany)
- Further ES references ...
- Genetic Algorithms:
Genetic Algorithms (GA) are another representative population-based class of evolutionary algorithms using evolution principles like selection, mutation, and recombination, as e.g. stated by Charles Darwin's evolution theory. Based on the idea of competing individuals, Genetic Algorithms are used to solve complex, however, mostly numerical optimization tasks. Whereas Evolution Strategies work on the actual parameters to be optimized, Genetic Algorithms perform mutations and recombinations on an encoded version of the parameters, mostly in the form of binary strings.
References:
- IlliGAL library of Genetic Algorithms (Univ. of Illinois, USA)
- Genetic Algorithms Archives
- Further GA references ...
- Genetic Programming:
The Genetic Programming (GP) paradigm enhances Genetic Algorithms in order to evolve or breed hierarchical structures like computer programs. Symbolic expressions (know e.g. from LISP or Mathematica) are a widely used representation form for those evolvable programs.
References:
- Genetic Programming at Stanford University
- Further GP references ...
- Lindenmayer-Systems:
A single organism's evolution, that is, its structure formation and growth processes, can be simulated by parallel rewrite systems, as e.g. know in the form of Lindenmayer-systems or L-systems.
References:
- Biological Models of Morphogenesis (Univ. of Calgary)
- Further L-system references ...
- Genetic L-System Programming:
Applying Genetic Programming techniques to breed L-systems leads to new possibilities of inferencing L-systems, which means to evolve L-systems that describe developmental processes with predefined characteristic.
References:
- Genetic Programming of L-Systems (Univ. of Calgary)
- Principia Evolvica: The Book (in German)
- Further references on GP and L-systems ...
Evolvica - Who might find the tutorial useful?
Teaching and Training
Evolvica can be used in the classroom to demonstrate basic principles of evolutionary algorithms and optimization techniques in a vivid and interactive way (e.g. by animations, hyperlinked tutorial documents, etc.).
Programing and Evolution: Learning by Doing
Furthermore, you can use Evolvica as a starting point for your own explorations within the fascinating world of evolution.
If you already have some experience in programming with Mathematica, you may rely on a number of packages in order to build your own evolutionary algorithm implementations.
However, even if up to now you did not have the chance to work with Mathematica and Mathematica´s notebook environment, we can assure you: With the help of numerous programming examples it will be easy for you to explore Evolvica's World of Evolution.
[ Evolvica - TOC | CJ´s Home page ]
Questions or comments about this site? Email me at jacob@cpsc.ucalgary.ca.