Monte Carlo в статистичній механіці: алгоритм Метрополіса
У 1953 році Ніколас Метрополіс, Аріанна та Маршалл Розенблюти, Августа та Едвард Теллери опублікували алгоритм — розроблений для комп'ютера MANIAC у Лос-Аламосі — який вирішив проблему, недоступну жодним "грубим" обчисленням: як вибрати з неймовірно величезного простору конфігурацій багаточастинкової системи саме ті конфігурації, які насправді фізично важливі. Через сімдесят років алгоритм Метрополіса лишається основним двигуном обчислювальної статистичної механіки.
1. Проблема вибірки
Статистична механіка стверджує, що система в тепловій рівновазі за температури T відвідує конфігурацію (мікростан) i з імовірністю, заданою розподілом Больцмана:
Z = Σᵢ exp(−Eᵢ / k_BT) (статистична сума, підсумована за ВСІМА мікростанами)
Для будь-чого, крім іграшкової системи, Z — астрономічно велика сума: решітка з усього 20×20 спінів Ізінга вже має 2⁴⁰⁰ ≈ 10¹²⁰ мікростанів — більше, ніж атомів у видимому Всесвіті. Обчислення термодинамічних середніх шляхом буквального підсумовування за кожним мікростаном тому неможливе. Звичайний Monte Carlo — вибірка конфігурацій рівномірно навмання з подальшим зважуванням фактором Больцмана — також безнадійний: за низької температури переважна більшість випадкових вибірок потрапляє на високоенергетичні стани з практично нульовою вагою, марнуючи майже всі обчислювальні зусилля.
2. Алгоритм Метрополіса
Алгоритм Метрополіса будує марковський ланцюг — послідовність конфігурацій, де кожна залежить лише від попередньої — чия довгострокова частота відвідування збігається до розподілу Больцмана. Кожен крок:
Правило прийняття завжди приймає рухи, що знижують енергію, і лише зрідка приймає рухи, що підвищують енергію, з імовірністю, що спадає експоненційно з ΔE — саме той баланс, що потрібен, щоб витрачати більшість обчислювальних зусиль поблизу термодинамічно важливих, низькоенергетичних конфігурацій, водночас час від часу досліджуючи високоенергетичні стани (що дозволяє системі уникати локальних мінімумів і коректно вибирати теплові флуктуації).
3. Детальна рівновага і чому це працює
Коректність алгоритму спирається на детальну рівновагу: у рівновазі потік імовірності зі стану i в стан j має точно дорівнювати зворотному потоку з j в i:
де T(i→j) — імовірність переходу марковського ланцюга
Розкладаючи імовірність переходу на імовірність пропозиції g(i→j) (обрану симетричною, g(i→j) = g(j→i), для простої пропозиції на кшталт перевертання випадкового спіна) та імовірність прийняття A(i→j), детальна рівновага вимагає:
Вибір Метрополіса A(i→j) = min[1, exp(−ΔE/k_BT)] є одним із валідних розв'язків цього співвідношення (серед кількох можливих правил прийняття — правило Глаубера/теплової бані A = 1/(1+exp(ΔE/k_BT)) є ще одним). На практиці вибір Метрополіса переважає, оскільки максимізує коефіцієнт прийняття за умови задоволення детальної рівноваги, змушуючи марковський ланцюг досліджувати простір конфігурацій якомога ефективніше.
4. Практичні міркування
- Врівноваження (розігрів): ланцюг стартує з довільної конфігурації і потребує кількох кроків, щоб "забути" початковий стан і почати вибирати справжній рівноважний розподіл. Ці ранні кроки відкидають перед обчисленням середніх.
- Час автокореляції: послідовні конфігурації в ланцюзі корельовані (кожна відрізняється від попередньої лише одним невеликим рухом). Вибірки мають бути розділені приблизно часом автокореляції τ, перш ніж їх можна вважати статистично незалежними для оцінки похибки.
- Критичне уповільнення: поблизу фазового переходу (напр., точки Кюрі моделі Ізінга) τ розходиться, вимагаючи набагато більше кроків для коректної вибірки. Кластерні алгоритми (Вольфа, Свендсена-Ванга) розроблено саме для подолання цього шляхом перевертання цілих корельованих кластерів спінів за один рух.
- Налаштування коефіцієнта прийняття: для неперервних змінних (напр., зсув частинки) розмір кроку пропозиції налаштовують так, щоб приймалося приблизно 30-50% рухів — надто малий крок марнує час на дрібні рухи; надто великий крок майже завжди відхиляється.
5. Приклад: модель Ізінга
2D-модель Ізінга — сітка спінів sᵢ = ±1 з енергією E = −J·Σ⟨ij⟩ sᵢsⱼ за парами найближчих сусідів — канонічний тестовий випадок Метрополіса. Перевертання одного спіна sₖ змінює енергію на суто локальну величину:
Оскільки ΔE залежить лише від чотирьох (або шести, або восьми, залежно від геометрії решітки) сусідів переверненого спіна, обчислення критерію прийняття коштує O(1) незалежно від розміру системи — саме ця локальність робить Метрополіс Monte Carlo для граткових моделей на кшталт Ізінга надзвичайно швидким на крок, навіть якщо для досягнення рівноваги поблизу критичної температури можуть знадобитися мільйони кроків.
Симуляція моделі Ізінга
Спостерігайте, як Метрополіс Monte Carlo проводить сітку спінів через феромагнітний фазовий перехід у реальному часі.
6. Поза межами фізики
Обчислювальна хімія та молекулярна симуляція
Методи Monte Carlo доповнюють молекулярну динаміку (див. наш супутній матеріал про потенціал Леннарда-Джонса) щоразу, коли цікава величина — термодинамічне середнє, а не часозалежна властивість. Рухи Метрополіса — зсув молекули, обертання чи спроба вставити/видалити її (великий канонічний Monte Carlo) — робочий інструмент для симуляції фазових рівноваг, адсорбції та вільних енергій сольватації.
Байєсівська статистика та машинне навчання
Узагальнення Метрополіса-Гастінгса (що дозволяє асиметричні пропозиції) лежить в основі методів марковського ланцюгового Monte Carlo (MCMC), що використовуються по всій байєсівській статистиці для вибірки апостеріорних розподілів, які не мають замкненої форми — від оцінки космологічних параметрів до байєсівського виведення в нейромережах.
Комбінаторна оптимізація
Симульоване відпалювання — поступове зниження штучного параметра "температури" в циклі Метрополіса, застосованого до функції вартості, а не фізичної енергії — це універсальна евристика оптимізації для задач на кшталт комівояжера, компонування схем та передбачення структури білка, де правило прийняття Метрополіса дозволяє рухи "вгору" на ранніх етапах, щоб уникнути поганих локальних оптимумів.
Часті запитання
Чому алгоритм іноді приймає рухи, що підвищують енергію?
Прийняття лише енергозберігальних рухів зробило б симуляцію чистою мінімізацією, що збігається до основного стану (T=0) і ніколи не вибирає теплові флуктуації, які визначають систему за скінченної температури T. Зрідка приймати енергопідвищувальні рухи з імовірністю, що спадає як exp(−ΔE/k_BT), — це саме те, що відтворює розподіл Больцмана: воно дозволяє системі відвідувати високоенергетичні конфігурації з коректною (малою, але ненульовою) частотою, що відповідає справжній тепловій поведінці.
Скільки кроків Monte Carlo потрібно для надійного результату?
Універсального числа немає — воно залежить від розміру системи, температури й близькості до фазового переходу. Практичний підхід — запускати симуляцію дедалі довше, відстежуючи, чи стабілізуються виміряні середні (енергія, намагніченість тощо) і чи звужуються оцінені похибки (з урахуванням автокореляції між вибірками) як очікується з ростом кількості незалежних вибірок. Поблизу критичної точки потрібна кількість кроків може зростати як степенева функція розміру системи — явище, зване критичним уповільненням.
Чи є Метрополіс Monte Carlo тим самим, що й молекулярна динаміка?
Ні. Молекулярна динаміка (див. наш супутній матеріал) інтегрує рівняння руху Ньютона, породжуючи справжню часову траєкторію, корисну для динамічних властивостей, як-от дифузія та в'язкість. Метрополіс Monte Carlo породжує послідовність конфігурацій без жодного фізичного часу, пов'язаного з рухами — він розроблений суто для вибірки коректного рівноважного розподілу якомога ефективніше і часто швидший за МД для обчислення суто термодинамічних величин, коли сама динаміка не цікавить.
Хто такі Метрополіс, Розенблют та Теллер?
Ніколас Метрополіс очолював обчислювальну групу в Лос-Аламоській національній лабораторії й побудував комп'ютер MANIAC, використаний для оригінальної симуляції. Аріанна та Маршалл Розенблюти, а також Августа та Едвард Теллери є співавторами знакової статті 1953 року "Equation of State Calculations by Fast Computing Machines" у журналі Journal of Chemical Physics, яка описала алгоритм для рідини твердих сфер. Історичні свідчення розходяться щодо точного розподілу інтелектуального внеску між п'ятьма авторами, але алгоритм відтоді носить ім'я Метрополіса.
Що таке Метрополіс-Гастінгс і чим він відрізняється від оригінального алгоритму?
В. Кіт Гастінгс узагальнив алгоритм Метрополіса у 1970 році, дозволивши асиметричні розподіли пропозицій g(i→j) ≠ g(j→i). Імовірність прийняття стає A(i→j) = min[1, (P(j)·g(j→i)) / (P(i)·g(i→j))], зводячись до оригінального правила Метрополіса, коли пропозиція симетрична. Це узагальнення необхідне для вибірки неперервних, не-граткових розподілів у байєсівській статистиці, де симетричні пропозиції часто неефективні або неможливі для побудови.
Що таке кластерний алгоритм і навіщо він потрібен?
Поблизу неперервного фазового переходу динаміка Метрополіса з перевертанням одного спіна страждає від критичного уповільнення: корельовані області спінів ("кластери") зростають до розміру системи, але перевертання одного спіна може змінити лише одну ділянку за раз, роблячи перевертання цілої корельованої області експоненційно повільним. Алгоритми Вольфа (1989) та Свендсена-Ванга (1987) натомість виявляють і перевертають цілі кластери корельованих спінів за один рух Monte Carlo, задовольняючи детальну рівновагу й водночас драматично знижуючи час автокореляції поблизу критичної точки.
Чи може алгоритм Метрополіса застрягти в локальному мінімумі?
У принципі ні — оскільки він може (зрідка) приймати енергопідвищувальні рухи, коректно ергодичний ланцюг Метрополіса зрештою вийде з будь-якого локального мінімуму за достатньої кількості кроків. На практиці "зрештою" може означати астрономічно довгий час, якщо енергетичний бар'єр великий порівняно з k_BT (швидкість виходу спадає експоненційно з висотою бар'єра, за подобою до активаційної картини Арреніуса) — саме ту проблему покликані пом'якшити симульоване відпалювання й кластерні алгоритми.
Яка різниця між канонічним (NVT) і великим канонічним Monte Carlo?
Канонічний Monte Carlo, описаний вище, вибирає конфігурації за фіксованої кількості частинок N, об'єму V і температури T, використовуючи рухи, що перебудовують наявні частинки (перевертання спінів, зсуви). Великий канонічний Monte Carlo додатково дозволяє кількості частинок коливатися, пропонуючи рухи вставки та видалення частинок, кожен із яких приймається за модифікованим критерієм Метрополіса, що включає хімічний потенціал — необхідне для симуляції адсорбції, фазового співіснування та відкритих систем, що обмінюються частинками з резервуаром.