A Versatile Genetic Algorithm System in Ada: Implementation and Applications

Max Edwards




Abstract
Table of contents
Page 1 of 52  next >>>

1. Introduction

1.1 Original project plan

The original plan for this project was presented in Edwards 1994, a report which described some initial research into the theory and applications of genetic algorithms. The plan that was developed consisted of two main goals:

1. To develop a system of reusable software packages, using the Ada language, which would allow further experimentation to be carried out in the area. The need for such a system was recognised during the development of genetic algorithms for several test problems, each of which was found to draw heavily on certain core software elements. Therefore it was decided to spend some time isolating these elements, and implementing them in the form of generic Ada packages. These packages were to be designed in such a way as to be easily used together, to allow the researcher to create a broad range of fully functional genetic algorithms using very little additional source code.

2. To use the system to investigate, in detail, one or more of the following areas identified as being of interest, which included:

the problems associated with encoding possible solutions into "chromosomes"; for example, how much wasted space can we allow ourselves in the "coding space", i.e. how much larger can the set of all possible chromosomes be, in comparison to the set of all possible solutions? What should we do with invalid chromosomes that are not in the "search space"?

the vast number of "gimmicks" that have been proposed for improving a genetic algorithm's performance, such as alternative crossover methods, breeding strategies and fitness scaling algorithms.

the idea of a "cascaded" genetic algorithm, in which a "meta-level" GA is used to optimise the run-time parameters of the "application" GA, to maximise its performance on a particular problem; this raises the question, amongst others, "how can we judge a particular genetic algorithm's performance?"

the possibilities of using genetic algorithms in applications such as neural networks and scheduling systems, and to examine how techniques such as parallelisation and hybrid-optimisation can be applied.

It should perhaps be pointed out that from the very beginning the intention of the software development aspect of this project was to design a system of library units, and not a standalone working system. The purpose of these units was to allow the researcher who has a modicum of programming ability to construct a wide variety of genetic algorithms with the minimum of effort. The aim was never to design a standalone application, which would allow researchers to carry out a limited range of GA test-runs without writing any code, although such system undoubtedly do exist.


Abstract
Table of contents
Page 1 of 52  next >>>

Download source code     Download PDF of full report

© Copyright 1995 Max Edwards M.Eng.




  Google