What is the difference between genetic and evolutionary algorithms?

AlgorithmGenetic AlgorithmEvolutionary Algorithm

Algorithm Problem Overview


Is there a difference between genetic algorithms and evolutionary algorithms?

I have read multiple papers, talking about genetic or evolutionary algorithms, and while very similar, I think they may not be the same thing.

Algorithm Solutions


Solution 1 - Algorithm

A genetic algorithm is a class of evolutionary algorithm. Although genetic algorithms are the most frequently encountered type of evolutionary algorithm, there are other types, such as Evolution Strategy. So, evolutionary algorithms encompass genetic algorithms, and more.

Solution 2 - Algorithm

Genetic algorithms use crossover (hence the 'gene' in their name) and mutation to search the space of possible solutions.

Evolutionary programming uses primarily mutation.

As posted already, both are types of evolutionary algorithms.

Solution 3 - Algorithm

From Z. Michalewicz 1996 - "Genetic Algorithms + Data Structures = Evolution Programs" [p.289]:

> Evolution programs borrow heavily from genetic algorithms. However, > they incorporate problem-specific knowledge by using "natural" data > structures and problem-sensitive "genetic" operators. The basic > difference between GAs and EPs is that the former are classified as > weak, problem-independent methods, which is not the case for the > latter.

So a GA should be able to solve any of the problems one solves with an EP/EA, but an EP/EA won't be able to solve all problems solved by the GA. Of course, one pays with efficiency for the generality of GA.

Also, it seems that an algorithm is not an EA/EP if candidate solutions do not exchange information directly with each other (D. Simon 2013 - "Evolutionary Optimization Algorithms" [p.243]).

PS: D. Simon 2013 - "Evolutionary Optimization Algorithms" is an AMAZING book!

Solution 4 - Algorithm

I know this thread is old but I myself had trouble understanding it simply from one place, therefore explaining it here. Algorithms that follow laws of evolution are called "Evolutionary algorithms". There are two sub-classes of EA. One, Genetic Algorithm that uses crossover, along with mutation as GA operators.Second, Evolutionary programming, that uses only mutation as its operator.

Solution 5 - Algorithm

Evolutionary Strategies (Rechenberg 1973) and Genetic Algorithms (Holland 1975) are based on Darwins Evolutionary Theories. Evolutionary Strategies are the basis on Evolutionary Computation, hence Evolutionary Algorithms. In principal genetic algorithms (GA) are a sub-class of EA.

In contrast to EA, GA requires uses genetic representation in the sense of computational representation (genotype) and its real world representation (phenotype).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGolesView Question on Stackoverflow
Solution 1 - AlgorithmmdmaView Answer on Stackoverflow
Solution 2 - AlgorithmtymnView Answer on Stackoverflow
Solution 3 - AlgorithmKrzysztof VossView Answer on Stackoverflow
Solution 4 - AlgorithmAreehaView Answer on Stackoverflow
Solution 5 - AlgorithmDanielView Answer on Stackoverflow