/// <summary>
/// Setup and solve the TSP.
/// </summary>
public void Execute(IExampleInterface app)
{
this.app = app;
var builder = new StringBuilder();
initCities();
genetic = new BasicGeneticAlgorithm();
initPopulation(genetic);
genetic.MutationPercent = MUTATION_PERCENT;
genetic.PercentToMate = PERCENT_TO_MATE;
genetic.MatingPopulation = MATING_POPULATION_PERCENT;
genetic.Crossover = new SpliceNoRepeat(CITIES/3);
genetic.Mutate = new MutateShuffle();
int sameSolutionCount = 0;
int iteration = 1;
double lastSolution = Double.MaxValue;
while (sameSolutionCount < MAX_SAME_SOLUTION)
{
genetic.Iteration();
double thisSolution = genetic.Population.Best.Score;
builder.Length = 0;
builder.Append("Iteration: ");
builder.Append(iteration++);
builder.Append(", Best Path Length = ");
builder.Append(thisSolution);
Console.WriteLine(builder.ToString());
if (Math.Abs(lastSolution - thisSolution) < 1.0)
{
sameSolutionCount++;
}
else
{
sameSolutionCount = 0;
}
lastSolution = thisSolution;
}
Console.WriteLine(@"Good solution found:");
displaySolution();
}