package org.kevoree.library.reasoner.ecj;
import ec.EvolutionState;
import ec.Individual;
import ec.Problem;
import ec.simple.SimpleFitness;
import ec.simple.SimpleProblemForm;
public class SimpleKevoreeProblem extends Problem implements SimpleProblemForm {
public void evaluate(EvolutionState state, Individual ind,
int subpopulation, int threadnum) {
if (ind.evaluated) return;
if (!(ind instanceof KevoreeIndividual))
state.output.fatal("Whoa! It's not a KevoreeIndividual!!!",null);
KevoreeIndividual ki = (KevoreeIndividual)ind;
float fitness = MultiObjectiveKevoreeProblem.evaluateFunctionnality(ki, 0, 25);
Float f = new Float(fitness);
setFitness(state, ki, f.intValue());
}
private void setFitness(EvolutionState state, KevoreeIndividual ki, int i) {
if (!(ki.fitness instanceof SimpleFitness)) {
state.output.fatal("Whoa! It's not a SimpleFitness!!!", null);
}
((SimpleFitness) ki.fitness).setFitness(state, i, i >= 99); // the
// fitness
// is ideal
// if the
// fitness
// is
// superior
// or equal
// to 99 in
// this
// problem
ki.evaluated = true;
}
}