Package-level declarations

Functions

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

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

Link copied to clipboard
@JvmName(name = "mutFlipBitBooleanArray")
suspend fun <F> PanmicticEvolveScope<BooleanArray, F>.mutFlipBit(chance: Double, flipBitChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutFlipBitIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.mutFlipBit(chance: Double, flipBitChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)

Flip the value of the attributes of the input chromosome. The chromosome is expected to be a BooleanArray. This mutation is usually applied on boolean individuals.

Link copied to clipboard
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.mutGaussian(mean: Double, stddev: Double, chance: Double, gaussianChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)

Applies a gaussian mutation of mean mean and standard deviation stddev on the input chromosome. This mutation expects Chromosome.value of floating point numbers.

Link copied to clipboard
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.mutPolynomialBounded(eta: Double, low: Double, up: Double, chance: Double, polynomialBoundedChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)

Polynomial mutation as implemented in original NSGA-II algorithm in C by Deb. This mutation expects Chromosome.value of floating point numbers.

Link copied to clipboard
@JvmName(name = "mutShuffleIndexesArray")
suspend fun <T, F> PanmicticEvolveScope<Array<T>, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesBooleanArray")
suspend fun <F> PanmicticEvolveScope<BooleanArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesByteArray")
suspend fun <F> PanmicticEvolveScope<ByteArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesCharArray")
suspend fun <F> PanmicticEvolveScope<CharArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesFloatArray")
suspend fun <F> PanmicticEvolveScope<FloatArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesLongArray")
suspend fun <F> PanmicticEvolveScope<LongArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesShortArray")
suspend fun <F> PanmicticEvolveScope<ShortArray, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutShuffleIndexesMutableList")
suspend fun <T, F> PanmicticEvolveScope<MutableList<T>, F>.mutShuffleIndexes(chance: Double, shuffleIndexesChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)

Executes a shuffle the attributes of the input chromosome. Usually this mutation is applied on vector of indices.

Link copied to clipboard
@JvmName(name = "mutUniformDoubleArray")
suspend fun <F> PanmicticEvolveScope<DoubleArray, F>.mutUniform(low: Double, up: Double, chance: Double, uniformChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutUniformIntArray")
suspend fun <F> PanmicticEvolveScope<IntArray, F>.mutUniform(low: Int, up: Int, chance: Double, uniformChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)
@JvmName(name = "mutUniformLongArray")
suspend fun <F> PanmicticEvolveScope<LongArray, F>.mutUniform(low: Long, up: Long, chance: Double, uniformChance: Double, parallelismLimit: Int = parallelismConfig.workersCount)

Executes a uniform mutation for the attributes of the input chromosome.