Monte Carlo Simulationen Erkenntnisse durch die Erschaffung einer virtuellen Welt Stefan Wunsch 31. Mai 2014 Inhaltsverzeichnis 2 Inhaltsverzeichnis 1 Was sind Monte Carlo Simulationen? 3 2 Zufallszahlen 3 3 Monte Carlo Integration 3 3.1 3.2 3 4 4 5 Erzeugung gleichverteilter Zufallszahlen 5 4.1 4.2 4.3 5 6 6 Linear Congruential Generator . . . . . . . . . . . . . . . . . . . . . . . Mersenne-Twister Algorithmus . . . . . . . . . . . . . . . . . . . . . . . Beispiel: Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erzeugung beliebig verteilter Zufallszahlen 5.1 5.2 5.3 5.4 6 Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fehler und Laufzeitverhalten . . . . . . . . . . . . . . . . . . . . . . . . Neumann’sches Rückweisungsverfahren Transformationsmethode . . . . . . . . Majorantenverfahren . . . . . . . . . . Box-Müller Verfahren . . . . . . . . . . . . . . 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 9 Anwendungsgebiete in und außerhalb der Physik 11 6.1 6.2 11 12 Beispiel: Energiezustände . . . . . . . . . . . . . . . . . . . . . . . . . . Beispiel: Aktienmarkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Inhaltsverzeichnis 1 Was sind Monte Carlo Simulationen? Monte Carlo Methoden bzw. Simulationen sind Berechnungen, die auf Zufallszahlen beruhen. Der Name ist vom Monte Carlo Casino abgeleitet und mit dem Spielen und Erfassen der Ergebnisse von Glücksspielen assoziieren. Die Hauptanwendungsgebiete sind Optimierungsprobleme, numerische Integration und die Erzeugung von Wahrscheinlichkeitsverteilungen. Die ersten Monte Carlo Methoden wurden in den 1940er Jahren von Stanislaw Ulam im Los Alamos National Laboratory entwickelt. Er arbeitete mit am Manhatten Project, welches Nuklearwaffen erforschte und wandte die Monte Carlo Methoden an, um Probleme mit Neutronen Diffusion zu lösen. Nach einer Anekdote kam Ulam die Idee bei der Frage, mit welcher Wahrscheinlichkeit man ein Solitaire Spiel gewinnt. Nachdem mit reiner Kombinatorik keine Lösung zu finden war, kam ihm die Idee einfach auszuprobieren und die Ergebnisse zu betrachten. Es muss in diesem Kontext die Entwicklung der ersten vollprogrammierbaren Computer berücksichtigt werden. Mit dem Zuze Z3 1941 und dem ENIAC (Electronical Numerical Integrator And Computer) 1946 ist die Möglichkeit zur effizienten Berechnung solcher Verfahren erst gegeben worden. Während heutzutage die Vorgehensweise der Monte Carlo Methoden intuitiv erscheint, ist damals die massenhafte Berechnung von Vorgängen ein wesentlich komplexeres Vorhaben gewesen. 2 Zufallszahlen Monte Carlo Methoden beruhen auf Zufallszahlen. Daher bestimmt die Wahl der Quelle dieser das Ergebnis der Simulation signifikant. Jedoch ist ’echter’ Zufall mit einem Computer nur schwer zu erzeugen. Eine Möglichkeit ist /dev/random in Unix Umgebungen. Dies ist ein Entropiepool, welches durch Umgebungsrauschen in der Elektronik erzeugt wird. Das Problem ist mit solchen ’echten’ Zufallsgeneratoren, dass sie nur eine bestimmte Menge an Zufallszahlen pro Zeitschritt erstellen können. Z. B. /dev/random blockiert den Zugriff, wenn der Entropiepool leer ist. Damit sind solche Generatoren auf Computersystemen nicht brauchbar, da die Rechenzeit der Simulation direkt von der Geschwindigkeit der Zufallszahlgeneratoren abhängt. Daher werden Algorithmen verwendet, die Zahlenreihen mit einer sehr langen Periode erzeugen. Diese Zufallszahlen sind natürlich nicht mehr wirklich zufällig, da sie deterministisch berechnet wurden. Jedoch ist es praktikabel den Startwert (’Seed’) des Generators aus einem Entropiepool zu nehmen und im Folgenden die Werte aus einem Pseudozufallsgenerator zu beziehen. Aber auch reproduzierbare Zufallsreihen sind oft erwünscht. Z. B. auf Grund der Reproduzierbarkeit in der Wissenschaft. 3 Monte Carlo Integration 3.1 Verfahren Die Monte Carlo Integration ist eine numerische Integrationsmethode, die sich im Besonderen für hochdimensionale Integrale eignet. 3.2 Fehler und Laufzeitverhalten 4 Ausgehend von der Definition des Erwartungswertes mit Z hxi = xϕ(x)dx (1) erkennen wir, dass der Erwartungswert einer beliebigen Funktion f (x) entsprechend dieser Form mit Z hfi = f (x)ϕ(x)dx (2) berechnet werden kann. Der zentrale Grenzwertsatz der Wahrscheinlichkeitsrechnung besagt nun, dass der Erwartungswert einer Funktion f (x) für eine hinreichend große Anzahl von Punkte auch über die diskrete Form N 1X f (xi ) hfi = N i (3) berechnet werden kann. Dies entspricht gerade dem arithmetischen Mittel mit dem Fehler des Mittelwerts gegeben durch σ √ = N p h f (x)2 i − h f (x)i2 . √ N (4) Setzt man nun die Verteilung der Eingabewerte auf eine Gleichverteilung mit ϕ(x) = const., ergibt sich die Lösung des Integrals von f (x) mit einer hinreichend großen Anzahl von N Werten für x mit b Z a 1 f (x)ϕ(x)dx = b−a Z a b N 1X f (x)dx ≈ f (xi ) ± N i r h f (x)2 i − h f (x)i2 . N (5) 3.2 Fehler und Laufzeitverhalten Der Fehler des Trapezverfahren für die numerische Berechnung von Integralen (s. Abbildung 1) kann durch ≈ 1 ≈ 1 (6) 2 Nd abgeschätzt werden. Dabei ist N die Anzahl der Stützpunkte und d die Dimension des Integrals. Wie oben gezeigt, kann der Fehler der Monte-Carlo Integration über den Fehler des Mittelwerts mit ungefähr (7) 1 N2 angegeben werden. Daraus erkennen wir, dass die Monte-Carlo Methode einen geringeren Fehler für Dimensionen d > 4 besitzt. Setzt man den Fehler auf einen festen Wert, kann über die Anzahl der Punkte N das Laufzeitverhalten abgeschätzt werden. Für die MonteCarlo Methode ist sofort ersichtlich, dass die Laufzeit von der Dimension unabhängig ist. Die Trapezmethode benötigt für den gleichen Fehler auf verschieden Dimensionen jedoch exponentiell mehr Rechenzeit (s. Abbildung 2). 5 Inhaltsverzeichnis f(x) x Abbildung 1: Trapezverfahren für numerischen Integration Die Monte-Carlo Integration ist im Tradeoff von Rechenzeit zu Genauigkeit bei hochdimensionalen Integralen meist die einzig brauchbare Lösung. Des weiteren ist es ein Vorteil, dass der Fehler mit der Rechenzeit ohne Beschränkung kontinuierlich kleiner wird. Im Gegensatz zu numerischen Verfahren mit festen Schrittweiten, z. B. die Trapezmethode, ist der Fehler der Berechnung zum Beginn der Rechnung nicht fest. D. h. Ergebnisse können durch das Erweitern der Rechenzeit beliebig verbessert werden und es muss nicht neu mit kleineren Schrittweiten berechnet werden. 4 Erzeugung gleichverteilter Zufallszahlen Die Erzeugung gleichverteilter Zufallsvariablen ist in Monte Carlo Simulationen essenziell, da Algorithmen für beliebig verteilte Zufallszahlen auf gleichverteilten basieren. 4.1 Linear Congruential Generator Ein LCG ein rekursiver Algorithmus zur Erstellung von Zahlenreihen mit langer Periode in der Größenordnung 1010 . Der Generator ist definiert in seiner einfachsten Form nach Gleichung (8). Xn+1 = (aXn + c) mod (m) (8) Dabei gelten die Einschränkungen m > 0 für den Modulus m, 0 < a < m für den Multiplier a und 0 ≤ c < m für den Increment. Für den Seed muss natürlich 0 ≤ X0 < m gelten, da dies für die folgenen Glieder durch den Modulo gegeben ist. Eine Gleichverteilung auf dem Intervall [0, 1) wird dann über die Transformation U = mX erreicht. Die Granulierung wird damit über den Modulo m bestimmt. Probleme ergeben sich jedoch, wenn man z. B. aufeinanderfolgende Zahlen als Tupel zusammenfasst und aufträgt. Bei ungünstigen Wahlen der Eingangsparameter können sich nun die Zahlen auf Hyperebenen anordnen. Siehe als Beispiel dazu Abbildung 3. Daher sind LCG nie als Grundlage für stochastische Simulationen zu benutzen. 4.2 Mersenne-Twister Algorithmus 6 N d Abbildung 2: Laufzeitverhalten der Monte-Carlo Integration Die Monte-Carlo Integration ist in der Laufzeit bei festem Fehlerkonstant, während die Trapez d methode in der Laufzeit über der Dimension exponentiell mit exp 2 ansteigt. 4.2 Mersenne-Twister Algorithmus Der Mersenne-Twister Algorithmus ist durch die Rekursionsvorschrift in Gleichung (9) gegeben. Dazu werden zuerst 624 Startwerte mit einem LCG oder beliebig anderen Zufallsgenerator erzeugt und als Seed in die Rekursionsform gegeben. Der Algorithmus operiert auf Bit-Basis. Deshalb werden 32 Bit Integer Werte als Eingabeparameter angenommen. ⊕ ist eine bitwise XOR Verknüpfung und floor() entspricht einem Integer cast. h = Yi−N − Yi−N mod 231 + Yi−N+1 mod 231 ! h ⊕ [(hmod (2)) · 0x9908b0df)] Yi = Yi−227 ⊕ floor 2 (9) Dieser Algorithmus hat nun eine Periode von 219937 − 1 ≈ 4.3 · 106001 und erzeugt eine Gleichverteilung auf bis zu 623 Dimensionen. Damit ist dieser Algorithmus momentan einer der zuverlässigsten Pseudozufallsgeneratoren. Z. B. in Root ist dieser Algorithmus in TRandom3 implementiert. 4.3 Beispiel: Pi Als Beispiel aus der Geometrie kann die Kreiszahl Pi mit Hilfe von Zufallszahlen berechnet werden. Dazu werden aus gleichverteilten Zufallszahlen Koordinatentuple erstellt und mit der Bedingung x2 + y2 < 1 verglichen. Die Zahl aus angenommenen Tupeln und der Gesamtanzahl entspricht gerade π4 , da die obige Bedingung mit x, y ∈ [0, 1) ein Viertelkreis darstellt. 7 Inhaltsverzeichnis Abbildung 3: Ausbildung von Hyperebenen bei LCG Quelle: [1] 5 Erzeugung beliebig verteilter Zufallszahlen 5.1 Neumann’sches Rückweisungsverfahren Beim Neumann’schen Rückweisungsverfahren wird die gewünschte Verteilung in ein Rechteck eingeschlossen und in diesem zufällige Tupel erstellt. Nun wird ein Wert akzeptiert, sobald das Tupel innerhalb der Verteilung liegt. Der Algorithmus ist in Gleichung (10) und Abbildung 5 dargestellt. xi = xmin + r2i · ∆x yi = r2i+1 · ϕmax →Akzeptiere Wert, wenn yi < ϕ(xi ) (10) Das Problem dieser Methode ist, dass bei einer steilen Verteilung, z. B. auch schon bei einer Gaußverteilung, die Iterationen für eine fixe Anzahl von Zufallszahlen sehr hoch werden kann, da ein Großteil der Werte verworfen werden müssen. Dies ist besonders gravierend, da bei Simulationen die Rechenzeit einer der größten limitierenden Faktoren ist. 5.2 Transformationsmethode Die Transformationsmethode basiert auf einer Variablentransformation. Hierzu wird die zu erzeugende Verteilungsdichte ϕ(x) mit x = f (y) transformiert. Nun wird benutzt, dass beide Wahrscheinlichkeiten normiert sind und betrachtet einen beliebigen Punkt x in ϕ(x) und den korrespondierenden Punkt y. Es kann vorausgesetzt werden, dass ϕ(y) eine Gleichverteilung ist und über die Verteilungsfunktion Φ(x) nach x auflösen. Die Rechnung ist in (11) gegeben. 5.3 Majorantenverfahren 8 Abbildung 4: Berechnung von Pi aus gleichverteilten Zufallszahlen Bildlich kann sich das Verfahren mit einer Gewichtung der gleichverteilten y-Werte vorgestellt werden und einem ’mappen’ der ungleich großen Bins auf die gleich großen Bins der Funktion ϕ(x) (s. Abbildung 6). Ein Problem bei dieser Methode ist, dass die Verteilung ϕ(x) integrierbar und invertierbar sein muss. ϕ(x) → ϕ(y) mit x = f (y) Z x Z y 0 0 ϕ(x )dx = ϕ(y0 )dy0 −∞ x →Φ(x0 )|−∞ −1 = −∞ 0 y Φ(y )|−∞ mit (11) Φ(y) = y →x = Φ (y) 5.3 Majorantenverfahren Das Majorantenverfahren kann als Kombination aus dem Rückweisungsverfahren und der Transformationsmethode angesehen werden. Wie in Abbildung 7 dargestellt, wird als Grenze keine Gleichverteilung angenommen, sondern eine beliebige Verteilung m(x). Für diese muss gelten, dass ϕ(x) ≤ m(x) in jedem Punkt x gilt. Nun wird eine Zufallszahl in m(x) erzeugt und über das bekannte Rückweisungsverfahren verworfen oder ausgewählt. Eine mathematische Beschreibung des Verfahrens ist in 12 gegeben. f (x) von Zufallswerten in Der Vorteil dieser Methode ist nun, dass nur noch der Anteil m(x)− f (x) einem Punkt x verworfen wird und damit die Effizienz des Rückweisungsverfahrens erheblich steigert. Dieses Verfahren bietet sich im Besonderen an, wenn die Funktion ϕ(x) nicht analytisch beschreibbar ist und eine einfach anzupassende analytische Grenzfunktion m(x) existiert. 9 Inhaltsverzeichnis φ(x) x Abbildung 5: Neumann’sches Rückweisungsverfahren φ(y) φ(x) x y Abbildung 6: Transformationsmethode xi = M −1 (r2i ) yi = r2i+1 · m(xi ) →Akzeptiere Wert, wenn yi < ϕ(xi ) (12) 5.4 Box-Müller Verfahren Das Box-Müller Verfahren wird angewendet, um eine Standardnormalverteilung von Zufallszahlen zu erhalten. Dies ist nach den obigen Methoden nicht direkt analytisch durchR führbar, da das Integral exp(−x2 )dx nicht analytisch lösbar ist. Daher wird die zweidimensionale Gaußverteilung verwendet und in Polarkoordinaten transformiert. 5.4 Box-Müller Verfahren 10 φ(x) x Abbildung 7: Majorantenverfahren Z Z x1 x2 2 ! Z Z x1 + x22 r2 1 1 dx1 dx2 = exp − exp − rdrdθ 2π 2 2 r θ 2π (13) mit x1 = r cos(θ) und x2 = r sin(θ) Auf diese neue Verteilung wird die Transformationsmethode zweifach angewandt. Z 0 θ 1 0 dθ 2π Z 0 r ! r02 0 0 exp − r dr = y1 · y2 2 (14) Der Winkelanteil ist schon gleichverteilt in der Periode [0, 2π]. Die Integration des Radialteils ergibt folgende Transformationen. Beachte, dass y1 , y2 ∈ [0, 1] und gleichverteilt sind. θ → θ = 2πy1 2π ! p p −r2 y2 = 1 − exp → r = −2 log (1 − y2 ) = −2 log (y2 ) 2 y1 = (15) Setzt man diese nun in die Rücktransformation nach kartesischen Koordinaten ein, erhält man für zwei gleichverteilte Werte eine Transformation nach zwei standardnormalverteilten Werten. x1 = p −2 log (y2 ) cos(2πy1 ) p x2 = −2 log (y2 ) sin(2πy1 ) (16) 11 Inhaltsverzeichnis Abbildung 8: Simulation der Besetzung von Energieniveaus mit dem Metropolisalgorithmus 6 Anwendungsgebiete in und außerhalb der Physik 6.1 Beispiel: Energiezustände Wir betrachten ein System von mehreren Teilchen mit fest definierten Energieniveaus. Die Wahrscheinlichkeit, dass ein Teilchen in einem Zustand X ist, folgt der Boltzmann Verteilung ! EX 1 exp − . p(X) = P kB T expi − kEB Ti (17) Der Algorithmus zur Simulation eines solchen Systems nennt sich Metropolis Algorithmus. Dabei wird ausgehend von einem Systemzustand X ein beliebiger neuer Zustand Y vorgeschlagen. Dieser wird angenommen mit der Akzeptanzwahrscheinlichkeit ! p(Y) . A(X → Y) = min 1, p(X) (18) Ausgehend von der Boltzmannverteilung der Zustände kann diese Wahrscheinlichkeit in ∆E A(X → Y) = min 1, exp − kB T !! (19) umgeschrieben werden. Eine Zufallszahl r ∈ [0, 1) entscheidet nun über die Akzeptanz des neuen Zustands, falls ∆E r < min 1, exp − kB T gilt. !! (20) 6.2 Beispiel: Aktienmarkt 12 Abbildung 9: Aktienmarkt Simulation mit Random Walk Mehrere mögliche Verläufe des Werts. Aufgetragen ist der Wert über der Zeit. Einheiten des Systems sind beliebig. 6.2 Beispiel: Aktienmarkt Eine gute Näherung für das Verhalten von Aktienmärkten ist ein sogenannter ’Random Walk’ hierbei ändert sich der Wert einer Aktie rekursiv zum vorhergehenden Schritt. Eine Beschreibung ist möglich über eine Diffusionsgleichung der Art √ dS = µS dt + σ dt (21) mit konstanten Faktoren µ und σ sowie einer normalverteilten Variable . Hierbei kann µ als konstanter Drift und σ als die Variation in einem Zeitschritt aufgefasst werden. Das Histogrammieren der Ergebnisse vieler Durchläufe nach einem Zeitintervall ist eine Repräsentation der Wahrscheinlichkeit für den Wert der Aktie zu diesem Zeitpunkt. 13 Literatur [1] https://commons.wikimedia.org/wiki/File:TI59_3d.jpg Literatur