iterativeCrossover

inline suspend fun <V, F> PanmicticEvolveScope<V, F>.iterativeCrossover(chance: Double, parallelismLimit: Int, crossinline crossover: suspend (chromosome1: Chromosome<V, F>, chromosome2: Chromosome<V, F>, random: Random) -> Unit)

Executes CrossoverType.Iterative crossing.

Example:

val elitism = 2

Population before: 0, 1, 2, 3, 4, 5, 6
Crossover pairs: 0 to 6, 1 to 5, 2 to 4
Population after: 0, 1, [2-4], 3, [4-2], [5-1], [6-0]

Parameters

chance

chance of crossover between a pair of chromosomes

parallelismLimit

limit of parallel workers

crossover

specific crossing action (How chromosomes will be crossed)

See also