Pivot algorithm

Last updated

The pivot algorithm is a form of Monte Carlo algorithm used to generate configurations of self-avoiding walks, typically on a lattice. [1] The algorithm typically begins with a straight line consisting of some number N points on the lattice, and transforms it into a disorganized shape known as a walk, in which no two points on the walk occupy the same site on the lattice. In two dimensions it operates according to the following steps:

  1. Select a random point p between 1 and N about which to pivot. This splits the walk in two, one of length p and one of length (Np).
  2. Randomly select which side of the point to pivot.
  3. Randomly select a transform such as rotation by 90, 180, or 270 degrees or reflection about the horizontal or vertical axis and apply it the points on the selected side of the pivot.
  4. Check whether any two points occupy the same site on the lattice. If they do, reject the pivot and try again. If they do not, proceed with another pivot.

The configurations generated by the algorithm provide information about the combinatorics of self-avoiding walks and are used to understand the physics of polymers, which can be approximated as self-avoiding walks. The algorithm was invented by Moti Lal in 1969. [2] It can be implemented efficiently, having a computational complexity that allows walks of length N to be generated in a time proportional to the logarithm of N, known as logarithmic time. [1]

References

  1. 1 2 Clisby, Nathan (2010). "Efficient Implementation of the Pivot Algorithm for Self-avoiding Walks". Journal of Statistical Physics. 140 (2): 349–392. arXiv: 1005.1444 . Bibcode:2010JSP...140..349C. doi: 10.1007/s10955-010-9994-8 . ISSN   0022-4715.
  2. Lal, Moti (1969). "'Monte Carlo' computer simulation of chain molecules. I". Molecular Physics. 17 (1): 57–64. Bibcode:1969MolPh..17...57L. doi:10.1080/00268976900100781. ISSN   0026-8976 . Retrieved 2025-09-10.