Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the differences between genetic algorithms and evolution strategies?

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?

like image 984
TravisG Avatar asked Oct 16 '11 20:10

TravisG


People also ask

Is genetic algorithm same as evolutionary 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.

What is genetic algorithm how do they relate to evolution?

The genetic algorithm is a method for solving both constrained and unconstrained optimization problems that is based on natural selection, the process that drives biological evolution. The genetic algorithm repeatedly modifies a population of individual solutions.

What are the main similarities and differences between evolutionary programming and genetic programming?

Evolutionary programming mainly uses mutation. Evolutionary programming is one of the four major evolutionary algorithm paradigms. It is similar to genetic programming, but the structure of the program to be optimized is fixed, while its numerical parameters are allowed to evolve.

What are differences between real valued GA and evolutionary strategies?

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.


2 Answers

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).

like image 159
Stephan Avatar answered Oct 11 '22 08:10

Stephan


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

like image 45
pkoperek Avatar answered Oct 11 '22 08:10

pkoperek