// Optimization process private async void btStart_Clicked(object sender, RoutedEventArgs e) { btStart.Visibility = Visibility.Collapsed; btStop.Visibility = Visibility.Visible; cvPage.Children.Clear(); OptMethod(method); if (uniqueTest) { btRecreat.Visibility = Visibility.Collapsed; tbResults.Text = ""; OptMethod(method); if (routingTest == null) { routingTest = new RoutingTest(this.Optimizer, new RouteTable(pointCount), this.cvPage, this.tbResults); } routingTest.optimizer = this.Optimizer; await Task.Run(() => this.routingTest.Optimize()); } else if (method != 20) { tbResults.Text = "Initial parameters: " + List(InitialParameters) + "\r\n" + "Lower bounds for the parameters: " + List(lbp) + "\r\n" + "Upper bounds for the parameters: " + List(ubp) + "\r\n"; var x = Task.Run(() => (Optimizer.Optimize())); var Results = await x; tbResults.Text = tbResults.Text + "Initial fitness: " + Results.InfoList[InfoTypes.InitialFitness] + "\r\n" + "Final parameters: " + List(Results.OptimizedParameters) + "\r\n" + "Final fitness: " + $"{Results.InfoList[InfoTypes.FinalFitness],10:F6}" + "\r\n" + "Number of generations: " + Results.InfoList[InfoTypes.Generations] + "\r\n" + "Number of fitness evaluations: " + Results.InfoList[InfoTypes.Evaluations] + "\r\n" + "Best affinities in each generation: " + List((ArrayList)Results.InfoList[InfoTypes.Affinities]); } else { tbResults.Text = ""; Result[,] results = new Result[9, 2]; var x = Task.Run(() => (Optimizer.Optimize())); var Results = await x; tbResults.Text += "Final Method: " + ((Type)Results.InfoList[InfoTypes.SelectAlgType]).Name + "\n\n"; foreach (Result item in (ArrayList)Results.InfoList[InfoTypes.SelectAlgInfos]) { if (item.InfoList.ContainsKey(InfoTypes.SelectAlgFitness)) { tbResults.Text += ((int)item.InfoList[InfoTypes.SelectAlgNum] + 1) + ". " + ((Type)item.InfoList[InfoTypes.AlgType]).Name + " fitness: " + $"{item.InfoList[InfoTypes.SelectAlgFitness],10:F30}" + "\n\n"; } } } btStart.Visibility = Visibility.Visible; if (btRecreat.Visibility == Visibility.Collapsed && this.uniqueTest) { btRecreat.Visibility = Visibility.Visible; } btStop.Visibility = Visibility.Collapsed; }
private void btRecreate_Clicked(object sender, RoutedEventArgs e) { routingTest = new RoutingTest(this.Optimizer, new RouteTable(pointCount), this.cvPage, this.tbResults); }