pybobyqa
pybobyqa copied to clipboard
Python-based Derivative-Free Optimization with Bound Constraints
Reproducible with the latest version in github. See code below for how to reproduce it. ``` /home/manu/.local/lib/python3.8/site-packages/pybobyqa/model.py:252: LinAlgWarning: Diagonal number 2 is exactly zero. Singular matrix. self.lu, self.piv = LA.lu_factor(A)...
Do not generate this warning when x0 is exactly at the bounds (curently generated if any of x0 = upper is true, but this is misleading if x0=lower or x0=upper)
Currently, if nsamples>1, objfun is called multiple times in a loop. Allow for extended objfun evaluation objfun(x, nsamples) where the objfun calculation returns all nsamples results in one go (instead...
Implement a custom exception which allows the manual termination of the solver within an objective evaluation. i.e. If evaluating objfun(x) raises a "TerminationException", then just terminate the solver immediately (returning...
Great work on this! This seems to work pretty well for solving mode matching problems in optics, which is a very much non-convex (hence the name?) problem. I have one...
When scaling bounds to [0,1], don't set delta_{max} to 1e10, use something smaller
For interpolation linear solves, don't loop over npt Lagrange polynomials - scipy.linalg.solve_triangular can handle multiple RHS (https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.solve_triangular.html) Should lead to a speed improvement.
Allow Py-BOBYQA to use any prior information, such as: pre-existing evaluations of the objective and/or estimate of gradient/Hessian at x0.
Py-BOBYQA should have a MATLAB interface which mimics fminunc/fminsearch. MATLAB's Python interface doesn't support callable functions (e.g. objfun), so need to go through the C interface to both languages. The...
I tested bybobyqa e.g. with the rastrigin function for different input dimensions. The numerical results were very good but I got an increasingly strong speed penalty. For 50 dimensions it...