Beispiel #1
0
        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))
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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));
 }
Beispiel #4
0
        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);
        }
Beispiel #6
0
 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);
        }