Free cookie consent management tool by TermsFeed Policy Generator

Changeset 13718


Ignore:
Timestamp:
03/18/16 16:15:10 (9 years ago)
Author:
abeham
Message:

#2457: worked on expert system

Location:
branches/PerformanceComparison
Files:
25 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem.Common/3.3/ExpertSystem.cs

    r13713 r13718  
    251251      // It has to be decided somehow which problem instances to include in order to obtain the set of features that is expressive and available
    252252      var allCharacteristics = ProblemInstances.Select(x => new HashSet<string>(x.Results.Where(y => y.Key.StartsWith("Characteristic.", StringComparison.Ordinal)).Select(y => y.Key))).ToList();
     253      if (allCharacteristics.Count == 0) return;
     254
    253255      var commonCharacteristics = filter.Count > 0 ? filter : allCharacteristics[0];
    254256      for (var i = 0; i < allCharacteristics.Count; i++)
     
    446448    }
    447449
    448     public async void UpdateKnowledgeBaseAsync(IProgress progress) {
     450    public Task UpdateKnowledgeBaseAsync(IProgress progress = null) {
     451      if (progress == null) progress = new Progress(string.Empty);
    449452      progress.Start("Updating Knowledge Base from OKB");
    450       await Task.Factory.StartNew(() => { DoUpdateKnowledgeBase(progress); }, TaskCreationOptions.LongRunning);
    451     }
    452 
    453     public void UpdateKnowledgeBase() {
    454       DoUpdateKnowledgeBase(new Progress(string.Empty, ProgressState.Started));
     453      OnDownloadStarted(progress);
     454      return Task.Factory.StartNew(() => { DoUpdateKnowledgeBase(progress); }, TaskCreationOptions.LongRunning);
     455    }
     456
     457    public void UpdateKnowledgeBase(IProgress progress = null) {
     458      UpdateKnowledgeBaseAsync(progress).Wait();
    455459    }
    456460
     
    632636      if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    633637    }
     638
     639    public event EventHandler<EventArgs<IProgress>> DownloadStarted;
     640    private void OnDownloadStarted(IProgress progress) {
     641      var handler = DownloadStarted;
     642      if (handler != null) handler(this, new EventArgs<IProgress>(progress));
     643    }
    634644  }
    635645}
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.Designer.cs

    r13713 r13718  
    4949      System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
    5050      System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
     51      System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
    5152      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
    5253      System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
    53       System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
    5454      System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
     55      System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
    5556      this.evaluationsLimitabel = new System.Windows.Forms.Label();
    5657      this.maxEvaluationsTextBox = new System.Windows.Forms.TextBox();
     
    6465      this.similarityComboBox = new System.Windows.Forms.ComboBox();
    6566      this.solutionsTabControl = new HeuristicLab.MainForm.WindowsForms.DragOverTabControl();
    66       this.solutionsSeedingTabPage = new System.Windows.Forms.TabPage();
    6767      this.solutionsQualityTabPage = new System.Windows.Forms.TabPage();
    6868      this.solutionsQualityViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
     69      this.solutionsLengthScaleTabPage = new System.Windows.Forms.TabPage();
     70      this.solutionsLengthScaleViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    6971      this.solutionsDiversityTabPage = new System.Windows.Forms.TabPage();
    7072      this.solutionsDiversityViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    7173      this.solutionsFdcTabPage = new System.Windows.Forms.TabPage();
     74      this.fdcBetweenBestCheckBox = new System.Windows.Forms.CheckBox();
    7275      this.solutionsFdcViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    73       this.solutionsLengthScaleTabPage = new System.Windows.Forms.TabPage();
    74       this.solutionsLengthScaleViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    7576      this.solutionsNetworkTabPage = new System.Windows.Forms.TabPage();
    7677      this.solutionsNetworkChart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart();
    7778      this.solversTabPage = new System.Windows.Forms.TabPage();
    78       this.solversSplitContainer = new System.Windows.Forms.SplitContainer();
     79      this.seedingStrategyPanel = new System.Windows.Forms.Panel();
     80      this.solverTabControl = new HeuristicLab.MainForm.WindowsForms.DragOverTabControl();
     81      this.resultsTabPage = new System.Windows.Forms.TabPage();
     82      this.solverResultsView = new HeuristicLab.Optimization.Views.ResultCollectionView();
     83      this.solutionSeedingTabPage = new System.Windows.Forms.TabPage();
     84      this.parametersTabPage = new System.Windows.Forms.TabPage();
    7985      this.solverParametersView = new HeuristicLab.Core.Views.ParameterCollectionView();
    80       this.solverResultsView = new HeuristicLab.Optimization.Views.ResultCollectionView();
     86      this.operatorGraphTabPage = new System.Windows.Forms.TabPage();
     87      this.operatorGraphViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    8188      this.algorithmCloneButton = new System.Windows.Forms.Button();
    8289      this.algorithmStartButton = new System.Windows.Forms.Button();
     90      this.label1 = new System.Windows.Forms.Label();
    8391      this.algorithmSuggestionLabel = new System.Windows.Forms.Label();
    8492      this.suggestedInstancesComboBox = new System.Windows.Forms.ComboBox();
     
    99107      this.okbDownloadButton = new System.Windows.Forms.Button();
    100108      this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
    101       this.solutionsSeedingTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
    102       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    103109      this.tabControl.SuspendLayout();
    104110      this.problemTabPage.SuspendLayout();
    105111      this.solutionsTabPage.SuspendLayout();
    106112      this.solutionsTabControl.SuspendLayout();
    107       this.solutionsSeedingTabPage.SuspendLayout();
    108113      this.solutionsQualityTabPage.SuspendLayout();
     114      this.solutionsLengthScaleTabPage.SuspendLayout();
    109115      this.solutionsDiversityTabPage.SuspendLayout();
    110116      this.solutionsFdcTabPage.SuspendLayout();
    111       this.solutionsLengthScaleTabPage.SuspendLayout();
    112117      this.solutionsNetworkTabPage.SuspendLayout();
    113118      ((System.ComponentModel.ISupportInitialize)(this.solutionsNetworkChart)).BeginInit();
    114119      this.solversTabPage.SuspendLayout();
    115       ((System.ComponentModel.ISupportInitialize)(this.solversSplitContainer)).BeginInit();
    116       this.solversSplitContainer.Panel1.SuspendLayout();
    117       this.solversSplitContainer.Panel2.SuspendLayout();
    118       this.solversSplitContainer.SuspendLayout();
     120      this.solverTabControl.SuspendLayout();
     121      this.resultsTabPage.SuspendLayout();
     122      this.parametersTabPage.SuspendLayout();
     123      this.operatorGraphTabPage.SuspendLayout();
    119124      this.runsTabPage.SuspendLayout();
    120125      this.okbTabPage.SuspendLayout();
     
    126131      this.SuspendLayout();
    127132      //
    128       // nameTextBox
    129       //
    130       this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
    131       this.errorProvider.SetIconPadding(this.nameTextBox, 2);
    132       this.nameTextBox.Location = new System.Drawing.Point(75, 0);
    133       this.nameTextBox.Size = new System.Drawing.Size(592, 20);
    134       //
    135       // infoLabel
    136       //
    137       this.infoLabel.Location = new System.Drawing.Point(673, 3);
    138       //
    139133      // evaluationsLimitabel
    140134      //
    141135      this.evaluationsLimitabel.AutoSize = true;
    142       this.evaluationsLimitabel.Location = new System.Drawing.Point(3, 29);
     136      this.evaluationsLimitabel.Location = new System.Drawing.Point(5, 9);
    143137      this.evaluationsLimitabel.Name = "evaluationsLimitabel";
    144138      this.evaluationsLimitabel.Size = new System.Drawing.Size(66, 13);
     
    150144      this.maxEvaluationsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    151145            | System.Windows.Forms.AnchorStyles.Right)));
    152       this.maxEvaluationsTextBox.Location = new System.Drawing.Point(75, 26);
     146      this.maxEvaluationsTextBox.Location = new System.Drawing.Point(110, 6);
    153147      this.maxEvaluationsTextBox.Name = "maxEvaluationsTextBox";
    154       this.maxEvaluationsTextBox.Size = new System.Drawing.Size(592, 20);
     148      this.maxEvaluationsTextBox.Size = new System.Drawing.Size(564, 20);
    155149      this.maxEvaluationsTextBox.TabIndex = 6;
    156150      this.maxEvaluationsTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.MaxEvaluationsTextBoxOnValidating);
     
    168162      this.tabControl.Controls.Add(this.okbTabPage);
    169163      this.tabControl.Controls.Add(this.problemInstancesTabPage);
    170       this.tabControl.Location = new System.Drawing.Point(0, 81);
     164      this.tabControl.Location = new System.Drawing.Point(0, 32);
    171165      this.tabControl.Name = "tabControl";
    172166      this.tabControl.SelectedIndex = 0;
    173       this.tabControl.Size = new System.Drawing.Size(689, 454);
     167      this.tabControl.Size = new System.Drawing.Size(689, 503);
    174168      this.tabControl.TabIndex = 17;
    175169      //
     
    181175      this.problemTabPage.Name = "problemTabPage";
    182176      this.problemTabPage.Padding = new System.Windows.Forms.Padding(3);
    183       this.problemTabPage.Size = new System.Drawing.Size(681, 428);
     177      this.problemTabPage.Size = new System.Drawing.Size(681, 477);
    184178      this.problemTabPage.TabIndex = 1;
    185179      this.problemTabPage.Text = "Problem";
     
    195189      this.problemViewHost.Name = "problemViewHost";
    196190      this.problemViewHost.ReadOnly = false;
    197       this.problemViewHost.Size = new System.Drawing.Size(675, 422);
     191      this.problemViewHost.Size = new System.Drawing.Size(675, 471);
    198192      this.problemViewHost.TabIndex = 2;
    199193      this.problemViewHost.ViewsLabelVisible = false;
     
    210204      this.solutionsTabPage.Name = "solutionsTabPage";
    211205      this.solutionsTabPage.Padding = new System.Windows.Forms.Padding(3);
    212       this.solutionsTabPage.Size = new System.Drawing.Size(681, 428);
     206      this.solutionsTabPage.Size = new System.Drawing.Size(681, 477);
    213207      this.solutionsTabPage.TabIndex = 7;
    214208      this.solutionsTabPage.Text = "Solutions";
     
    261255            | System.Windows.Forms.AnchorStyles.Left)
    262256            | System.Windows.Forms.AnchorStyles.Right)));
    263       this.solutionsTabControl.Controls.Add(this.solutionsSeedingTabPage);
    264257      this.solutionsTabControl.Controls.Add(this.solutionsQualityTabPage);
     258      this.solutionsTabControl.Controls.Add(this.solutionsLengthScaleTabPage);
    265259      this.solutionsTabControl.Controls.Add(this.solutionsDiversityTabPage);
    266260      this.solutionsTabControl.Controls.Add(this.solutionsFdcTabPage);
    267       this.solutionsTabControl.Controls.Add(this.solutionsLengthScaleTabPage);
    268261      this.solutionsTabControl.Controls.Add(this.solutionsNetworkTabPage);
    269262      this.solutionsTabControl.Location = new System.Drawing.Point(3, 33);
    270263      this.solutionsTabControl.Name = "solutionsTabControl";
    271264      this.solutionsTabControl.SelectedIndex = 0;
    272       this.solutionsTabControl.Size = new System.Drawing.Size(675, 392);
     265      this.solutionsTabControl.Size = new System.Drawing.Size(675, 441);
    273266      this.solutionsTabControl.TabIndex = 0;
    274       //
    275       // solutionsSeedingTabPage
    276       //
    277       this.solutionsSeedingTabPage.Controls.Add(this.solutionsSeedingTableLayoutPanel);
    278       this.solutionsSeedingTabPage.Location = new System.Drawing.Point(4, 22);
    279       this.solutionsSeedingTabPage.Name = "solutionsSeedingTabPage";
    280       this.solutionsSeedingTabPage.Padding = new System.Windows.Forms.Padding(3);
    281       this.solutionsSeedingTabPage.Size = new System.Drawing.Size(667, 366);
    282       this.solutionsSeedingTabPage.TabIndex = 6;
    283       this.solutionsSeedingTabPage.Text = "Seeding";
    284       this.solutionsSeedingTabPage.UseVisualStyleBackColor = true;
    285267      //
    286268      // solutionsQualityTabPage
     
    290272      this.solutionsQualityTabPage.Name = "solutionsQualityTabPage";
    291273      this.solutionsQualityTabPage.Padding = new System.Windows.Forms.Padding(3);
    292       this.solutionsQualityTabPage.Size = new System.Drawing.Size(667, 366);
     274      this.solutionsQualityTabPage.Size = new System.Drawing.Size(667, 415);
    293275      this.solutionsQualityTabPage.TabIndex = 1;
    294276      this.solutionsQualityTabPage.Text = "Quality Analysis";
     
    304286      this.solutionsQualityViewHost.Name = "solutionsQualityViewHost";
    305287      this.solutionsQualityViewHost.ReadOnly = false;
    306       this.solutionsQualityViewHost.Size = new System.Drawing.Size(661, 360);
     288      this.solutionsQualityViewHost.Size = new System.Drawing.Size(661, 409);
    307289      this.solutionsQualityViewHost.TabIndex = 0;
    308290      this.solutionsQualityViewHost.ViewsLabelVisible = true;
    309291      this.solutionsQualityViewHost.ViewType = null;
     292      //
     293      // solutionsLengthScaleTabPage
     294      //
     295      this.solutionsLengthScaleTabPage.Controls.Add(this.solutionsLengthScaleViewHost);
     296      this.solutionsLengthScaleTabPage.Location = new System.Drawing.Point(4, 22);
     297      this.solutionsLengthScaleTabPage.Name = "solutionsLengthScaleTabPage";
     298      this.solutionsLengthScaleTabPage.Padding = new System.Windows.Forms.Padding(3);
     299      this.solutionsLengthScaleTabPage.Size = new System.Drawing.Size(667, 415);
     300      this.solutionsLengthScaleTabPage.TabIndex = 3;
     301      this.solutionsLengthScaleTabPage.Text = "Length-Scale Analysis";
     302      this.solutionsLengthScaleTabPage.UseVisualStyleBackColor = true;
     303      //
     304      // solutionsLengthScaleViewHost
     305      //
     306      this.solutionsLengthScaleViewHost.Caption = "View";
     307      this.solutionsLengthScaleViewHost.Content = null;
     308      this.solutionsLengthScaleViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
     309      this.solutionsLengthScaleViewHost.Enabled = false;
     310      this.solutionsLengthScaleViewHost.Location = new System.Drawing.Point(3, 3);
     311      this.solutionsLengthScaleViewHost.Name = "solutionsLengthScaleViewHost";
     312      this.solutionsLengthScaleViewHost.ReadOnly = false;
     313      this.solutionsLengthScaleViewHost.Size = new System.Drawing.Size(661, 409);
     314      this.solutionsLengthScaleViewHost.TabIndex = 0;
     315      this.solutionsLengthScaleViewHost.ViewsLabelVisible = true;
     316      this.solutionsLengthScaleViewHost.ViewType = null;
    310317      //
    311318      // solutionsDiversityTabPage
     
    315322      this.solutionsDiversityTabPage.Name = "solutionsDiversityTabPage";
    316323      this.solutionsDiversityTabPage.Padding = new System.Windows.Forms.Padding(3);
    317       this.solutionsDiversityTabPage.Size = new System.Drawing.Size(667, 366);
     324      this.solutionsDiversityTabPage.Size = new System.Drawing.Size(667, 415);
    318325      this.solutionsDiversityTabPage.TabIndex = 2;
    319326      this.solutionsDiversityTabPage.Text = "Diversity Analysis";
     
    329336      this.solutionsDiversityViewHost.Name = "solutionsDiversityViewHost";
    330337      this.solutionsDiversityViewHost.ReadOnly = false;
    331       this.solutionsDiversityViewHost.Size = new System.Drawing.Size(661, 360);
     338      this.solutionsDiversityViewHost.Size = new System.Drawing.Size(661, 409);
    332339      this.solutionsDiversityViewHost.TabIndex = 1;
    333340      this.solutionsDiversityViewHost.ViewsLabelVisible = true;
     
    336343      // solutionsFdcTabPage
    337344      //
     345      this.solutionsFdcTabPage.Controls.Add(this.fdcBetweenBestCheckBox);
    338346      this.solutionsFdcTabPage.Controls.Add(this.solutionsFdcViewHost);
    339347      this.solutionsFdcTabPage.Location = new System.Drawing.Point(4, 22);
    340348      this.solutionsFdcTabPage.Name = "solutionsFdcTabPage";
    341349      this.solutionsFdcTabPage.Padding = new System.Windows.Forms.Padding(3);
    342       this.solutionsFdcTabPage.Size = new System.Drawing.Size(667, 366);
     350      this.solutionsFdcTabPage.Size = new System.Drawing.Size(667, 415);
    343351      this.solutionsFdcTabPage.TabIndex = 5;
    344352      this.solutionsFdcTabPage.Text = "Fitness-Distance Analysis";
    345353      this.solutionsFdcTabPage.UseVisualStyleBackColor = true;
    346354      //
     355      // fdcBetweenBestCheckBox
     356      //
     357      this.fdcBetweenBestCheckBox.AutoSize = true;
     358      this.fdcBetweenBestCheckBox.Location = new System.Drawing.Point(6, 6);
     359      this.fdcBetweenBestCheckBox.Name = "fdcBetweenBestCheckBox";
     360      this.fdcBetweenBestCheckBox.Size = new System.Drawing.Size(233, 17);
     361      this.fdcBetweenBestCheckBox.TabIndex = 2;
     362      this.fdcBetweenBestCheckBox.Text = "Calculate FDC between best solution(s) only";
     363      this.fdcBetweenBestCheckBox.UseVisualStyleBackColor = true;
     364      this.fdcBetweenBestCheckBox.CheckedChanged += new System.EventHandler(this.FdcBetweenBestCheckBoxOnCheckedChanged);
     365      //
    347366      // solutionsFdcViewHost
    348367      //
     368      this.solutionsFdcViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     369            | System.Windows.Forms.AnchorStyles.Left)
     370            | System.Windows.Forms.AnchorStyles.Right)));
    349371      this.solutionsFdcViewHost.Caption = "View";
    350372      this.solutionsFdcViewHost.Content = null;
    351       this.solutionsFdcViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
    352373      this.solutionsFdcViewHost.Enabled = false;
    353       this.solutionsFdcViewHost.Location = new System.Drawing.Point(3, 3);
     374      this.solutionsFdcViewHost.Location = new System.Drawing.Point(3, 29);
    354375      this.solutionsFdcViewHost.Name = "solutionsFdcViewHost";
    355376      this.solutionsFdcViewHost.ReadOnly = false;
    356       this.solutionsFdcViewHost.Size = new System.Drawing.Size(661, 360);
     377      this.solutionsFdcViewHost.Size = new System.Drawing.Size(661, 386);
    357378      this.solutionsFdcViewHost.TabIndex = 0;
    358379      this.solutionsFdcViewHost.ViewsLabelVisible = true;
    359380      this.solutionsFdcViewHost.ViewType = null;
    360       //
    361       // solutionsLengthScaleTabPage
    362       //
    363       this.solutionsLengthScaleTabPage.Controls.Add(this.solutionsLengthScaleViewHost);
    364       this.solutionsLengthScaleTabPage.Location = new System.Drawing.Point(4, 22);
    365       this.solutionsLengthScaleTabPage.Name = "solutionsLengthScaleTabPage";
    366       this.solutionsLengthScaleTabPage.Padding = new System.Windows.Forms.Padding(3);
    367       this.solutionsLengthScaleTabPage.Size = new System.Drawing.Size(667, 366);
    368       this.solutionsLengthScaleTabPage.TabIndex = 3;
    369       this.solutionsLengthScaleTabPage.Text = "Length-Scale Analysis";
    370       this.solutionsLengthScaleTabPage.UseVisualStyleBackColor = true;
    371       //
    372       // solutionsLengthScaleViewHost
    373       //
    374       this.solutionsLengthScaleViewHost.Caption = "View";
    375       this.solutionsLengthScaleViewHost.Content = null;
    376       this.solutionsLengthScaleViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
    377       this.solutionsLengthScaleViewHost.Enabled = false;
    378       this.solutionsLengthScaleViewHost.Location = new System.Drawing.Point(3, 3);
    379       this.solutionsLengthScaleViewHost.Name = "solutionsLengthScaleViewHost";
    380       this.solutionsLengthScaleViewHost.ReadOnly = false;
    381       this.solutionsLengthScaleViewHost.Size = new System.Drawing.Size(661, 360);
    382       this.solutionsLengthScaleViewHost.TabIndex = 0;
    383       this.solutionsLengthScaleViewHost.ViewsLabelVisible = true;
    384       this.solutionsLengthScaleViewHost.ViewType = null;
    385381      //
    386382      // solutionsNetworkTabPage
     
    390386      this.solutionsNetworkTabPage.Name = "solutionsNetworkTabPage";
    391387      this.solutionsNetworkTabPage.Padding = new System.Windows.Forms.Padding(3);
    392       this.solutionsNetworkTabPage.Size = new System.Drawing.Size(667, 366);
     388      this.solutionsNetworkTabPage.Size = new System.Drawing.Size(667, 415);
    393389      this.solutionsNetworkTabPage.TabIndex = 4;
    394390      this.solutionsNetworkTabPage.Text = "Network Analysis";
     
    423419      series1.Name = "SolutionSeries";
    424420      series1.YValuesPerPoint = 2;
     421      series2.ChartArea = "SolutionsNetworkChartArea";
     422      series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Bubble;
     423      series2.IsValueShownAsLabel = true;
     424      series2.Label = "#LABEL";
     425      series2.Legend = "Legend1";
     426      series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Cross;
     427      series2.Name = "SeedingSolutionSeries";
     428      series2.YValuesPerPoint = 2;
    425429      this.solutionsNetworkChart.Series.Add(series1);
    426       this.solutionsNetworkChart.Size = new System.Drawing.Size(661, 360);
     430      this.solutionsNetworkChart.Series.Add(series2);
     431      this.solutionsNetworkChart.Size = new System.Drawing.Size(661, 409);
    427432      this.solutionsNetworkChart.TabIndex = 0;
    428433      this.solutionsNetworkChart.Text = "enhancedChart1";
     434      this.solutionsNetworkChart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.SolutionsNetworkChartOnMouseClick);
    429435      //
    430436      // solversTabPage
    431437      //
    432       this.solversTabPage.Controls.Add(this.solversSplitContainer);
     438      this.solversTabPage.Controls.Add(this.seedingStrategyPanel);
     439      this.solversTabPage.Controls.Add(this.solverTabControl);
    433440      this.solversTabPage.Controls.Add(this.algorithmCloneButton);
    434441      this.solversTabPage.Controls.Add(this.algorithmStartButton);
     442      this.solversTabPage.Controls.Add(this.label1);
     443      this.solversTabPage.Controls.Add(this.evaluationsLimitabel);
    435444      this.solversTabPage.Controls.Add(this.algorithmSuggestionLabel);
     445      this.solversTabPage.Controls.Add(this.maxEvaluationsTextBox);
    436446      this.solversTabPage.Controls.Add(this.suggestedInstancesComboBox);
    437447      this.solversTabPage.Location = new System.Drawing.Point(4, 22);
    438448      this.solversTabPage.Name = "solversTabPage";
    439449      this.solversTabPage.Padding = new System.Windows.Forms.Padding(3);
    440       this.solversTabPage.Size = new System.Drawing.Size(681, 428);
     450      this.solversTabPage.Size = new System.Drawing.Size(681, 477);
    441451      this.solversTabPage.TabIndex = 4;
    442452      this.solversTabPage.Text = "Solvers";
    443453      this.solversTabPage.UseVisualStyleBackColor = true;
    444454      //
    445       // solversSplitContainer
    446       //
    447       this.solversSplitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     455      // seedingStrategyPanel
     456      //
     457      this.seedingStrategyPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     458            | System.Windows.Forms.AnchorStyles.Right)));
     459      this.seedingStrategyPanel.Location = new System.Drawing.Point(110, 32);
     460      this.seedingStrategyPanel.Name = "seedingStrategyPanel";
     461      this.seedingStrategyPanel.Size = new System.Drawing.Size(564, 21);
     462      this.seedingStrategyPanel.TabIndex = 5;
     463      //
     464      // solverTabControl
     465      //
     466      this.solverTabControl.AllowDrop = true;
     467      this.solverTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    448468            | System.Windows.Forms.AnchorStyles.Left)
    449469            | System.Windows.Forms.AnchorStyles.Right)));
    450       this.solversSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
    451       this.solversSplitContainer.Location = new System.Drawing.Point(3, 33);
    452       this.solversSplitContainer.Name = "solversSplitContainer";
    453       //
    454       // solversSplitContainer.Panel1
    455       //
    456       this.solversSplitContainer.Panel1.Controls.Add(this.solverParametersView);
    457       //
    458       // solversSplitContainer.Panel2
    459       //
    460       this.solversSplitContainer.Panel2.Controls.Add(this.solverResultsView);
    461       this.solversSplitContainer.Size = new System.Drawing.Size(675, 392);
    462       this.solversSplitContainer.SplitterDistance = 300;
    463       this.solversSplitContainer.TabIndex = 4;
     470      this.solverTabControl.Controls.Add(this.resultsTabPage);
     471      this.solverTabControl.Controls.Add(this.solutionSeedingTabPage);
     472      this.solverTabControl.Controls.Add(this.parametersTabPage);
     473      this.solverTabControl.Controls.Add(this.operatorGraphTabPage);
     474      this.solverTabControl.Location = new System.Drawing.Point(2, 87);
     475      this.solverTabControl.Name = "solverTabControl";
     476      this.solverTabControl.SelectedIndex = 0;
     477      this.solverTabControl.Size = new System.Drawing.Size(676, 387);
     478      this.solverTabControl.TabIndex = 4;
     479      //
     480      // resultsTabPage
     481      //
     482      this.resultsTabPage.Controls.Add(this.solverResultsView);
     483      this.resultsTabPage.Location = new System.Drawing.Point(4, 22);
     484      this.resultsTabPage.Name = "resultsTabPage";
     485      this.resultsTabPage.Padding = new System.Windows.Forms.Padding(3);
     486      this.resultsTabPage.Size = new System.Drawing.Size(668, 361);
     487      this.resultsTabPage.TabIndex = 2;
     488      this.resultsTabPage.Text = "Results";
     489      this.resultsTabPage.UseVisualStyleBackColor = true;
     490      //
     491      // solverResultsView
     492      //
     493      this.solverResultsView.Caption = "ResultCollection View";
     494      this.solverResultsView.Content = null;
     495      this.solverResultsView.Dock = System.Windows.Forms.DockStyle.Fill;
     496      this.solverResultsView.Location = new System.Drawing.Point(3, 3);
     497      this.solverResultsView.Name = "solverResultsView";
     498      this.solverResultsView.ReadOnly = true;
     499      this.solverResultsView.ShowDetails = true;
     500      this.solverResultsView.Size = new System.Drawing.Size(662, 355);
     501      this.solverResultsView.TabIndex = 1;
     502      //
     503      // solutionSeedingTabPage
     504      //
     505      this.solutionSeedingTabPage.Location = new System.Drawing.Point(4, 22);
     506      this.solutionSeedingTabPage.Name = "solutionSeedingTabPage";
     507      this.solutionSeedingTabPage.Padding = new System.Windows.Forms.Padding(3);
     508      this.solutionSeedingTabPage.Size = new System.Drawing.Size(668, 361);
     509      this.solutionSeedingTabPage.TabIndex = 1;
     510      this.solutionSeedingTabPage.Text = "Seeding Pool";
     511      this.solutionSeedingTabPage.UseVisualStyleBackColor = true;
     512      //
     513      // parametersTabPage
     514      //
     515      this.parametersTabPage.Controls.Add(this.solverParametersView);
     516      this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
     517      this.parametersTabPage.Name = "parametersTabPage";
     518      this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
     519      this.parametersTabPage.Size = new System.Drawing.Size(668, 361);
     520      this.parametersTabPage.TabIndex = 0;
     521      this.parametersTabPage.Text = "Parameters";
     522      this.parametersTabPage.UseVisualStyleBackColor = true;
    464523      //
    465524      // solverParametersView
     
    469528      this.solverParametersView.Content = null;
    470529      this.solverParametersView.Dock = System.Windows.Forms.DockStyle.Fill;
    471       this.solverParametersView.Location = new System.Drawing.Point(0, 0);
     530      this.solverParametersView.Location = new System.Drawing.Point(3, 3);
    472531      this.solverParametersView.Name = "solverParametersView";
    473532      this.solverParametersView.ReadOnly = true;
    474       this.solverParametersView.ShowDetails = false;
    475       this.solverParametersView.Size = new System.Drawing.Size(300, 392);
     533      this.solverParametersView.ShowDetails = true;
     534      this.solverParametersView.Size = new System.Drawing.Size(662, 355);
    476535      this.solverParametersView.TabIndex = 0;
    477536      //
    478       // solverResultsView
    479       //
    480       this.solverResultsView.Caption = "ResultCollection View";
    481       this.solverResultsView.Content = null;
    482       this.solverResultsView.Dock = System.Windows.Forms.DockStyle.Fill;
    483       this.solverResultsView.Location = new System.Drawing.Point(0, 0);
    484       this.solverResultsView.Name = "solverResultsView";
    485       this.solverResultsView.ReadOnly = true;
    486       this.solverResultsView.ShowDetails = true;
    487       this.solverResultsView.Size = new System.Drawing.Size(371, 392);
    488       this.solverResultsView.TabIndex = 0;
     537      // operatorGraphTabPage
     538      //
     539      this.operatorGraphTabPage.Controls.Add(this.operatorGraphViewHost);
     540      this.operatorGraphTabPage.Location = new System.Drawing.Point(4, 22);
     541      this.operatorGraphTabPage.Name = "operatorGraphTabPage";
     542      this.operatorGraphTabPage.Padding = new System.Windows.Forms.Padding(3);
     543      this.operatorGraphTabPage.Size = new System.Drawing.Size(668, 361);
     544      this.operatorGraphTabPage.TabIndex = 3;
     545      this.operatorGraphTabPage.Text = "Operator Graph";
     546      this.operatorGraphTabPage.UseVisualStyleBackColor = true;
     547      //
     548      // operatorGraphViewHost
     549      //
     550      this.operatorGraphViewHost.Caption = "View";
     551      this.operatorGraphViewHost.Content = null;
     552      this.operatorGraphViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
     553      this.operatorGraphViewHost.Enabled = false;
     554      this.operatorGraphViewHost.Location = new System.Drawing.Point(3, 3);
     555      this.operatorGraphViewHost.Name = "operatorGraphViewHost";
     556      this.operatorGraphViewHost.ReadOnly = true;
     557      this.operatorGraphViewHost.Size = new System.Drawing.Size(662, 355);
     558      this.operatorGraphViewHost.TabIndex = 0;
     559      this.operatorGraphViewHost.ViewsLabelVisible = true;
     560      this.operatorGraphViewHost.ViewType = null;
    489561      //
    490562      // algorithmCloneButton
    491563      //
    492564      this.algorithmCloneButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    493       this.algorithmCloneButton.Location = new System.Drawing.Point(649, 5);
     565      this.algorithmCloneButton.Location = new System.Drawing.Point(648, 58);
    494566      this.algorithmCloneButton.Name = "algorithmCloneButton";
    495567      this.algorithmCloneButton.Size = new System.Drawing.Size(26, 23);
     
    502574      //
    503575      this.algorithmStartButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    504       this.algorithmStartButton.Location = new System.Drawing.Point(617, 5);
     576      this.algorithmStartButton.Location = new System.Drawing.Point(616, 58);
    505577      this.algorithmStartButton.Name = "algorithmStartButton";
    506578      this.algorithmStartButton.Size = new System.Drawing.Size(26, 23);
     
    510582      this.algorithmStartButton.Click += new System.EventHandler(this.AlgorithmStartButtonOnClick);
    511583      //
     584      // label1
     585      //
     586      this.label1.AutoSize = true;
     587      this.label1.Location = new System.Drawing.Point(5, 36);
     588      this.label1.Name = "label1";
     589      this.label1.Size = new System.Drawing.Size(91, 13);
     590      this.label1.TabIndex = 1;
     591      this.label1.Text = "Seeding Strategy:";
     592      //
    512593      // algorithmSuggestionLabel
    513594      //
    514595      this.algorithmSuggestionLabel.AutoSize = true;
    515       this.algorithmSuggestionLabel.Location = new System.Drawing.Point(6, 9);
     596      this.algorithmSuggestionLabel.Location = new System.Drawing.Point(5, 62);
    516597      this.algorithmSuggestionLabel.Name = "algorithmSuggestionLabel";
    517598      this.algorithmSuggestionLabel.Size = new System.Drawing.Size(99, 13);
     
    525606      this.suggestedInstancesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    526607      this.suggestedInstancesComboBox.FormattingEnabled = true;
    527       this.suggestedInstancesComboBox.Location = new System.Drawing.Point(111, 6);
     608      this.suggestedInstancesComboBox.Location = new System.Drawing.Point(110, 59);
    528609      this.suggestedInstancesComboBox.Name = "suggestedInstancesComboBox";
    529610      this.suggestedInstancesComboBox.Size = new System.Drawing.Size(500, 21);
     
    537618      this.runsTabPage.Name = "runsTabPage";
    538619      this.runsTabPage.Padding = new System.Windows.Forms.Padding(3);
    539       this.runsTabPage.Size = new System.Drawing.Size(681, 428);
     620      this.runsTabPage.Size = new System.Drawing.Size(681, 477);
    540621      this.runsTabPage.TabIndex = 3;
    541622      this.runsTabPage.Text = "Runs";
     
    550631      this.runsView.Name = "runsView";
    551632      this.runsView.ReadOnly = false;
    552       this.runsView.Size = new System.Drawing.Size(675, 422);
     633      this.runsView.Size = new System.Drawing.Size(675, 471);
    553634      this.runsView.TabIndex = 1;
    554635      //
     
    559640      this.okbTabPage.Name = "okbTabPage";
    560641      this.okbTabPage.Padding = new System.Windows.Forms.Padding(3);
    561       this.okbTabPage.Size = new System.Drawing.Size(681, 428);
     642      this.okbTabPage.Size = new System.Drawing.Size(681, 477);
    562643      this.okbTabPage.TabIndex = 5;
    563644      this.okbTabPage.Text = "Knowledge Base";
     
    573654      this.kbViewHost.Name = "kbViewHost";
    574655      this.kbViewHost.ReadOnly = true;
    575       this.kbViewHost.Size = new System.Drawing.Size(675, 422);
     656      this.kbViewHost.Size = new System.Drawing.Size(675, 471);
    576657      this.kbViewHost.TabIndex = 3;
    577658      this.kbViewHost.ViewsLabelVisible = true;
     
    587668      this.problemInstancesTabPage.Name = "problemInstancesTabPage";
    588669      this.problemInstancesTabPage.Padding = new System.Windows.Forms.Padding(3);
    589       this.problemInstancesTabPage.Size = new System.Drawing.Size(681, 428);
     670      this.problemInstancesTabPage.Size = new System.Drawing.Size(681, 477);
    590671      this.problemInstancesTabPage.TabIndex = 6;
    591672      this.problemInstancesTabPage.Text = "Problem Instances";
     
    622703      this.problemInstancesTabControl.Name = "problemInstancesTabControl";
    623704      this.problemInstancesTabControl.SelectedIndex = 0;
    624       this.problemInstancesTabControl.Size = new System.Drawing.Size(675, 390);
     705      this.problemInstancesTabControl.Size = new System.Drawing.Size(675, 439);
    625706      this.problemInstancesTabControl.TabIndex = 4;
    626707      //
     
    631712      this.instancesTabPage.Name = "instancesTabPage";
    632713      this.instancesTabPage.Padding = new System.Windows.Forms.Padding(3);
    633       this.instancesTabPage.Size = new System.Drawing.Size(667, 364);
     714      this.instancesTabPage.Size = new System.Drawing.Size(667, 413);
    634715      this.instancesTabPage.TabIndex = 0;
    635716      this.instancesTabPage.Text = "Instances";
     
    645726      this.problemInstancesView.Name = "problemInstancesView";
    646727      this.problemInstancesView.ReadOnly = false;
    647       this.problemInstancesView.Size = new System.Drawing.Size(661, 358);
     728      this.problemInstancesView.Size = new System.Drawing.Size(661, 407);
    648729      this.problemInstancesView.TabIndex = 0;
    649730      this.problemInstancesView.ViewsLabelVisible = true;
     
    656737      this.mapTabPage.Name = "mapTabPage";
    657738      this.mapTabPage.Padding = new System.Windows.Forms.Padding(3);
    658       this.mapTabPage.Size = new System.Drawing.Size(667, 364);
     739      this.mapTabPage.Size = new System.Drawing.Size(667, 413);
    659740      this.mapTabPage.TabIndex = 1;
    660741      this.mapTabPage.Text = "Map";
     
    676757      this.instanceMapChart.Location = new System.Drawing.Point(3, 3);
    677758      this.instanceMapChart.Name = "instanceMapChart";
    678       series2.ChartArea = "Default";
    679       series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
    680       series2.Legend = "Legend";
    681       series2.MarkerSize = 10;
    682       series2.Name = "InstancesSeries";
    683759      series3.ChartArea = "Default";
    684760      series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
    685761      series3.Legend = "Legend";
    686       series3.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
    687       series3.MarkerSize = 15;
    688       series3.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Cross;
    689       series3.Name = "CurrentInstanceSeries";
    690       this.instanceMapChart.Series.Add(series2);
     762      series3.MarkerSize = 10;
     763      series3.Name = "InstancesSeries";
     764      series4.ChartArea = "Default";
     765      series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
     766      series4.Legend = "Legend";
     767      series4.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
     768      series4.MarkerSize = 15;
     769      series4.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Cross;
     770      series4.Name = "CurrentInstanceSeries";
    691771      this.instanceMapChart.Series.Add(series3);
    692       this.instanceMapChart.Size = new System.Drawing.Size(661, 358);
     772      this.instanceMapChart.Series.Add(series4);
     773      this.instanceMapChart.Size = new System.Drawing.Size(661, 407);
    693774      this.instanceMapChart.TabIndex = 0;
    694775      //
     
    708789            | System.Windows.Forms.AnchorStyles.Left)
    709790            | System.Windows.Forms.AnchorStyles.Right)));
    710       this.progressPanel.Location = new System.Drawing.Point(0, 81);
     791      this.progressPanel.Location = new System.Drawing.Point(0, 32);
    711792      this.progressPanel.Name = "progressPanel";
    712       this.progressPanel.Size = new System.Drawing.Size(692, 454);
     793      this.progressPanel.Size = new System.Drawing.Size(692, 503);
    713794      this.progressPanel.TabIndex = 2;
    714795      this.progressPanel.Visible = false;
     
    718799      this.okbDownloadButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    719800            | System.Windows.Forms.AnchorStyles.Right)));
    720       this.okbDownloadButton.Location = new System.Drawing.Point(6, 52);
     801      this.okbDownloadButton.Location = new System.Drawing.Point(3, 3);
    721802      this.okbDownloadButton.Name = "okbDownloadButton";
    722       this.okbDownloadButton.Size = new System.Drawing.Size(661, 23);
     803      this.okbDownloadButton.Size = new System.Drawing.Size(686, 23);
    723804      this.okbDownloadButton.TabIndex = 1;
    724805      this.okbDownloadButton.Text = "Download from OKB";
     
    733814      this.openFileDialog.Title = "Open Optimizer";
    734815      //
    735       // solutionsSeedingTableLayoutPanel
    736       //
    737       this.solutionsSeedingTableLayoutPanel.ColumnCount = 1;
    738       this.solutionsSeedingTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
    739       this.solutionsSeedingTableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
    740       this.solutionsSeedingTableLayoutPanel.Location = new System.Drawing.Point(3, 3);
    741       this.solutionsSeedingTableLayoutPanel.Name = "solutionsSeedingTableLayoutPanel";
    742       this.solutionsSeedingTableLayoutPanel.RowCount = 2;
    743       this.solutionsSeedingTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
    744       this.solutionsSeedingTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());
    745       this.solutionsSeedingTableLayoutPanel.Size = new System.Drawing.Size(661, 360);
    746       this.solutionsSeedingTableLayoutPanel.TabIndex = 0;
    747       //
    748816      // ExpertSystemView
    749817      //
     
    751819      this.Controls.Add(this.okbDownloadButton);
    752820      this.Controls.Add(this.tabControl);
    753       this.Controls.Add(this.evaluationsLimitabel);
    754       this.Controls.Add(this.maxEvaluationsTextBox);
    755821      this.Controls.Add(this.progressPanel);
    756822      this.Name = "ExpertSystemView";
    757823      this.Size = new System.Drawing.Size(692, 535);
    758       this.Controls.SetChildIndex(this.progressPanel, 0);
    759       this.Controls.SetChildIndex(this.maxEvaluationsTextBox, 0);
    760       this.Controls.SetChildIndex(this.evaluationsLimitabel, 0);
    761       this.Controls.SetChildIndex(this.tabControl, 0);
    762       this.Controls.SetChildIndex(this.nameLabel, 0);
    763       this.Controls.SetChildIndex(this.okbDownloadButton, 0);
    764       this.Controls.SetChildIndex(this.nameTextBox, 0);
    765       this.Controls.SetChildIndex(this.infoLabel, 0);
    766       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
    767824      this.tabControl.ResumeLayout(false);
    768825      this.problemTabPage.ResumeLayout(false);
     
    770827      this.solutionsTabPage.PerformLayout();
    771828      this.solutionsTabControl.ResumeLayout(false);
    772       this.solutionsSeedingTabPage.ResumeLayout(false);
    773829      this.solutionsQualityTabPage.ResumeLayout(false);
     830      this.solutionsLengthScaleTabPage.ResumeLayout(false);
    774831      this.solutionsDiversityTabPage.ResumeLayout(false);
    775832      this.solutionsFdcTabPage.ResumeLayout(false);
    776       this.solutionsLengthScaleTabPage.ResumeLayout(false);
     833      this.solutionsFdcTabPage.PerformLayout();
    777834      this.solutionsNetworkTabPage.ResumeLayout(false);
    778835      ((System.ComponentModel.ISupportInitialize)(this.solutionsNetworkChart)).EndInit();
    779836      this.solversTabPage.ResumeLayout(false);
    780837      this.solversTabPage.PerformLayout();
    781       this.solversSplitContainer.Panel1.ResumeLayout(false);
    782       this.solversSplitContainer.Panel2.ResumeLayout(false);
    783       ((System.ComponentModel.ISupportInitialize)(this.solversSplitContainer)).EndInit();
    784       this.solversSplitContainer.ResumeLayout(false);
     838      this.solverTabControl.ResumeLayout(false);
     839      this.resultsTabPage.ResumeLayout(false);
     840      this.parametersTabPage.ResumeLayout(false);
     841      this.operatorGraphTabPage.ResumeLayout(false);
    785842      this.runsTabPage.ResumeLayout(false);
    786843      this.okbTabPage.ResumeLayout(false);
     
    792849      ((System.ComponentModel.ISupportInitialize)(this.instanceMapChart)).EndInit();
    793850      this.ResumeLayout(false);
    794       this.PerformLayout();
    795851
    796852    }
     
    838894    private Visualization.ChartControlsExtensions.EnhancedChart solutionsNetworkChart;
    839895    private System.Windows.Forms.Button algorithmCloneButton;
    840     private System.Windows.Forms.SplitContainer solversSplitContainer;
    841     private Core.Views.ParameterCollectionView solverParametersView;
    842     private Optimization.Views.ResultCollectionView solverResultsView;
    843896    private System.Windows.Forms.Label solutionNameLabel;
    844897    private System.Windows.Forms.ComboBox solutionNameComboBox;
    845     private System.Windows.Forms.TabPage solutionsSeedingTabPage;
    846     private System.Windows.Forms.TableLayoutPanel solutionsSeedingTableLayoutPanel;
     898    private MainForm.WindowsForms.DragOverTabControl solverTabControl;
     899    private System.Windows.Forms.TabPage resultsTabPage;
     900    private Optimization.Views.ResultCollectionView solverResultsView;
     901    private System.Windows.Forms.TabPage solutionSeedingTabPage;
     902    private System.Windows.Forms.TabPage parametersTabPage;
     903    private Core.Views.ParameterCollectionView solverParametersView;
     904    private System.Windows.Forms.Panel seedingStrategyPanel;
     905    private System.Windows.Forms.Label label1;
     906    private System.Windows.Forms.TabPage operatorGraphTabPage;
     907    private MainForm.WindowsForms.ViewHost operatorGraphViewHost;
     908    private System.Windows.Forms.CheckBox fdcBetweenBestCheckBox;
    847909  }
    848910}
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.cs

    r13713 r13718  
    4040using System.Windows.Forms;
    4141using System.Windows.Forms.DataVisualization.Charting;
    42 using DoubleValue = HeuristicLab.Data.DoubleValue;
    4342
    4443namespace HeuristicLab.OptimizationExpertSystem {
    45   [View("Expert-system Optimizer View")]
     44  [View("Knowledge Center (all-in-one view)")]
    4645  [Content(typeof(ExpertSystem), IsDefaultView = true)]
    47   public partial class ExpertSystemView : NamedItemView {
     46  public partial class ExpertSystemView : ItemView {
    4847    private EnumValueView<SeedingStrategyTypes> seedingStrategyView;
    4948    private CheckedItemListView<IScope> seedingSolutionsView;
     
    7271        Dock = DockStyle.Fill
    7372      };
    74       solutionsSeedingTableLayoutPanel.SuspendLayout();
    75       solutionsSeedingTableLayoutPanel.Controls.Add(seedingStrategyView, 0, 0);
    76       solutionsSeedingTableLayoutPanel.Controls.Add(seedingSolutionsView, 0, 1);
    77       solutionsSeedingTableLayoutPanel.ResumeLayout(true);
     73      seedingStrategyPanel.Controls.Add(seedingStrategyView);
     74      solutionSeedingTabPage.Controls.Add(seedingSolutionsView);
    7875    }
    7976
     
    8683      Content.SuggestedInstances.ItemsRemoved -= SuggestedInstancesOnChanged;
    8784      Content.SuggestedInstances.ItemsReplaced -= SuggestedInstancesOnChanged;
     85      Content.SolutionSeedingPool.CollectionReset -= SeedingPoolOnChanged;
     86      Content.SolutionSeedingPool.ItemsAdded -= SeedingPoolOnChanged;
     87      Content.SolutionSeedingPool.ItemsRemoved -= SeedingPoolOnChanged;
     88      Content.SolutionSeedingPool.ItemsReplaced -= SeedingPoolOnChanged;
     89      Content.SolutionSeedingPool.CheckedItemsChanged -= SeedingPoolOnChanged;
    8890      DeregisterProblemEvents(Content.Problem);
    8991      base.DeregisterContentEvents();
     
    98100      Content.SuggestedInstances.ItemsRemoved += SuggestedInstancesOnChanged;
    99101      Content.SuggestedInstances.ItemsReplaced += SuggestedInstancesOnChanged;
     102      Content.SolutionSeedingPool.CollectionReset += SeedingPoolOnChanged;
     103      Content.SolutionSeedingPool.ItemsAdded += SeedingPoolOnChanged;
     104      Content.SolutionSeedingPool.ItemsRemoved += SeedingPoolOnChanged;
     105      Content.SolutionSeedingPool.ItemsReplaced += SeedingPoolOnChanged;
     106      Content.SolutionSeedingPool.CheckedItemsChanged += SeedingPoolOnChanged;
    100107      RegisterProblemEvents(Content.Problem);
    101108    }
     
    201208    }
    202209
     210    private void SeedingPoolOnChanged(object sender, EventArgs e) {
     211      UpdateSolutionVisualization();
     212    }
     213
    203214    private void SolutionsOnChanged(object sender, EventArgs e) {
    204215      UpdateNamesComboboxes();
     
    217228      if (!int.TryParse(maxEvaluationsTextBox.Text, out value)) {
    218229        e.Cancel = !maxEvaluationsTextBox.ReadOnly && maxEvaluationsTextBox.Enabled;
    219         errorProvider.SetError(maxEvaluationsTextBox, "Please enter a valid integer number.");
     230        //errorProvider.SetError(maxEvaluationsTextBox, "Please enter a valid integer number.");
    220231      } else {
    221232        Content.MaximumEvaluations = value;
    222233        e.Cancel = false;
    223         errorProvider.SetError(maxEvaluationsTextBox, null);
     234        //errorProvider.SetError(maxEvaluationsTextBox, null);
    224235      }
    225236    }
     
    299310      if (InvokeRequired) { Invoke((Action<object, EventArgs>)SuggestedInstancesComboBoxOnSelectedIndexChanged, sender, e); return; }
    300311      if (suggestedInstancesComboBox.SelectedIndex >= 0) {
    301         solverParametersView.Content = Content.SuggestedInstances[suggestedInstancesComboBox.SelectedIndex].Parameters;
    302       } else solverParametersView.Content = null;
     312        var alg = Content.SuggestedInstances[suggestedInstancesComboBox.SelectedIndex];
     313        solverParametersView.Content = alg.Parameters;
     314        var engineAlg = alg as EngineAlgorithm;
     315        if (engineAlg != null) operatorGraphViewHost.Content = engineAlg.OperatorGraph;
     316        else operatorGraphViewHost.Content = new Data.StringValue("Algorithm is not modeled as an operator graph.");
     317      } else {
     318        solverParametersView.Content = null;
     319        operatorGraphViewHost.Content = null;
     320      }
    303321      SetEnabledStateOfControls();
    304322    }
     
    312330      }
    313331      UpdateSolutionDiversityAnalysis(calculator);
    314       UpdateSolutionFdcAnalysis(calculator);
     332      UpdateSolutionFdcAnalysis(calculator, fdcBetweenBestCheckBox.Checked);
    315333      UpdateSolutionLengthScaleAnalysis(calculator);
    316334      UpdateSolutionNetworkAnalysis(calculator);
     335    }
     336
     337    private void FdcBetweenBestCheckBoxOnCheckedChanged(object sender, EventArgs e) {
     338      if (InvokeRequired) { Invoke((Action<object, EventArgs>)FdcBetweenBestCheckBoxOnCheckedChanged, sender, e); return; }
     339      UpdateSolutionFdcAnalysis((ISolutionSimilarityCalculator)similarityComboBox.SelectedItem, fdcBetweenBestCheckBox.Checked);
     340    }
     341
     342    private void SolutionsNetworkChartOnMouseClick(object sender, MouseEventArgs e) {
     343      var result = solutionsNetworkChart.HitTest(e.X, e.Y);
     344      if (result.ChartElementType == ChartElementType.DataPoint) {
     345        var point = (DataPoint)result.Object;
     346        var solutionScope = point.Tag as IScope;
     347        if (solutionScope == null || !Content.SolutionSeedingPool.Contains(solutionScope)) return;
     348        Content.SolutionSeedingPool.SetItemCheckedState(solutionScope, !Content.SolutionSeedingPool.ItemChecked(solutionScope));
     349      }
    317350    }
    318351    #endregion
     
    386419        var calculator = (ISolutionSimilarityCalculator)similarityComboBox.SelectedItem;
    387420        UpdateSolutionDiversityAnalysis(calculator);
    388         UpdateSolutionFdcAnalysis(calculator);
     421        UpdateSolutionFdcAnalysis(calculator, fdcBetweenBestCheckBox.Checked);
    389422        UpdateSolutionLengthScaleAnalysis(calculator);
    390423        UpdateSolutionNetworkAnalysis(calculator);
     
    403436        solutionsQualityViewHost.Content = dt;
    404437      }
    405       QualityDistributionAnalyzer.UpdateTable(dt, Content.Problem.Solutions.Select(x => x.Solution).OfType<IScope>().Where(x => x.Variables.ContainsKey(qualityName)).Select(x => x.Variables[qualityName].Value).OfType<DoubleValue>().Select(x => x.Value));
     438      QualityDistributionAnalyzer.UpdateTable(dt, GetSolutionScopes().Select(x => GetQuality(x, qualityName) ?? double.NaN).Where(x => !double.IsNaN(x)));
    406439    }
    407440
     
    409442      try {
    410443        solutionsDiversityViewHost.Content = null;
    411         var similarities = new double[Content.Problem.Solutions.Count, Content.Problem.Solutions.Count];
    412         for (int i = 0; i < Content.Problem.Solutions.Count; i++) {
    413           for (int j = 0; j < Content.Problem.Solutions.Count; j++)
    414             similarities[i, j] = calculator.CalculateSolutionSimilarity((IScope)Content.Problem.Solutions[i].Solution, (IScope)Content.Problem.Solutions[j].Solution);
     444        var solutionScopes = GetSolutionScopes();
     445        var similarities = new double[solutionScopes.Count, solutionScopes.Count];
     446        for (var i = 0; i < solutionScopes.Count; i++) {
     447          for (var j = 0; j < solutionScopes.Count; j++)
     448            similarities[i, j] = calculator.CalculateSolutionSimilarity(solutionScopes[i], solutionScopes[j]);
    415449        }
    416450        var hm = new HeatMap(similarities, "Solution Similarities", 0.0, 1.0);
     
    419453    }
    420454
    421     private void UpdateSolutionFdcAnalysis(ISolutionSimilarityCalculator calculator) {
     455    private void UpdateSolutionFdcAnalysis(ISolutionSimilarityCalculator calculator, bool distanceToBest) {
    422456      try {
    423457        solutionsFdcViewHost.Content = null;
     458        var solutionScopes = GetSolutionScopes();
    424459        var points = new List<Point2D<double>>();
    425         for (int i = 0; i < Content.Problem.Solutions.Count; i++) {
    426           for (int j = 0; j < Content.Problem.Solutions.Count; j++) {
    427             if (i == j) continue;
    428             var qDiff = Math.Abs(((DoubleValue)((IScope)Content.Problem.Solutions[i].Solution).Variables[calculator.QualityVariableName].Value).Value
    429               - ((DoubleValue)((IScope)Content.Problem.Solutions[j].Solution).Variables[calculator.QualityVariableName].Value).Value);
    430             points.Add(new Point2D<double>(qDiff, 1.0 - calculator.CalculateSolutionSimilarity((IScope)Content.Problem.Solutions[i].Solution, (IScope)Content.Problem.Solutions[j].Solution)));
     460        if (distanceToBest) {
     461          var maximization = ((IValueParameter<Data.BoolValue>)Content.Problem.MaximizationParameter).Value.Value;
     462          var bestSolutions = (maximization ? solutionScopes.MaxItems(x => GetQuality(x, calculator.QualityVariableName) ?? double.NegativeInfinity)
     463                                            : solutionScopes.MinItems(x => GetQuality(x, calculator.QualityVariableName) ?? double.PositiveInfinity)).ToList();
     464          foreach (var solScope in solutionScopes.Except(bestSolutions)) {
     465            var maxSimilarity = bestSolutions.Max(x => calculator.CalculateSolutionSimilarity(solScope, x));
     466            var qDiff = (GetQuality(solScope, calculator.QualityVariableName) ?? double.NaN)
     467                      - (GetQuality(bestSolutions[0], calculator.QualityVariableName) ?? double.NaN);
     468            points.Add(new Point2D<double>(Math.Abs(qDiff), 1.0 - maxSimilarity));
     469          }
     470        } else {
     471          for (int i = 0; i < solutionScopes.Count; i++) {
     472            for (int j = 0; j < solutionScopes.Count; j++) {
     473              if (i == j) continue;
     474              var qDiff = (GetQuality(solutionScopes[i], calculator.QualityVariableName) ?? double.NaN)
     475                          - (GetQuality(solutionScopes[j], calculator.QualityVariableName) ?? double.NaN);
     476              if (double.IsNaN(qDiff)) continue;
     477              points.Add(new Point2D<double>(Math.Abs(qDiff), 1.0 - calculator.CalculateSolutionSimilarity(solutionScopes[i], solutionScopes[j])));
     478            }
    431479          }
    432480        }
     
    434482        splot.VisualProperties.XAxisTitle = "Absolute Fitness Difference";
    435483        splot.VisualProperties.XAxisMinimumFixedValue = 0.0;
     484        splot.VisualProperties.XAxisMinimumAuto = false;
    436485        splot.VisualProperties.YAxisTitle = "Solution Distance";
    437486        splot.VisualProperties.YAxisMinimumFixedValue = 0.0;
     487        splot.VisualProperties.YAxisMinimumAuto = false;
    438488        splot.VisualProperties.YAxisMaximumFixedValue = 1.0;
     489        splot.VisualProperties.YAxisMaximumAuto = false;
    439490        var row = new ScatterPlotDataRow("Fdc", "", points);
    440491        row.VisualProperties.PointSize = 7;
     
    452503          solutionsLengthScaleViewHost.Content = dt;
    453504        }
    454 
    455505        QualityDistributionAnalyzer.UpdateTable(dt, CalculateLengthScale(calculator));
    456       } catch { }
     506      } catch {
     507        solutionsLengthScaleViewHost.Content = null;
     508      }
    457509    }
    458510
    459511    private IEnumerable<double> CalculateLengthScale(ISolutionSimilarityCalculator calculator) {
    460       for (int i = 0; i < Content.Problem.Solutions.Count; i++) {
    461         for (int j = 0; j < Content.Problem.Solutions.Count; j++) {
     512      var solutionScopes = GetSolutionScopes();
     513      for (var i = 0; i < solutionScopes.Count; i++) {
     514        for (var j = 0; j < solutionScopes.Count; j++) {
    462515          if (i == j) continue;
    463           var sim = calculator.CalculateSolutionSimilarity((IScope)Content.Problem.Solutions[i].Solution, (IScope)Content.Problem.Solutions[j].Solution);
     516          var sim = calculator.CalculateSolutionSimilarity(solutionScopes[i], solutionScopes[j]);
    464517          if (sim.IsAlmost(0)) continue;
    465           var qDiff = Math.Abs(((DoubleValue)((IScope)Content.Problem.Solutions[i].Solution).Variables[calculator.QualityVariableName].Value).Value
    466             - ((DoubleValue)((IScope)Content.Problem.Solutions[j].Solution).Variables[calculator.QualityVariableName].Value).Value);
    467           yield return qDiff / sim;
     518          var qDiff = (GetQuality(solutionScopes[i], calculator.QualityVariableName) ?? double.NaN)
     519                    - (GetQuality(solutionScopes[j], calculator.QualityVariableName) ?? double.NaN);
     520          if (!double.IsNaN(qDiff)) yield return Math.Abs(qDiff) / sim;
    468521        }
    469522      }
     
    471524
    472525    private void UpdateSolutionNetworkAnalysis(ISolutionSimilarityCalculator calculator) {
     526      var series = solutionsNetworkChart.Series["SolutionSeries"];
     527      var seedingSeries = solutionsNetworkChart.Series["SeedingSolutionSeries"];
    473528      try {
    474         var series = solutionsNetworkChart.Series["SolutionSeries"];
    475529        series.Points.Clear();
    476         var dissimilarities = new DoubleMatrix(Content.Problem.Solutions.Count, Content.Problem.Solutions.Count);
    477         for (int i = 0; i < Content.Problem.Solutions.Count; i++) {
    478           for (int j = 0; j < Content.Problem.Solutions.Count; j++) {
     530        seedingSeries.Points.Clear();
     531        var solutionScopes = GetSolutionScopes();
     532        var dissimilarities = new DoubleMatrix(solutionScopes.Count, solutionScopes.Count);
     533        for (var i = 0; i < solutionScopes.Count; i++) {
     534          for (var j = 0; j < solutionScopes.Count; j++) {
    479535            if (i == j) continue;
    480             dissimilarities[i, j] = 1.0 - calculator.CalculateSolutionSimilarity((IScope)Content.Problem.Solutions[i].Solution, (IScope)Content.Problem.Solutions[j].Solution);
     536            dissimilarities[i, j] = 1.0 - calculator.CalculateSolutionSimilarity(solutionScopes[i], solutionScopes[j]);
    481537          }
    482538        }
    483539        var coords = MultidimensionalScaling.KruskalShepard(dissimilarities);
    484540        for (var i = 0; i < coords.Rows; i++) {
    485           var quality = ((DoubleValue)((IScope)Content.Problem.Solutions[i].Solution).Variables[calculator.QualityVariableName].Value).Value;
    486           series.Points.Add(new DataPoint() {
     541          var quality = GetQuality(solutionScopes[i], calculator.QualityVariableName) ?? double.NaN;
     542          var dataPoint = new DataPoint() {
    487543            Name = (i + 1).ToString(),
    488544            XValue = coords[i, 0],
    489             YValues = new[] { coords[i, 1], quality },
    490             Label = i + ": " + quality
    491           });
    492         }
    493       } catch { }
    494     }
    495     #endregion
    496     #endregion
     545            YValues = new[] {coords[i, 1], quality},
     546            Label = i + ": " + quality,
     547            Tag = solutionScopes[i]
     548          };
     549          if (Content.SolutionSeedingPool.Contains(solutionScopes[i]) && Content.SolutionSeedingPool.ItemChecked(solutionScopes[i]))
     550            seedingSeries.Points.Add(dataPoint);
     551          else series.Points.Add(dataPoint);
     552        }
     553      } catch {
     554        // problems in calculating the similarity
     555        series.Points.Clear();
     556        seedingSeries.Points.Clear();
     557      }
     558    }
     559    #endregion
     560    #endregion
     561
     562    private List<IScope> GetSolutionScopes() {
     563      return Content.Problem.Solutions.Select(x => x.Solution).OfType<IScope>().ToList();
     564    }
     565
     566    private double? GetQuality(IScope scope, string qualityName) {
     567      IVariable v;
     568      if (!scope.Variables.TryGetValue(qualityName, out v)) return null;
     569      var dval = v.Value as Data.DoubleValue;
     570      if (dval == null) return null;
     571      return dval.Value;
     572    }
    497573  }
    498574}
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.resx

    r13649 r13718  
    118118    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    119119  </resheader>
    120   <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    121     <value>17, 17</value>
    122   </metadata>
    123   <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    124     <value>140, 17</value>
    125   </metadata>
    126120  <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    127121    <value>230, 17</value>
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/HeuristicLab.OptimizationExpertSystem-3.3.csproj

    r13667 r13718  
    8383      <Private>False</Private>
    8484    </Reference>
     85    <Reference Include="HeuristicLab.Clients.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     86      <SpecificVersion>False</SpecificVersion>
     87      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Clients.Common-3.3.dll</HintPath>
     88      <Private>False</Private>
     89    </Reference>
    8590    <Reference Include="HeuristicLab.Clients.OKB-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    8691      <SpecificVersion>False</SpecificVersion>
     
    146151      <SpecificVersion>False</SpecificVersion>
    147152      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     153      <Private>False</Private>
     154    </Reference>
     155    <Reference Include="HeuristicLab.Scripting-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     156      <SpecificVersion>False</SpecificVersion>
     157      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Scripting-3.3.dll</HintPath>
    148158      <Private>False</Private>
    149159    </Reference>
     
    173183    </Compile>
    174184    <Compile Include="Interfaces\IOptimizationExpertSystemUi.cs" />
     185    <Compile Include="Menu\0_Config\40_AdministerOkbMenuItem.cs" />
     186    <Compile Include="Menu\0_Config\30_DownloadFromOkbMenuItem.cs" />
     187    <Compile Include="Menu\0_Config\10_SetCredentialsMenuItem.cs" />
     188    <Compile Include="Menu\200_Solving\210_SolverMenuItem.cs" />
     189    <Compile Include="Menu\300_Learning\310_AlgorithmInstancesMenuItem.cs" />
     190    <Compile Include="Menu\900_Tools\910_NewCSharpScriptMenuItem.cs" />
     191    <Compile Include="Menu\900_Tools\930_SaveCSharpScriptMenuItem.cs" />
     192    <Compile Include="Menu\900_Tools\920_OpenCSharpScriptMenuItem.cs" />
     193    <Compile Include="Menu\MenuItemBase.cs" />
     194    <Compile Include="Menu\0_Config\20_SetProblemMenuItem.cs" />
     195    <Compile Include="Menu\100_Understanding\120_SolutionsMenuItem.cs" />
     196    <Compile Include="Menu\100_Understanding\110_ProblemInstanceMenuItem.cs" />
    175197    <Compile Include="OptimizationExpertSystem.cs">
    176198      <SubType>Form</SubType>
     
    180202    </Compile>
    181203    <Compile Include="Plugin.cs" />
     204    <Compile Include="UnderstandingProblemInstanceView.cs">
     205      <SubType>UserControl</SubType>
     206    </Compile>
     207    <Compile Include="UnderstandingProblemInstanceView.Designer.cs">
     208      <DependentUpon>UnderstandingProblemInstanceView.cs</DependentUpon>
     209    </Compile>
     210    <Compile Include="Views\ExpertSystemViewBase.cs">
     211      <SubType>UserControl</SubType>
     212    </Compile>
     213    <Compile Include="Views\ExpertSystemViewBase.Designer.cs">
     214      <DependentUpon>ExpertSystemViewBase.cs</DependentUpon>
     215    </Compile>
    182216    <None Include="Properties\AssemblyInfo.cs.frame" />
    183217    <Compile Include="Properties\AssemblyInfo.cs" />
     
    220254    <EmbeddedResource Include="OptimizationExpertSystem.resx">
    221255      <DependentUpon>OptimizationExpertSystem.cs</DependentUpon>
     256    </EmbeddedResource>
     257    <EmbeddedResource Include="UnderstandingProblemInstanceView.resx">
     258      <DependentUpon>UnderstandingProblemInstanceView.cs</DependentUpon>
     259    </EmbeddedResource>
     260    <EmbeddedResource Include="Views\ExpertSystemViewBase.resx">
     261      <DependentUpon>ExpertSystemViewBase.cs</DependentUpon>
    222262    </EmbeddedResource>
    223263  </ItemGroup>
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/HeuristicLab.OptimizationExpertSystem-3.3.csproj.user

    r13668 r13718  
    44    <StartAction>Program</StartAction>
    55    <StartProgram>C:\Users\P40311\Work\HL3\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram>
    6     <StartArguments>/start:"Optimizer" /hideStarter</StartArguments>
     6    <StartArguments>/start:"Optimization Knowledge Center" /hideStarter</StartArguments>
    77  </PropertyGroup>
    88</Project>
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/OptimizationExpertSystem.Designer.cs

    r13667 r13718  
    3232      this.ClientSize = new System.Drawing.Size(624, 412);
    3333      this.Name = "OptimizationExpertSystem";
    34       this.Text = "Optimization Expert System (OES)";
    35       this.Title = "Optimization Expert System (OES)";
     34      this.Text = "Optimization Knowledge Center (OKC)";
     35      this.Title = "Optimization Knowledge Center (OKC)";
    3636      this.Load += new System.EventHandler(this.OptimizationExpertSystem_Load);
    3737      this.ResumeLayout(false);
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/Plugin.cs.frame

    r13667 r13718  
    4343  }
    4444
    45   [Application("Optimization Expert System", "HeuristicLab Optimization Expert System 3.3.13.$WCREV$")]
    46   internal class HeuristicLabOptimizationExpertSystemApplication : ApplicationBase {
     45  [Application("Optimization Knowledge Center", "HeuristicLab Optimization Knowledge Center 3.3.13.$WCREV$")]
     46  internal class HeuristicLabOptimizationKnowledgeCenterApplication : ApplicationBase {
    4747    public override void Run(ICommandLineArgument[] args) {
    4848      HeuristicLab.MainForm.WindowsForms.MainForm mainForm = new OptimizationExpertSystem(typeof(IOptimizationExpertSystemUi));
Note: See TracChangeset for help on using the changeset viewer.