Beispiel #1
0
        public String Calculate(Parameters parameters)
        {
            ParametersEntityModel parametersModel = _parser.GetParametersDBModel(parameters);
            ParametersEntityModel alreadyExisting = _parametersRepository.FindOrReturnNull(parametersModel);
            if (alreadyExisting == null)
            //if(true)

            {
                _parametersRepository.InsertParameters(parametersModel);

                var greedyAlgorithmBuilder = new GreedyAlgoritmBuilder();
                var algorithm = greedyAlgorithmBuilder.GetAlgorithm(parameters);
                var anwser = algorithm.CalculateString();
                AnswerEntityModel anwserModel = new AnswerEntityModel
                {
                    data = anwser.ToString(),
                    ParametersID = parametersModel.ParametersID
                };
                _anwserRepository.InsertAnswer(anwserModel);
                return anwser.ToString();
            }
            else
            {
                return
                    _anwserRepository.GetAnswerList()
                        .Single(x => x.ParametersID == alreadyExisting.ParametersID).data;
            }
        }
Beispiel #2
0
        public Parameters ParseAlgorithmParameters(Stream stream)
        {
            var parameters = new Parameters();
            var reader = new StreamReader(stream);
            try
            {
                reader.ReadLine();
                parameters.Alpha = int.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.Betta = int.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.Q = int.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.DefaultPheromone = double.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.EvaporationRate = double.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.GreedyRate = double.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.Iterations = int.Parse(reader.ReadLine());
                reader.ReadLine();
                parameters.IterationsWithoutChanges = int.Parse(reader.ReadLine());
                reader.ReadLine();

                var tokens = new List<List<string>>();
                tokens.Add(reader.ReadLine().Split().ToList());
                for (var i = 1; i < tokens.First().Count; i++)
                {
                    tokens.Add(reader.ReadLine().Split().ToList());
                }
                var matrix = new List<List<int>>();
                for (var i = 0; i < tokens.Count; i++)
                {
                    matrix.Add(new List<int>());
                    for (var j = 0; j < tokens.Count; j++)
                    {
                        matrix[i].Add(int.Parse(tokens[i][j]));
                    }
                    if (tokens[i].Count != tokens[0].Count)
                    {
                        throw new Exception();
                    }
                }
                parameters.Matrix = matrix;
            }
            catch (Exception)
            {
                throw new Exception();
            }
            finally
            {
                reader.Close();
            }
            return parameters;
        }
Beispiel #3
0
 public ParametersViewModel GetParametersViewModel(Parameters sourceParameters)
 {
     var parameters = new ParametersViewModel();
     parameters.Alpha = sourceParameters.Alpha;
     parameters.Betta = sourceParameters.Betta;
     parameters.DefaultPheromone = sourceParameters.DefaultPheromone;
     parameters.EvaporationRate = sourceParameters.EvaporationRate;
     parameters.GreedyRate = sourceParameters.EvaporationRate;
     parameters.Iterations = sourceParameters.Iterations;
     parameters.IterationsWithoutChanges = sourceParameters.IterationsWithoutChanges;
     parameters.Q = sourceParameters.Q;
     parameters.MatrixString = MatrixToString(sourceParameters.Matrix);
     return parameters;
 }
Beispiel #4
0
 public ParametersEntityModel GetParametersDBModel(Parameters parameters)
 {
     var model = new ParametersEntityModel();
     model.Alpha = parameters.Alpha;
     model.Betta = parameters.Betta;
     model.DefaultPheromone = parameters.DefaultPheromone;
     model.EvaporationRate = parameters.EvaporationRate;
     model.GreedyRate = parameters.EvaporationRate;
     model.Iterations = parameters.Iterations;
     model.IterationsWithoutChanges = parameters.IterationsWithoutChanges;
     model.Q = parameters.Q;
     model.MatrixString = MatrixToString(parameters.Matrix);
     return model;
 }
Beispiel #5
0
 public Parameters GetAlgorithmParameters(ParametersViewModel sourceParameters)
 {
     var parameters = new Parameters();
     parameters.Alpha = sourceParameters.Alpha;
     parameters.Betta = sourceParameters.Betta;
     parameters.DefaultPheromone = sourceParameters.DefaultPheromone;
     parameters.EvaporationRate = sourceParameters.EvaporationRate;
     parameters.GreedyRate = sourceParameters.EvaporationRate;
     parameters.Iterations = sourceParameters.Iterations;
     parameters.IterationsWithoutChanges = sourceParameters.IterationsWithoutChanges;
     parameters.Q = sourceParameters.Q;
     parameters.Matrix = StringToMatrix(sourceParameters.MatrixString);
     return parameters;
 }