Changeset 13718
- Timestamp:
- 03/18/16 16:15:10 (9 years ago)
- Location:
- branches/PerformanceComparison
- Files:
-
- 25 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem.Common/3.3/ExpertSystem.cs
r13713 r13718 251 251 // It has to be decided somehow which problem instances to include in order to obtain the set of features that is expressive and available 252 252 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 253 255 var commonCharacteristics = filter.Count > 0 ? filter : allCharacteristics[0]; 254 256 for (var i = 0; i < allCharacteristics.Count; i++) … … 446 448 } 447 449 448 public async void UpdateKnowledgeBaseAsync(IProgress progress) { 450 public Task UpdateKnowledgeBaseAsync(IProgress progress = null) { 451 if (progress == null) progress = new Progress(string.Empty); 449 452 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(); 455 459 } 456 460 … … 632 636 if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 633 637 } 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 } 634 644 } 635 645 } -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.Designer.cs
r13713 r13718 49 49 System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); 50 50 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(); 51 52 System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); 52 53 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();54 54 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(); 55 56 this.evaluationsLimitabel = new System.Windows.Forms.Label(); 56 57 this.maxEvaluationsTextBox = new System.Windows.Forms.TextBox(); … … 64 65 this.similarityComboBox = new System.Windows.Forms.ComboBox(); 65 66 this.solutionsTabControl = new HeuristicLab.MainForm.WindowsForms.DragOverTabControl(); 66 this.solutionsSeedingTabPage = new System.Windows.Forms.TabPage();67 67 this.solutionsQualityTabPage = new System.Windows.Forms.TabPage(); 68 68 this.solutionsQualityViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 69 this.solutionsLengthScaleTabPage = new System.Windows.Forms.TabPage(); 70 this.solutionsLengthScaleViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 69 71 this.solutionsDiversityTabPage = new System.Windows.Forms.TabPage(); 70 72 this.solutionsDiversityViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 71 73 this.solutionsFdcTabPage = new System.Windows.Forms.TabPage(); 74 this.fdcBetweenBestCheckBox = new System.Windows.Forms.CheckBox(); 72 75 this.solutionsFdcViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 73 this.solutionsLengthScaleTabPage = new System.Windows.Forms.TabPage();74 this.solutionsLengthScaleViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();75 76 this.solutionsNetworkTabPage = new System.Windows.Forms.TabPage(); 76 77 this.solutionsNetworkChart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart(); 77 78 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(); 79 85 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(); 81 88 this.algorithmCloneButton = new System.Windows.Forms.Button(); 82 89 this.algorithmStartButton = new System.Windows.Forms.Button(); 90 this.label1 = new System.Windows.Forms.Label(); 83 91 this.algorithmSuggestionLabel = new System.Windows.Forms.Label(); 84 92 this.suggestedInstancesComboBox = new System.Windows.Forms.ComboBox(); … … 99 107 this.okbDownloadButton = new System.Windows.Forms.Button(); 100 108 this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); 101 this.solutionsSeedingTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();102 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();103 109 this.tabControl.SuspendLayout(); 104 110 this.problemTabPage.SuspendLayout(); 105 111 this.solutionsTabPage.SuspendLayout(); 106 112 this.solutionsTabControl.SuspendLayout(); 107 this.solutionsSeedingTabPage.SuspendLayout();108 113 this.solutionsQualityTabPage.SuspendLayout(); 114 this.solutionsLengthScaleTabPage.SuspendLayout(); 109 115 this.solutionsDiversityTabPage.SuspendLayout(); 110 116 this.solutionsFdcTabPage.SuspendLayout(); 111 this.solutionsLengthScaleTabPage.SuspendLayout();112 117 this.solutionsNetworkTabPage.SuspendLayout(); 113 118 ((System.ComponentModel.ISupportInitialize)(this.solutionsNetworkChart)).BeginInit(); 114 119 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(); 119 124 this.runsTabPage.SuspendLayout(); 120 125 this.okbTabPage.SuspendLayout(); … … 126 131 this.SuspendLayout(); 127 132 // 128 // nameTextBox129 //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 // infoLabel136 //137 this.infoLabel.Location = new System.Drawing.Point(673, 3);138 //139 133 // evaluationsLimitabel 140 134 // 141 135 this.evaluationsLimitabel.AutoSize = true; 142 this.evaluationsLimitabel.Location = new System.Drawing.Point( 3, 29);136 this.evaluationsLimitabel.Location = new System.Drawing.Point(5, 9); 143 137 this.evaluationsLimitabel.Name = "evaluationsLimitabel"; 144 138 this.evaluationsLimitabel.Size = new System.Drawing.Size(66, 13); … … 150 144 this.maxEvaluationsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 151 145 | 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); 153 147 this.maxEvaluationsTextBox.Name = "maxEvaluationsTextBox"; 154 this.maxEvaluationsTextBox.Size = new System.Drawing.Size(5 92, 20);148 this.maxEvaluationsTextBox.Size = new System.Drawing.Size(564, 20); 155 149 this.maxEvaluationsTextBox.TabIndex = 6; 156 150 this.maxEvaluationsTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.MaxEvaluationsTextBoxOnValidating); … … 168 162 this.tabControl.Controls.Add(this.okbTabPage); 169 163 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); 171 165 this.tabControl.Name = "tabControl"; 172 166 this.tabControl.SelectedIndex = 0; 173 this.tabControl.Size = new System.Drawing.Size(689, 454);167 this.tabControl.Size = new System.Drawing.Size(689, 503); 174 168 this.tabControl.TabIndex = 17; 175 169 // … … 181 175 this.problemTabPage.Name = "problemTabPage"; 182 176 this.problemTabPage.Padding = new System.Windows.Forms.Padding(3); 183 this.problemTabPage.Size = new System.Drawing.Size(681, 4 28);177 this.problemTabPage.Size = new System.Drawing.Size(681, 477); 184 178 this.problemTabPage.TabIndex = 1; 185 179 this.problemTabPage.Text = "Problem"; … … 195 189 this.problemViewHost.Name = "problemViewHost"; 196 190 this.problemViewHost.ReadOnly = false; 197 this.problemViewHost.Size = new System.Drawing.Size(675, 4 22);191 this.problemViewHost.Size = new System.Drawing.Size(675, 471); 198 192 this.problemViewHost.TabIndex = 2; 199 193 this.problemViewHost.ViewsLabelVisible = false; … … 210 204 this.solutionsTabPage.Name = "solutionsTabPage"; 211 205 this.solutionsTabPage.Padding = new System.Windows.Forms.Padding(3); 212 this.solutionsTabPage.Size = new System.Drawing.Size(681, 4 28);206 this.solutionsTabPage.Size = new System.Drawing.Size(681, 477); 213 207 this.solutionsTabPage.TabIndex = 7; 214 208 this.solutionsTabPage.Text = "Solutions"; … … 261 255 | System.Windows.Forms.AnchorStyles.Left) 262 256 | System.Windows.Forms.AnchorStyles.Right))); 263 this.solutionsTabControl.Controls.Add(this.solutionsSeedingTabPage);264 257 this.solutionsTabControl.Controls.Add(this.solutionsQualityTabPage); 258 this.solutionsTabControl.Controls.Add(this.solutionsLengthScaleTabPage); 265 259 this.solutionsTabControl.Controls.Add(this.solutionsDiversityTabPage); 266 260 this.solutionsTabControl.Controls.Add(this.solutionsFdcTabPage); 267 this.solutionsTabControl.Controls.Add(this.solutionsLengthScaleTabPage);268 261 this.solutionsTabControl.Controls.Add(this.solutionsNetworkTabPage); 269 262 this.solutionsTabControl.Location = new System.Drawing.Point(3, 33); 270 263 this.solutionsTabControl.Name = "solutionsTabControl"; 271 264 this.solutionsTabControl.SelectedIndex = 0; 272 this.solutionsTabControl.Size = new System.Drawing.Size(675, 392);265 this.solutionsTabControl.Size = new System.Drawing.Size(675, 441); 273 266 this.solutionsTabControl.TabIndex = 0; 274 //275 // solutionsSeedingTabPage276 //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;285 267 // 286 268 // solutionsQualityTabPage … … 290 272 this.solutionsQualityTabPage.Name = "solutionsQualityTabPage"; 291 273 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); 293 275 this.solutionsQualityTabPage.TabIndex = 1; 294 276 this.solutionsQualityTabPage.Text = "Quality Analysis"; … … 304 286 this.solutionsQualityViewHost.Name = "solutionsQualityViewHost"; 305 287 this.solutionsQualityViewHost.ReadOnly = false; 306 this.solutionsQualityViewHost.Size = new System.Drawing.Size(661, 360);288 this.solutionsQualityViewHost.Size = new System.Drawing.Size(661, 409); 307 289 this.solutionsQualityViewHost.TabIndex = 0; 308 290 this.solutionsQualityViewHost.ViewsLabelVisible = true; 309 291 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; 310 317 // 311 318 // solutionsDiversityTabPage … … 315 322 this.solutionsDiversityTabPage.Name = "solutionsDiversityTabPage"; 316 323 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); 318 325 this.solutionsDiversityTabPage.TabIndex = 2; 319 326 this.solutionsDiversityTabPage.Text = "Diversity Analysis"; … … 329 336 this.solutionsDiversityViewHost.Name = "solutionsDiversityViewHost"; 330 337 this.solutionsDiversityViewHost.ReadOnly = false; 331 this.solutionsDiversityViewHost.Size = new System.Drawing.Size(661, 360);338 this.solutionsDiversityViewHost.Size = new System.Drawing.Size(661, 409); 332 339 this.solutionsDiversityViewHost.TabIndex = 1; 333 340 this.solutionsDiversityViewHost.ViewsLabelVisible = true; … … 336 343 // solutionsFdcTabPage 337 344 // 345 this.solutionsFdcTabPage.Controls.Add(this.fdcBetweenBestCheckBox); 338 346 this.solutionsFdcTabPage.Controls.Add(this.solutionsFdcViewHost); 339 347 this.solutionsFdcTabPage.Location = new System.Drawing.Point(4, 22); 340 348 this.solutionsFdcTabPage.Name = "solutionsFdcTabPage"; 341 349 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); 343 351 this.solutionsFdcTabPage.TabIndex = 5; 344 352 this.solutionsFdcTabPage.Text = "Fitness-Distance Analysis"; 345 353 this.solutionsFdcTabPage.UseVisualStyleBackColor = true; 346 354 // 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 // 347 366 // solutionsFdcViewHost 348 367 // 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))); 349 371 this.solutionsFdcViewHost.Caption = "View"; 350 372 this.solutionsFdcViewHost.Content = null; 351 this.solutionsFdcViewHost.Dock = System.Windows.Forms.DockStyle.Fill;352 373 this.solutionsFdcViewHost.Enabled = false; 353 this.solutionsFdcViewHost.Location = new System.Drawing.Point(3, 3);374 this.solutionsFdcViewHost.Location = new System.Drawing.Point(3, 29); 354 375 this.solutionsFdcViewHost.Name = "solutionsFdcViewHost"; 355 376 this.solutionsFdcViewHost.ReadOnly = false; 356 this.solutionsFdcViewHost.Size = new System.Drawing.Size(661, 3 60);377 this.solutionsFdcViewHost.Size = new System.Drawing.Size(661, 386); 357 378 this.solutionsFdcViewHost.TabIndex = 0; 358 379 this.solutionsFdcViewHost.ViewsLabelVisible = true; 359 380 this.solutionsFdcViewHost.ViewType = null; 360 //361 // solutionsLengthScaleTabPage362 //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 // solutionsLengthScaleViewHost373 //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;385 381 // 386 382 // solutionsNetworkTabPage … … 390 386 this.solutionsNetworkTabPage.Name = "solutionsNetworkTabPage"; 391 387 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); 393 389 this.solutionsNetworkTabPage.TabIndex = 4; 394 390 this.solutionsNetworkTabPage.Text = "Network Analysis"; … … 423 419 series1.Name = "SolutionSeries"; 424 420 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; 425 429 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); 427 432 this.solutionsNetworkChart.TabIndex = 0; 428 433 this.solutionsNetworkChart.Text = "enhancedChart1"; 434 this.solutionsNetworkChart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.SolutionsNetworkChartOnMouseClick); 429 435 // 430 436 // solversTabPage 431 437 // 432 this.solversTabPage.Controls.Add(this.solversSplitContainer); 438 this.solversTabPage.Controls.Add(this.seedingStrategyPanel); 439 this.solversTabPage.Controls.Add(this.solverTabControl); 433 440 this.solversTabPage.Controls.Add(this.algorithmCloneButton); 434 441 this.solversTabPage.Controls.Add(this.algorithmStartButton); 442 this.solversTabPage.Controls.Add(this.label1); 443 this.solversTabPage.Controls.Add(this.evaluationsLimitabel); 435 444 this.solversTabPage.Controls.Add(this.algorithmSuggestionLabel); 445 this.solversTabPage.Controls.Add(this.maxEvaluationsTextBox); 436 446 this.solversTabPage.Controls.Add(this.suggestedInstancesComboBox); 437 447 this.solversTabPage.Location = new System.Drawing.Point(4, 22); 438 448 this.solversTabPage.Name = "solversTabPage"; 439 449 this.solversTabPage.Padding = new System.Windows.Forms.Padding(3); 440 this.solversTabPage.Size = new System.Drawing.Size(681, 4 28);450 this.solversTabPage.Size = new System.Drawing.Size(681, 477); 441 451 this.solversTabPage.TabIndex = 4; 442 452 this.solversTabPage.Text = "Solvers"; 443 453 this.solversTabPage.UseVisualStyleBackColor = true; 444 454 // 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) 448 468 | System.Windows.Forms.AnchorStyles.Left) 449 469 | 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; 464 523 // 465 524 // solverParametersView … … 469 528 this.solverParametersView.Content = null; 470 529 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); 472 531 this.solverParametersView.Name = "solverParametersView"; 473 532 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); 476 535 this.solverParametersView.TabIndex = 0; 477 536 // 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; 489 561 // 490 562 // algorithmCloneButton 491 563 // 492 564 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(64 9, 5);565 this.algorithmCloneButton.Location = new System.Drawing.Point(648, 58); 494 566 this.algorithmCloneButton.Name = "algorithmCloneButton"; 495 567 this.algorithmCloneButton.Size = new System.Drawing.Size(26, 23); … … 502 574 // 503 575 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(61 7, 5);576 this.algorithmStartButton.Location = new System.Drawing.Point(616, 58); 505 577 this.algorithmStartButton.Name = "algorithmStartButton"; 506 578 this.algorithmStartButton.Size = new System.Drawing.Size(26, 23); … … 510 582 this.algorithmStartButton.Click += new System.EventHandler(this.AlgorithmStartButtonOnClick); 511 583 // 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 // 512 593 // algorithmSuggestionLabel 513 594 // 514 595 this.algorithmSuggestionLabel.AutoSize = true; 515 this.algorithmSuggestionLabel.Location = new System.Drawing.Point( 6, 9);596 this.algorithmSuggestionLabel.Location = new System.Drawing.Point(5, 62); 516 597 this.algorithmSuggestionLabel.Name = "algorithmSuggestionLabel"; 517 598 this.algorithmSuggestionLabel.Size = new System.Drawing.Size(99, 13); … … 525 606 this.suggestedInstancesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 526 607 this.suggestedInstancesComboBox.FormattingEnabled = true; 527 this.suggestedInstancesComboBox.Location = new System.Drawing.Point(11 1, 6);608 this.suggestedInstancesComboBox.Location = new System.Drawing.Point(110, 59); 528 609 this.suggestedInstancesComboBox.Name = "suggestedInstancesComboBox"; 529 610 this.suggestedInstancesComboBox.Size = new System.Drawing.Size(500, 21); … … 537 618 this.runsTabPage.Name = "runsTabPage"; 538 619 this.runsTabPage.Padding = new System.Windows.Forms.Padding(3); 539 this.runsTabPage.Size = new System.Drawing.Size(681, 4 28);620 this.runsTabPage.Size = new System.Drawing.Size(681, 477); 540 621 this.runsTabPage.TabIndex = 3; 541 622 this.runsTabPage.Text = "Runs"; … … 550 631 this.runsView.Name = "runsView"; 551 632 this.runsView.ReadOnly = false; 552 this.runsView.Size = new System.Drawing.Size(675, 4 22);633 this.runsView.Size = new System.Drawing.Size(675, 471); 553 634 this.runsView.TabIndex = 1; 554 635 // … … 559 640 this.okbTabPage.Name = "okbTabPage"; 560 641 this.okbTabPage.Padding = new System.Windows.Forms.Padding(3); 561 this.okbTabPage.Size = new System.Drawing.Size(681, 4 28);642 this.okbTabPage.Size = new System.Drawing.Size(681, 477); 562 643 this.okbTabPage.TabIndex = 5; 563 644 this.okbTabPage.Text = "Knowledge Base"; … … 573 654 this.kbViewHost.Name = "kbViewHost"; 574 655 this.kbViewHost.ReadOnly = true; 575 this.kbViewHost.Size = new System.Drawing.Size(675, 4 22);656 this.kbViewHost.Size = new System.Drawing.Size(675, 471); 576 657 this.kbViewHost.TabIndex = 3; 577 658 this.kbViewHost.ViewsLabelVisible = true; … … 587 668 this.problemInstancesTabPage.Name = "problemInstancesTabPage"; 588 669 this.problemInstancesTabPage.Padding = new System.Windows.Forms.Padding(3); 589 this.problemInstancesTabPage.Size = new System.Drawing.Size(681, 4 28);670 this.problemInstancesTabPage.Size = new System.Drawing.Size(681, 477); 590 671 this.problemInstancesTabPage.TabIndex = 6; 591 672 this.problemInstancesTabPage.Text = "Problem Instances"; … … 622 703 this.problemInstancesTabControl.Name = "problemInstancesTabControl"; 623 704 this.problemInstancesTabControl.SelectedIndex = 0; 624 this.problemInstancesTabControl.Size = new System.Drawing.Size(675, 390);705 this.problemInstancesTabControl.Size = new System.Drawing.Size(675, 439); 625 706 this.problemInstancesTabControl.TabIndex = 4; 626 707 // … … 631 712 this.instancesTabPage.Name = "instancesTabPage"; 632 713 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); 634 715 this.instancesTabPage.TabIndex = 0; 635 716 this.instancesTabPage.Text = "Instances"; … … 645 726 this.problemInstancesView.Name = "problemInstancesView"; 646 727 this.problemInstancesView.ReadOnly = false; 647 this.problemInstancesView.Size = new System.Drawing.Size(661, 358);728 this.problemInstancesView.Size = new System.Drawing.Size(661, 407); 648 729 this.problemInstancesView.TabIndex = 0; 649 730 this.problemInstancesView.ViewsLabelVisible = true; … … 656 737 this.mapTabPage.Name = "mapTabPage"; 657 738 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); 659 740 this.mapTabPage.TabIndex = 1; 660 741 this.mapTabPage.Text = "Map"; … … 676 757 this.instanceMapChart.Location = new System.Drawing.Point(3, 3); 677 758 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";683 759 series3.ChartArea = "Default"; 684 760 series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; 685 761 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"; 691 771 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); 693 774 this.instanceMapChart.TabIndex = 0; 694 775 // … … 708 789 | System.Windows.Forms.AnchorStyles.Left) 709 790 | 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); 711 792 this.progressPanel.Name = "progressPanel"; 712 this.progressPanel.Size = new System.Drawing.Size(692, 454);793 this.progressPanel.Size = new System.Drawing.Size(692, 503); 713 794 this.progressPanel.TabIndex = 2; 714 795 this.progressPanel.Visible = false; … … 718 799 this.okbDownloadButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 719 800 | 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); 721 802 this.okbDownloadButton.Name = "okbDownloadButton"; 722 this.okbDownloadButton.Size = new System.Drawing.Size(6 61, 23);803 this.okbDownloadButton.Size = new System.Drawing.Size(686, 23); 723 804 this.okbDownloadButton.TabIndex = 1; 724 805 this.okbDownloadButton.Text = "Download from OKB"; … … 733 814 this.openFileDialog.Title = "Open Optimizer"; 734 815 // 735 // solutionsSeedingTableLayoutPanel736 //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 //748 816 // ExpertSystemView 749 817 // … … 751 819 this.Controls.Add(this.okbDownloadButton); 752 820 this.Controls.Add(this.tabControl); 753 this.Controls.Add(this.evaluationsLimitabel);754 this.Controls.Add(this.maxEvaluationsTextBox);755 821 this.Controls.Add(this.progressPanel); 756 822 this.Name = "ExpertSystemView"; 757 823 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();767 824 this.tabControl.ResumeLayout(false); 768 825 this.problemTabPage.ResumeLayout(false); … … 770 827 this.solutionsTabPage.PerformLayout(); 771 828 this.solutionsTabControl.ResumeLayout(false); 772 this.solutionsSeedingTabPage.ResumeLayout(false);773 829 this.solutionsQualityTabPage.ResumeLayout(false); 830 this.solutionsLengthScaleTabPage.ResumeLayout(false); 774 831 this.solutionsDiversityTabPage.ResumeLayout(false); 775 832 this.solutionsFdcTabPage.ResumeLayout(false); 776 this.solutions LengthScaleTabPage.ResumeLayout(false);833 this.solutionsFdcTabPage.PerformLayout(); 777 834 this.solutionsNetworkTabPage.ResumeLayout(false); 778 835 ((System.ComponentModel.ISupportInitialize)(this.solutionsNetworkChart)).EndInit(); 779 836 this.solversTabPage.ResumeLayout(false); 780 837 this.solversTabPage.PerformLayout(); 781 this.solver sSplitContainer.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); 785 842 this.runsTabPage.ResumeLayout(false); 786 843 this.okbTabPage.ResumeLayout(false); … … 792 849 ((System.ComponentModel.ISupportInitialize)(this.instanceMapChart)).EndInit(); 793 850 this.ResumeLayout(false); 794 this.PerformLayout();795 851 796 852 } … … 838 894 private Visualization.ChartControlsExtensions.EnhancedChart solutionsNetworkChart; 839 895 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;843 896 private System.Windows.Forms.Label solutionNameLabel; 844 897 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; 847 909 } 848 910 } -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.cs
r13713 r13718 40 40 using System.Windows.Forms; 41 41 using System.Windows.Forms.DataVisualization.Charting; 42 using DoubleValue = HeuristicLab.Data.DoubleValue;43 42 44 43 namespace HeuristicLab.OptimizationExpertSystem { 45 [View(" Expert-system Optimizer View")]44 [View("Knowledge Center (all-in-one view)")] 46 45 [Content(typeof(ExpertSystem), IsDefaultView = true)] 47 public partial class ExpertSystemView : NamedItemView {46 public partial class ExpertSystemView : ItemView { 48 47 private EnumValueView<SeedingStrategyTypes> seedingStrategyView; 49 48 private CheckedItemListView<IScope> seedingSolutionsView; … … 72 71 Dock = DockStyle.Fill 73 72 }; 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); 78 75 } 79 76 … … 86 83 Content.SuggestedInstances.ItemsRemoved -= SuggestedInstancesOnChanged; 87 84 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; 88 90 DeregisterProblemEvents(Content.Problem); 89 91 base.DeregisterContentEvents(); … … 98 100 Content.SuggestedInstances.ItemsRemoved += SuggestedInstancesOnChanged; 99 101 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; 100 107 RegisterProblemEvents(Content.Problem); 101 108 } … … 201 208 } 202 209 210 private void SeedingPoolOnChanged(object sender, EventArgs e) { 211 UpdateSolutionVisualization(); 212 } 213 203 214 private void SolutionsOnChanged(object sender, EventArgs e) { 204 215 UpdateNamesComboboxes(); … … 217 228 if (!int.TryParse(maxEvaluationsTextBox.Text, out value)) { 218 229 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."); 220 231 } else { 221 232 Content.MaximumEvaluations = value; 222 233 e.Cancel = false; 223 errorProvider.SetError(maxEvaluationsTextBox, null);234 //errorProvider.SetError(maxEvaluationsTextBox, null); 224 235 } 225 236 } … … 299 310 if (InvokeRequired) { Invoke((Action<object, EventArgs>)SuggestedInstancesComboBoxOnSelectedIndexChanged, sender, e); return; } 300 311 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 } 303 321 SetEnabledStateOfControls(); 304 322 } … … 312 330 } 313 331 UpdateSolutionDiversityAnalysis(calculator); 314 UpdateSolutionFdcAnalysis(calculator );332 UpdateSolutionFdcAnalysis(calculator, fdcBetweenBestCheckBox.Checked); 315 333 UpdateSolutionLengthScaleAnalysis(calculator); 316 334 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 } 317 350 } 318 351 #endregion … … 386 419 var calculator = (ISolutionSimilarityCalculator)similarityComboBox.SelectedItem; 387 420 UpdateSolutionDiversityAnalysis(calculator); 388 UpdateSolutionFdcAnalysis(calculator );421 UpdateSolutionFdcAnalysis(calculator, fdcBetweenBestCheckBox.Checked); 389 422 UpdateSolutionLengthScaleAnalysis(calculator); 390 423 UpdateSolutionNetworkAnalysis(calculator); … … 403 436 solutionsQualityViewHost.Content = dt; 404 437 } 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))); 406 439 } 407 440 … … 409 442 try { 410 443 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]); 415 449 } 416 450 var hm = new HeatMap(similarities, "Solution Similarities", 0.0, 1.0); … … 419 453 } 420 454 421 private void UpdateSolutionFdcAnalysis(ISolutionSimilarityCalculator calculator ) {455 private void UpdateSolutionFdcAnalysis(ISolutionSimilarityCalculator calculator, bool distanceToBest) { 422 456 try { 423 457 solutionsFdcViewHost.Content = null; 458 var solutionScopes = GetSolutionScopes(); 424 459 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 } 431 479 } 432 480 } … … 434 482 splot.VisualProperties.XAxisTitle = "Absolute Fitness Difference"; 435 483 splot.VisualProperties.XAxisMinimumFixedValue = 0.0; 484 splot.VisualProperties.XAxisMinimumAuto = false; 436 485 splot.VisualProperties.YAxisTitle = "Solution Distance"; 437 486 splot.VisualProperties.YAxisMinimumFixedValue = 0.0; 487 splot.VisualProperties.YAxisMinimumAuto = false; 438 488 splot.VisualProperties.YAxisMaximumFixedValue = 1.0; 489 splot.VisualProperties.YAxisMaximumAuto = false; 439 490 var row = new ScatterPlotDataRow("Fdc", "", points); 440 491 row.VisualProperties.PointSize = 7; … … 452 503 solutionsLengthScaleViewHost.Content = dt; 453 504 } 454 455 505 QualityDistributionAnalyzer.UpdateTable(dt, CalculateLengthScale(calculator)); 456 } catch { } 506 } catch { 507 solutionsLengthScaleViewHost.Content = null; 508 } 457 509 } 458 510 459 511 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++) { 462 515 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]); 464 517 if (sim.IsAlmost(0)) continue; 465 var qDiff = Math.Abs(((DoubleValue)((IScope)Content.Problem.Solutions[i].Solution).Variables[calculator.QualityVariableName].Value).Value466 - ((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; 468 521 } 469 522 } … … 471 524 472 525 private void UpdateSolutionNetworkAnalysis(ISolutionSimilarityCalculator calculator) { 526 var series = solutionsNetworkChart.Series["SolutionSeries"]; 527 var seedingSeries = solutionsNetworkChart.Series["SeedingSolutionSeries"]; 473 528 try { 474 var series = solutionsNetworkChart.Series["SolutionSeries"];475 529 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++) { 479 535 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]); 481 537 } 482 538 } 483 539 var coords = MultidimensionalScaling.KruskalShepard(dissimilarities); 484 540 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() { 487 543 Name = (i + 1).ToString(), 488 544 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 } 497 573 } 498 574 } -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/ExpertSystemView.resx
r13649 r13718 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </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>126 120 <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 127 121 <value>230, 17</value> -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/HeuristicLab.OptimizationExpertSystem-3.3.csproj
r13667 r13718 83 83 <Private>False</Private> 84 84 </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> 85 90 <Reference Include="HeuristicLab.Clients.OKB-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 86 91 <SpecificVersion>False</SpecificVersion> … … 146 151 <SpecificVersion>False</SpecificVersion> 147 152 <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> 148 158 <Private>False</Private> 149 159 </Reference> … … 173 183 </Compile> 174 184 <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" /> 175 197 <Compile Include="OptimizationExpertSystem.cs"> 176 198 <SubType>Form</SubType> … … 180 202 </Compile> 181 203 <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> 182 216 <None Include="Properties\AssemblyInfo.cs.frame" /> 183 217 <Compile Include="Properties\AssemblyInfo.cs" /> … … 220 254 <EmbeddedResource Include="OptimizationExpertSystem.resx"> 221 255 <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> 222 262 </EmbeddedResource> 223 263 </ItemGroup> -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/HeuristicLab.OptimizationExpertSystem-3.3.csproj.user
r13668 r13718 4 4 <StartAction>Program</StartAction> 5 5 <StartProgram>C:\Users\P40311\Work\HL3\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram> 6 <StartArguments>/start:"Optimiz er" /hideStarter</StartArguments>6 <StartArguments>/start:"Optimization Knowledge Center" /hideStarter</StartArguments> 7 7 </PropertyGroup> 8 8 </Project> -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/OptimizationExpertSystem.Designer.cs
r13667 r13718 32 32 this.ClientSize = new System.Drawing.Size(624, 412); 33 33 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)"; 36 36 this.Load += new System.EventHandler(this.OptimizationExpertSystem_Load); 37 37 this.ResumeLayout(false); -
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/Plugin.cs.frame
r13667 r13718 43 43 } 44 44 45 [Application("Optimization Expert System", "HeuristicLab Optimization Expert System3.3.13.$WCREV$")]46 internal class HeuristicLabOptimization ExpertSystemApplication : ApplicationBase {45 [Application("Optimization Knowledge Center", "HeuristicLab Optimization Knowledge Center 3.3.13.$WCREV$")] 46 internal class HeuristicLabOptimizationKnowledgeCenterApplication : ApplicationBase { 47 47 public override void Run(ICommandLineArgument[] args) { 48 48 HeuristicLab.MainForm.WindowsForms.MainForm mainForm = new OptimizationExpertSystem(typeof(IOptimizationExpertSystemUi));
Note: See TracChangeset
for help on using the changeset viewer.