Home‎ > ‎Decision Making‎ > ‎

Genetic algorithm

What it is
A genetic algorithm is a computer simulation or program which uses evolution to find the best or optimal solution to a given problem.  Its process is much like that of natural selection, and it is one of the most common types of artificial intelligence

How it works

Step 1:
   A number of coded representations of random solutions, called individuals (also called chromosomes or genomes), are evaluated based on their fitness.  Initially this population  may contain hundreds or thousands of individuals, although the number depends on the specific problem. 

Step 2:
   Of these, the best are selected in using a stochastic function to determine their fitness.  Having a stochastic function means that individuals are selected by their fitness as well as randomly.  This allows for a small number of less fit individuals to enter the population of selected best fit individuals.

Step 3:
  This selected population of individuals is crossed and/or mutated to form the next generation of individuals to be evaluated.  The process then repeats.

Step 4:
  The algorithm is terminated when it reaches a set maximum number of generations and/or fitness standards / criteria.

Another more programing based example can be found here.

Uses
Because of the evolutionary nature of their solutions genetic algorithms have many uses including, but not limited to:
  • Code breaking
  • Automated design
  • Game theory
  • Mutation testing
  • Economics
  • Job-shop scheduling
  • Artificial creativity
They are best used when possible solutions to a problem consist of dynamic vast portions of data or possibilities.

Limitations

Genetic algorithms can not be used when there is a single right/wrong criterion.  This means they can't be used to determine solutions to simple yes/no problems.  Additionally, deciding on stop criterion can be difficult, since individuals can only be evaluated based on others in the population.  Genetic algorithms are not always the best algorithm for a given problem, especially since the amount of data/repetitions can cause the algorithm to take a long time to run.
Comments