A genetic algorithm (GA) is a search heuristic that mimics the process of natural evolution.
A genetic algorithm is an optimization heuristic that is inspired by the principles that drive biological evolution: variation (resulting from mutation and recombination), inheritance, and selection. In comparison to traditional search methods such as gradient descent and hill climbing, genetic algorithms have the ability to escape from local minima/maxima.
The functionality of genetic algorithms is defined by genetic operators and their strategies: generation of initial populations, crossover, mutation, candidate solutions, health assessment (fitness function). There are more different approaches to design the genetic operators and it's reasonable for different types of optimization tasks. This supports a high flexibility of genetic algorithms.
The population is defined as a collection of individuals with separately stored genetic information. An individual member of this population is defined as a set of proposed decisions, where a decision is a chromosome. After estimation, a GA will follow the most efficient chromosomes. This means that these candidates of solutions are evaluated using a fitness function that in some way scores them on their ability to solve the desired problem. This fitness calculation can be either single or multi-objective depending upon complexity of the problem being studied. Higher scoring solutions have "offspring," which are the result of occasionally applying random changes (mutations) to them. Often, recombination is also used, by mixing two or more high-scoring solutions together.
The powerfulness of GA can also be seen using a different type of population coding and symbol model presentation. In the model, we can easy represent different real nature values of characteristics in digital presentation. So, we can manipulate the values of different natures within a single goal (fitness function).
Genetic algorithms are a subset of the evolutionary-algorithm category. Traditionally, genetic algorithms represent solutions to the optimization problem as a series of 0s and 1s, although more recent approaches have involved more complex representations.
The related term genetic-programming refers to algorithms in which evolution is applied to code rather than to a more abstract representation of a solution.
Some examples of popular multi-objective genetic algorithms: NSGA-II, NSGA-III, SPEA-II, DE