Programming, CakePHP and commentary from Britain.

Popular

CakePHP Livesearch
CakePHP Sessions
VBScript & Excel
VBScript & Oracle

Search

E-mail

kdobson@gmail.com

Subscribe

RSS 2.0

Genetic Algorithms For The Rest Of Us

Part of my Software Engineering undergraduate degree involves an optional final year unit - Genetic Algorithms & Neural Networks. Needless to say, I volunteered myself for said option. My main drive for choosing this unit is that it’s some of the most unusual, yet cutting edge stuff you can realistically explore as a Software Engineer - the subject matter is quite “out there” but remains in the domain of practicality and usefulness. As much interest as I might have in say, quantum computing, I am unlikely to dedicate part of my education to it as, unless I want to go into computational research, it’s not terrifically useful. (A narrow mind, I know.)

I do enjoy a good dabble in Software Engineering and programming in general, but my comprehension of some of the mathematical principles involved is very limited and Genetic Algorithms involve sufficient mathematical challenges for me - even the introductory texts and papers.

Here I have attempted a brief foray into the world of Genetic Algorithms done in a manner even a regular social circle might be able to follow, just.

Algorithm?

You may well not know what an algorithm is. I didn’t, until I started my course a few years back - it’s a very fancy sounding word for something not all that fancy. I now prefer to think of an algorithm as a series of steps one needs to follow or implement to achieve a predetermined goal; a set of instructions which follow on from each other. Not too hard.

Genetic Algorithm?

It may be worth outlining what a Genetic Algorithm is not, first:

  • Genetic Algorithms are not algorithms used in genetic science
  • Genetic Algorithms are not really as fancy as they sound (I know, I was gutted too)
  • Genetic Algorithms are nothing more than algorithms

The “Genetic” which prefixes “Algorithm” is a touch confusing to the uninitiated - Genetic Algorithms are merely algorithms whose purpose and design has been inspired by the processes which take place inside living things - genetic processes. Whilst we can define an algorithm very definitely, we cannot do the same for Genetic Algorithms (GAs) - it’s a label for a rather complex, nature inspired set of instructions.

At this early stage in learning about GAs it’s best to think of them as a middle man (is there a politically correct term for this? Go between, maybe…) between lots of possible solutions to a problem and the desirable, well dressed and presentable solution/outcome; GAs will go in and find/manipulate some possible solutions and mould it to an ideal solution.

Why Genetics?

Genetic Algorithms are part of a rather cutting edge club - Evolutionary Computing.

Evolutionary Computing is based on the idea that the processes of evolution (E.g. survival of the fittest, adaptation) can be implemented, computer style, to help solve complex issues and to help optimize existing processes.

Evolutionary Computing is a somewhat large umbrella under which Genetic Algorithms shelter from the rest of the Software Engineering world, pretending they’re far too complex to be used in mainstream software development. GAs deal with encapsulating biological genetic processes into all singing, all dancing, gun slinging problem solving machines - the design and implementation side of this is a touch complex; perhaps explaining why GAs are not mainstream.

Uses

Why would you choose to design and make use of Genetic Algorithms? Good question and one to which I don’t have a full answer. The obvious justification is “because they’re appropriate” but that’s not tremendously helpful. The running theme seems to show GAs being used for problem solving including pattern matching and the modelling of real world or hypothetical scenarios.

More

I’d recommend you try and avoid reading too much more about GAs from your screen - I always find myself thumbing back through my book to re-re-re-read sections which I should have paid fuller attention too. Try going for a book - Melanie Mitchell’s “An Introduction To Genetic Algorithms” (MIT Press, 1998. ISBN: 026213316-4) is widely regarded as one of the better introductory texts, despite still being a bit over my head.

Contribute...