A genetic algorithm (GA) is a method for solving both constrained and unconstrained optimization problems based on a natural selection process that mimics biological evolution. The algorithm repeatedly modifies a population of individual solutions. At each step, the genetic algorithm randomly selects individuals from the current population and uses them as parents to produce the children for the next generation. Over successive generations, the population "evolves" toward an optimal solution.

You can apply the genetic algorithm to solve problems that are not well suited for standard optimization algorithms, including problems in which the objective function is discontinuous, nondifferentiable, stochastic, or highly nonlinear.

The genetic algorithm differs from a classical, derivative-based, optimization algorithm in two main ways, as summarized in the following table.

Classical Algorithm | Genetic Algorithm |
---|---|

Generates a single point at each iteration. The sequence of points approaches an optimal solution. | Generates a population of points at each iteration. The best point in the population approaches an optimal solution. |

Selects the next point in the sequence by a deterministic computation. | Selects the next population by computation which uses random number generators. |

For more information about applying genetic algorithms, see Global Optimization Toolbox.

- Optimal Component Selection Using the Mixed-Integer Genetic Algorithm 5:25 (Video)
- Constrained Minimization (Example)
- Performing a Multiobjective Optimization (Example)
- GA Options (Example)
- Hybrid Scheme in the Genetic Algorithm (Example)
- Finding Global Minima (Example)
- Find the Minimum of Rastrigin's Function (Example)

- GA Functions in Global Optimization Toolbox (Functions)
- How the GA Algorithm Works (Documentation)
- GA Terminology (Documentation)
- Optimize Using ga (Documentation)

*See also*: *Global Optimization Toolbox*, *Optimization Toolbox*, *simulated annealing*, *linear programming*, *quadratic programming*, *nonlinear programming*, *multiobjective optimization*, *genetic algorithm videos*