In order for a Genetic Algorithm to succeed in finding the optimum solution to a problem the following conditions must be addressed.
Exploration verses Exploitation
Homogenous populations are Bad!
See:
GA Router Analysis.
If the Genetic Algorithm's fitness function is not designed to reward partial solutions properly as well as keeping the top solutions' levels high relative to the population average, then premature convergence will occur.
We have seen this phenomena occur in versions 1 to 3 of my
GA Circuit Router.
One solution tried by
Danny Hillis
was to introduce predators/parasites to bring the system down from local maximums.
How to represent the GA
In an example GA implementation:
The GA Circuit Router, A direct statemachine model for each insect would involve 2^64 = 18,446,744,073,709,551,616 states, where we have previous states and sensory inputs mapping to a next state.
A better approach would be to let the ant express a subset of behaviors mapped within it genotype.
The Genetic Algorithm Procedure
(1) Generate an initial random population
(2) Evaluate the fitness of this population
(3) While (not an optimum solution)
Get Selection of individuals for next generation
Perform Crossover on pairs of individuals
Randomly Mutate some bits during Recombination
Evaluate the Fitness of the current generation
