In K.Binder's book Monte Carlo Simmulation in Statistical Physics 4th ed., one Monte Carlo step is defined as "one sweep through the lattice". However, in many other books and papers, the Monte Carlo step is used to refer sweep on one single spin. Are these two method -- selecting spin on the lattice randomly one by one or traversing over the lattice (e.g. using a for loop) -- equivalent?

Actually, these two methods will give similar results in my simulation, but is there any (mathematical) proof for that?

  • $\begingroup$ Yes, these are equivalent and the proof is an easy application of the theory of finite-state Markov chains. $\endgroup$ Mar 13 '18 at 17:30
  • $\begingroup$ Equivalent in expressiveness is one thing. Equivalent in speed of convergence is another. Isn't it? I have to confess that I've never looked into the theory. I can certainly make and argument that one is the low spin-flip probability limit of the other. $\endgroup$ Mar 13 '18 at 17:58
  • $\begingroup$ @dmckee : Yes, relaxation times will be different, although I doubt that there are large differences in term of efficiency (this has probably been studied, but I don't know the literature). In fact, both are pretty inefficient algorithms to simulate the Ising model. (Of course, they are at least essentially trivial to implement.) $\endgroup$ Mar 13 '18 at 18:54

Generally speaking, in a Markov Chain Monte-Carlo (MCMC) the therm step may be used to indicate any move from a state (or configuration) in the chain to the next one. Clearly, this step (or update, yet another term) must be in accordance with all the properties required in the context of Monte-Carlo simulations, e.g. irreducibility and ergodicity, to ensure convergence to the equilibrium distribution and so on. In addition, in the definition of the Markov Chain of MCMC simulations it is often required the step to verify the detailed balance, a condition that guarantees the chain to possess the desired properties (actually it is a sufficient but not necessary requirement, but it is used because it is very simple to handle when defining an update algorithm).

Now, in your case a sweep through the lattice should be just a sequence of single MC steps, each one verifying the the requirements needed to follow the Markov Chain. In other words, we just considered a sequence of single updates as a single step. This "new" kind of update is a licit step because it is just the sum of many single steps each one verifying the detailed balance, i.e. we are just applying many times the transition matrix of the Markov Chain. Within the example of the Ising model, a possible step is the single spin flip performed on a random spin picked randomly. Here, however, you may choose to sweep all over the lattice trying to flip all the spins one after the other, defining this as your update or step.

Let me conclude with just few words about why do so. The reason is that configurations generated in MCMC simulations are autocorrelated, i.e. are not independent as we want. This correlation decreases when the "distance" between two configurations of the chain grows (and also the observables that one may want to compute from the system are correlated). Therefore, instead of collecting all the configurations generated in the chain, we choose to perform many single steps before collecting data so that two configurations separated by this "new" update turn out to be less autocorrelated.

  • $\begingroup$ Will "a sweep through the lattice" lead to some kind of correlation and affect the simulation result? $\endgroup$
    – stone-zeng
    Mar 14 '18 at 7:37
  • $\begingroup$ @ndrearu : Note that one can get rid of these autocorrelation problems using instead perfect simulation schemes. See, for example, this wikipedia page. $\endgroup$ Mar 14 '18 at 8:13
  • 1
    $\begingroup$ @Stone-Zeng configurations obtained with a MCMC simulation are correlated in any case, and one just try redure int and to "improve" the convergence. Therefore, there is the need to handle the autocorrelation in the statistical analysis of the data extracted from the configurations. Sure, at the end, the results of the simulation cannot depend on the details of the updated algorithm, i.e. the results must be the same (statistically). $\endgroup$
    – ndrearu
    Mar 14 '18 at 8:37
  • $\begingroup$ @YvanVelenik Seems an interesting topic, thank you! $\endgroup$
    – ndrearu
    Mar 14 '18 at 8:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.