async Task ExecuteRunHeuristic() { try { List <Problem> problems = null; IHeuristicConfigurationSetting settings = null; if (Context.Instance.Settings.GeneralSettings.MultiplesExecutions) { problems = Context.Instance.Problems; } else { problems = new List <Problem> { Context.Instance.Problems.Where(t => t.ID_Problem.Equals(DARPSelected)).ToList().First() } }; switch (Context.Instance.Settings.GeneralSettings.DefaultHeuristic) { case "ILS": settings = Context.Instance.Settings.ILSConfigurationSettings; break; default: settings = Context.Instance.Settings.ILSConfigurationSettings; break; } //Mostrar Splash splashController.ShowSplash(new SplashInfo()); RunMetaheuristicInput input = new RunMetaheuristicInput { Problems = problems, HeuristicSettings = settings, Random = new Random(1) }; RunMetaheuristicOutput output = await processController.Specific.RunMetaheuristic.ExecuteProcess(input); if (output != null) { Context.Instance.Solutions = output.Solutions; DARPResults = new ResultsViewModel(output.Solutions.First()); ILSEvolution = new ILSEvolutionViewModel(output.Solutions.First()); VNSOperators = new VNSOperatorsViewModel(output.Solutions.First()); AlgorithmSummary = new SummaryResultsViewModel(output.Solutions.First()); ChartsViewModel = new ChartsViewModel(output.Solutions.First()); HeuristicExecuted = true; TabSelected = 1; SetStatus(Constants.StatusType.Ok, String.Format(Properties.Resources.HEURISTIC_EXECUTED_SUCCESFULLY)); } else { SetStatus(Constants.StatusType.Ok, String.Format(Properties.Resources.HEURISTIC_EXECUTED_FAIL)); } } finally { splashController.HideSplash(); } }
static double _coef_Updater_Splash; //Coeficiente de actualizaciónd e Splash public ILSMetaheuristic(IHeuristicConfigurationSetting setting, Problem problem, Random random) { _ilsSettings = ((ILSConfigurationSettings)setting); _random = random; _problem = problem; _diversify = _DIVERSIFY_MAX; _vns = new VNSMetaheuristic(this._ilsSettings, _problem, _random); _perturbations = new Perturbations(_random, problem); _coef_Updater_Splash = 100 / (double)_ilsSettings.MaxILSIterations; }
public static IMetaheuristic CreateMetaheuristic(Constants.TypeMetaheuristics type, IHeuristicConfigurationSetting settings, Problem problem, Random random) { switch (type) { case Constants.TypeMetaheuristics.ILS: return(new ILSMetaheuristic(settings, problem, random)); default: return(new ILSMetaheuristic(settings, problem, random)); } }
public VNSMetaheuristic(IHeuristicConfigurationSetting setting, Problem problem, Random random) { HeuristicSettings = setting as ILSConfigurationSettings; _random = random; _problem = problem; }