package org.encog.examples.nonlinear.tsp.genetic;
import org.encog.examples.nonlinear.tsp.City;
import org.encog.solve.genetic.genes.IntegerGene;
import org.encog.solve.genetic.genome.CalculateGenomeScore;
import org.encog.solve.genetic.genome.Genome;
public class TSPScore implements CalculateGenomeScore {
private City[] cities;
public TSPScore(City[] cities)
{
this.cities = cities;
}
@Override
public double calculateScore(Genome genome) {
double result = 0.0;
int[] path = (int[])genome.getOrganism();
for (int i = 0; i < cities.length - 1; i++) {
City city1 = cities[path[i]];
City city2 = cities[path[i+1]];
final double dist = city1.proximity(city2);
result += dist;
}
return result;
}
public boolean shouldMinimize() {
return true;
}
}