Package-level declarations

Types

Link copied to clipboard
sealed interface CrossoverType

CrossoverType describes the strategy of the crossing stage in PanmicticGA

Functions

Link copied to clipboard
inline suspend fun <V, F> PanmicticEvolveScope<V, F>.crossover(chance: Double, parallelismLimit: Int, crossoverType: CrossoverType, crossinline crossover: suspend (chromosome1: Chromosome<V, F>, chromosome2: Chromosome<V, F>, random: Random) -> Unit)

Performs a crossover step for population in PanmicticGA that modify in-place the input chromosomes.

Link copied to clipboard
@JvmName(name = "cxBlendDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxBlend(chance: Double, alpha: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxBlendFloatArray")
suspend fun <F> PanmicticEvolveScope<FloatArray, F>.cxBlend(chance: Double, alpha: Float, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes a blend crossover that modify in-place the input chromosomes. The blend crossover expects Chromosome.value of floating point numbers.

Link copied to clipboard
@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 = "cxKPointShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, 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)

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

Link copied to clipboard
@JvmName(name = "cxOnePointArray")
suspend fun <T, F> PanmicticEvolveScope<Array<T>, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointBooleanArray")
suspend fun <F> PanmicticEvolveScope<BooleanArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointByteArray")
suspend fun <F> PanmicticEvolveScope<ByteArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointCharArray")
suspend fun <F> PanmicticEvolveScope<CharArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxOnePoint(chance: Double = 0.9, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointFloatArray")
suspend fun <F> PanmicticEvolveScope<FloatArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointLongArray")
suspend fun <F> PanmicticEvolveScope<LongArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)
@JvmName(name = "cxOnePointMutableList")
suspend fun <T, F> PanmicticEvolveScope<MutableList<T>, F>.cxOnePoint(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

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

Link copied to clipboard
@JvmName(name = "cxOrderedIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.cxOrdered(chance: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes an ordered crossover (OX) on the input chromosome values. The two value are modified in place. This crossover expects Chromosome.value as IntArray. Mixes indexes without conflicts, preserving parental relationships.

Link copied to clipboard
@JvmName(name = "cxSimulatedBinaryDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxSimulatedBinary(chance: Double, eta: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes a simulated binary crossover that modify in-place the input chromosomes. The simulated binary crossover expects Chromosome.value of floating point numbers.

Link copied to clipboard
@JvmName(name = "cxSimulatedBinaryBoundedDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.cxSimulatedBinaryBounded(chance: Double, eta: Double, low: Double, up: Double, parallelismLimit: Int = parallelismConfig.workersCount, crossoverType: CrossoverType = CrossoverType.Iterative)

Executes a simulated binary crossover that modify in-place the input chromosomes. The simulated binary crossover expects Chromosome.value of floating point numbers.

Link copied to clipboard
@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 = "cxUniformShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, 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)

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

Link copied to clipboard
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.

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

Executes CrossoverType.Randomly crossing.