pele.takestep.AdaptiveStepsizeTemperature

class pele.takestep.AdaptiveStepsizeTemperature(stepclass, target_new_min_prob=0.8, target_new_min_accept_prob=0.3, interval=100, Tfactor=0.95, sfactor=0.95, ediff=0.001, verbose=False)[source]

adjust both the stepsize and the temperature adaptively

Parameters :

stepclass :

the step taking class

target_new_min_prob :

the target probability for a step ending up in a new minimum. Used to adjust the stepsize.

target_new_min_accept_prob :

the target probability that a step that ends in a new minimum is accepted. Use to adjust the temperature

Note: the total acceptance probability is

accrat = 1 - target_new_min_prob * (1 - target_new_min_accept_prob)

so if you want a total acceptance probability of 0.5, you must choose both other probabilities accordingly

interval :

the interval at which to adjust temperature and stepsize

Tfactor :

the factor with which to multiply (or divide) the temperature

sfactor :

the factor with which to multiply (or divide) the stepsize

ediff :

if two minima have energies that are within ediff from each other then they are considered to be the same minimum

verbose :

print status messages

Notes

We will base the stepsize adjustment on the probability of ending up in a different minimum

We will base the temperature adjustment on the probability of accepting a move that ended up in a different minimum

Methods

__call__(*args, **kwargs)
adjustStep() adjust the step size
adjustTemp(driver) adjust the temperature
reset()
scale(factor) scale the stepsize
takeStep(*args, **kwargs) basinhopping calls this to take a step
updateStep(accepted[, driver]) this is the function basinhopping uses to report results

Previous topic

pele.takestep.AdaptiveStepsize.updateStep

Next topic

pele.takestep.AdaptiveStepsizeTemperature.__call__