This Web Site is dedicated to providing
interesting, educational, insightful, and
entertaining information on the subject of
Evolutionary Algorithms (EAs).

Copyright 1996 by Keith A. and Eugene L. Oxenrider
Use, reproduction, and modification of the information contained
herein, including Java applets, is hearby authorized as long as
the user acknowledges the authors in this and all subsequent work.
The EA is a powerful tool for solving highly complex and/or non- linear computationally intensive problems. Because the success of this programming tool is based on testing the fitness of a solution in a simulated environment, it is capable of optimizing for a wide variety of variables simultaneously. The variables need not have a linear relationship to one another for this technique to be successful, in fact the more complex the solution space, the better the EA performs compared to other optimization tools.

While the EA is excellent at attaining a very good solution, in some cases this solution may not be the global optimum. Sometimes it falls into a local "valley" in the solution set and is unable to climb out of the local minimum to find the optimum. In most cases, however, it is possible for the EA to arrive at the global optimum and much work is being done to ensure that the EA does arrive at this optimum.

The EA, and its cousin the Genetic Algorithm (GA), have been used in wide ranging computational disciplines with sometimes amazing results. The main thing holding this computational approach back may be that researchers have assumed many classes of problems were unsolvable due to the intense computational resources needed, and are unaware that an approach is available that can sidestep this issue.

Most EAs work like mad in the background and then provide one final result, and the researcher assumes great things are going on during the computation. The Visual EA was designed to provide something to see as the algorithm works. The Basic Demo allows the user observe the progress as the best-solution-so-far is displayed for you.

The program has been converted from C to Java. The speed suffers, but it is something that can be viewed on a web page. The demo applet must be viewed with a Java compatible browser running on a multi- threaded operating system. (eg: Netscape 3.0 on Windows 95.)

There are 3 things under your control with the Basic Demo:
  1. The POPULATION size, i.e., how many individuals to create,
  2. The GENERATIONS, i.e., the maximum generations for the evolution, and
  3. The GOAL, i.e., the string (complete sentences, please*) to seek.
    *required if you are an English Major or have a Doctorate.
We have supplied defaults for all of the above, so on your first try, just use the defaults and hit the START button.

Below the GOAL is a display of the best-of-each-generation as the program evolves toward the solution. Next you'll see a display showing the FITNESS of the best-so-far (zero is perfect) and the GENERATION that the best-so-far appeared. Last, you'll find the elapsed time since you hit the START button.

The START button begins the whole process, and the RESET button allows you to begin the process over again.

Please feel free to play with the number of generations and the population parameters to see the different effects of each. The applet has been programmed to quit after 400 generations have elapsed without a change. Hint: try reducing the population. This will give you a feel for the solution speed vs. population size.

We hope you found this site an educational
and entertaining experience. Let others know of this site,
and send any comments to US
Thank you for your interest.