public GaSettings ParseSettings() { GaSettings settings = new GaSettings(); var data = FileHandler.ReadFile(_data.SettingsFileName); if (data is null) { return(settings); } foreach (string t in data) { if (ParseLine(t, out double[] result, out GaVariables type))
public void ParseData(out GaSettings settings, out Instance instance) { settings = ParseSettings(); _classHandler = new Classes(settings.Architecture[0], settings.Architecture[settings.Architecture.Length - 1]); _samples = new List <Sample>(); var data = FileHandler.ReadFile(_data.TestDataFileName); for (var i = 0; i < data.Length; i++) { ParseLine(data[i], i + 1); } _classes = _classHandler.DefinedClasses(); instance = new Instance(_samples.ToArray(), _classes); }
public GaTrackerService( IGaUserService gaUserService, IRateCalculatorClient rateCalculatorClient, TrackAssetsSttings trackAssetsSttings, GaSettings gaSettings, bool isLive, string transactionAssetId, ILog log ) { _gaUserService = gaUserService; _rateCalculatorClient = rateCalculatorClient; _trackAssetsSttings = trackAssetsSttings; _gaSettings = gaSettings; _isLive = isLive; _transactionAssetId = transactionAssetId; _log = log.CreateComponentScope(nameof(GaTrackerService)); }
private static void Solve(string[] args) { IIoHandler inputManager = new IoHandler(); var data = inputManager.GetParameters(args); IParser parser = new Parser(data); Instance instance = parser.ParseData(); if (data.ExecuteAlgorithm) { GaSettings settings = parser.ParseSettings(); IAlgorithm algorithm = new Algorithm(instance, data.Time, settings); Solution solution = algorithm.Solve(true); parser.FormatAndSaveResult(solution); } else { ConsoleHandler.CheckResources(instance); } }
public GaSettings ParseSettings() { GaSettings settings = new GaSettings(); var data = _settingsHandler.ReadFile(); if (data is null) { return(settings); } for (var i = 0; i < data.Length; i++) { if (ParseLine(data[i], out double result, out GaVariables type)) { switch (type) { case GaVariables.MaxNoChange: settings.SetMaxIter((int)result); break; case GaVariables.Mortality: settings.SetMortality(result); break; case GaVariables.PopulationSize: settings.SetPopulationSize((int)result); break; case GaVariables.MutationProbability: settings.SetMutationProbability(result); break; } } } return(settings); }
public Algorithm(Instance instance, ExecutionTime time, GaSettings settings) : base(instance, time) { _settings = settings; }
static void Start(string[] args) { InputData inputData = IoHandler.GetParameters(args); IParser parser = new Parser(inputData); GaSettings settings = parser.ParseSettings(); Ga algorithm; switch (settings.Type) { case AlgorithmType.Generation: algorithm = new GenerationGa(parser); break; case AlgorithmType.Elimination: algorithm = new EliminationGa(parser); break; default: throw new ArgumentOutOfRangeException(); } Genome bestSolution = algorithm.Start(); Console.WriteLine("\n____________Proces is finished____________\n"); if (bestSolution != null) { Console.Write("Best result is: " + bestSolution.Fitness + ", with parameters: "); PrintParameters(bestSolution.Genes); } Console.WriteLine("\n____________Classification____________\n"); algorithm.Test(out double[][] givenClasses, out double[][] expectedOutput); bool[] correct = new bool[expectedOutput.Length]; for (int i = 0; i < expectedOutput.Length; i++) { correct[i] = true; Console.Write("Expected classes: "); for (int j = 0; j < expectedOutput[i].Length; j++) { Console.Write(expectedOutput[i][j].ToString("G0") + " "); } Console.Write("\tGiven classes: "); for (int j = 0; j < givenClasses[i].Length; j++) { Console.Write(givenClasses[i][j].ToString("G0") + " "); if (!(Math.Abs(expectedOutput[i][j] - givenClasses[i][j]) < double.Epsilon)) { correct[i] = false; } } Console.WriteLine(correct[i] ? "\tCorrect classification." : "\tIncorrect classification."); } int correctlyClassified = 0; int incorrectlyClassified = 0; for (int i = 0; i < correct.Length; i++) { if (correct[i]) { correctlyClassified++; } else { incorrectlyClassified++; } } Console.WriteLine("Correctly classified samples: " + correctlyClassified + ", incorrectly classified: " + incorrectlyClassified); }