An EvolutionaryAlgorithm is a type of heuristic search and optimization methods based on principles of biological evolution and breeding. The major camps and flavors are
*Added "choose representation" step. I haven't done much with EvolutionaryAlgorithms (experts, please comment), but I suspect more ProgrammerTime? is spent diddling with various representations than any other step of this process. (Of course, most MachineTime? is spent iterating steps 2 through 5, but that can happen while the programmer is taking a CaffeineBreak?, overnight, or over a 3 day weekend.* -- DavidCary

CategoryEvolution

- GeneticAlgorithms
- EvolutionStrategies?
- Evolutionary Programming (different from the Wiki EvolutionaryProgramming)
- GeneticProgramming

- choose a quantitative problem to solve
- choose a "good" way to represent solutions - raw bitmaps, lists of floating-point numbers, tree structures, or something entirely different?

- choose some initial guess solutions to the problem
- determine how good these are, objectively, at solving the problem
- allow the solutions that are better, objectively, to multiply more than the ones that aren't, with some minor variation
- get rid of some of the worse solutions you have hanging around, and keep the better ones
- repeat from (4)

CategoryEvolution

View edit of February 17, 2005 or FindPage with title or text search