cxUniform

@JvmName(name = "cxUniformArray")
suspend fun <T, F> PanmicticEvolveScope<Array<T>, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformBooleanArray")
suspend fun <F> PanmicticEvolveScope<BooleanArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformByteArray")
suspend fun <F> PanmicticEvolveScope<ByteArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformCharArray")
suspend fun <F> PanmicticEvolveScope<CharArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxUniform(chance: Double = 0.9, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformFloatArray")
suspend fun <F> PanmicticEvolveScope<FloatArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformLongArray")
suspend fun <F> PanmicticEvolveScope<LongArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformMutableList")
suspend fun <T, F> PanmicticEvolveScope<MutableList<T>, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxUniformShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, F>.cxUniform(chance: Double, chanceUniform: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes a uniform crossover that modify in-place the input chromosomes. The attributes are swapped according to the chanceUniform probability.

Parameters

chance

chance of crossover between a pair of chromosomes

chanceUniform

probability for index swapping

parallelismLimit

limit of parallel workers

crossoverType

describes the strategy of the crossing stage in PanmicticGA