python - Does basinhopping of scipy changes stepsize randomly or adaptively, by default? -
i confused ‘take_step’ option in scipy.optimize.basinhopping
:
according online reference:
the default step taking routine random displacement of coordinates ... take_step can optionally have attribute
take_step.stepsize
. if attribute exists, basinhopping adjusttake_step.stepsize
in order try optimize global minimum search.
according source (line 587, see below), however, scipy
’s basinhopping
uses adaptivestepsize
default, , adjusts stepsize
0.9*stepsize or stepsize/0.9, etc., regardless of whether take_step.stepsize
specified.
# use default displace = randomdisplacement(stepsize=stepsize) take_step_wrapped = adaptivestepsize(displace, interval=interval, verbose=disp)
thus, understanding reading source of basinhopping
is, default, procedure adaptively modify default stepsize
(0.5) stepsize * factor, stepsize/factor, etc., following how many samplings have been accepted in metropolis-hasting procedure. confused because online reference of basinhopping
, on other hand, seems indicate default stepsize
totally random.
can clarify? if not provide take_step
procedure basinhopping
, try stepsize
randomly, or modify stepsize
adaptively? thanks.
the step size adaptively updated default. time not updated if pass custom take_step object not have attribute called stepsize
Comments
Post a Comment