2

There is phase in genetic algorithm where we should choose to crossover the chromosomes from parents to offspring.

It is easy to do via binary form.

But what to do if we encodes the chromosomes using the value encoding?

Let's say one bit in my chromosomes is a DOUBLE type value, let's say 0.99, its range is (0-1) since it will represent a probability.

How to crossover this DOUBLE number?

Convert to binary to crossover then convert back...?

manlio
  • 18,345
  • 14
  • 76
  • 126
Albert Gao
  • 3,653
  • 6
  • 40
  • 69
  • By probabilities do you mean that each chromosome's alleles must sum to 1? Or do you mean that each allele has its own probability? If it is the latter you can probably just do single point crossover... – DMML May 04 '16 at 14:39
  • @DMlash Hi, thanks for the reply, each allele has its own probability. How to do single point crossover against a double typed value? I know how to do it against a binary value.. – Albert Gao May 04 '16 at 14:59
  • I suppose it depends on the problem you're solving and whether it even makes sense to do so in the first place. If it does make sense then, as you say, each chromosome is a vector of real-valued alleles of length n. Then you draw a uniform random value in the range of [1,n]; we'll call this value S. For each of the parents you keep the alleles up to the floor(S) position (I.e., if the value is 5.333 then you keep the elements in position 1,2,3,4,5) and crossover the values at the ceiling(S) to n positions (I.e., 6,7,8,...,n). – DMML May 04 '16 at 17:31
  • 1
    Sounds like a school problem: check out this http://stackoverflow.com/questions/36827961/genetic-algorithm-encoding-technique-to-be-used-in-this-scenario?noredirect=1#comment61326649_36827961 – Ray May 04 '16 at 20:24

1 Answers1

0

You could use the blend crossover operator (the variant with α = 0):

p1    first parent
p2    second parent
u     random number in [0, 1]

offspring = (1 - u) * p1 + u * p2

Assuming p1 < p2, this crossover operator creates a random solution in the range [p1, p2].

The blend crossover operator has the interesting property that if the difference between parents is small, the difference between the child and parent solutions is also small. So the spread of current population dictates the spread of solutions in the resulting population (this is a form of adaptation).

A more advanced version of the blend crossover operator (BLX-α) and another well known operator (Simulated Binary Crossover) are described in Self-Adaptive Genetic Algorithms with Simulated Binary Crossover by Kalyanmoy Deb and Hans-Georg Beyer (a short summary here).


Differential Evolution is another possibility.

manlio
  • 18,345
  • 14
  • 76
  • 126