static void Main(string[] args) { TSPFileLoader fileLoader = new TSPFileLoader(); fileLoader.LoadAndListTSPFiles(); TSPProblem problem = fileLoader.SelectAndLoadFile(); //problem.PrintDistanceMatrix(); Console.WriteLine("\nRandom Algorithm"); Algorithm randomAlgorithm = new RandomAlgorithm(problem); randomAlgorithm.PerformAlgorithm(); printAlgorithmResults(randomAlgorithm); Console.WriteLine("\nGreedy Algorithm"); Algorithm greedyAlgorithm = new GreedyAlgorithm(problem); greedyAlgorithm.PerformAlgorithm(); printAlgorithmResults(greedyAlgorithm); GeneticAlgorithmParameters parameters = readParameters(); Algorithm geneticAlgorithm = new GeneticAlgorithm(problem) { Parameters = parameters, Selection = new TournamentSelection(), Crossover = new OrderedCrossover(), Mutation = new InversionMutation() }; geneticAlgorithm.PerformAlgorithm(); printAlgorithmResults(geneticAlgorithm); }
public void PerformAlgorithm(GeneticAlgorithmParameters parameters) { GeneticAlgortihmLogger logger = new GeneticAlgortihmLogger(parameters, problem.ProblemName); population = generateRandomPopulation(parameters.PopulationSize); //population = generateGreedyPopulation(parameters.PopulationSize); BestIndividual = population[0]; evaluatePopulation(); logger.AppendLine(0, population); for (int i = 1; i <= parameters.Generations; i++) { population = generateNewPopulation(parameters.PopulationSize, parameters.CrossoverProb, parameters.TournamentSize); mutatePopulation(parameters.MutationProb); evaluatePopulation(); logger.AppendLine(i, population); } logger.WriteToFile(); }
public GeneticAlgortihmLogger(GeneticAlgorithmParameters parameters, string problemName) { this.parameters = parameters; this.problemName = problemName; csv = new StringBuilder(); }