What is the difference between genetic and evolutionary algorithms?

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!


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.


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.