cxKPoint

@JvmName(name = "cxKPointArray")
suspend fun <T, F> PanmicticEvolveScope<Array<T>, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointBooleanArray")
suspend fun <F> PanmicticEvolveScope<BooleanArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointByteArray")
suspend fun <F> PanmicticEvolveScope<ByteArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointCharArray")
suspend fun <F> PanmicticEvolveScope<CharArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxKPoint(chance: Double = 0.9, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointFloatArray")
suspend fun <F> PanmicticEvolveScope<FloatArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointLongArray")
suspend fun <F> PanmicticEvolveScope<LongArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointMutableList")
suspend fun <T, F> PanmicticEvolveScope<MutableList<T>, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxKPointShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, F>.cxKPoint(chance: Double, count: Int, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes a K point crossover on the input sequence individuals. The two values are modified in place.

Example:

Count (K points) = 2
Parent 1: ++++++++
Parent 2: --------
Generated cross index: 1, 5
Child 1: ++----++
Child 2: --++++--

Parameters

chance

chance of crossover between a pair of chromosomes

count

k-points for crossover

parallelismLimit

limit of parallel workers

crossoverType

describes the strategy of the crossing stage in PanmicticGA