Genetic algorithms (GAs) are just one of the many examples of human invention mimicking nature. In this case, it is the process of natural evolution which is translated into a GA search heuristic in order to solve or optimize search problems. Mutation, inheritance, selection and crossover processes of nature are also frequently adopted as algorithms in fields like bioinformatics, phylogenetics, computational science, engineering, economics, chemistry, manufacturing, mathematics, physics and pharmacometrics1. It is truly amazing how wide a range of applications there are for this method of generating optimal solutions.
On the technical side of things, a GA implements its own tailored version of natural selection by trying to 'evolve' a pool of candidate solutions for the given problem into better, more optimal solutions. In this way, the solution's attributes are 'mutated' until they reach an acceptably accurate state. Typically, GAs require a description of the solution domain as well as a fitness function in order to appropriately evaluate that domain and ensure the solution is optimal .
Standard representation for the parts of a GA include:
- binary strings of 1s and 0s for solutions (not exclusively, but traditionally)
- each candidate solution expressed in an array of bits (or another type of array)
- genetic representation of the solution domain where the fixed size means their parts align naturally for ease of crossover operations
- variable length representation, or for more complex solutions, crossover implementation for the operations themselves.
1. Silicon Institute of Technology (2014). Multi Objective Optimization with Genetic Algorithm. [ONLINE] Available at: http://www.silicon.ac.in/s2014/4-.php. [Last Accessed 22/5/2014].