internal void UpdateInfo() { // Porcentaje de avance int dataProgress = Convert.ToInt32(SplashGlobalData.GetSplashData <double>(API.DARP.Constants.SPLASH_PROGRESS)); if (dataProgress > 100) { SplashGlobalData.SetSplashData(API.DARP.Constants.SPLASH_PROGRESS, 0); dataProgress = 0; } else if (dataProgress < 0) { dataProgress = 0; } //Numero de problema string problem = SplashGlobalData.GetSplashData <string>(API.DARP.Constants.SPLASH_NAME_PROBLEM).ToString(); string repetition = SplashGlobalData.GetSplashData <string>(API.DARP.Constants.SPLASH_NUMBER_REPETITION).ToString(); string improvements = SplashGlobalData.GetSplashData <string>(API.DARP.Constants.SPLASH_ILS_IMPROVEMENTS).ToString(); string totalIterations = SplashGlobalData.GetSplashData <string>(API.DARP.Constants.SPLASH_TOTAL_ITERATIONS).ToString(); string bestSolution = SplashGlobalData.GetSplashData <string>(API.DARP.Constants.SPLASH_BEST_SOLUTION).ToString(); // Actualizar propiedades ProgressValue = dataProgress; NumberProblem = problem; NumberRepetition = repetition; ILSImprovements = improvements; TotalIterations = totalIterations; BestSolution = bestSolution; }
internal void UpdateInfo() { // Porcentaje de avance int dataProgress = Convert.ToInt32(SplashGlobalData.GetSplashData <double>(Constants.SPLASH_PROGRESS)); if (dataProgress > 100) { SplashGlobalData.SetSplashData(Constants.SPLASH_PROGRESS, 0); dataProgress = 0; } else if (dataProgress < 0) { dataProgress = 0; } // Actualizar propiedades ProgressValue = dataProgress; }
public static List <Solution> Optimization(RunMetaheuristicInput input) { var problems = input.Problems; //Set randomized value. _random = input.Random; List <Solution> Solutions = new List <Solution>(); var default_Metaheuristic = Constants.TypeMetaheuristics.ILS; IMetaheuristic metaheuristic = MetaheuristicFactory.CreateMetaheuristic(default_Metaheuristic, input.HeuristicSettings, input.Problems.First(), input.Random); //Ejecutar cada problema. foreach (var problem in problems) { //Primer paso. Preprocesar los problemas (ajustar ventanas de tiempo cuando sea posible). SplashGlobalData.SetSplashData(Constants.SPLASH_NAME_PROBLEM, problem.ID_Problem); SplashGlobalData.SetSplashData(Constants.SPLASH_PROGRESS, 0.0); //Create Solution for (int number_Repetition = 0; number_Repetition < input.HeuristicSettings.MaxRepetitions; number_Repetition++) { var watch = System.Diagnostics.Stopwatch.StartNew(); Solution solution = new Solution(problem.ID_Problem); DARPAlgorithms.BuildInitialSolution(ref solution, problem, ref _random); solution.InitialSolution = GenericCopier <Solution> .DeepCopy(solution); //Update Splash. SplashGlobalData.SetSplashData(Constants.SPLASH_NUMBER_REPETITION, number_Repetition + 1); SplashGlobalData.SetSplashData(Constants.SPLASH_PROGRESS, Convert.ToDouble(SplashGlobalData.GetSplashData <double>(Constants.SPLASH_PROGRESS)) + 1); //Execute Heuristic metaheuristic.ExecuteMetaheuristic(ref solution); watch.Stop(); solution.ExecutionTime = watch.ElapsedMilliseconds; Solutions.Add(solution); //Validation.Validator.ValidateSolution(ref solution, problem); } } return(Solutions); }