Conversation
pymoo_minimize.py contains some skeleton code for the integration with Pymoo
user defined params and metrics far less likely.
- improve inferred restrictions - improve check_restriction() to make it less inefficient for `FunctionConstraint`s
Forgot about this change bc it was stached...
|
Fixes two places where invalid configs were still checked in the old way.
|
I've integrated my changes with All tests that don't depend on CUDA, HIP, OpenCL are passing, others are unknown. I've tried to be thorough when looking for the places that assume that There is an open question on if and how strategies should signal to KT that they support multiple objectives. It is possible to do nothing and make every strategy deal with it on its own, which requires no work from KT but adds a little more friction to using custom strategies. The other option is to add a field to every strat that indicates the supported number of objectives. And there are probably other options, but those are the most obvious solutions to me. Happy to get any feedback and hope this change can be integrated so KT becomes more versatile and experimentation with multi-objective strategies becomes much easier. |
Changes one test case because it depends on the objective key being in the result to check for validity, this is not the case anymore with the "__error__" change, so had to be adapted.
|
|
Tests also pass for CUDA and OpenCL, but I'm unable to test HIP right now. |



This PR adds general support for multiple objectives and the NSGA-II and NSGA-III algorithms from the pymoo library to KT.
It requires that the minimal supported python version be bumped to 3.9 → 3.10.
There are a few breaking changes this PR introduces:
objectiveandobjective_higher_is_betterare bothlists"__error__"key was introduces to indicate that a result is invalid instead of using the objectiveThe PR will a draft until I've rebased and conflicts have been resolved.