Genetic algorithms are general-purpose search algorithms based upon the principles of evolution observed in nature. It is the most popular type of Evolutionary Algorithm that includes genetic algorithm, genetic programming, evolutionary programming, and evolution strategy. Genetic algorithms combine selection, crossover, and mutation operators with the goal of finding the best solution to Single-Objective Optimization problems or Pareto-Optimal Front to Multi-Objective Optimization problems. Genetic algorithms evolve until a specified termination criterion is met.
Genetic algorithms in general can be classified into two categories:
- Single-Objective genetic algorithms
- Multi-Objective algorithms.
The implemented algorithms in this library include GenerationalGA and SteadyStateGA for Single-Objective Optimization as well as NonDominatedSortingGA for Multi-Objective Optimization.
A solution to a problem is called a chromosome. A chromosome is made up of a collection of genes which are simply the parameters to be optimized as well as collections of constraints and Objectives for Multi-Objective Optimization problems. A genetic algorithm creates an initial population (a collection of chromosomes), evaluates this population, then evolves the population through multiple generations (using the genetic operators discussed above) in the search for a good solution for the problem at hand.