Enable multi-objective optimisation #61
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Multiple scalars can now be returned by an objective function, while the default is only one scalar.
In case of multiple objectives (multiple numbers), the objective function must be decorated with the respective directions:
@directions(['minimize', 'maximize'])
def my_objective(...):
do your calculations
return value_to_minimize, value_to_maximize
If only one number is returned, the decorator can be omitted if that number should be minimized.
If maximization is desired,n single-objective optimisation, the decorator should be used with
@directions(['maximize'])
def my_objective(...):
do your calculations
return value_to_maximize
All plotting functions of the Inspector now have a keyword argument objective_number
to indicate for which of those objective the respctive plot should be created.