private static void GeneticThenAnnealingTtp1(Problem.Problem problem, string algorithmSrcFilePath,
                                                     string outputFilePath,
                                                     string logOutputType)
        {
            var geneticTtp1Params = Loader.Loader.LoadGeneticTtp1Params(algorithmSrcFilePath);

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

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

            var annealingTtp1Params = Loader.Loader.LoadAnnealingTtp1Params(algorithmSrcFilePath);

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

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

            var hybridParams = new GaThenSATtp1Parameters
            {
                GeneticParameters   = geneticTtp1Params,
                AnnealingParameters = annealingTtp1Params,
            };

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

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

            var hybrid = new GaThenSaTtp1(problem, hybridParams);

            hybrid.Execute(logger);
        }
 public void LogGeneticThenSaTTp1Intro(GaThenSATtp1Parameters parameters)
 {
     using (var file = new System.IO.StreamWriter(OutputPath, true))
     {
         file.WriteLine("NUMBER OF ITERATIONS:" + parameters.GeneticParameters.NumAlgorithmIterations);
         file.WriteLine("POPULATION SIZE:" + parameters.GeneticParameters.PopulationSize);
         file.WriteLine("NUMBER OF GENERATIONS:" + parameters.GeneticParameters.NumGenerations);
         file.WriteLine("MUTATION PROBABILITY:" + parameters.GeneticParameters.MutationProbability);
         file.WriteLine("CROSSING PROBABILITY:" + parameters.GeneticParameters.CrossProbability);
         file.WriteLine("TOURNAMENT SIZE:" + parameters.GeneticParameters.TournamentSize);
         file.WriteLine("NEIGHBOURHOOD SIZE:" + parameters.AnnealingParameters.NeighbourhoodSize);
         file.WriteLine("INITIAL TEMPERATURE:" + parameters.AnnealingParameters.InitialTemperature);
         file.WriteLine("TEMPERATURE PERCENTAGE DROP PER ANNEALING CYCLE:" +
                        parameters.AnnealingParameters.TemperaturePercentageDropPerCycle);
         if (LogOutputType == AlgorithmLogOutput)
         {
             file.WriteLine("GENERATION/ANNEALING CYCLE;BEST FITNESS;AVERAGE FITNESS; WORST FITNESS;" +
                            "GLOBAL BEST FITENSS; CURRENT FITNESS");
         }
     }
 }