# Monte-Carlo-Simulation

Monte-Carlo-Simulation (auch MC-Simulation oder Monte-Carlo-Studie) ist ein Verfahren aus der Stochastik bzw. Wahrscheinlichkeitstheorie, bei dem wiederholt Zufallsstichproben einer Verteilung mithilfe von Zufallsexperimenten gezogen werden.
Ziel ist es, analytisch nicht oder nur aufwendig lösbare Probleme mithilfe der gezogenen Stichproben numerisch zu lösen. Als Grundlage für Monte-Carlo-Simulationen ist vor allem das Gesetz der großen Zahlen zu sehen. Die Zufallsexperimente können entweder – etwa durch Würfeln – real durchgeführt werden oder in Computerberechnungen mittels Monte-Carlo-Algorithmen. Bei Monte-Carlo-Algorithmen werden zur Simulation von zufälligen Ereignissen Zufallszahlen oder auch Pseudozufallszahlen benutzt.
Monte-Carlo-Simulationen weisen Ähnlichkeit zu probabilistischen zellulären Automaten auf.

## Geschichte

Das 1733 von Georges-Louis Leclerc de Buffon vor der Pariser Akademie der Wissenschaften vorgestellte Nadelproblem, das mit Hilfe des Zufalls die näherungsweise Bestimmung der Kreiszahl Pi ermöglicht, war eine der ersten Anwendungen einer „Monte-Carlo-Simulation“.
In den 1930er Jahren hatte der Physiker Enrico Fermi die ersten Ideen zu „Monte-Carlo-Simulationen“ mittels elektronischer Rechenmaschinen. Als Vorgänger und „Rechner“ galt bis dahin der mechanische Analogrechner FERMIAC. Dies geschah zur Zeit des Zweiten Weltkriegs während der Arbeiten als Teil des Manhattan-Projekts, am Los Alamos Scientific Laboratory. Es ging im Rahmen der Entwicklung der amerikanischen Atombombe, nebst anderen technischen Fragestellungen und Probleme, um den Neutronentransport in nuklearen Materialien. Dabei musste in den Anfängen auch die mathematische Methode der Simulation geheim gehalten werden.
Weitere Beiträge lieferten die u. g. Personen, darunter Stanisław Marcin Ulam und John von Neumann. Beide beschäftigten sich mit den ersten elektronischen (noch Röhren-basierten, also ohne Halbleitertechnologie) Rechenmaschinen, darunter der ENIAC und das Nachfolgermodell der MANIAC I.
Nach der Anfangsphase der Erforschung gilt als grundlegende Veröffentlichung die Arbeit Equation of State Calculations by Fast Computing Machines von Nicholas Metropolis, Marshall N. Rosenbluth und dessen Ehefrau Arianna W. Rosenbluth, Edward Teller und dessen Ehefrau Augusta H. Teller, veröffentlicht 1953 im Journal of Chemical Physics.
Ziel war die Berechnung der Zustandsgleichung eines zweidimensionalen Systems starrer Kugeln als Modelle einer Flüssigkeit. Simuliert wurde mit 224 Teilchen und periodischen Randbedingungen. Jede Simulation bestand aus bis zu 48 Zyklen, in denen jeweils jedes Teilchen einen Bewegungsschritt ausführte. Ein Zyklus benötigte drei Minuten auf dem MANIAC I. Verwendet wurde eine Sampling-Methode mit Wichtung über den Boltzmannfaktor, das Herzstück des MC-Verfahrens im Metropolis-Algorithmus, wobei die Idee nach Marshall Rosenbluth von Teller gekommen sein soll. Nach Rosenbluth leisteten er und seine Frau die Hauptarbeit für den Artikel (Metropolis hätte hauptsächlich Computerzeit zur Verfügung gestellt) und sie waren die einzigen der Autoren, die das Verfahren in anschließenden Publikationen weiterverfolgten, sie wandten sich aber selbst ebenfalls bald darauf anderen Forschungsthemen (Plasmaphysik) zu.

### Name der Methode

Der Name Monte-Carlo wurde von Nicholas Metropolis geprägt und hängt wie folgt mit der Methode zusammen: Stan Ulam hatte einen Onkel, der sich zum Spielen immer Geld von Verwandten geliehen hatte, denn „er musste nach Monte Carlo gehen“. Dies ist natürlich eine Anspielung auf die Spielbank Monte-Carlo im gleichnamigen Stadtteil des Stadtstaates Monaco.

## Hintergrund

Monte-Carlo-Simulationen sind besonders geeignet, um den Erwartungswert einer Funktion $f$ zu berechnen.
Im Fall diskrekter Zufallsvariablen also
    $E_{X}[f(X)]=\sum _{x\in \Omega }P(x)\,f(x),$
bzw. im Fall kontinuierlicher Zufallsvariablen
    $E_{X}[f(X)]=\int _{x\in \Omega }\!\!P(x)\,f(x)\;\mathrm {d} ^{n}x$,
wobei hochdimensionale Integrale (Monte-Carlo-Integration) auftreten, falls $X$ ein hochdimensionaler Zufallsvektor ist.
* $P(x)$ soll im diskreten Fall die Wahrscheinlichkeit oder im kontinuierlichen Fall die Wahrscheinlichkeitsdichte sein (in der statistischen Mechanik häufig ein Boltzmanngewicht)
* $f(x)$ ist der Wert der Funktion $f$ (bzw. Größe) bei Realisierung $x$.
* Die Summation bzw. Integration verläuft über den Raum der möglichen Ergebnisse (Zustände) $\Omega$ (z. B. den Phasenraum der Teilchen in einem physikalischen System).
Kern der Monte-Carlo-Simulation ist die Schätzung des Erwartungswertes ${\hat {E}}_{X}[f(X)]$anhand von Stichproben. Je nachdem, welcher Verteilung die Stichproben entstammen, kann der Schätzer des Erwartungswertes eine kleinere oder größere Varianz haben. Ist man an der praktischen Berechnung eines Mittelwertschätzers interessiert, so will man mit möglichst kleinem Stichprobenumfang einen Schätzer möglichst kleiner Varianz erlangen – dies kann durch Methoden der Varianzreduktion erreicht werden. Stichproben aus einer Wahrscheinlichkeitsverteilung können mit Markov-Chain-Monte-Carlo-Verfahren erzeugt werden.

## Konvergenz

Die Konvergenz von Monte-Carlo-Simulationen kann mit der Gelman-Rubin-Statistik bewertet werden.

## Anwendungen

Mit der Monte-Carlo-Methode können Probleme mit statistischem Verhalten simuliert werden.
* Diese Methode hat deshalb besonders in der Physik wichtige Anwendungen gefunden: beispielsweise sind in der Statistischen Physik und der Quantenmechanik Observablen eines Systems im Gleichgewicht stets als Erwartungswert beschrieben.
* In der Integralgeometrie oder stochastischen Geometrie können Monte-Carlo Simulationen angewandt werden.
* In der mathematischen Optimierung tauchen Monte-Carlo-Methoden, z. B. in Form Evolutionärer Algorithmen auf.
* Zur numerischen Schätzung der Fehlerfortpflanzung (insbesondere bei nicht-lineare Funktionen) können Monte-Carlo Methoden verwendet werden
Weitere Anwendungen der Monte-Carlo-Simulation sind folgende:

### Berechnung von Integralen

Zur Bestimmung von (höherdimensionalen) Integralen wird in der einfachsten Form (Simple Sampling) folgender Sachverhalt ausgenutzt: Sei $\Omega \subset \mathbb {R} ^{n}$ eine beliebig dimensionale Menge und $f$ eine integrierbare Funktion.
Das Integral sei $S(f):=\int _{x\in \Omega }\!\!f(x)\;\mathrm {d} ^{n}x=\int _{x\in \Omega }\!\!\underbrace {\frac {V}{V}} _{1}f(x)\;\mathrm {d} ^{n}x.$ Wird nun ${\frac {1}{V}}=:p(x)$ als Wahrscheinlichkeitsdichte eines im Volumen $V$ gleichverteilten Zufallsvektors interpretiert, so ist
    $S(f)=\int _{x\in \Omega }\!\!f(x)\;\mathrm {d} ^{n}x=V\int _{x\in \Omega }\!\!f(x)p(x)\mathrm {d} ^{n}x=VE_{X}[f(X)].$

#### Schätzung

Der Schätzer des Integrals der Funktion ist somit: ${\hat {S}}(f)=V{\frac {1}{n}}\sum _{i=1}^{n}f(x_{i})$, falls $X_{i}\sim p$ (gleichverteilt) und approximiert den Wert $S(f)$ mit steigender Zahl an Stichproben beliebig genau.
Für ein konkretes Beispiel siehe unten.

#### Eigenschaften

In der Praxis werden Monte-Carlo-Verfahren vor allem für die Berechnung hochdimensionaler Integrale verwendet. Hier sind klassische Integrationsalgorithmen stark vom Fluch der Dimensionalität betroffen und nicht mehr anwendbar. Allerdings sind speziell hochdimensionale Integranden meist stark lokalisiert. In diesen Fällen erlauben insbesondere MCMC-Verfahren (siehe dort) die Erzeugung von Stichproben mit einer Verteilung, die eine effiziente Berechnung solcher hochdimensionaler Integrale erlaubt.

### Resampling

Untersuchung der Verteilungseigenschaften von Zufallsvariablen unbekannten Verteilungstyps,
* Beispiel: die Ermittlung der nichtzentralen Verteilung des Korrelationskoeffizienten. Mit Hilfe von Zufallszahlen wird die Realisierung beliebig vieler Korrelationskoeffizienten simuliert. Eine Zusammenfassung der Koeffizienten in eine Häufigkeitstabelle ergibt eine empirische Verteilungsfunktion oder ein Histogramm.
* die Eigenschaften von Schätzfunktionen bei Vorliegen von Ausreißern in Daten. Mit Hilfe der Simulation kann gezeigt werden, dass das arithmetische Mittel nicht mehr ein bester Schätzer für den Erwartungswert ist.
* die Schätzung von Verteilungsparametern.

### Nachbildung von komplexen Prozessen

* Produktionsprozesse in einem Fertigungsunternehmen, um Engpässe und Opportunitäten in der Produktion aufzudecken
* Klimamodelle
* Rekonstruktionsverfahren in der Nuklearmedizin.
* Risikoaggregation zur Bestimmung des Gesamtrisikoumfangs eines Unternehmens im Risikomanagement
* Ableitung von Bewertungen in der Wertermittlung, z. B. bei der Unternehmensbewertung oder Immobilienwirtschaft. Bepreisung komplexer Finanzkontrakte wie „exotische“ Optionen, bei denen keine analytische Formel für die Bewertung eines Finanzproduktes bekannt ist.
* räumliche Verteilung des energieabhängigen Neutronenflusses in einem heterogenen Medium, etwa im Blanket eines Kernfusionsreaktors.
* Supercomputer und MC Methoden werden u. a. für die Simulation der alternden Nuklearwaffen der USA benutzt.
* Wege eines einzelnen Regentropfens simulieren, der mit zufällig verteilten anderen Tropfen kollidiert. Nach der Simulation mehrerer konkreter Tropfen sind Aussagen über die durchschnittliche Tropfengröße möglich oder auch zu Temperatur und Tröpfchendichte, bei denen Schnee oder Hagel entstehen.
* Verteilung der Kugeln auf die Fächer beim Galtonbrett.

### Bayessche Statistik

Durch Monte-Carlo-Simulationen können komplizierte Bayessche Modelle auf Daten angepasst werden (wie z. B. in Approximate Bayesian Computation) und mithilfe der Posterior predictive distribution zur Vorhersage benutzt werden.

## Beispiele
### Probabilistische Bestimmung der Zahl Pi

Man wählt hierzu zufällige Punkte in der Menge $[-1,+1]^{2}\subset \mathbb {R} ^{2}$ gleichverteilt aus und überprüft für jeden Punkt $(x,y)\in [-1,+1]^{2}$, ob dieser innerhalb des Einheitskreises liegt, ob also die Bedingung
    $x^{2}+y^{2}\leq 1$
erfüllt ist. Dies kann formal über die Indikatorfunktion getestet werden:
    $z=I(x^{2}+y^{2}\leq 1)={\begin{cases}1&{\text{ falls }}x^{2}+y^{2}\leq 1\\0&{\text{ sonst}}\end{cases}}\;.$
Ein Wert $z$ ist die Realisierung einer Bernoulli-verteilten Zufallsvariablen $Z\sim \mathrm {Ber} (p)$, wobei der Bernoulli-Parameter $p$ der Verteilung gerade durch das Flächenverhältnis gegeben ist, d. h.
    $p={\frac {{\text{Kreisfl}}\mathrm {\ddot {a}} {\text{che}}}{{\text{Quadratfl}}\mathrm {\ddot {a}} {\text{che}}}}={\frac {r^{2}\cdot \pi }{(2\cdot r)^{2}}}={\frac {\pi }{4}}=P\left(Z=1\right)\;.$
Dabei ist $r=1$ und $\pi$ bezeichnet die Kreiszahl.
Liegt eine Folge $z_{1},\dots ,z_{n}$ von Realisierungen von stochastisch unabhängigen und identisch verteilten Zufallsvariable $Z_{1},\dots ,Z_{n}$ vor, die jeweils Bernoulli-verteilt mit dem Bernoulli-Parameter $p$ sind, so ist die relative Häufigkeit
    ${\hat {p}}={\frac {\text{Anzahl der Punkte in Kreisfläche}}{\text{Anzahl generierte Punkte im Quadrat}}}={\frac {\sum _{i=1}^{n}z_{i}}{n}}$
der übliche Schätzwert für die Wahrscheinlichkeit $p$. Eine alternative Sichtweise ist, dass ein Schätzwert für den Erwartungswert $E[Z]=P(Z=1)=p$ durch das arithmetische Mittel ${\hat {E}}[Z]={\frac {1}{n}}\sum _{i=1}^{n}z_{i}$ gegeben ist.
Somit ist ${\hat {p}}$ ein Monte-Carlo-Schätzwert für $\pi /4$. Wegen $\pi =4p$ ist ${\hat {\pi }}=4{\hat {p}}$ ein Monte-Carlo-Schätzwert für $\pi$.
Für die so erhaltene Schätzung ${\hat {\pi }}$ können Konfidenzintervalle mithilfe des Standardfehlers angegeben werden, welche die Unsicherheit der Schätzung ausdrücken.

### Numerische Integration

Das obige Beispiel zur Bestimmung von Pi schätzt das Flächenintegral einer Viertelkreisfläche und verwendet dazu Bernoulli-verteilte Zufallsvariablen $Z_{1},\dots Z_{N}$.
Dasselbe Ergebnis kann auch durch die oben angegebene Integrationsformel mit gleichverteilten Zufallsvariablen $X$ und $Y$ erreichen.
Um wie oben vorgestellt Pi mithilfe von Simple Sampling zu berechnen, muss man $\Omega :=[-1,1]^{2}$ und $f=I_{\mathrm {Kreis} }$ als Indikatorfunktion des Einheitskreises wählen:
Dann ist $S(f)=VE_{X,Y}[I_{\mathrm {Kreis} }(X,Y)]=\pi$ die Fläche des Einheitskreises und der Schätzer ${\hat {S}}(f)=V{\hat {E}}_{X,Y}[I_{\mathrm {Kreis} }(X,Y)]=V{\frac {1}{N}}\sum _{i=1}^{N}I_{\mathrm {Kreis} }(x_{i},y_{i}),$ wobei das Volumen $V=2\cdot 2=4$ ist.

### Bestimmung der Bogenlänge einer Kurve

Die Crofton-Formel zur Bestimmung der Bogenlänge einer Kurve kann näherungsweise mit Monte-Carlo-Simulationen ausgewertet werden.

### Miller-Rabin-Primzahltest

Ein Beispiel für eine Monte-Carlo-Simulation ist der Miller-Rabin-Test, bei dem probabilistisch bestimmt wird, ob eine natürliche Zahl prim ist oder nicht. Die Ausgabe des Tests lautet entweder „sicher zusammengesetzt“ oder „wahrscheinlich prim“. Die Wahrscheinlichkeit, dass eine zusammengesetzte Zahl als „wahrscheinlich prim“ klassifiziert wird, liegt pro Durchgang unter 25 % und kann durch mehrfache Ausführung weiter gesenkt werden. Der Miller-Rabin-Test liefert keine Aussage über die Faktoren einer zusammengesetzten Zahl, ist also kein Faktorisierungsverfahren.

## Codes und Simulatoren (Auswahl)

Hinweis. Die Liste ist als unvollständig zu betrachten, bietet aber einige bekannte Beispiel an MCS. Es existieren ebenfalls kommerzielle Codes, oder Codes die für spezielle Prozesse entwickelt wurden, usw.
* Geant4, kurz für Geometry and Tracking, ein vom CERN entwickeltes und veröffentlichtes Simulationsprogramm.
* MCNP, kurz für Monte-Carlo N-Particle Transport Code, ist eine seit 1957 vom LANL entwickeltes reaktorphysikalisches Simulationsprogramm, das in der Kerntechnik und Kernfusionstechnik häufig angewendet wird.
* OpenMC, ein Community-Projekt mit der Anwendung der MC-Methode auf Neutronen und Photonen-Transport.
* PYTHIA ist ein Simulationsprogramm für die Teilchenphysik und simuliert Kollisionen und dabei entstehende Teilchen.
* Serpent, MC-Simulationsprogramm des VTT Technical Research Centre, Finnland
* SPICE ist ein Simulationsprogramm für analoge, digitale und gemischte elektronische Schaltungen. Mittels einer Monte-Carlo-Simulation bzw. Analyse ist es möglich, die Auswirkungen der Streuung der Bauteilewerte innerhalb der angegebenen Toleranz zu berechnen.