2 views

From what I've read so far they seem very similar. Differential evolution uses floating point numbers instead, and the solutions are called vectors? I'm not quite sure what that means. If someone could provide an overview with a little bit about the advantages and disadvantages of both.

by (108k points)

The main difference is the encoding, the genetic algorithm always encodes its individuals in a population as bit strings. The real number encoding of GA is usually called evolutionary strategies or genetic programming if using more complex data structures as encoding.

Differential evolution is also very prescriptive on how to perform recombination (mutation and crossover). The partner for the crossover is generated as follows. Suppose we have chosen x for the crossover, the "mutation" partner is chosen as follows

1. Pick a, b, c randomly from the population distinct from each other and distinct from x

2. Let V=a+FVi=ai+F(bi-ci) for each value of i=1,2…..,n.(b-c), where F is between 0 and 1,

Crossover

To cross x with V:

For i = 1 to n

if (random < crossover rate)

yi=vi

else

yi=xi

A crossover rate is a real number between 0 and 1.

On the plus side, there are a handful of results showing DEs are often more effective and/or more efficient than genetic algorithms. And when working in numerical optimization, it's nice to be able to represent things as actual real numbers instead of having to work your way around to a chromosomal kind of representation, first.

If you wish to learn about the Genetic Algorithm and Genetic Programming visit this Artificial Intelligence Course Designed by Industrial Experts.