What are the differences between genetic algorithms and evolution strategies?
Asked Answered
S

5

31

I've read a couple of introductory sections of books as well as a few papers on both topics, and it looks to me that these two methods are pretty much exactly the same. That said, I haven't had the time to actually deeply research the topics yet, so I might be wrong.

What are the distinctions between genetic algorithms and evolution strategies? What makes them different, and where are they similar?

Splenius answered 16/10, 2011 at 20:50 Comment(0)
C
28

In evolution strategies, the individuals are coded as vectors of real numbers. On reproduction, parents are selected randomly and the fittest offsprings are selected and inserted in the next generation. ES individuals are self-adapting. The step size or "mutation strength" is encoded in the individual, so good parameters get to the next generation by selecting good individuals.

In genetic algorithms, the individuals are coded as integers. The selection is done by selecting parents proportional to their fitness. So individuals must be evaluated before the first selection is done. Genetic operators work on the bit-level (e.g. cutting a bit string into multiple pieces and interchange them with the pieces of the other parent or switching single bits).

That's the theory. In practice, it is sometimes hard to distinguish between both evolutionary algorithms, and you need to create hybrid algorithms (e.g. integer (bit-string) individuals that encodes the parameters of the genetic operators).

Catie answered 20/10, 2011 at 8:57 Comment(3)
I think the answer is a bit too general, considering that the standard and original GA genetic representation is not integers, but rather a binary bit string of 1s and 0s. Also selection is not limited to Fitness Proportionate selection, there are many others such as Tournament ... to avoid confusion maybe the answer should have been reworded slightly differently instead of infering that a GA must have this and that... etcMarzipan
I think it is a great introduction to the differences. What is the problem with calling the representation a set of integers? At a software level that's exactly how they are processed by the algorithm and it helps to visualise them as being similar to genetic code. The general advice is not to handle the representation as a string anyway, at least that's how I was trained.Innsbruck
Could you please give an example where ES and where GA is typically applied?Unilingual
S
6

Just stumbled on this thread when researching Evolution Strategies (ES).

As Paul noticed before, the encoding is not really the difference here, as this is an implementation detail of specific algorithms, although it seems more common in ES.

To answer the question, we first need to do a small step back and look at internals of an ES algorithm. In ES there is a concept of endogenous and exogenous parameters of the evolution. Endogenous parameters are associated with individuals and therefore are evolved together with them, exogenous are provided from "outside" (e.g. set constant by the developer, or there can be a function/policy which sets their value depending on the iteration no).

The individual k consists therefore of two parts:

  • y(k) - a set of object parameters (e.g. a vector of real/int values) which denote the individual genotype
  • s(k) - a set of strategy parameters (e.g. a vector of real/int values again) which e.g. can control statistical properties of mutation)

Those two vectors are being selected, mutated, recombined together.

The main difference between GA and ES is that in classic GA there is no distinction between types of algorithm parameters. In fact all the parameters are set from "outside", so in ES terms are exogenous.

There are also other minor differences, e.g. in ES the selection policy is usually one and the same and in GA there are multiple different approaches which can be interchanged.

You can find a more detailed explanation here (see Chapter 3): Evolution strategies. A comprehensive introduction

Scanlon answered 9/1, 2019 at 9:43 Comment(2)
I think this is the only correct answer in this thread - to extend it, due to the fact that in ES it's external params are also evolving (like centroid's position) ES can be also considered as finite-difference approximation of a gradient. Thank you for explanation and providing references!Strom
Absolutely, this should be the correct answer. Thanks for extending it as well @mtsokol, that was incredibly helpful!Feltie
U
3

In most newer textbooks on GA, real-valued coding is introduced as an alternative to the integer one, i.e. individuals can be coded as vectors of real numbers. This is called continuous parameter GA (see e.g. Haupt & Haupt, "Practical Genetic Algorithms", J.Wiley&Sons, 1998). So this is practically identical to ES real number coding.

With respect to parent selection, there are many different strategies published for GA's. I don't know them all, but I assume selection among all (not only the best has been used for some applications).

Uprear answered 8/5, 2013 at 11:30 Comment(0)
P
2

The main difference seems to be that a genetic algorithm represents a solution using a sequence of integers, whereas an evolution strategy uses a sequence of real numbers -- reference: http://en.wikipedia.org/wiki/Evolutionary_algorithm#

Pardo answered 16/10, 2011 at 21:5 Comment(0)
N
0

As the wikipedia source (http://en.wikipedia.org/wiki/Genetic_algorithm) and @Vaughn Cato said the difference in both techniques relies on the implementation. EA use real numbers and GA use integers.

However, in practice I think you could use integers or real numbers in the formulation of your problem and in your program. It depends on you. For instance, for protein folding you can say the set of dihedral angles form a vector. This is a vector of real numbers, but the entries are labeled by integers so I think you can formulate your problem and write you program based on an integer arithmetic. It is just an idea.

Ned answered 18/10, 2011 at 1:38 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.