pGA

inline fun <V, F> DistributedConfig<V, F>.pGA(population: PanmicticPopulation<V, F>, noinline fitnessFunction: (V) -> F? = null, config: PanmicticConfigScope<V, F>.() -> Unit): PanmicticGA<V, F>

Creates PanmicticGA as child for DistributedGA using Distributed Inheritance (see DistributedConfig) with Kotlin DSL.

PanmicticGA.random will be auto inherited from DistributedGA.random.

Example for OneMax task:

// init DistributedGA
dGA(
// configure common factory, fitnessFunction, population name and children (if already exist)
) {
// add Panmictic GA as child to Distributed GA
+pGA(
population = population(size = 50),
) {
elitism = 5

evolve {
selTournament(size = 3)
cxOnePoint(chance = 0.8)
mutFlipBit(chance = 0.2, flipBitChance = 0.01)
evaluation()
stopBy(maxIteration = 20) { bestFitness == 100 }
}
}

// set evolutionary strategy with evolve
evolve { (this = DistributedEvolveScope)
...
}
}

Parameters

population

population of PanmicticGA

fitnessFunction

fitness function for evaluation step, default value DistributedGA.fitnessFunction

config

scope function to initialize PanmicticGA