preface & about GAs

Home preface & about GAs contents download software other GA sites

 

Genetic algorithms (GAs) are general search and optimisation algorithms inspired by processes normally associated with the natural world. The approach is gaining a growing following in the physical, life, computer and social sciences and in engineering. Typically those interested in GAs can be placed into one or more of three rather loose categories:

1. those using such algorithms to help understand some of the processes and dynamics of natural evolution;

2. computer scientists primarily interested in understanding and improving the techniques involved in such approaches, or constructing advanced adaptive systems; and

3. those with other interests, who are simply using GAs as a way to help solve a range of difficult modelling problems.

This book is designed first and foremost with this last group in mind, hence the approach taken is largely practical. Algorithms are presented in full, and working code (in BASIC, FORTRAN and PASCAL) is included on a floppy disk to help you to get up and running as quickly as possible. Those wishing to gain a greater insight into the current computer science of GAs, or into how such algorithms are being used to help answer questions about natural evolutionary systems, should investigate one or more of the texts listed in Appendix A.

Although I place myself in the third category, I do find there is something fascinating about such evolutionary approaches in their own right, something almost seductive, something fun. Why this should be I do not know, but there is something incredible about the power of the approach that draws one in and creates a desire to know that little bit more and a wish to try it on ever harder problems.

All I can say is this: if you have never tried evolutionary inspired methods before, you should suspend your disbelief, give it a go and enjoy the ride.

This book has been designed to be useful to most practising scientists and engineers (not necessarily academics), whatever their field and however rusty their mathematics and programming might be. The text has been set at an introductory, undergraduate level and the first five chapters could be used as part of a taught course on search and optimisation. Because most of the operations and processes used by GAs are found in many other computing situations, for example: loops; file access; the sorting of lists; transformations; random numbers; the systematic adjustment of internal parameters; the use of multiple runs to produce statistically significant results; and the role of stochastic errors, it would, with skill, be possible to use the book as part of a general scientific or engineering computing course. The writing of a GA itself possibly makes an ideal undergraduate exercise, and its use to solve a real engineering or scientific problem a good piece of project work. Because the algorithm naturally separates into a series of smaller algorithms, a GA could also form the basis of a simple piece of group programming work.

Student exercises are included at the end of several of the chapters. Many of these are computer-based and designed to encourage an exploration of the method.