Introduction and Background Fuzzy Logic Genetic Algorithms Neural Networks Feedback Links Page Information

Using the GA Example

Now that you have an example to play with, I encourage you to experiment with its settings. So let's discuss what you are seeing, when you run the GeneticAlgorithms applet.

The Graph View

The upper left panel obviously the graph view. The dependent variable is the individual fitness and the independent variable is the generation number. The green line is the fittest individual line. The blue line is the average fitness line. You should see that the blue line moves gradually up to meet the green line. The green line quickly settles into a fairly high value. This movement of blue line shows the expected trend of the average fitness to increase.

The Fittest Individual View

The lower left panel shows a graphical depiction of the fittest individual. The graphical rendering of BooleanIndividuals is a series of red and green boxes. Red is false; green is true. If you implement your own Individual without overloading the graphical functions of Renderable. You will see the toString value of your Individual.

The Buttons

The buttons on the right do what their buttons indicate. The start/stop button does just that. The Configure button pops up the GenerationsGeneratorDialog. The reset button resets the executor object (Resets the Genetic Algorithm).

Status Fields

The fields on the lower right depict, the values of certain status variables. They are

  • Current Generation - the current generation number
  • Mutation Probability - the probability of mutation
  • Crossover Probability - the probability of crossover
  • Generation Size - the size of each generation

Experiment

Experiment with these variables. See what happens if you set a high mutation rate. See what happens with small and large populations, and anything else you feel like trying. If you really feel adventurous try some of these suggestions for building an Individual implementation.

  • Play with the getFitness function of BooleanIndividual and then look at the results.
  • Create a symbolic Individual. Make the chromosome just some random string of characters.
  • If your truly into GAs, create a Program Individual, an individual whose chromsome is a program of some sort. This could build off the symbolic individual.
Feel free to submit any of your creations to our upload section.