Genetic Algorithms in Squeak

Diego Gomez Deck and Gustavo Sznaider


We have developed a Genetic Algorithm Framework based on the classic ideas described in Goldberg 1989 and Mitchell 1997.

The framework implements the operation of selection, mutation ans crossing-over. We added memetic-algorithm capabilities through an implementation of a local search based on hill climbing and dynamic hill climbing. Mutation operations are based on random gaussian-like distribution, so small adjustments are more likely than drastic ones (Numerical Recipes). Selection is implemented with Tournament or with Roulette Wheel and Elite, in Roulette Wheel you can chose Sigma Fitness Scaling or Linear Fitness Scaling.

We exploited the modelling capabilities of Smalltalk and the visualization an development capabilities of Squeak. We priorized these things in spite of the apparently low performance of Smalltalk and Squeak. We think that our decision:


We included some samples, the classical OnesCountIndividual and some De Jong's Function (1 to 4). Each class contains a test method where you can explore how to use the framework. Some extra description is available in the classes comments


These graphs show some information about the run of the algorithm (click to see bigger images)



Genetic_Algorithms.2.cs.gz (January 15, 2000): These changeset will work in a 2.8 image.

Testing and Quick View

For an quick overview of the framework open an morphic project, leaves the Transcrip open and evaluate some of these expressions: