N-point crossover policy. For each iteration a random crossover point is selected and the first part from each parent is copied to the corresponding child, and the second parts are copied crosswise. Example (2-point crossover):
-C- denotes a crossover point -C- -C- -C- -C- p1 = (1 0 | 1 0 0 1 | 0 1 1) X p2 = (0 1 | 1 0 1 0 | 1 1 1) \----/ \-------/ \-----/ \----/ \--------/ \-----/ || (*) || || (**) || VV (**) VV VV (*) VV /----\ /--------\ /-----\ /----\ /--------\ /-----\ c1 = (1 0 | 1 0 1 0 | 0 1 1) X c2 = (0 1 | 1 0 0 1 | 0 1 1)
This policy works only on {@link AbstractListChromosome}, and therefore it is parameterized by T. Moreover, the chromosomes must have same lengths.
@param < T> generic type of the {@link AbstractListChromosome}s for crossover
@since 3.1