Шаги Монте-Карло в алгоритме Метрополиса модели Изинга

В книге К. Биндера « Моделирование методом Монте-Карло в статистической физике», 4-е изд., один шаг Монте-Карло определяется как «один проход по решетке». Однако во многих других книгах и статьях шаг Монте-Карло используется для обозначения развертки на одном вращении. Являются ли эти два метода — выбор спина на решетке случайным образом один за другим или перемещение по решетке (например, с помощью петли for) — эквивалентны?

На самом деле эти два метода дадут схожие результаты в моем моделировании, но есть ли этому какое-либо (математическое) доказательство?

Да, они эквивалентны, и доказательство — простое применение теории марковских цепей с конечным числом состояний.
Равнозначно по выразительности это одно. Эквивалентным по скорости сходимости является другое. Не так ли? Должен признаться, что я никогда не изучал теорию. Я, конечно, могу утверждать и утверждать, что одно является низким пределом вероятности переворота спина для другого.
@dmckee: Да, время релаксации будет другим, хотя я сомневаюсь, что есть большие различия с точки зрения эффективности (это, вероятно, изучалось, но я не знаю литературы). На самом деле оба алгоритма довольно неэффективны для имитации модели Изинга. (Конечно, их, по крайней мере, по существу тривиально реализовать.)

Ответы (1)

Вообще говоря, в цепи Маркова Монте-Карло (MCMC) термический шаг может использоваться для обозначения любого перехода от состояния (или конфигурации) в цепи к следующему. Ясно, что этот шаг (или обновление , еще один термин) должен соответствовать всем свойствам, требуемым в контексте симуляций Монте-Карло, например, неприводимости и эргодичности, чтобы гарантировать сходимость к равновесному распределению и так далее. Кроме того, в определении цепи Маркова моделирования MCMC часто требуется шаг для проверки детального баланса , условие, которое гарантирует, что цепь будет обладать желаемыми свойствами (на самом деле это достаточное, но не необходимое требование, но это используется, потому что с ним очень просто работать при определении алгоритма обновления).

Теперь в вашем случае развертка по решетке должна быть просто последовательностью отдельных шагов MC, каждый из которых проверяет требования, необходимые для следования цепи Маркова. Другими словами, мы только что рассмотрели последовательность одиночных обновлений как один шаг. Этот «новый» тип обновления является законным шагом, потому что это просто сумма многих отдельных шагов, каждый из которых проверяет подробный баланс, т.е. мы просто многократно применяем переходную матрицу цепи Маркова. В примере модели Изинга возможным шагом является переворот одного спина, выполняемый на случайно выбранном спине. Здесь, однако, вы можете пройтись по всей решетке, пытаясь перевернуть все спины один за другим, определяя это как свое обновление или шаг.

Позвольте мне в заключение сказать несколько слов о том, зачем это делать . Причина в том, что конфигурации, сгенерированные при моделировании MCMC, являются автокоррелированными , т.е. не являются независимыми, как нам хотелось бы. Эта корреляция уменьшается, когда «расстояние» между двумя конфигурациями цепочки увеличивается (а также коррелируются наблюдаемые, которые можно вычислить из системы). Поэтому вместо того, чтобы собирать все конфигурации, сгенерированные в цепочке, мы выбираем выполнение множества одиночных шагов перед сбором данных, чтобы две конфигурации, разделенные этим «новым» обновлением, оказались менее автокоррелированными.

Приведет ли «прогонка по решетке» к какой-то корреляции и повлияет ли это на результат моделирования?
@ndrearu: обратите внимание, что от этих проблем с автокорреляцией можно избавиться, используя вместо них идеальные схемы моделирования. См., например, эту страницу в википедии .
Конфигурации @Stone-Zeng, полученные с помощью моделирования MCMC, в любом случае коррелируют, и нужно просто попробовать повторить int и «улучшить» сходимость. Следовательно, необходимо обрабатывать автокорреляцию при статистическом анализе данных, извлеченных из конфигураций. Конечно, в конце концов, результаты моделирования не могут зависеть от деталей обновленного алгоритма, т.е. результаты должны быть одинаковыми (статистически).
@YvanVelenik Интересная тема, спасибо!