Added
- Add the 'honour_x0' option when the solver is BOBYQA to indicate whether
the user-provided x0 can be changed.
- Include rosenbrock_example to illustrate the usage.
- Python version: Bounds, LinearConstraint and NonlinearConstraint more
flexible with None and [].
- Python version: the constr_value output when there are constraints
other than bounds.
- MATLAB version: add 'uninstall' and 'clean' options to setup.m.
Changed
- Licence modified from GNU GPLv3+ to GNU LGPLv3+.
- The Fortran source code is refactored to remove the obsolete non-block
DO loops and comparison operators.
- All constraint violations are computed absolutely (instead of relatively)
- Modify the scaling behavior. Scaling is performed only if all variables
have both upper and lower bounds.
- Change the default rhobeg to 0.5 when the problem is scaled.
- Change the default rhobeg to min(ub-lb)/4 when the solver is BOBYQA.
- Previously, if rhobeg is revised to be different from the default value,
then rhoend is set to min(rhobeg*rhoend_default/rhobeg_default, rhoend),
where rhobeg_default = 1 and rhoend_default = 1e-6; now it is set to
min(0.1*rhobeg, rhoend).
- Revise x0 or rhobeg for BOBYQA to make sure that the distance between x0
and inactive bounds is at least rhobeg.
- Python version: make PDFO available on PyPI.
- Python version: test files for PDFO have been added as a subpackage of pdfo.
- MATLAB version: improve the interfaces of prepdfo and postpdfo.
Removed
- Warning about scaling.
- The fhist output when PDFO receives a feasibility problem.
- Python version: numpy.set_printoptions statement in __init__.py.
- MATLAB version: interactions when modifying the user's startup script.
Fixed
- In last version, the linear constraints passed to the Fortran backend can
have zero gradients due to reduction when some variables are fixed by the
bound constraints. Constraint validation and reduction are merged in order to
avoid such a situation.
- In last version, the user-specified npt, rhobeg, and rhoend are ignored if
the solver selection function is invoked. They are taken into account now.
- Python version: previously, the nonlinear constraints defined as a dictionary
cannot include NumPy functions of type <ufunc>. It is fixed now.