Evolutionary algorithms. Evolutionary algorithms are inspired by Darwin’s Theory of Evolution and in the development of evolutionary computing, these algorithms allow tackling complex problems that arise in engineering and scientific fields.
[ hide ]
- 1 Origin
- 2 Operation and application
- 3 Requirements
- 4 Phases of an evolutionary algorithm
- 5 Source
They originated in 1960 introduced by John Holland who incorporated the methods of natural selection and survival into AI problem solving. Evolutionary algorithms arose by simulating processes of natural evolution as a result of this is stochastic optimization (Evolutionary algorithms).
Operation and application
A branch of artificial intelligence is evolutionary algorithms (AE), these are stochastic search and optimization methods that are inspired by genetics and the principles established by Darwin in 1859 on the evolution of species in the biological world.
These algorithms are modeled computationally by simulating natural selection and cross-linking of species through genetic recombination and mutation. They maintain a set of entities that represent possible solutions, which mix and compete with each other, so that the fittest are able to prevail over time, evolving towards better solutions each time.
In nature, the only thing to optimize is survival, and that in turn means maximizing various factors and minimizing others. An evolutionary algorithm, however, will typically be used to optimize only one function, not several related functions simultaneously. They have been successfully applied in problems of optimization, search, learning and simulation of dynamic systems, in problems with long and non-linear search spaces where other methods are not able to find solutions in a reasonable time.
This great family of algorithms is made up of different search methods, among which we can mention Genetic Programming, which consists of the automatic evolution of programs using ideas based on natural selection, it is sought that populations of programs evolve transmitting their inheritance In order to better adapt to the environment, individuals are more likely to reproduce, the measure of the quality of the individual will depend on the type of problem.
Evolutionary Programming that is based on the optimization of functions and is an abstraction of evolution at the species level, so the use of a recombination operator is not required (different species cannot cross each other). Evolutionary algorithms have a structure that can be applied to different problems, thus greatly favoring design and implementation tasks. The only requirement of the user who wants to apply this technique to solve a specific problem is to know how to program in any general-purpose language in which the evolutionary algorithm would code.
To obtain good results with these algorithms, it is necessary to know them in the smallest detail, since within the general scheme of an evolutionary algorithm, multiple components and parameters must be chosen, on which the quality of the result and the efficiency of the algorithm will depend. It also uses probabilistic selection. Evolutionary strategies are also found, they are computational methods that work with a population of individuals that belong to the real number domain, which through mutation and recombination processes evolve to achieve the optimum of objective function.
The Genetic Algorithms used fundamentally in the optimization of combinatorial problems, in them each chromosome is a data structure that represents one of the possible solutions of the problem search space.
Chromosomes undergo a process of evolution that involves evaluation, selection, crossover, and mutation. After several cycles of evolution the population should contain fitter individuals. Distribution estimation algorithms and other methods are also part of evolutionary algorithms.
An evolutionary algorithm consists of: finding on which parameters the problem depends, coding them into a chromosome, and applying the methods of evolution: sexual selection and reproduction with the exchange of information and alterations that generate diversity.
Phases of an evolutionary algorithm
An evolutionary algorithm generally follows these steps:
- Generate a random POPULATIONof N individuals.
- Evaluate the individuals of the POPULATION according to the objective function.
- Repeat during GENERATIONS iterations:
- Apply the selection operator to choose k individuals from the POPULATION
- Apply genetic operators to those k individuals to generate offspring
- Evaluate new individuals according to objective function
- Replace the worst individuals in POPULATION with the newly created individuals