imported>Trustable K (form) |
46.114.148.26 (Diskussion) (Grammatik: r durch n ersetzt) |
||
Zeile 1: | Zeile 1: | ||
[[Datei: | [[Datei:pi statistisch.png|mini| Die [[Kreiszahl|Kreiszahl Pi]] wird mit der Monte-Carlo-Methode angenähert bestimmt durch das Vierfache der Wahrscheinlichkeit, mit der ein innerhalb des Quadrats zufällig gewählter Punkt in den Kreis fällt. Aufgrund des Gesetzes der großen Zahlen sinkt mit steigender Anzahl von Experimenten die Varianz des Ergebnisses.]] | ||
'''Monte-Carlo-Simulation''' | '''Monte-Carlo-Simulation''' (auch '''MC-Simulation''' oder '''Monte-Carlo-Studie''') ist ein Verfahren aus der [[Stochastik]] bzw. [[Wahrscheinlichkeitstheorie]], bei dem wiederholt [[Zufallsstichprobe]]n einer Verteilung mithilfe von [[Zufallsexperiment]]en gezogen werden<ref>{{Literatur |Autor=C. West Churchman, Russel L. Ackoff, E. Leonard Arnoff |Titel=Operations Research: Eine Einführung in die Unternehmensforschung |Verlag=Walter de Gruyter GmbH & Co KG |Datum=2015-10-16 |ISBN=978-3-486-81922-9|Seiten = 167|Online=https://books.google.com/books?id=T5BdDwAAQBAJ&newbks=0&printsec=frontcover&pg=PA167&dq=%22zufallsstichprobe%22+monte+carlo&q=%22zufallsstichprobe%22+monte+carlo&hl=de |Abruf=2021-09-19}}</ref>. | ||
Ziel ist es analytisch nicht (oder nur aufwendig) lösbare Probleme mithilfe der gezogenen Stichproben [[Numerische Mathematik|numerisch]] zu lösen. Als Grundlage 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-Algorithmus|Monte-Carlo-Algorithmen]]. Bei Monte-Carlo-Algorithmen werden zur [[Simulation]] von zufälligen Ereignissen [[Zufallszahl]]en oder auch [[Pseudozufallszahl]]en benutzt. | |||
Zu den Pionieren der Monte-Carlo-Methode in den 1940er Jahren gehören [[Stanisław Marcin Ulam|Stanislaw Ulam]], [[Nicholas Metropolis]] und [[John von Neumann]]. Als grundlegende Veröffentlichung gilt eine Arbeit von Metropolis, [[Edward Teller]], [[Augusta H. Teller]], [[Marshall Rosenbluth]] und [[Arianna W. Rosenbluth]] von 1953. | |||
== Geschichte == | |||
Das 1733 von [[Georges-Louis Leclerc de Buffon]] vor der Pariser Akademie der Wissenschaften vorgestellte [[Buffonsches Nadelproblem|Nadelproblem]]<ref>Isaac Todhunter: ''History of the Mathematical Theory of Probability'', 1865, S. 203</ref>, das mit Hilfe des Zufalls die näherungsweise Bestimmung der Kreiszahl Pi ermöglicht, war eine der ersten Anwendungen einer Monte-Carlo-Simulation. (→[[Monte-Carlo-Simulation#Probabilistische Bestimmung der Zahl Pi|Probabilistische Bestimmung der Zahl Pi]]) | |||
[[Enrico Fermi]] hatte in den 1930er Jahren die eigene Ideen zu Monte-Carlo-Simulationen mittels elektronischer Rechenmaschinen. Ausgeführt wurden diese 1946 von Stanislaw Ulam und dem von ihm deshalb kontaktierten John von Neumann.<ref>Christophe Andrieu, Nando de Freitas, Arnaud Doucet, Michael I. Jordan: [http://people.cs.ubc.ca/~nando/papers/mlintro.pdf An Introduction to MCMC for Machine Learning] (PDF, 1,0 MB), In: ''Machine Learning 2003'', Vol. 50, Band 1–2, S. 5–43.</ref> Dies geschah zur Zeit des [[Zweiter Weltkrieg|2. Weltkriegs]] während der Arbeit an einem damals geheimen Projekt am [[Los Alamos National Laboratory|Los Alamos Scientific Laboratory]], für das ein Codename nötig war. Es ging im Rahmen der Entwicklung der ersten Atombombe um die [[Neutronendiffusion]] in nuklearen Materialien.<ref>''Lecture Notes in Structural Reliability'' - Engineering Risk Analysis Group; Technische Universität München</ref> Auch die mathematische Methode der Simulation musste geheim gehalten werden. 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“.<ref>{{Literatur |Autor=N Metropolis |Titel=BEGINNING of the MONTE CARLO METHOD |Hrsg=Los Alamos Science Special Issue |Datum=1987 |Seiten=125-130 |Online=https://fas.org/sgp/othergov/doe/lanl/pubs/00326866.pdf}}</ref> Dies ist natürlich eine Anspielung auf die [[Spielbank Monte-Carlo]] im gleichnamigen Stadtteil des Stadtstaates [[Monaco]].<ref>Douglas Hubbard: ''How to Measure Anything: Finding the Value of Intangibles in Business.'' John Wiley & Sons, 2007, S. 46.</ref><ref>Charles Grinstead, J. Laurie Snell: ''Introduction to Probability.'' American Mathematical Society, 1997, S. 10–11.</ref><ref>H. L. Anderson: [http://library.lanl.gov/cgi-bin/getfile?00326886.pdf ''Metropolis, Monte Carlo and the MANIAC''.] (PDF, 829 kB) Los Alamos Science, Nr. 14, 1986, S. 96–108, 1986.</ref> | |||
Als grundlegende Veröffentlichung gilt eine Arbeit 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.<ref>N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller: ''Equation of State Calculations by Fast Computing Machines.'' In: ''The Journal of Chemical Physics.'' Volume 21, Number 6, Juni 1953, S. 1087–1092, {{DOI|10.1063/1.1699114}}.</ref> 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]] Computer des [[Los Alamos National Laboratory]]. 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.<ref>M. Rosenbluth: ''Genesis of the Monte Carlo Algorithm for Statistical Mechanics'', AIP Conference Proceedings, Band 690, 2003, S. 22–30, Konferenz am LANL anlässlich des 50. Jahrestags der Veröffentlichung der Arbeit von 1953</ref><ref>J. E. Gubernatis: '' "Marshall Rosenbluth and the Metropolis Algorithm'', Physics of Plasmas, Band 12, 2005, S. 057303.</ref> 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,<ref>M. Rosenbluth, A. Rosenbluth: ''Further Results on Monte Carlo Equations of State'', The Journal of Chemical Physics, Band 22, 1954, S. 881–884</ref><ref>M. Rosenbluth, A. Rosenbluth: ''Monte Carlo Calculation of the Average Extension of Molecular Chains'', The Journal of Chemical Physics, Band 23, 1955, S. 356–359</ref> sie wandten sich aber selbst ebenfalls bald darauf anderen Forschungsthemen (Plasmaphysik) zu. | |||
== Mathematik == | == Mathematik == | ||
Zeile 38: | Zeile 19: | ||
: <math> \left\langle\mathcal{A}\right\rangle = \sum_{x \in \Omega} P(x) \, \mathcal{A}(x), </math> | : <math> \left\langle\mathcal{A}\right\rangle = \sum_{x \in \Omega} P(x) \, \mathcal{A}(x), </math> | ||
oder hochdimensionale Integrale ( | oder hochdimensionale Integrale ('''Monte-Carlo-Integration''') wie | ||
: <math> \ | : <math> \int_{x \in \Omega} \!\! P(x) \, \mathcal{A}(x) \;\mathrm{d}^n x </math> | ||
zu berechnen. <math>P(x)</math> soll in diesem Zusammenhang ein normiertes statistisches Gewicht (etwa ein [[Boltzmann-Statistik|Boltzmanngewicht]]) sein. <math>\mathcal{A}(x)</math> ist der Wert der Größe <math>\mathcal{A}</math> im Zustand <math>x</math>. Die Summation bzw. Integration verläuft hier über einen Raum <math>\Omega</math>, also der [[Phasenraum]] der Teilchen im System. | zu berechnen. <math>P(x)</math> soll in diesem Zusammenhang ein normiertes statistisches Gewicht (etwa ein [[Boltzmann-Statistik|Boltzmanngewicht]]) sein. <math>\mathcal{A}(x)</math> ist der Wert der Größe <math>\mathcal{A}</math> im Zustand <math>x</math>. Die Summation bzw. Integration verläuft hier über einen Raum <math>\Omega</math>, also der [[Phasenraum]] der Teilchen im System. | ||
Häufig ist der Raum <math>\Omega</math> so groß, dass die Summation nicht vollständig durchgeführt werden kann. Stattdessen erzeugt man nun eine [[Markow-Kette]] <math>x_1,x_2,x_3,\ldots</math> von Zuständen in <math>\Omega</math>, deren Häufigkeit wie das vorgegebene Gewicht <math>P(x)</math> verteilt ist. Bereiche des Raumes <math>\Omega</math> mit hohem Gewicht sollen also häufiger in der Markow-Kette vertreten sein als Bereiche mit niedrigem Gewicht. | Häufig ist der Raum <math>\Omega</math> so groß, dass die Summation nicht vollständig durchgeführt werden kann. Stattdessen erzeugt man nun eine [[Markow-Kette]] <math>x_1,x_2,x_3,\ldots</math> von Zuständen in <math>\Omega</math>, deren Häufigkeit wie das vorgegebene Gewicht <math>P(x)</math> verteilt ist. Bereiche des Raumes <math>\Omega</math> mit hohem Gewicht sollen also häufiger in der Markow-Kette vertreten sein als Bereiche mit niedrigem Gewicht. Man spricht hier von [[Importance Sampling]]. Gelingt dies, so lassen sich die Erwartungswerte einfach als arithmetisches Mittel der Größe <math>\mathcal{A}</math> zu diesen Zuständen der Markow-Kette berechnen, also als | ||
: <math>\left\langle\mathcal{A}\right\rangle \approx \frac{1}{N}\sum_{i=1}^N \mathcal{A}(x_i).</math> | : <math>\left\langle\mathcal{A}\right\rangle \approx \frac{1}{N}\sum_{i=1}^N \mathcal{A}(x_i).</math> | ||
Dieser Zusammenhang basiert auf dem | Dieser Zusammenhang basiert auf dem Gesetz der großen Zahlen. Je nach physikalischem System kann es schwierig sein, diese Markow-Kette zu erzeugen. Insbesondere ist sicherzustellen, dass die Markow-Kette tatsächlich den gesamten Raum <math>\Omega</math> bedeckt und nicht nur einen Teil des Raumes abtastet. Man sagt: der Algorithmus muss ''[[Ergodizität|ergodisch]]'' sein. | ||
[[Quasi-Monte-Carlo-Simulation]]en verwenden keine [[Pseudozufallszahl]]en, sondern eine [[Sequenz mit geringer Diskrepanz]] (zum Beispiel eine [[Sobol-Sequenz]]). | |||
== 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. | |||
Heutige [[Supercomputer]] ([[Hochleistungsrechnen|HPC]]) basieren auf massivem [[Mehrprozessorsystem|Multiprocessing]] mit vielen tausend Einzelprozessoren, die parallel arbeiten. Diese Gegebenheiten lassen sich besonders gut mit solchen probabilistischen Lösungsverfahren ausnutzen.<ref>Prof. A. Bachem in Interview, [[c't]] 12/2010, S. 18: ''So lassen sich probabilistische Lösungsverfahren zumeist weitaus besser parallelisieren als die heute üblichen deterministischen.''</ref> | |||
Anwendungen der Monte-Carlo-Simulation sind beispielsweise folgende. | |||
=== Berechnung von Integralen === | |||
* Bestimmung von (höherdimensionalen) [[Integralrechnung|Integralen]], siehe Beispiel | |||
=== [[Resampling]]=== | |||
Untersuchung der Verteilungseigenschaften von [[Zufallsvariable]]n unbekannten Verteilungstyps, | |||
* Beispiel: die Ermittlung der nichtzentralen Verteilung des [[Korrelationskoeffizient]]en. Mit Hilfe von Zufallszahlen wird die [[Realisierung (Stochastik)|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ßer]]n in Daten. Mit Hilfe der Simulation kann gezeigt werden, dass das [[arithmetisches Mittel|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 | |||
* [[Klimamodell]]e | |||
* Rekonstruktionsverfahren in der [[Nuklearmedizin]]. | |||
* [[Risikoaggregation]] zur Bestimmung des Gesamtrisikoumfangs eines Unternehmens im [[Risikomanagement]]<ref>Gleißner; W.: Risikoanalyse, Risikoquantifizierung und Risikoaggregation, in: WiSt, 9/2017, S. 4–11</ref> | |||
* Ableitung von Bewertungen in der [[Wertermittlung]], z. B. bei der [[Unternehmensbewertung]] oder Immobilienwirtschaft<ref>{{Internetquelle |url=http://ww2.cs.fsu.edu/~jayarama/RealEstateMCMReport.pdf |autor=S. Jayraman |titel=A Review of Monte Carlo Methods in Real Estate |datum=2013-05-02 |kommentar=und Quellen darin |zugriff=2017-05-20 |sprache=en}}</ref><ref>{{Literatur |Autor=[[Klaus Bernhard Gablenz]] |Titel=Monte Carlo hilft bei Unsicherheiten. |Sammelwerk=Immobilienzeitung |Datum=26. Juli 2007 |Band=Ausgabe 29 |Seiten=6 |Online=http://svgablenz.de/files/downloads/Das_Monte_Carlo_Verfahren__Artikel_aus_Immobilienzeitung.pdf}}</ref>. Bepreisung komplexer Finanzkontrakte wie „exotische“ Optionen, bei denen keine analytische Formel für die Bewertung eines Finanzproduktes bekannt ist. | |||
* räumliche Verteilung des [[Neutronenfluss|energieabhängigen Neutronenflusses]] in einem [[heterogen]]en Medium, etwa im [[Blanket]] eines [[Kernfusionsreaktor]]s. | |||
* Supercomputer und MC Methoden werden u. a. für die Simulation der alternden [[Kernwaffe|Nuklearwaffen]] (siehe auch [[:en:Stockpile stewardship|Stockpile stewardship]]) der USA benutzt.<ref>{{Internetquelle |url=https://wci.llnl.gov/simulation/computer-codes/mercury |titel=MERCURY |abruf=2019-08-13}}</ref><ref>{{Internetquelle |autor=2014 Jul 10 |url=https://gcn.com/articles/2014/07/10/nnsa-cray-trinity.aspx |titel=Trinity supercomputer to support nuclear stockpile simulations - |abruf=2019-08-13 |sprache=en}}</ref><ref>{{Internetquelle |autor=Nicole Hemsoth |url=https://www.nextplatform.com/2015/07/16/nnsa-stockpile-of-nuclear-security-supercomputers-continues-evolution/ |titel=NNSA Stockpile of Nuclear Security Supercomputers Continues Evolution |datum=2015-07-16 |abruf=2019-08-13 |sprache=en-US}}</ref><ref>{{Internetquelle |url=https://wci.llnl.gov/science/stockpile-stewardship-program |titel=Stockpile Stewardship Program |abruf=2019-08-13}}</ref> | |||
* 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]]. | |||
== Beispiele == | |||
[[Datei:MonteCarloIntegrationCircle.svg|miniatur|Illustration zur Monte-Carlo-Bestimmung von Pi.]] | |||
=== Probabilistische Bestimmung der Zahl Pi === | |||
Man wählt hierzu zufällige Punkte <math>\left( x, y | x \in \left[ -1..1 \right] \wedge y \in \left[ -1..1 \right]\right) </math> aus und überprüft (durch Anwendung des [[Satz von Pythagoras|Satzes von Pythagoras]]), ob diese innerhalb des [[Einheitskreis]]es liegen: | |||
:<math>x^{2} + y^{2} \le 1</math>. | |||
Über das Verhältnis der Anzahl der Punkte innerhalb und außerhalb des Kreises kann dann folgendermaßen <math>\ \pi </math> bestimmt werden: | |||
:<math>\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 } = \frac{\text{Treffer in Kreisfl} \mathrm{\ddot a} \text{che}}{\text{generierte Punkte im Quadrat}} = P \left( \text{Im Kreis} \right) </math> | |||
{{Siehe auch|Kreiszahl#Statistische Bestimmung|titel1=Kreiszahl}} | |||
=== Numerische Integration === | |||
[[Datei:NumInt-MC.png|miniatur|[[Numerische Integration]] mit Monte Carlo: Die Stützstellen werden zufällig gleichverteilt auf dem Integrationsintervall gewählt. Neue Stützstellen sind dunkelblau, die alten hellblau eingezeichnet. Der Wert des Integrals nähert sich 3,32 an.]] | |||
Das obige Beispiel zur Bestimmung von Pi bildet praktisch das Flächenintegral einer Viertelkreisfläche. Entsprechend kann man das Flächenintegral allgemeiner, auch höherdimensionaler Funktionen nach dieser Methode berechnen. Soll das Integral | |||
= | :<math>S(f)=\int_0^1 f(x) \, dx</math> | ||
einer Funktion <math>f</math> berechnet werden, | |||
[ | dann wählt man <math>m</math> unabhängige im Intervall <math>[0,1]</math> gleichverteilte Punkte <math>x_1,\dots, x_m</math> und approximiert <math>S(f)</math> durch | ||
== | :<math>S_m(f)=\frac 1m \sum_{i=1}^m f(x_i).</math> | ||
=== | Im allgemeineren Fall von höherdimensionalen Funktionen ist das Vorgehen ähnlich. Sei <math>K\subset\mathbb{R}^n</math> eine beliebige <math>n</math>-dimensionale Menge und <math>f\colon K\rightarrow \mathbb{R}</math> eine integrierbare Funktion. Um den Wert | ||
Die [[ | |||
:<math>S(f)=\int_K f(x)\,dx</math> | |||
näherungsweise zu berechnen, wählt man zufällig in der Menge <math>K</math> gleichverteilte Punkte <math>x_i</math> für <math>i=1,\dots,m</math>. Dann approximiert | |||
:<math>S_m(f)=\frac{\mathrm{vol}(K)}{m}\sum_{i=1}^mf(x_i)</math> | |||
den Wert <math>S(f)</math> in Abhängigkeit von <math>m</math> beliebig genau. Um wie oben vorgestellt Pi zu berechnen, muss man <math>K:=[-1,1]^2</math> und <math>f:=\chi_{\mathrm{Kreis}}</math> als [[Indikatorfunktion|charakteristische Funktion]] des Einheitskreises wählen. Hier ist <math>S(\chi_{\mathrm{Kreis}})=\pi</math> gerade die Fläche des Einheitskreises. | |||
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#Numerische Integration|Fluch der Dimensionalität]] betroffen und nicht mehr anwendbar. | |||
Allerdings sind speziell hochdimensionale Integranden meist stark lokalisiert<ref>{{Cite book|url=http://www.inference.phy.cam.ac.uk/mackay/itila/book.html|title=Information Theory, Inference and Learning Algorithms|last=MacKay|first=David|publisher=Cambridge University Press|year=2003|isbn=978-0-521-64298-9|chapter=Kapitel 4.4 Typicality & Kapitel 29.1|ref=mackay2003|authorlink=David MacKay|chapterurl=http://www.inference.org.uk/itprnn/book.pdf}}</ref>. | |||
In diesen Fällen erlauben insbesondere [[MCMC-Verfahren]] die Erzeugung von Stichproben mit einer Verteilung die eine effiziente Berechnung solcher hochdimensionaler Integrale erlaubt. | |||
=== 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 [[Primzahl|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]]. | |||
== Programmpakete (Auswahl) == | |||
* ''[[MCNP]]'', der ''Monte-Carlo N-Particle Transport Code'', ist ein prototypisches, weltweit verbreitetes reaktorphysikalisches Programm, das sehr häufig angewendet wird, auch in der [[Kerntechnik]] und der [[Kernfusionsreaktor|Kernfusionstechnik]].<ref> Im der bibliografischen Datenbank [[WorldCat]] sind über 10000 Arbeiten verzeichnet, die dem Programm MCNP selbst oder Anwendungen des Programms gewidmet sind </ref> Die aktuelle Version ist MCNP6.2. Auf der MCNP-Webseite<ref name="MCNP_2018">{{Internetquelle |url=https://mcnp.lanl.gov/ |titel=A General Monte Carlo N-Particle (MCNP) Transport Code: Monte Carlo Methods, Codes, & Applications Group |zugriff=2018-06-19}}</ref> sind Handbücher und Release Notes als Internetdokumente zu finden, zum Beispiel der Band I des MCNP-Handbuchs ''Overview and Theory''.<ref> {{Internetquelle |url=https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-03-1987.pdf |titel=MCNP — A General Monte Carlo N-Particle Transport Code, Version 5: Volume I: Overview and Theory |autor=X-5 Monte Carlo Team |zugriff=2018-06-19}} </ref> | |||
* ''[[PYTHIA]]'' ist ein Simulationsprogramm für die Teilchenphysik und simuliert Kollisionen und dabei entstehende Teilchen. | * ''[[PYTHIA]]'' ist ein Simulationsprogramm für die Teilchenphysik und simuliert Kollisionen und dabei entstehende Teilchen. | ||
* ''[[SPICE (Software)|SPICE]]'' ist ein Simulationsprogramm für analoge, digitale und gemischte elektronische Schaltungen. Mit der Monte-Carlo-Simulation ist es möglich, die Auswirkungen der Streuung der Bauteilewerte innerhalb der angegebenen Toleranz zu berechnen. | * ''[[SPICE (Software)|SPICE]]'' ist ein Simulationsprogramm für analoge, digitale und gemischte elektronische Schaltungen. Mit der Monte-Carlo-Simulation ist es möglich, die Auswirkungen der Streuung der Bauteilewerte innerhalb der angegebenen Toleranz zu berechnen. | ||
== Siehe auch == | == Siehe auch == | ||
* [[ | * [[Binder-Kumulante]] | ||
== Literatur == | == Literatur == | ||
Zeile 79: | Zeile 112: | ||
* Kurt Binder: ''Applications of the Monte Carlo method in statistical physics.'' Springer, Berlin 1984, ISBN 3-540-12764-X. | * Kurt Binder: ''Applications of the Monte Carlo method in statistical physics.'' Springer, Berlin 1984, ISBN 3-540-12764-X. | ||
* [[Paul Glasserman]]: ''Monte Carlo Methods in Financial Engineering.'' Springer, Berlin 2003, ISBN 978-1-4419-1822-2. | * [[Paul Glasserman]]: ''Monte Carlo Methods in Financial Engineering.'' Springer, Berlin 2003, ISBN 978-1-4419-1822-2. | ||
* | * [[David P. Landau]], Kurt Binder: ''A guide to Monte Carlo simulations in statistical physics.'' Cambridge University Press, Cambridge, 2014, ISBN 978-1107074026 | ||
== Weblinks == | == Weblinks == | ||
{{Commonscat|Monte Carlo method|Monte-Carlo-Simulation}} | {{Commonscat|Monte Carlo method|Monte-Carlo-Simulation}} | ||
* [http:// | * [http://katgym.by.lo-net2.de/c.wolfseher/web/MonteCarlo.html Interaktive Animation der Monte-Carlo-Simulation zur Abschätzung der Kreiszahl π.] | ||
* {{YouTube|OcC05prbQ_k|Die Monte-Carlo-Simulation für die Teilchenphysik. Film des Karlsruher Instituts für Technologie zur Monte-Carlo-Simulation in der Teilchenphysik}} | * {{YouTube|OcC05prbQ_k|Die Monte-Carlo-Simulation für die Teilchenphysik. Film des Karlsruher Instituts für Technologie zur Monte-Carlo-Simulation in der Teilchenphysik}} | ||
Zeile 93: | Zeile 125: | ||
[[Kategorie:Testtheorie]] | [[Kategorie:Testtheorie]] | ||
[[Kategorie:Statistische Physik]] | [[Kategorie:Statistische Physik]] | ||
[[Kategorie:Computerchemie]] | [[Kategorie:Computerchemie]] | ||
[[Kategorie:Computerphysik]] | [[Kategorie:Computerphysik]] | ||
[[Kategorie:Stichprobentheorie]] | [[Kategorie:Stichprobentheorie]] |
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[1].
Ziel ist es analytisch nicht (oder nur aufwendig) lösbare Probleme mithilfe der gezogenen Stichproben numerisch zu lösen. Als Grundlage 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.
Zu den Pionieren der Monte-Carlo-Methode in den 1940er Jahren gehören Stanislaw Ulam, Nicholas Metropolis und John von Neumann. Als grundlegende Veröffentlichung gilt eine Arbeit von Metropolis, Edward Teller, Augusta H. Teller, Marshall Rosenbluth und Arianna W. Rosenbluth von 1953.
Das 1733 von Georges-Louis Leclerc de Buffon vor der Pariser Akademie der Wissenschaften vorgestellte Nadelproblem[2], das mit Hilfe des Zufalls die näherungsweise Bestimmung der Kreiszahl Pi ermöglicht, war eine der ersten Anwendungen einer Monte-Carlo-Simulation. (→Probabilistische Bestimmung der Zahl Pi)
Enrico Fermi hatte in den 1930er Jahren die eigene Ideen zu Monte-Carlo-Simulationen mittels elektronischer Rechenmaschinen. Ausgeführt wurden diese 1946 von Stanislaw Ulam und dem von ihm deshalb kontaktierten John von Neumann.[3] Dies geschah zur Zeit des 2. Weltkriegs während der Arbeit an einem damals geheimen Projekt am Los Alamos Scientific Laboratory, für das ein Codename nötig war. Es ging im Rahmen der Entwicklung der ersten Atombombe um die Neutronendiffusion in nuklearen Materialien.[4] Auch die mathematische Methode der Simulation musste geheim gehalten werden. 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“.[5] Dies ist natürlich eine Anspielung auf die Spielbank Monte-Carlo im gleichnamigen Stadtteil des Stadtstaates Monaco.[6][7][8]
Als grundlegende Veröffentlichung gilt eine Arbeit 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.[9] 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 Computer des Los Alamos National Laboratory. 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.[10][11] 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,[12][13] sie wandten sich aber selbst ebenfalls bald darauf anderen Forschungsthemen (Plasmaphysik) zu.
Mathematisch ist das System ein wahrscheinlichkeitsgewichteter Weg im Phasenraum (allgemein Zustandsraum). Monte-Carlo-Simulationen sind besonders geeignet, um statistische Mittelwerte einer Größe $ {\mathcal {A}} $,
oder hochdimensionale Integrale (Monte-Carlo-Integration) wie
zu berechnen. $ P(x) $ soll in diesem Zusammenhang ein normiertes statistisches Gewicht (etwa ein Boltzmanngewicht) sein. $ {\mathcal {A}}(x) $ ist der Wert der Größe $ {\mathcal {A}} $ im Zustand $ x $. Die Summation bzw. Integration verläuft hier über einen Raum $ \Omega $, also der Phasenraum der Teilchen im System.
Häufig ist der Raum $ \Omega $ so groß, dass die Summation nicht vollständig durchgeführt werden kann. Stattdessen erzeugt man nun eine Markow-Kette $ x_{1},x_{2},x_{3},\ldots $ von Zuständen in $ \Omega $, deren Häufigkeit wie das vorgegebene Gewicht $ P(x) $ verteilt ist. Bereiche des Raumes $ \Omega $ mit hohem Gewicht sollen also häufiger in der Markow-Kette vertreten sein als Bereiche mit niedrigem Gewicht. Man spricht hier von Importance Sampling. Gelingt dies, so lassen sich die Erwartungswerte einfach als arithmetisches Mittel der Größe $ {\mathcal {A}} $ zu diesen Zuständen der Markow-Kette berechnen, also als
Dieser Zusammenhang basiert auf dem Gesetz der großen Zahlen. Je nach physikalischem System kann es schwierig sein, diese Markow-Kette zu erzeugen. Insbesondere ist sicherzustellen, dass die Markow-Kette tatsächlich den gesamten Raum $ \Omega $ bedeckt und nicht nur einen Teil des Raumes abtastet. Man sagt: der Algorithmus muss ergodisch sein.
Quasi-Monte-Carlo-Simulationen verwenden keine Pseudozufallszahlen, sondern eine Sequenz mit geringer Diskrepanz (zum Beispiel eine Sobol-Sequenz).
Mit der Monte-Carlo-Methode können Probleme mit statistischem Verhalten simuliert werden. Diese Methode hat deshalb besonders in der Physik wichtige Anwendungen gefunden.
Heutige Supercomputer (HPC) basieren auf massivem Multiprocessing mit vielen tausend Einzelprozessoren, die parallel arbeiten. Diese Gegebenheiten lassen sich besonders gut mit solchen probabilistischen Lösungsverfahren ausnutzen.[14]
Anwendungen der Monte-Carlo-Simulation sind beispielsweise folgende.
Untersuchung der Verteilungseigenschaften von Zufallsvariablen unbekannten Verteilungstyps,
Man wählt hierzu zufällige Punkte $ \left(x,y|x\in \left[-1..1\right]\wedge y\in \left[-1..1\right]\right) $ aus und überprüft (durch Anwendung des Satzes von Pythagoras), ob diese innerhalb des Einheitskreises liegen:
Über das Verhältnis der Anzahl der Punkte innerhalb und außerhalb des Kreises kann dann folgendermaßen $ \ \pi $ bestimmt werden:
Das obige Beispiel zur Bestimmung von Pi bildet praktisch das Flächenintegral einer Viertelkreisfläche. Entsprechend kann man das Flächenintegral allgemeiner, auch höherdimensionaler Funktionen nach dieser Methode berechnen. Soll das Integral
einer Funktion $ f $ berechnet werden, dann wählt man $ m $ unabhängige im Intervall $ [0,1] $ gleichverteilte Punkte $ x_{1},\dots ,x_{m} $ und approximiert $ S(f) $ durch
Im allgemeineren Fall von höherdimensionalen Funktionen ist das Vorgehen ähnlich. Sei $ K\subset \mathbb {R} ^{n} $ eine beliebige $ n $-dimensionale Menge und $ f\colon K\rightarrow \mathbb {R} $ eine integrierbare Funktion. Um den Wert
näherungsweise zu berechnen, wählt man zufällig in der Menge $ K $ gleichverteilte Punkte $ x_{i} $ für $ i=1,\dots ,m $. Dann approximiert
den Wert $ S(f) $ in Abhängigkeit von $ m $ beliebig genau. Um wie oben vorgestellt Pi zu berechnen, muss man $ K:=[-1,1]^{2} $ und $ f:=\chi _{\mathrm {Kreis} } $ als charakteristische Funktion des Einheitskreises wählen. Hier ist $ S(\chi _{\mathrm {Kreis} })=\pi $ gerade die Fläche des Einheitskreises.
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[22]. In diesen Fällen erlauben insbesondere MCMC-Verfahren die Erzeugung von Stichproben mit einer Verteilung die eine effiziente Berechnung solcher hochdimensionaler Integrale erlaubt.
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.