-
Notifications
You must be signed in to change notification settings - Fork 42
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
Cbranincurrin
synthetic test function for cmoo
#692
base: develop
Are you sure you want to change the base?
Conversation
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 the proposition!
left some comments - in short I think we need to modify the interface a bit...
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.
almost there, some further minor comments
""" | ||
|
||
def gen_pareto_optimal_points(n: int, seed: int | None = None) -> TensorType: | ||
return tf.zeros(shape=0, dtype=tf.float64) |
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.
so there is no known pareto front for this problem I take it?
can you please add a note to the docs of the problem above stating that and that this function will return an empty tensor please
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.
@uri-granta do you think this is ok or we should return NotImplementedError
? for some problems pareto front will not be available
it's a bit burdensome, but what can be done is to compute offline approximate ground truth with say genetic algos with a large number of function evaluations, store a fixed number of points in the repo as a text file and then load that when the function is called
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.
Definitely clearer to raise a NotImplementedError
with a message explaining that there is no known pareto front, rather than returning an empty "front".
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.
@TsingQAQ can you please raise an error here, but perhaps in the docs you can indicate to user a way to generate approximate ground truth
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.
Sure! for readability have created a new exception class NoAnalyticalParetoPointsError
, please check if this is idea.
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 @TsingQAQ, added a comment on your question on my suggestion about typing
and I think we need @uri-granta input on interfaces
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.
Looks fine to me!
This is a (draft) PR for adding a commonly utilized synthetic test function for the multi-objective constraint function, which can be used in both notebooks and tests.
class ConstrainedMultiObjectiveTestProblem(MultiObjectiveTestProblem):
as in this PR is the ideal approach. Alternatively, one can return a concatenation of objective function value and constraint in one function.