Genetic Algorithms, Particle Swarm Optimisation, Evolutionary Computing
Genetic algorithms (GAs) are a search and optimisation technique inspired by the ideas of “survival of the fittest” in populations of individuals, as well as other genetic concepts such as crossover and mutation.
GAs can often find good solutions to problems very quickly – often finding solutions in complex, multi-dimensional, non-linear problem “spaces” that other algorithms struggle badly with.
Successfully applying a Genetic Algorithm to a problem involves steps such as:
- Identifying whether the problem “space” is suited to a GA.
- Encoding the problem into a “genome” that the GA can work with.
- Writing a GA (or using a standard library).
- Defining and writing a fitness function.
- Avoiding pitfalls such as using a weak random number generator, using encodings with big “step” values in them which can block improvements, etc.
Unlike neural networks where I favour a pre-written open source library, with Genetic Algorithms I prefer to write my own – the algorithm itself is small and simple, and it is best to have control over some of the other aspects mentioned above.
I have used my own GAs as part of commercial projects mentioned elsewhere on this website, including Computer Vision, and other data analysis projects.
I have also implemented other evolutionary computing algorithms, such as variations of Particle Swarm Optimisation and Ant Colony Optimisation. Each algorithm has its own “class” of problem that it solves better than most other algorithms.
Please email me to discuss your project and we’ll see if I can help.