pele.takestep.adaptive_step_temperature#
- class pele.takestep.adaptive_step_temperature.AdaptiveStepsizeTemperature[source]
-
class AdaptiveStepsizeTemperature(TakestepInterface):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
- AdaptiveStepsizeTemperature.takeStep()[source]
-
def takeStep(self, *args, **kwargs):basinhopping calls this to take a step
- AdaptiveStepsizeTemperature.updateStep()[source]
-
def updateStep(self, accepted, driver=None):this is the function basinhopping uses to report results
- AdaptiveStepsizeTemperature.adjustStep()[source]
-
def adjustStep(self):adjust the step size
increase the step size if we’re ending up in the same minima too often, else decrease the step size