<p>If crossover is excluded from genetic algorithms, they become something between the gradient descent and the simulated annealing. The main effect of crossover consists in the exchange of parts of different solutions.  If an optimization task can be loosely decomposed into somewhat independent subtasks, and this decomposition is reflected in genes, then crossover will increase performance of GAs. For example, if there is a function f(x,y)=g(x)+h(y), and x and y are encoded consequently in the genome, and e.g. g(x) has larger influence, then the part of genome that stands for x will be optimized in the first place, and it will become nearly the same for the whole population thanks to crossover. After this, h(y) term will be optimized. That is, crossover helps to loosely decompose the task into subtasks without prior knowledge (but dependent on the encoding scheme), if it is possible (otherwise it will yield no benefit, or even will make search less efficient). This is actually the main additional metaheuristic of GAs in comparison with other metaheuristic optimization methods.</p>

<p>Double-point crossover (or other more “clutter” types of crossover) can be more beneficial, if the most crucial parts of solutions are encoded in the middle of the genome or if they are placed in separate locations. The simplest example is the function f(x,y,z)=h(x,z)+r(y)+g(z), where h(x,z) has the highest influence, and genes encode the string xyz. Single-point crossover will prefer to take x from one parent, and z from another parent. However, (x,z) determine the solution quality together. If one individual will occasionally have optimal components (x*,z*), they will not appear simultaneously in its children after single-point crossover, so it will be more difficult for these parts of the genome to stabilize.</p>

CC BY-SA 3.0
2014-01-28T13:14:18.993Z
2014-01-28T13:14:18.993Z
Necro0x0Der
<p>You may have a look at the article "The Analysis of Evolutionary Algorithms — A Proof That Crossover Really Can Help" published in 2002 by Jansen and Wegener in the journal Algorithmica. This might not really answer your two questions, but at least it shows that your statement ("It seems to me that one can obtain similar results with algorithms that do not contain crossover.") does not hold and that crossover can have an important impact in evolutionary algorithms.</p>

CC BY-SA 3.0
2014-01-29T01:50:17.697Z
2014-01-29T01:50:17.697Z
Dennis Weyland
<p>It depends. Evolutionary algorithms are highly sensitive to the state space of the fitness function. In general crossover gives you nothing better than flipping a random coin. On some fitness functions like maximize the number of 1 bits, crossover speeds convergence at an amazing rate.</p>

<p>If you know little about your fitness function, keep track of how many times crossover(A,B) has yielded a fitter result than A or B.  Report this result as part of your analysis of the fitness landscape.</p>

CC BY-SA 3.0
2014-01-30T21:07:31.223Z
Interesting. Is there any kind of rule allowing to know for which "type" of fitness function and fitness landscape are crossover beneficial or detrimental/useless?
Remi.b
CC BY-SA 3.0
2014-01-30T21:25:46.460Z
In general no, because you run into the halting problem. Usually the best GA model is an encoding of the fitness landscape that is smooth to your genetic operators (mutation/crossover/....) For example if you are sorting things you might want a sensible permutation encoding of the landscape instead of assigning a random bitstring to a random permutation. Try reading Ashlock's book. http://caronte.dma.unive.it/~paolop/papers/ashlock_book.pdf
Chad Brewbaker
CC BY-SA 3.0
2014-01-30T16:47:52.290Z
2014-01-30T16:47:52.290Z
Chad Brewbaker
<p>My questions concern the use of crossovers in genetic algorithms. The three basic ingredients of genetic algorithms are:</p>

<ul>
<li>selection</li>
<li>mutation</li>
<li>crossover</li>
</ul>

<p>If we think of genetic algorithm acting on binary strings…</p>

<p>Crossover is the process by which two parent strings get mixed to give born to offspring strings. For example: 11000 and 00010 can create the offspring 11010 by crossover only.</p>

<p>In some genetic algorithm people authorize double-crossover. For example the two parents: 110011 and 001100 can give birth to 111111.</p>

<p>I don't fully understand the advantageous of crossovers! It seems to me that one can obtain similar results with algorithms that do not contain crossover.</p>

<hr>

<p><strong>My questions</strong></p>

<ul>
<li><p>Under what conditions is the use of crossover in genetic algorithm beneficial? why?</p></li>
<li><p>Under what conditions is the use of double-crossover more beneficial than single crossover? why? What about triple crossover?</p></li>
</ul>

<p>When I say "Under what conditions", I mean "for what <a href="http://en.wikipedia.org/wiki/Fitness_landscape" rel="noreferrer">fitness landscape</a>" or "for what problem type".</p>

<p>By fitness landscape, I mean a mapping of each possibility to fitness (reproductive success) in a hyperspace of $n+1$ dimensions where $n$ is the length of the string (the additional dimension being the fitness).</p>

<pr.probability><genetic-algorithms><search-problem>
The use of crossovers in Genetic Algorithm
Remi.b
# The use of crossovers in Genetic Algorithm

(Asked by: username_0 on 2014-01-27)

My questions concern the use of crossovers in genetic algorithms. The three basic ingredients of genetic algorithms are:

* selection
* mutation
* crossover

If we think of genetic algorithm acting on binary strings…

Crossover is the process by which two parent strings get mixed to give born to offspring strings. For example: 11000 and 00010 can create the offspring 11010 by crossover only.

In some genetic algorithm people authorize double-crossover. For example the two parents: 110011 and 001100 can give birth to 111111.

I don't fully understand the advantageous of crossovers! It seems to me that one can obtain similar results with algorithms that do not contain crossover.

---

**My questions**

* Under what conditions is the use of crossover in genetic algorithm beneficial? why?
* Under what conditions is the use of double-crossover more beneficial than single crossover? why? What about triple crossover?

When I say "Under what conditions", I mean "for what [fitness landscape](http://en.wikipedia.org/wiki/Fitness_landscape)" or "for what problem type".

By fitness landscape, I mean a mapping of each possibility to fitness (reproductive success) in a hyperspace of $n+1$ dimensions where $n$ is the length of the string (the additional dimension being the fitness).

**Tags:** pr.probability, genetic-algorithms, search-problem


---

## 3 answers

### Answer by username_1 on 2014-01-28. Score: 7 | Accepted answer

If crossover is excluded from genetic algorithms, they become something between the gradient descent and the simulated annealing. The main effect of crossover consists in the exchange of parts of different solutions. If an optimization task can be loosely decomposed into somewhat independent subtasks, and this decomposition is reflected in genes, then crossover will increase performance of GAs. For example, if there is a function f(x,y)=g(x)+h(y), and x and y are encoded consequently in the genome, and e.g. g(x) has larger influence, then the part of genome that stands for x will be optimized in the first place, and it will become nearly the same for the whole population thanks to crossover. After this, h(y) term will be optimized. That is, crossover helps to loosely decompose the task into subtasks without prior knowledge (but dependent on the encoding scheme), if it is possible (otherwise it will yield no benefit, or even will make search less efficient). This is actually the main additional metaheuristic of GAs in comparison with other metaheuristic optimization methods.

Double-point crossover (or other more “clutter” types of crossover) can be more beneficial, if the most crucial parts of solutions are encoded in the middle of the genome or if they are placed in separate locations. The simplest example is the function f(x,y,z)=h(x,z)+r(y)+g(z), where h(x,z) has the highest influence, and genes encode the string xyz. Single-point crossover will prefer to take x from one parent, and z from another parent. However, (x,z) determine the solution quality together. If one individual will occasionally have optimal components (x\*,z\*), they will not appear simultaneously in its children after single-point crossover, so it will be more difficult for these parts of the genome to stabilize.


---

### Answer by username_2 on 2014-01-29. Score: 1

You may have a look at the article "The Analysis of Evolutionary Algorithms — A Proof That Crossover Really Can Help" published in 2002 by Jansen and Wegener in the journal Algorithmica. This might not really answer your two questions, but at least it shows that your statement ("It seems to me that one can obtain similar results with algorithms that do not contain crossover.") does not hold and that crossover can have an important impact in evolutionary algorithms.


---

### Answer by username_3 on 2014-01-30. Score: 0

It depends. Evolutionary algorithms are highly sensitive to the state space of the fitness function. In general crossover gives you nothing better than flipping a random coin. On some fitness functions like maximize the number of 1 bits, crossover speeds convergence at an amazing rate.

If you know little about your fitness function, keep track of how many times crossover(A,B) has yielded a fitter result than A or B. Report this result as part of your analysis of the fitness landscape.

> **Comments:**
> **username_0**: Interesting. Is there any kind of rule allowing to know for which "type" of fitness function and fitness landscape are crossover beneficial or detrimental/useless?  
> **username_3**: In general no, because you run into the halting problem. Usually the best GA model is an encoding of the fitness landscape that is smooth to your genetic operators (mutation/crossover/....) For example if you are sorting things you might want a sensible permutation encoding of the landscape instead of assigning a random bitstring to a random permutation. Try reading Ashlock's book. http://caronte.dma.unive.it/~paolop/papers/ashlock_book.pdf  

---

