Motivation
I think it would make sense to extend project_to_feasibile_space_via_slsqp to nonlinear inequality constraints. Furthermore, it could make sense to change retry_on_optimization_warning from a bool to an int, so that more than one retry can be performed. What do you think?
Describe the solution you'd like to see implemented in BoTorch.
Regarding extending project_to_feasibile_space_via_slsqp:
- Simple idea: just pass through the callables of the nonlinear constraints and directly hook them into the slsqp solver of scipy. In case that there is only a subtle constraint violation of the nonlinear ones and the starting point is close to the feasible region, I would hope that the sqlsqp solver would be able to find the feasible region.
- More advanced idea: Linearize the nonlinear constraints via first order taylor expansions around the starting point, solve the problem for the linear constraints, check if nonlinear constraints are fulfilled, else iterate ...
Regarding retry_on_optimization_warning:
- I would change the signature to
Union[bool|int] = 1, which would amount to one restart, True would be mapped to 1 and False to zero.
- And then I would introduce a while loop there instead of the single retry.
What is your opinion on this?
Describe any alternatives you've considered to the above solution.
No response
Is this related to an existing issue in BoTorch or another repository? If so please include links to those Issues here.
experimental-design/bofire#740
Pull Request
Yes
Code of Conduct
Motivation
I think it would make sense to extend
project_to_feasibile_space_via_slsqpto nonlinear inequality constraints. Furthermore, it could make sense to changeretry_on_optimization_warningfrom a bool to an int, so that more than one retry can be performed. What do you think?Describe the solution you'd like to see implemented in BoTorch.
Regarding extending
project_to_feasibile_space_via_slsqp:Regarding
retry_on_optimization_warning:Union[bool|int]= 1, which would amount to one restart,Truewould be mapped to 1 andFalseto zero.What is your opinion on this?
Describe any alternatives you've considered to the above solution.
No response
Is this related to an existing issue in BoTorch or another repository? If so please include links to those Issues here.
experimental-design/bofire#740
Pull Request
Yes
Code of Conduct