package approach.simulation import approach.encoding.Format sealed class Individual(open val encoding: Format, var fitness: Double = 0.0) { abstract fun crossover(other: Individual): Individual abstract fun mutate(): Individual abstract fun calculateFitness(): Double fun updateFitness() { this.fitness = calculateFitness() } @Suppress("unused") companion object { const val CONFIGURATION_ROW_LENGTH = 64 const val CONFIGURATION_LENGTH = 8 * CONFIGURATION_ROW_LENGTH } }