Opened 10 years ago

Closed 10 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 10 years ago by abeham

  • Status changed from new to accepted

comment:2 Changed 10 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 10 years ago by abeham

  • Component changed from General to Problems.Instances

comment:4 Changed 10 years ago by abeham

r7560: added unit tests for the problem instance providers

comment:5 Changed 10 years ago by gkronber

r7600: fixed target directory for problem instances in project files

comment:6 Changed 10 years ago by abeham

oops, thx!

comment:7 Changed 10 years ago by abeham

  • Description modified (diff)

comment:8 Changed 10 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 10 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 10 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 10 years ago by abeham

  • Description modified (diff)

r7622: fixed two small bugs (tsplib)

comment:12 Changed 10 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 10 years ago by sforsten

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

comment:14 Changed 10 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 10 years ago by mkommend

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

comment:16 Changed 10 years ago by gkronber

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

comment:17 Changed 10 years ago by abeham

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

comment:18 Changed 10 years ago by mkommend

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

r7646: Corrected remaining project references.

comment:19 Changed 10 years ago by mkommend

r7647: Corrected CordeauGQAP instances.

comment:20 Changed 10 years ago by mkommend

r7648: Corrected project references for Problems.Instances.

comment:21 Changed 10 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 10 years ago by mkommend

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

comment:23 Changed 10 years ago by svonolfe

Added support for instances of data types in r7867

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

comment:24 Changed 10 years ago by svonolfe

Moved distance measure to helper class in r7872

comment:25 Changed 10 years ago by mkommend

r7875: Minor changes in discovery of problem instance providers.

comment:26 Changed 10 years ago by abeham

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

comment:27 Changed 10 years ago by abeham

  • Description modified (diff)

comment:28 Changed 10 years ago by svonolfe

Added VRP data types in r7880

comment:29 Changed 10 years ago by abeham

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

comment:30 Changed 10 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 10 years ago by sforsten

r7956: improvements from mkommend's comment have been applied

comment:32 Changed 10 years ago by sforsten

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

comment:33 Changed 10 years ago by sforsten

r7960:

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

comment:34 Changed 10 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 10 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 10 years ago by sforsten (previous) (diff)

comment:36 Changed 10 years ago by sforsten

r8182: removed unnecessary plugin dependency

comment:37 Changed 10 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 10 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 10 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 10 years ago by sforsten

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

comment:41 Changed 10 years ago by sforsten

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

comment:42 Changed 10 years ago by sforsten

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

comment:43 Changed 10 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 10 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 10 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 10 years ago by abeham

Okay.

comment:47 Changed 10 years ago by mkommend

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

comment:48 Changed 10 years ago by mkommend

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

comment:49 Changed 10 years ago by mkommend

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

comment:50 in reply to: ↑ 44 Changed 10 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 10 years ago by abeham

  • Status changed from reviewing to readytorelease

comment:52 Changed 10 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.