What on earth is that?
Evoltionary computing is the application of evolutionary theory within the computing environment. It uses the principles of Darwinian Evolutionary Theory such as natural selection, reproduction and mutation to breed progressively better solutions to a given problem.
A sample evolutionary computing framework
To understand how evolutionary principles may be applied to a computing problem a framework is needed to define a set of roles:
1. The environment
The enviornment defines the problem that the evolutionary computing application is trying to solve. It is responsible for calculating the fitness of an individual and assigning the problem space meaning to the members of the gene set and for setting the constrainst such as the baseline rate of gene mutation. Additional real-world constraints such as the control of the population size to optimise the use of the computer hardware are also supplied by the environment.
2. The population
The population represents a set of potential solutions to the problem. It can be created from a randomly generated, or seeded by a predefined set, of individuals*
3. The individual (aka The genome)
The genome defines the number of genes a member of a population has and their explicit locations*. These locations have an explicit meaning in relation to the problem being tested by the environment and are not interchangeable
When two* individuals reproduce the new gene set is populated by genese selected from one of the parent individuals at random. There is also the chance (controlled by the environment) that the genes themselves may be subject to mutation at this stage.
5. The gene
The gene holds the current value for an individual variable that is used to compute the gene set's fitness to solve the environment's problem
What is it used for?
Evolutionary computing is most useful when it is not immediately obvious how to solve a problem.1