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