1
$\begingroup$

I am trying to self-learn concepts at the intersection of physics and programming. When reading up on the Ising Model, I find that the typical programming tutorial (such as this one) covers the Metropollis-Hastings algorithm; most online resources show this algorithm being used to flip one spin-state at a time until the stopping criteria is reached. I was thinking that it might make more physical sense to flip multiple states at one time instead of sequentially flipping one at a time (like synchronous vs asynchronous updates). While reading articles on wikipedia, I came across the Wolff algorithm, which does perform multiple updates at once. The wikipedia article is very vague about how the Wolff algorithm works. I would like to better understand the reasons for the synchronous vs asynchronous version of Metropolis-Hastings, and would like to fully understand how the Wolff algorithm works.

  1. Aside from the single-vs-multiple updates per iteration, are there more differences between the Metropolis-Hastings and Wolff algorithms?

  2. Why do the Metropolis-Hastings tutorials typically show one sequential flip to another (instead of multiple flips at once)?

  3. Can you recommend a good source to better understand the Wolff algorithm? I would like to code both methods and compare output.

$\endgroup$

0