Opened 5 years ago

Closed 5 years ago

#1782 closed enhancement (done)

Integrate problem instances in HeuristicLab

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.7
Component: Problems.Instances Version: 3.3.7
Keywords: Cc: mkommend

Description (last modified by abeham)

Benchmark problem instances should be tighter integrated so that users can select them with ease.

Change History (52)

comment:1 Changed 5 years ago by abeham

  • Status changed from new to accepted

comment:2 Changed 5 years ago by abeham

r7558: trunk integration of problem instance development

  • Adapted TSP and QAP to use the new feature
  • Moved the TSPLIB importer dialog from the TSP plugin to the TSPLIB instances plugin (created a view for that provider)
  • Created it as a default view for IHeuristicOptimizationProblem in order not to interfere with other problems do not yet work with this

comment:3 Changed 5 years ago by abeham

  • Component changed from General to Problems.Instances

comment:4 Changed 5 years ago by abeham

r7560: added unit tests for the problem instance providers

comment:5 Changed 5 years ago by gkronber

r7600: fixed target directory for problem instances in project files

comment:6 Changed 5 years ago by abeham

oops, thx!

comment:7 Changed 5 years ago by abeham

  • Description modified (diff)

comment:8 Changed 5 years ago by gkronber

would it be possible to zip the problem instance files some or combine them in larger files? It is rather cumbersome to have so many tiny files in the file system.

comment:9 Changed 5 years ago by abeham

As discussed I'll look into creating a zip archive of the instance files and use the SharpZipLib that is used in the PluginInfrastructure already.

comment:10 Changed 5 years ago by abeham

r7618:

  • Removed individual files of the TSPLIB and added zip files (using compression, but fastest)
  • Added SharpZipLib reference
  • Added base class for all TSPLIB instance providers to avoid code duplication
  • Added a new test list for all instance specific unit tests

comment:11 Changed 5 years ago by abeham

  • Description modified (diff)

r7622: fixed two small bugs (tsplib)

comment:12 Changed 5 years ago by abeham

  • Cc mkommend added
  • Description modified (diff)
  • Owner changed from abeham to sforsten
  • Status changed from accepted to assigned

Passing the ticket to sforsten, I wrote a TODO list of the remaining points.

comment:13 Changed 5 years ago by sforsten

r7638: Modified instance providers QAPLIB, ElloumiCTAP, CordeauGQAP to use a zip archive instead of individual embedded files

comment:14 Changed 5 years ago by sforsten

  • Owner changed from sforsten to abeham
  • Status changed from assigned to reviewing

r7641:

  • HeuristicOptimizationView has been integrated in ProblemView and was deleted afterwards.
  • the icons for the load and the info button have been changed
  • QuadraticAssignmentProblem now also loads name and description of problem instance
  • A unused OpenFileDialog has been removed in QuadraticAssignmentProblemView

comment:15 Changed 5 years ago by mkommend

r7642: Corrected assembly references to ICSharpCode.SharpZipLib in Problems.Instances.*.

comment:16 Changed 5 years ago by gkronber

I think this change caused the build to fail for the additional plugins. Please check and fix.

comment:17 Changed 5 years ago by abeham

r7643: trying to fix ziplib references, reverted r7642 (no idea why it fails on the build server)

comment:18 Changed 5 years ago by mkommend

r7645: Set project references to CopyLocal = false for Problems.Instances.* .

r7646: Corrected remaining project references.

comment:19 Changed 5 years ago by mkommend

r7647: Corrected CordeauGQAP instances.

comment:20 Changed 5 years ago by mkommend

r7648: Corrected project references for Problems.Instances.

comment:21 Changed 5 years ago by abeham

r7649: removed copy local flag from references in extlibs, modified plugin infrastructure reference to ziplib to also not copy local and instead set build action to copy always

comment:22 Changed 5 years ago by mkommend

r7659: abeham changed the properties of the data to embedded resources.

comment:23 Changed 5 years ago by svonolfe

Added support for instances of data types in r7867

Last edited 5 years ago by svonolfe (previous) (diff)

comment:24 Changed 5 years ago by svonolfe

Moved distance measure to helper class in r7872

comment:25 Changed 5 years ago by mkommend

r7875: Minor changes in discovery of problem instance providers.

comment:26 Changed 5 years ago by abeham

r7879: Added best-known quality to Cordeau's instances

comment:27 Changed 5 years ago by abeham

  • Description modified (diff)

comment:28 Changed 5 years ago by svonolfe

Added VRP data types in r7880

comment:29 Changed 5 years ago by abeham

r7892: Added missing x86 and x64 build configurations for some projects

comment:30 Changed 5 years ago by mkommend

  • Owner changed from abeham to sforsten
  • Status changed from reviewing to assigned

The following things should be improved in the problem instances views:

  • Load & export buttons should be next the the provider combo box in the provider view
  • The export button should have a 'save as' icon instead of the save icon

comment:31 Changed 5 years ago by sforsten

r7956: improvements from mkommend's comment have been applied

comment:32 Changed 5 years ago by sforsten

  • Owner changed from sforsten to mkommend
  • Status changed from assigned to reviewing

comment:33 Changed 5 years ago by sforsten

r7960:

  • changed references in Problems.Instances.Views to project references
  • set CopyLocal to False for all references

comment:34 Changed 5 years ago by abeham

r8031:

  • Changed tooltip generation in ProblemInstanceConsumerViewGeneric (typeof(T).Name doesn't work, because T doesn't change miraculously when the selected provider changes). The current solution might not be optimal, maybe include another property "FileFormat" in IProblemInstanceProvider that can then be TSPLIB, QAPLIB, CSV, etc.
  • Set instances combobox to not display a selected instance initially and disabled button in this case. If that still doesn't reduce the confusion, then I think we have to add problem loading on selected index change and do away with the button.

comment:35 Changed 5 years ago by sforsten

r8180:

  • added CanSave property to IProblemInstanceProvider to know if it can save its data
  • ProblemInstanceConsumerViewGeneric only shows the export button if an IProblemInstanceExporter is available and the selected SelectedProvider has the CanSave property set to true
  • added a default implementation for CanSave and SaveData to ProblemInstanceProvider, so classes which inherit from it, don't have to implement it.
  • Classes in Problems.Instances.DataAnalysis which implemented the IProblemInstanceProvider now inherit from the class ProblemInstanceProvider, so some code is obsolete now and had been deleted
Last edited 5 years ago by sforsten (previous) (diff)

comment:36 Changed 5 years ago by sforsten

r8182: removed unnecessary plugin dependency

comment:37 Changed 5 years ago by mkommend

Thanks for implementing the new export functionality. We should also discuss the import if benchmark problems are selected.

comment:38 Changed 5 years ago by sforsten

r8192:

  • renamed CanSave to CanExportData and SaveData to ExportData
  • added the same functionality for importing problem instance as we implemented for exporting
  • some special changes had to be made in Problems.Instances.VehicleRouting

comment:39 Changed 5 years ago by sforsten

r8196:

  • removed loadButton
  • a new problem instance is loaded as soon as it is selected in the combobox

comment:40 Changed 5 years ago by sforsten

r8197: removed unnecessary try catch block in ProblemInstanceProviderViewGeneric when loading a problem instance

comment:41 Changed 5 years ago by sforsten

r8198: added try catch block again, but the MessageBox has been changed to an ErrorDialog

comment:42 Changed 5 years ago by sforsten

r8201: removed duplication of exception message, when giving the exception to the ErrorDialog

comment:43 Changed 5 years ago by mkommend

  • Owner changed from mkommend to abeham

Reviewed last changes regarding the problem instances and everything works as expected.

comment:44 follow-up: Changed 5 years ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from reviewing to assigned

I thought we discussed to load the instance in the combobox, and after loading immediately switch the SelectedIndex back to -1. Currently it remains at what was selected. Did I misunderstand this once again?

I followed the link to the CSV problem provider "library" and Firefox opened this at the position "What's wrong, if controls are not correctly resized in the HeuristicLab Optimizer?". The second time it correctly scrolled down. I think we should create a separate page and link to that instead of an anchor in a FAQ.

Why was it renamed to Comma-separated values file? Everybody understands CSV what's wrong with it? Is there also possibility to drop in ARFF support at some point in the future?

Following the link to http://groups.csail.mit.edu/EVO-DesignOpt/GPBenchmarks/ says to redirect to a new URL: http://gpbenchmarks.org/. Please update the links.

comment:45 Changed 5 years ago by gkronber

About instance loading, we don't have to switch back immediately as we know that the instance matches the actually loaded file. I thought we can simply switch to -1 whenever the content of the view is set as we cannot know the actually loaded instance in the content. Of course the selected instance and the actual configuration can go out of sync if the user drags in a new problem or changes parameters but I think in this case it is also obvious for the user that the previously loaded instance has been changed.

comment:46 Changed 5 years ago by abeham

Okay.

comment:47 Changed 5 years ago by mkommend

r8210: Corrected problem instances links to new GP benchmark page.

comment:48 Changed 5 years ago by mkommend

r8211: Changed name of CSV providers and updated tooltip for import and export buttons.

comment:49 Changed 5 years ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from assigned to reviewing

comment:50 in reply to: ↑ 44 Changed 5 years ago by mkommend

Replying to abeham:

Is there also possibility to drop in ARFF support at some point in the future?

Sure there is the possibility for ARFF support. One has just to implement a problem instance provider similar to the CSV provider.

comment:51 Changed 5 years ago by abeham

  • Status changed from reviewing to readytorelease

comment:52 Changed 5 years ago by gkronber

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.6 to 3.3.7
Note: See TracTickets for help on using tickets.