Monte Carlo simulace 1 Úvod Monte Carlo jsou algoritmy pro simulaci systémů. Jde o stochastické metody1 používající (pseudo)náhodná čísla. Typicky jsou využívány pro výpočet integrálů, zejména vícerozměrných, kde běžné metody nejsou efektivní. Metoda Monte Carlo má široké využití v matematice, fyzice, chemii, ale i biologii, počítačové grafice, finančnictví a dalších odvětvích. Základní myšlenka této metody je velice jednoduchá, chceme určit střední hodnotu veličiny, která je výsledkem náhodného děje. Vytvoříme počítačový model tohoto děje a po proběhnutí dostatečného množství simulací můžeme data zpracovat klasickými statistickými metodami, třeba určit průměr a směrodatnou odchylku. Tato metoda byla formulována ve 40. letech minulého století a je spojena se zkoumáním chování neutronů a projektem Manhattan2. Za touto metodou stojí jména jako John von Neumann a Stanislaw Marcin Ulam. Tito dva vědci zkoumali průchod neutronů různým prostředím. I když bylo k dispozici velké množství informací, nedařilo se problém vyřešit ani teoreticky a ani prakticky. Autoři se tedy nechali inspirovat ruletou (proto Monte Carlo). Podle získaných informací věděli, že neutron je pohlcen atomem v jednom případě ze sta. Vybrali si tedy jedno políčko rulety, které symbolizovalo toto pohlcení. Roztočení rulety symbolizovalo pohyb neutronu. V případě, že kulička dopadla na jiné, než označené pole, neutron pokračoval ve své dráze, v případě dopadu na označené políčko byl neutron pohlcen. Tato úvaha je velice jednoduchá a elegantní, její řešení ale nelze provádět roztáčením rulety, zde našly uplatnění počítače. Pokud půjdeme ještě dále do historie, narazíme na problém formulovaný v roce 1777 francouzským matematikem Georgesem Louisem Lecrerc de Buffonem. Ten formuloval slavnou úlohu známou pod názvem Buffonova jehla. Úloha zní takto:iVa podlaze je velký list papíru, který je rozdělený rovnoběžnými linkami. Vzdálenost mezi všemi linkami je stejná. Na tento papír se libovolným způsobem hází jehla, jejíž délka je rovna vzdálenosti mezi linkami. Jaká je pravděpodobnost, že jehla po dopadu bude ležet tak, že protne některou z linek. Pojďme se podívat na řešení úlohy. To jestli jehla protne rovnoběžku závisí na vzdálenosti středu jehly od rovnoběžky (x) a natočení jehly - úhlu, který svírá jehla s rovnoběžkami ((p). Tyto dvě proměnné popisují polohu jehly v rovině a nabývají hodnot 0 <

k{1\W).W = tt{1\W2 Přiklad Máme systém ve dvou stavech A, B. Pravděpodobnost, že systém A přejde do systému B je 90%, pravděpodobnost, že systém zůstane v tomto stavu je tedy 10%. Pravděpodobnost, že systém přejde z konfigurace B do konfigurace A je 30%, pravděpodobnost, že zůstane va stejné konfiguraci je 70%. Stav pravděpodobnosti, že se nacházíme v určité konfiguraci můžeme popsat vektorem Matici přechodu W tvoří vektory (0.9, 0.1) a (0.3, 0.7). Pokud se nacházíme v konfiguraci A, je ir^ = (1, 0) v dalším krokuje pravděpodobnost výskytu ve stavu A popsaná vektorem ir^ = (0.9, 0.1). Nachází-li se systém v konfiguraci B, ir^ = (0, 1), je pravděpodobnost v následujícím kroku ir^ = (0.3, 0.7). V následujícím kroku bude pravděpodobnost pro první případ (vycházíme z konfigurace A) = (0.84, 0.16). Vycházíme-li z konfigurace B, je pravděpodobnost výskytu dána vektorem ir^ = (0.48, 0.52). Provedeme-li velké množství generování transformací, blíží se k limitně k nekonečnu, dojdeme k limitnímu rozložení ti-W = 7t = (0.75, 0.25). 3.3.2 Metropolisův algoritmus V reálném případu ale řešíme problém s více než dvěma stavy. Proto musíme použít ještě sofistikovanější metody. Metropolisův algoritmus vychází z metod Mar kovových řetězců a hodí se právě pro analýzu systémů s více než dvěma možnými stavy. Celý algoritmus můžeme popsat pomocí 4 následujících kroků: 1. Vybereme libovolnou částici i, (výběr můžeme provést náhodně). 2. Zkusíme náhodně změnit její polohu, u (-d,d) new yl =yl + u{_d4) zTw = zl+u{_d4) u(-d,d) je náhodné číslo rovnoměrně rozdělené v intervalu (—d, d). To znamená, že pravděpodobnost opačného pohybu je stejná. 3. Vypočítáme změnu potenciální energie systému AU = Unew — U. 4. Je-li Ař7 < 0, změnu přijmeme a pokračujeme s novou konfigurací. Je-li Ař7 > 0, změnu přijmeme s pravděpodobností e_/3AÍ/. To znamená, že pokračujeme se stejnou konfigurací při pravděpodobnosti 1 — e_/3AÍ/. Uvedené kroky opakujeme mnohokrát. 8 3.3.3 Simulované žíhání Tato metoda je úpravou Metropolisova algoritmu. Je určena k hledání globálního minima funkce. Stejně jako u Metropolisova algoritmu pro výpočet energie figuruje teplota systému. Ta je v případě Metropolise konstatní po celou dobu simulace. V případě simulovaného žíhání je na počátku teplota nastavena na vysokou hodnotu, což umožní přijetí téměř každé konfigurace systému, neboť je velmi málo konfigurací zamítnuto. Postupně dochází ke snižování teploty a tím jsou vybírány konfigurace s nižší energií. Na konci simulace je už přijata pouze jedna energeticky nejvýhodnější simulace. 3.4 Aplikace Monte Carlo v počítačové chemii Monte Carlo metoda je snadno implementovatelná na atomární systém, protože zde bereme v úvahu translační stupně volnosti. (Atomy bereme jako rigidní koule.) Algoritmus je snadno implementovatelný a výsledky získáme pro relativně malý počet simulačních kroků (desítky tisíc). Praktické problémy vyvstanou při aplikaci MC na molekulární systémy, zvláště pak na flexibilní molekuly s mnoha stupni volnosti. Zde je třeba zahrnout vnitřní stupně volnosti molekul, které musíme měnit. To vede v mnoha případech ke konfiguracím s velmi vysokou energií, které bývají zamítnuty. Musíme tedy provádět mnohonásobně větší počet M C simulací. Rigidní molekuly V případě rigidních nesférických molekul musíme brát v úvahu jak jejich orientaci, tak jejich vzájemnou pozici v simulovaném prostoru. V praxi se to provádí tak, že molekulu v prostoru posuneme a také s ní otočíme v průběhu jednoho MC simulačního kroku. Posun je popsaný pomocí změny polohy těžiště molekuly. Pro popis otočení molekuly máme několik možností6. Například můžeme zvolit kombinaci rotací kolem souřadných os. Zahrnutí rotace společně s translací vede k většímu počtu zamítnutých konfigurací a je tedy třeba provádět mnohem větší počet MC simulací, abychom splnili požadovaná kritéria modelu. MC simulace flexibilních molekul MC simulace flexibilních molekul jsou, při použití klasické MC, možné pouze pro malé molekuly. Pro simulaci velkých flexibilních systémů musíme využít určitá „vylepšení metody", jako například zafixování určitých rigidních částí molekuly. Nejjednodušší cesta změn poloh atomů zde není použitelná, proto je vhodné použít pro popis molekuly tzv. vnitřních souřadnic 7. Zde opět si znovu připomeneme, že i malá změna torzního úhlu uprostřed molekuly může vést k rozsáhlým změnám souřadnic atomů vzdálených od atomů rotující torze. Tato změna často vede k překryvu atomů v molekule a prudkému vzrůstu energie systému, což vede k zamítnutí změny. Zde platí přímá úměrnost mezi počtem stupňů volnosti systému a počtem Monte Carlo kroků. 6Připomeňme si matice posunu, zrcadlení, rotace, o kterých jsme se bavili v předchozích přednáškách. 7Bližší informace naleznete v přednášce o použití matic. 9 Modely použitelné pro MC simulace polymerů Polymery jsou makromolekuly, které se skládají z opakujících se jednotek (monomerů), chemicky navzájem vázaných do molekuly. Některé polymery jsou tvořeny řetězci jednoho monomeru (polyethylen, polystyren). Jiné polymery jsou tvořeny směsí různých monomerů, příkladem jsou například bílkoviny, které jsou tvořeny dvaceti základními aminokyselinami. Spojení různých jednotek vede k rozdílným vlastnostem v dané části polymeru. Každá jednotka monomeru má své specifické konformační vlastnosti, což ovlivňuje celkové chování molekuly. Zmapování chování polymeru za různých podmínek je důležité pro praktické využití. Protože se jedná o simulace velkých systémů s mnoha stupni volnosti, nemůžeme pro generování použít klasické MC metody. Pro výpočet energií stavů jsou použity empirické modely založené na zjednodušených aproximacích, narůstající výpočetní výkon počítačů nám sice umožňuje studovat stále větší systémy, ale stále je třeba využívat další „smartness". Jednou z možností je použití tzv. modelu mřížkové stavby polymeru. Kde do jednotlivých bodů na mřížce (2D, 3D)umísťujeme mono merní jednotky s popsanými vlastnostmi a hodnotíme, zda konfiguraci jednotek přijmeme nebo zamítneme. Jednou ze základních podmínek přijetí je, že generovaný řetězec se nesmí na mřížce sám protnout. Tento způsob je velice rychlý a efektivní a dokáže vygenerovat a ohodnotit velké množství stavů pro velké systémy. Další model kontinuální model polymeru staví polymer postupně z jednotek (můžeme si jej představit jako navlékání korálků na šňůru). Přidané jednotky (korálky) interagují se svými navázanými sousedy, ale také se svým okolím (nevazebné interakce). Zde ale opět narážíme na značnou různorodost stavů díky počtu volně rotovatelných vazeb, a proto je nutná aplikace dalších algoritmů, které umožní řešení problému. Narůstající výpočetní výkon současných počítačů nám umožňuje provádět simulace velkých systémů za přítomnosti molekul solventu i za přítomnosti iontů. Při těchto simulacích se běžně používá kombinace molekulové dynamiky s Monte Carlo metodou. Ta je použita pro generování a optimalizaci pozic molekul solventu a iontů. Při této optimalizaci je studovaná molekula polymeru držena v tzv. zamrzlé pozici. Volba metody, použité aproximace, použití různých algoritmů vždy záleží na tom, jakou vlastnost molekul chceme studovat. 10