About the Genetic Algorithm

To make a genetic algorithm, you create a set of n models that independently try to "optimize" their way to the best solution. While the memory and time requirements are rather large, genetic algorithms are a good way to converge on the best maxima in the case of uncertain system properties and poorly defined unit operations for calculations.

False maxima can severely complicate some modeling techniques. But the more models there are in the program, the less likely that all of them will fail. While GA's don't necessarily make a maximum provable, they usually do the trick when run with suitable attributes.

Problem Description

The genetic algorithm program was constructed in LISP, a linked-list-based language. The problem in this case is to find the best-fit equation for a set of data. But...the best-fit equation has both polynomial terms ranging from x^(-3) to x^(4), as well as exponential terms ranging from exp(-3x) to exp(4x). Faced with such nonlinear terms, least squares analysis becomes rather tough using other optimization methods.

The genetic algorithm busts this problem by exchanging information among the best models, promoting the models with less error as more likely to "reproduce" in the next round. A mutation factor is also present.

Download Genetic Algorithm Source Code

Home | What's New | Links | Contact Info
Copyright 2004 Christopher Allen.