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"); } } }