int generation = 0;
@Override
public boolean isSatisfied(Population population) {
Chromosome fittestChromosome = population.getFittestChromosome();
if (generation == 1 || generation % 10 == 0) {
System.out.println("Generation " + generation + ": " + fittestChromosome.toString());
}
generation++;
double fitness = fittestChromosome.fitness();
if (Precision.equals(fitness, 0.0, 1e-6)) {
return true;
} else {
return false;
}
}
};
System.out.println("Starting evolution ...");
// run the algorithm
Population finalPopulation = ga.evolve(initial, stoppingCondition);
// Get the end time for the simulation.
long endTime = System.currentTimeMillis();
// best chromosome from the final population
Chromosome best = finalPopulation.getFittestChromosome();
System.out.println("Generation " + ga.getGenerationsEvolved() + ": " + best.toString());
System.out.println("Total execution time: " + (endTime - startTime) + "ms");
}