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