class pele.basinhopping.BasinHopping(coords, potential, takeStep, storage=None, event_after_step=None, acceptTest=None, temperature=1.0, quench=None, confCheck=None, outstream=<open file '<stdout>', mode 'w' at 0x2b4a2cfa71e0>, insert_rejected=False)[source]

A class to run the basin hopping algorithm

Parameters :

All required and optional parameters from base class MonteCarlo :

quench : callable, optional

Use this quencher as default

insert_rejected : bool

insert the rejected structure into the storage class


Basin-hopping is a stochastic algorithm which attempts to find the global minimum of a smooth scalar function of one or more variables

The algorithm is iterative with each cycle composed of the following features

  1. random perturbation of the coordinates
  2. local minimization
  3. accept or reject the new coordinates based on the minimized function value

The acceptance test used here is the Metropolis criterion of standard Monte Carlo algorithms, although there are many other possibilities [3]_.

This global minimization method has been shown to be extremely efficient for a wide variety of problems in physics and chemistry. It is particularly useful when the function has many minima separated by large barriers. See the Cambridge Cluster Database for databases of molecular systems that have been optimized primarily using basin-hopping. This database includes minimization problems exceeding 300 degrees of freedom.


addEventAfterStep(event) add an even to the list event_after_step
run(nsteps) do multiple iterations
setPrinting([ostream, frq]) change how the printing is done
takeOneStep() one cycle of the routine

Previous topic


Next topic