コード例 #1
0
        public GeneticPeriodicTabu(Problem.Problem problem, GeneticPeriodicTabuParameters parameters)
        {
            Problem = problem;
            Genetic = new GaTtp1(problem, parameters.GeneticParameters);

            var tabuParameters = new TabuParameters
            {
                NeighbourhoodSize      = parameters.TabuParameters.NeighbourhoodSize,
                NumAlgorithmIterations = 1,
                NumTabuSearches        = parameters.TabuParameters.NumTabuSearches,
                TabuSize = parameters.TabuParameters.TabuSize,
            };

            Parameters = parameters;
            Parameters.TabuParameters = tabuParameters;

            Tabu = new TabuTtp1(problem, tabuParameters);
        }
コード例 #2
0
        public GaThenSaTtp1(Problem.Problem problem, GaThenSATtp1Parameters parameters)
        {
            Problem = problem;
            Genetic = new GaTtp1(problem, parameters.GeneticParameters);

            var annealingParams = new AnnealingParameters
            {
                InitialTemperature                = parameters.AnnealingParameters.InitialTemperature,
                NeighbourhoodSize                 = parameters.AnnealingParameters.NeighbourhoodSize,
                NumAlgorithmIterations            = 1,
                NumAnnealingCycles                = parameters.AnnealingParameters.NumAnnealingCycles,
                TemperaturePercentageDropPerCycle = parameters.AnnealingParameters.TemperaturePercentageDropPerCycle,
            };

            Parameters = parameters;
            Parameters.AnnealingParameters = annealingParams;

            Annealing = new AnnealingTtp1(problem, annealingParams);
        }
コード例 #3
0
        private static void GeneticTtp1(Problem.Problem problem, string algorithmSrcFilePath, string outputFilePath,
                                        string logOutputType)
        {
            var algorithmParams = Loader.Loader.LoadGeneticTtp1Params(algorithmSrcFilePath);

            if (algorithmParams == null)
            {
                Console.WriteLine("Error reading genetic ttp1's configuration src file.");
                return;
            }

            Console.WriteLine("Done reading genetic ttp1's configuration src file.");

            var logger = new Logger.Logger(outputFilePath, logOutputType);

            try
            {
                logger.LogGeneticTtp1Intro(algorithmParams);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                Console.WriteLine("Error writing to the log output file.");
                return;
            }

            void logGeneration(int generation, double bestFitness, double averageFitness, double worstFitness)
            {
                logger.LogGeneticTtp1Generation(generation, bestFitness, averageFitness, worstFitness);
            }

            void logOutro(List <double> bestFitnesses)
            {
                logger.LogOutro(bestFitnesses);
            }

            var algorithm = new GaTtp1(problem, algorithmParams);

            algorithm.Execute(logGeneration, logOutro);
        }