Monte Carlo Simulationen Erkenntnisse durch die Erschaffung einer virtuellen Welt Stefan Wunsch 31. Mai 2014 INSTITUT FÜR EXPERIMENTELLE KERNPHYSIK (IEKP) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Gliederung 1 Was sind Monte Carlo Simulationen? 2 Zufallszahlen 3 Erzeugung gleichverteilter Zufallszahlen 4 Monte Carlo Integration 5 Erzeugung beliebig verteilter Zufallszahlen 6 Anwendungsgebiete in und außerhalb der Physik Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 2
Was sind Monte Carlo Simulationen? Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 3
Was sind Monte Carlo Simulationen? Simulationen bzw. Methoden, die auf Zufallszahlen beruhen Name ist abgeleitet vom Monte Carlo Casino in Monaco Hauptanwendungsgebiete sind Optimierungsprobleme, numerische Integration von hochdimensionalen Integralen und Erzeugung von Wahrscheinlichkeitsverteilungen wichtige Personen: Stanislaw Ulam, Nicholas Metropolis und John von Neumann Entwicklung am Los Alamos National Laboratory im Manhatten Project (ca. 1940) Eng verbunden mit den ersten vollprogrammierbaren Computern: Z3 (1941) und ENIAC (1946) Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 4
Zufallszahlen Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 5
Zufallszahlen echter Zufall nur über stochastische Prozesse, z. B. radioaktive Zerfälle, Umgebungsrauschen aus Gerätetreibern UNIX: /dev/random, Entropiepool aus Umgebungsrauschen, Zufallszahlen sehr hoher Qualität Probleme: standardmäßig maximal 4096 Bit, füllt sich zu langsam, blockiert Zugriff bei leerem Pool Andere Quelle: QRNG (Quantum Randomness) Service der HU Berlin, gleichverteilte Zufallszahlen mit bis zu 18.75 MByte/s zum Download Pseudozufallszahlen: Zahlen aus deterministischer Folge Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 6
Erzeugung gleichverteilter Zufallszahlen Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 7
Erzeugung gleichverteilter Zufallszahlen Basis für alle Monte Carlo Anwendungen Mögliche deterministische Zufallsgeneratoren nicht-periodische Generatoren, z. B. Nachkommastellen von π Problem: lange, aber feste Folge, Verteilung nicht wirklich bekannt periodisch-rekursive Generatoren, im Folgenden behandelt Periodenlänge als guter Anhaltspunkt für die Qualität eines Generators Geschwindigkeit der Implementierung beschränkt Simulation Reproduzierbarkeit der Folge ist erwünscht Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 8
Linear Congruential Generator X n+1 = (ax n + c) mod (m) Modulo m: m > 0 Multiplier a: 0 < a < m Increment c: 0 c < m Seed X 0 : 0 X 0 < m Gleichverteilung auf [0, 1) über Transformation U = X m Periodenlängen in der Größenordnung 10 10 Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 9
Linear Congruential Generator Mögliche Ausbildung von Hyperebenen bei ungünstiger Wahl der Parameter. LCG nie für stochastische Simulationen benutzen. Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 10
Mersenne-Twister Algorithmus h = Y i N Y i N mod ( 2 31) + Y i N+1 mod ( 2 31) ( ) h Y i = Y i 227 floor [(hmod (2)) 0x9908b0df)] 2 meist benutzter Pseudozufallszahlengenerator N = 624 32 Bit Integer als Eingabeparameter (Seed) Periodenlänge von 2 19937 1 4.3 10 6001 (Mersenne Primzahl) gleichverteilt auf bis zu 623 Dimensionen implementiert in ROOT in TRandom3, Standard in Python, Maple, MATLAB, Ruby,... in C++ seit C++11 und in Boost Libraries und Glib vorhanden Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 11
Anwendungsbeispiel: Pi Erstelle zufälliges Tuple mit r 1, r 2 [0, 1] ( ) r1 x = r 2 Akzeptiere Punkt für x < 1 Nehme Anzahl akzeptierte Punkte N A und Gesamtanzahl Punkte N G Berechne π mit π = 4 NA N G. Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 12
Monte Carlo Integration Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 13
MC Integration: Verfahren Definition Erwartungswert: x = xϕ(x)dx Erwartungswert f (x): f = f (x)ϕ(x)dx zentrale Grenzwertsatz der Wahrscheinlichkeitsrechnung f = 1 N N i f (x i ) mit x i nach ϕ(x) verteilt Fehler des Mittelwerts: σ N = f (x)2 f (x) 2 N b a f (x)ϕ(x)dx = 1 b b a a f (x)dx 1 N f (x) N i f (x i ) ± 2 f (x) 2 N Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 14
MC Integration: Fehler f(x) Fehler Trapezverfahren: ɛ 1 N d 2 Fehler MC Integration: ɛ 1 N 1 2 MC Integration hat geringeren Fehler für d > 4 Dimensionen. x Trapezverfahren Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 15
MC Integration: Laufzeitverhalten MC Integration: Berechnungspunkte N unabhängig von der Dimension d bei konstantem Fehler ɛ. Trapezverfahren: Berechnungspunkte N steigen exponentiell mit der Dimension mit exp ( ) d 2 bei konstantem Fehler ɛ. N d Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 16
Erzeugung beliebig verteilter Zufallszahlen Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 17
Neumann sches Rückweisungsverfahren x i = x min + r 2i x φ(x) y i = r 2i+1 ϕ max Akzeptiere Wert, wenn y i < ϕ(x i ) Nachteil: Bei steilen Verteilungen müssen sehr viele Zahlen verworfen werden. x Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 18
Transformationsmethode φ(x) Φ(x) 1 y x 0 x Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 19
Transformationsmethode ϕ(x) ϕ(y) mit x = f (y) x ϕ(x )dx = y ϕ(y )dy Φ(x ) x = Φ(y ) y mit Φ(y) = y x = Φ 1 (y) Vorteil: Direktes Abbilden ohne Verwerfen von Zufallszahlen. Nachteil: Wahrscheinlichkeitsdichte muss integrierbar und invertierbar sein für analytische Transformation. Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 20
Majorantenverfahren x i = M 1 (r 2i ) y i = r 2i+1 m(x i ) Akzeptiere Wert, wenn y i < ϕ(x i ) φ(x) m(x) f (x) Vorteil: Nur f (x) Werte werden in einem Punkt x verworfen. x Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 21
Box-Müller Verfahren Erzeugung von standardnormalverteilten Zufallszahlen z. B. Simulation mittelwertfreies weißes Rauschen exp( x 2 )dx nicht analytisch lösbar Transformationsmethode x 1 nur voll numerisch nutzbar Lösung: Methode in zwei Dimensionen benutzen ( ( )) 1 x 2 x 2 2π exp 1 + x2 2 dx 1 dx 2 = 2 r mit x 1 = r cos(θ) und x 2 = r sin(θ) θ 1 2π exp ( r ) 2 rdrdθ 2 Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 22
Box-Müller Verfahren θ 0 1 r 2π dθ exp ( r ) 2 r dr = y 1 y 2 0 2 y 1 = θ 2π θ = 2πy 1 ( ) r 2 y 2 = 1 exp r = 2 log (1 y 2 ) = 2 log (y 2 ) 2 x 1 = r cos(θ) = 2 log (y 2 ) cos(2πy 1 ) x 2 = r sin(θ) = 2 log (y 2 ) sin(2πy 1 ) Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 23
Anwendungsbeispiele Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 24
Metropolis Algorithmus: Energieniveaus Simulation von System mit diskreten Energieniveaus Wahrscheinlichkeit für ein Teilchen im Zustand X folgt Boltzmannverteilung ( 1 p(x) = ( ) exp E ) X expi E i k B T k B T Suche Besetzung der Niveaus für gegebene Temperatur T und Anfangszustand X 0 Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 25
Metropolis Algorithmus: Energieniveaus Wähle zufälligen Zustand Y aus. Dieser wird vom aktuellen Zustand X aus angenommen mit der Akzeptanzwahrscheinlichkeit ) A(X Y ) = min ( 1, p(y ) p(x) = min Entscheide über die Akzeptanz mit r [0, 1) und ( ( r < min 1, exp E )). k B T ( ( 1, exp E )). k B T Histogrammiere angenommene Zustände bei N-facher Ausführung Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 26
Mehrteilchensystem im Kasten Mehrteilchensystem mit N Teilchen und gegenseitig abstoßender Kraft (Coulombpotential) und Anfangspositionen x 0,i V( x) = N i=0 c x x i Ermittle neue Position eines Teilchens mit ( cos(2πr1 ) x n = x n 1 + a r 2 sin(2πr 1 ) [ ( Akzeptiere neue Position für r < min 1, exp r [0, 1) und innerhalb Kasten. ). V( x n 1) V( x n) k B T )] mit Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 27
Aktienmarkt Gute Näherung für das Verhalten von Aktienmärkten ist ein Random Walk Beschreibung über Diffusionsgleichung der Form mit den Eigenschaften ds = µsdt + σɛ dt µ : const., Drift σ : const., Variation ɛ : normalverteilt Stefan Wunsch Monte Carlo Simulationen 31. Mai 2014 28