Monte-Carlo-Schritte im Metropolis-Algorithmus des Ising-Modells

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 forSchleife) - äquivalent?

Tatsächlich werden diese beiden Methoden in meiner Simulation ähnliche Ergebnisse liefern, aber gibt es dafür einen (mathematischen) Beweis?

Ja, diese sind äquivalent und der Beweis ist eine einfache Anwendung der Theorie der Markov-Ketten mit endlichen Zuständen.
Äquivalent in der Ausdruckskraft ist eine Sache. Äquivalent in der Konvergenzgeschwindigkeit ist eine andere. Ist es nicht? Ich muss gestehen, dass ich mich nie mit der Theorie beschäftigt habe. Ich kann sicherlich behaupten und argumentieren, dass das eine die niedrige Spin-Flip-Wahrscheinlichkeitsgrenze des anderen ist.
@dmckee: Ja, die Entspannungszeiten werden unterschiedlich sein, obwohl ich bezweifle, dass es große Unterschiede in Bezug auf die Effizienz gibt (dies wurde wahrscheinlich untersucht, aber ich kenne die Literatur nicht). Tatsächlich sind beide ziemlich ineffiziente Algorithmen, um das Ising-Modell zu simulieren. (Natürlich sind sie zumindest im Wesentlichen trivial zu implementieren.)

Antworten (1)

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.

Wird "ein Sweep durch das Gitter" zu einer Art Korrelation führen und das Simulationsergebnis beeinflussen?
@ndrearu: Beachten Sie, dass man diese Autokorrelationsprobleme beseitigen kann, indem man stattdessen perfekte Simulationsschemata verwendet. Siehe zum Beispiel diese Wikipedia-Seite .
@Stone-Zeng-Konfigurationen, die mit einer MCMC-Simulation erhalten wurden, sind auf jeden Fall korreliert, und man versucht einfach, redure int und die Konvergenz zu "verbessern". Daher besteht die Notwendigkeit, die Autokorrelation bei der statistischen Analyse der aus den Konfigurationen extrahierten Daten zu handhaben. Sicher, am Ende können die Ergebnisse der Simulation nicht von den Details des aktualisierten Algorithmus abhängen, dh die Ergebnisse müssen (statistisch) gleich sein.
@YvanVelenik Scheint ein interessantes Thema zu sein, danke!