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)

Call self as a function.

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

Attributes