feat: Per benchmark instance properties

Geschlossen
#300 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@christian-pinto arbeitet bereits daran.

Seit 07.10.2026.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

enhancement

Motivation

Given a problem class with some general properties that define it, there may be a variety of "free" variables that one could set to generate instances of the problem. For example I create an instance with all the problem class properties but I add an additional "penalty" property.

At the moment I would have to do one of two things to add such an instance

  • Not mention this penalty property (maybe just in description). It will not be in any table etc.
  • Create a new problem class that is same as existing except with the penalty property

The first is problematic as I can't see this additional property in any table. The second is annoying as I have to keep adding problem class whenever I want to try setting some additional parameter or constraint on my instance.

Proposed Solution

Allow instances to define their own "generative" property and associated values. This is additional information used to create an instance that matches the general structure of the problem class but with instance specific features. These properties could be shown in the instance table view but hidden in the problem class view.

The overall benefit is to have more flexibility in the type of benchmark instances that can be added under a problem class.

Additional Context

This does bring the question of an ever expanding tree of instances.

That is someone else comes along with an instance that also has same extra features as my instance but different values. With above solution you would not see these as related. You could then request that these should be related so you want an "instance class" as well as "problem class" in the taxonomy, but then you can always have same problem again.

The proposed solution to this is to just to keep the two levels (problem class and instance) and let instances have their free parameters. If many instances are added with the same free parameters and it's deemed that they need to be collected together so we can create tables with all then a new problem class is created.

Additionally by allowing the user to create in UI a custom "query key" it should be possible for them to aggregate any data they want, addressing niche use cases without having to add additional structure.

Vorherrschende Sprache
Python
Sterne
4
Forks
8
Ø Merge
17 Std. 51 Min.
Gemergte PRs (30 T.)
24

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus IBM/algorithm-nexus

Alle Issues in IBM/algorithm-nexus

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.