Report - Chapter 1

 

Introduction

Some problems tackled by computers cannot be solved by straightforward arithmetic methods. A trail and error approach is inevitable. Examples of such problems include scheduling, multivariable optimisation and so on.

Genetic algorithms are search algorithms based on the mechanics of natural selection and natural genetics.

Genetic algorithms were developed in the 1960’s. Their popularity has grown as they have been successfully used for search and optimisation in domains where other algorithms could not perform well. Applications include biology, computer science, engineering and social sciences.

There are a number of genetic algorithm tools available. Many integrated mathematical tools have genetic algorithm implementations. However such genetic algorithm implementations, like the “Genetic and Evolutionary Algorithm Toolbox for Matlab” [9] for example are, likely to require a certain level of mathematical knowledge from their users. Few genetic algorithm software implementations in Java are freely available from the Internet like “Genetic Algorithm Playground” [10] and “Genetic Algorithm Viewer 1.0” [12]. Both of them are good implementations of genetic algorithms and have a reasonable user interface. A number of problems are used to show the capabilities of the genetic algorithms and appropriate graphical representations are used to show the progress of the genetic algorithms while executed.

However none of these programs seems to encapsulate the basics of genetic algorithms without overcomplicating the matter. For example a variety of problems are implemented in the “Genetic Algorithms Playground” system, which makes it too specialised for the problems implemented. It is not general enough to be used for many problems besides variable optimisation and no reasonable API is provided.

These of course are to the best of the author’s knowledge by evaluating some code of the open source software tools freely available and the class structure of those with no source code provided.

Genetic algorithms tend to be very problem specific, but there are certain basic operations common to all genetic algorithms that can be encapsulated in a package that would save redevelopment time.

The aim of this project is to study the genetic algorithms field and come up with a general genetic algorithm software tool that would demonstrate how some genetic algorithms perform on a few example optimisation functions. A GUI would provide a front end for the application.

The aim of the project is to make a good object orientated solution that can be reused by other developers and save them time in developing genetic algorithms in Java. The system will be developed in an object orientated fashion that has the classes designed around the data itself i.e. the chromosomes, genotypes and population and not around the process. A reasonable API will seek to assist developers in implementing genetic algorithms without the need for detailed knowledge. 

 

Fast Page Navigation


Copyright © 2002 K Derderian.  All rights reserved.