-
Notifications
You must be signed in to change notification settings - Fork 3
111 create yaml template for problem submission #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Dvermetten
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it would be useful to have some sort of comments to describe what the fields are / what would be valid input, specifically for the cases where there is a difference between quoted and non-quoted input. Example:
variables: # information about the input variables
types: continuous # can be one of (continuous, integer, binary, mixed)
conditional: 'no' # whether there are conditional dependencies between variables, 'yes' or 'no'
dimensionality: scalable # number of input variables, either as a number (in quotes) or scalable
CIGbalance
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this! The comments are mostly easy fixes or not that serious.
But I am mostly wondering of how this is supposed to be used? It is called a template, but it has BBOB-specific entries? I think this increases the risk of biasing the results.
I think I would suggest doing a template with a lot more comments (like @Dvermetten suggested) and then we can use this as real data as well as link to it as an example?
| - name: | ||
| short: BBOB | ||
| full: Real-Parameter Black-Box Optimization Benchmarking | ||
| suite/generator/single: suite |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still think it would be best to enter problems separately, but I understand the necessity of streamlining this process. So if we want to allow entering suites, maybe we have different templates? Because some values might only make sense for a suite? Otherwise, for a suite, a lot of the input would be "varies" for number of objectives, variables, constraints, dynamic, noise, etc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it would be nice to have problems separately, I have also prototyped how it might work to have both the suite and component problems, see here:
Line 1107 in 84b34b6
| problems: |
I am not sure about separate templates for suites or problems, but we can think about this and discuss what makes sense. I would imagine, e.g., the BBOB sphere still has a bunch of "varies", because it is scalable in the number of variables for example. For a suite, I would want an exhaustive list (e.g., noise: yes, no / optional, or something like that) of the options, rather than a vague "varies". I will describe this in a comment in the template.
| conditional: 'no' | ||
| dimensionality: scalable | ||
| constraints: | ||
| present: 'no' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is confusing to enter, because they have boundary/box: yes.
I would suggest removing present, it should be clear from the rest of the values.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, makes sense, we can also automatically derive the 'present' field from other fields later if we need it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, for backwards compatibility with the existing template it might make sense to keep it for the moment. What do you think @CIGbalance
template.yaml
Outdated
| implementations: | ||
| - name: COCO | ||
| link: https://github.com/numbbo/coco | ||
| languges: 'C, Python' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically, COCO has way more interfaces.
Also typo in languages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed typo.
Can you add those interfaces to the problems.yaml ?🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - name: COCO | ||
| link: https://github.com/numbbo/coco | ||
| languges: 'C, Python' | ||
| evaluation time: 'less than a second' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is going to be wild to analyse if we don't give some structure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What would you suggest? @CIGbalance
My initial idea would be to ask for something like:
Enter approximate time with units and greater/less than symbol if relevant, e.g.: <1s, or 2h5m3s
Are there good standards we can refer to/use?
|
Work in progress ... ` Please enter the relevant information.Fields that are not relevant can be left empty.
|
Draft yaml template for review