In K. Binders Buch Monte Carlo Simmulation in Statistical Physics, 4. Auflage, wird ein Monte Carlo-Schritt als "ein Durchlauf durch das Gitter" definiert. In vielen anderen Büchern und Artikeln wird der Monte-Carlo-Schritt jedoch verwendet, um den Sweep auf einen einzigen Spin zu beziehen. Sind diese beiden Methoden - zufälliges Auswählen von Spins auf dem Gitter nacheinander oder Überqueren des Gitters (z. B. unter Verwendung einer for
Schleife) - äquivalent?
Tatsächlich werden diese beiden Methoden in meiner Simulation ähnliche Ergebnisse liefern, aber gibt es dafür einen (mathematischen) Beweis?
Im Allgemeinen kann in einer Markov Chain Monte-Carlo (MCMC) der Therm- Schritt verwendet werden, um jede Bewegung von einem Zustand (oder einer Konfiguration) in der Kette zum nächsten anzuzeigen. Natürlich muss dieser Schritt (oder Update , ein weiterer Begriff) mit allen im Kontext von Monte-Carlo-Simulationen erforderlichen Eigenschaften übereinstimmen, z. B. Irreduzibilität und Ergodizität, um die Konvergenz zur Gleichgewichtsverteilung sicherzustellen und so weiter. Darüber hinaus ist bei der Definition der Markov-Kette von MCMC-Simulationen häufig der Schritt erforderlich, um die detaillierte Balance zu verifizieren , eine Bedingung, die garantiert, dass die Kette die gewünschten Eigenschaften besitzt (eigentlich ist dies eine ausreichende, aber nicht notwendige Anforderung, aber sie ist es verwendet, weil es bei der Definition eines Aktualisierungsalgorithmus sehr einfach zu handhaben ist).
Nun sollte in Ihrem Fall ein Sweep durch das Gitter nur eine Folge einzelner MC-Schritte sein, von denen jeder die Anforderungen überprüft, die zum Befolgen der Markov-Kette erforderlich sind. Mit anderen Worten, wir haben eine Abfolge einzelner Aktualisierungen nur als einen einzigen Schritt betrachtet. Diese "neue" Art der Aktualisierung ist ein legaler Schritt, weil es nur die Summe vieler Einzelschritte ist, von denen jeder das detaillierte Gleichgewicht verifiziert, dh wir wenden nur ein Vielfaches der Übergangsmatrix der Markov-Kette an. Innerhalb des Beispiels des Ising-Modells ist ein möglicher Schritt der Single-Spin-Flip, der an einem zufällig ausgewählten Spin durchgeführt wird. Hier können Sie sich jedoch dafür entscheiden, über das ganze Gitter zu fegen, indem Sie versuchen, alle Drehungen nacheinander umzudrehen, und dies als Ihre Aktualisierung oder Ihren Schritt definieren.
Lassen Sie mich mit wenigen Worten schließen, warum dies so ist . Der Grund dafür ist, dass in MCMC-Simulationen generierte Konfigurationen autokorreliert sind , dh nicht wie gewünscht unabhängig sind. Diese Korrelation nimmt ab, wenn der "Abstand" zwischen zwei Konfigurationen der Kette wächst (und auch die Observablen, die man möglicherweise aus dem System berechnen möchte, korrelieren). Anstatt alle in der Kette generierten Konfigurationen zu sammeln, entscheiden wir uns daher dafür, viele einzelne Schritte durchzuführen, bevor wir Daten sammeln, damit sich herausstellt, dass zwei Konfigurationen, die durch dieses "neue" Update getrennt sind, weniger autokorreliert sind.
Jan Velenik
dmckee --- Ex-Moderator-Kätzchen
Jan Velenik