Example #1
0
        // 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;
        }
Example #2
0
 private void btRecreate_Clicked(object sender, RoutedEventArgs e)
 {
     routingTest = new RoutingTest(this.Optimizer, new RouteTable(pointCount), this.cvPage, this.tbResults);
 }