Ejemplo n.º 1
0
        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();
 }