optimagic is a Python package for numerical optimization. It is a unified interface to optimizers from SciPy, NlOpt and other packages. optimagic's minimize function works just like SciPy's, so you don't have to adjust your code. You simply get more optimizers for free. On top you get diagnostic tools, parallel numerical derivatives and more.
"This algorithm was originally designed for unconstrained optimization. In NLopt, bound constraints are "implemented" in PRAXIS by the simple expedient of returning infinity (Inf) when the constraints are violated [...]. This seems to work, more-or-less, but appears to slow convergence significantly. If you have bound constraints, you are probably better off using COBYLA or BOBYQA."
Thus the algorithm does not really support bounds and we should not support it. One could argue that it does not hurt, but in simple benchmarks during an EPP project the algorithm ran forever, which is very annoying.
Current situation
nlopt_praxis is supported
Desired Situation
I think we should remove it
Reason
The nlopt documentation states:
"This algorithm was originally designed for unconstrained optimization. In NLopt, bound constraints are "implemented" in PRAXIS by the simple expedient of returning infinity (Inf) when the constraints are violated [...]. This seems to work, more-or-less, but appears to slow convergence significantly. If you have bound constraints, you are probably better off using COBYLA or BOBYQA."
Thus the algorithm does not really support bounds and we should not support it. One could argue that it does not hurt, but in simple benchmarks during an EPP project the algorithm ran forever, which is very annoying.