This video describing GAs is also available at the MIT Technology Review site.
What is a Genetic Algorithm?
A Genetic Algorithm (GA) is a search and optimization technique. GAs are a part of a larger class of evolutionary algorithms (EA) that use concepts and mechanisms inspired by evolutionary biology such as inheritance, mutation, selection, and crossover. A GA requires an abstract representation (genotype) of candidate solutions (phenotypes). A fitness function evaluates each solution in terms of how well it satisfies the search or optimization objectives. Starting with a group of randomly generated solutions, a GA recombines pieces of existing solutions (crossover) and makes random changes (mutation). Using the fitness function, and the evolutionary operators, a GA generates new solutions that are increasingly closer to an optimal solution.
Icosystem has patented the use of GAs with interactive feedback from a user. This approach, know as the Hunch Engine, does not require the pre-specification of an objective function, making it possible for a user to judge “I know it when I see it”. The Hunch Engine leverages implicit knowledge, experience, expertise, subjective assessments, qualitative knowledge, intuition, and other un-verbalized expertise. Interactively providing feedback to a GA allows the user to virtually test millions of possibilities while actively evaluating only a small number of them.
When are Genetic Algorithms most useful?
A GA is particularly useful when:
- The search space is not well defined before the search takes place, i.e., when we do not know what are all the possible solutions to the search and optimization problem look like.
- The search space has a complex fitness landscape. The GA’s recombination mechanism is designed to move the population of solutions away from local optima that a traditional search algorithm might get stuck in.