Ausarbeitung

Werbung
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
Herunterladen