What is Evolutionary Computing
Evolutionary Computing is a fascinating method for solving problems. It is inspired by biological evolution, which operates under the principle of ‘survival-of-the-fittest’: in an environment with limited resources, populations of individuals compete and mate to produce the fittest offspring. This process repeats over multiple generations.
While biological evolution is complicated through bio-chemical processes, EC can be broken down into several, simple steps.
General Scheme
In the beginning, there was nothing. Then, we introduce 0s and 1s. We start by deciding how to represent the solutions to the problem. This will depend on the problem-type. Next, we find a way to evaluate these solutions - this again depends on the problem-type. Then we initialize a certain number of solutions to evaluate their fitness, mate them, and select the cream of the crop for the next generation. We repeate this until we find a satisfactory solution or reach the termination criterion.
Let’s begin with the beginning.
Representation
How we represent our solution depends on the problem type.
- Bit
- Permutation
- Real-Values
- Trees
Evaluation
Initialization - Population
Parent Selection
Recombination & Mutation
Next Generation - Population
Termination