Genetic Algorithm (GA)
GA is the canonical evolutionary algorithm and the historical ancestor of much of this wiki’s corpus — formalized by John Holland (early 1970s; Adaptation in Natural and Artificial Systems, 1975, with his Schema Theorem), building on earlier evolution simulations (Barricelli 1954, Fraser 1957). It evolves a population of chromosomes (classically binary strings) by mimicking natural selection. Source: Wikipedia (independent of andrey-dik).
How it works
Each generation: evaluate fitness → select (“fitter solutions … more likely to be selected”) → crossover (recombine parents) → mutation (random variation) → form the next generation. Population-based, gradient-free, nature-inspired. It sits inside the broader evolutionary-computation family alongside evolution-strategies, evolutionary programming, and genetic programming.
Strengths & limits
- Premature convergence: “GAs have a tendency to converge towards local optima … rather than the global optimum” — countered with niche penalties, higher mutation, or “random immigrants” (an explicit exploration-vs-exploitation fix).
- Cost & scalability: repeated fitness evaluation is “the most prohibitive” part; GAs “do not scale well with complexity.”
- Not always the right tool: Wikipedia cites Skiena’s skepticism that GAs are ever clearly the best attack — a candid no-free-lunch-theorem note from an authoritative source.
Related
metaheuristic-optimization · exploration-vs-exploitation · no-free-lunch-theorem · evolution-strategies · differential-evolution · cma-es · simulated-annealing