what I want to do is essentially to understand how to implement a custom step taking routine to include in the take_step
parameter of the basinhopping
algorithm of the scipy
library (https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.basinhopping.html) in python
that matches the procedure used in the SQP algorithm of MATLAB fmincon
.
the reference material is here, more specifically in the Line Search and Merit Function section (https://it.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-algorithms.html#f26965)
as far as I understood by reading the docs, the minimize
algorithm (on which basinhopping
relies for local minimization) is essentially the same up to the new iteration (on which the new starting point for a local minimization based on sequential quadratic programming that embeds bounds and aggregate contraints). the difference is exactly on how the new starting point is selected. the main difference is that in the basin hopping
algorithm, the perturbation is random whereas it seems to be directed in the MATLAB
implementation. I would like to do just that.
problem is I can't seem to find a way to "expose" the quantities needed. Meaning in the Matlab reference doc: Zk
and Gk
.
Can anyone point me in the right direction?