Monte Carlo Algorithmus
Im Computer, a Monte Carlo Algorithmus ist ein Randomisierter Algorithmus deren Ausgabe kann mit einem bestimmten (normalerweise klein) falsch sein Wahrscheinlichkeit. Zwei Beispiele für solche Algorithmen sind Karger -Stein -Algorithmus[1] und Monte Carlo -Algorithmus für Mindestfeedback -Lichtbogen gesetzt.[2]
Der Name bezieht sich auf den Grand Kasino Im Fürstentum von Monaco bei Monte Carlo, was auf der ganzen Welt als Ikone des Glücksspiels bekannt ist. Der Begriff "Monte Carlo" wurde erstmals 1947 von vorgestellt Nicholas Metropole.[3]
Las Vegas -Algorithmen Bereich Dual von Monte Carlo -Algorithmen, die niemals eine falsche Antwort zurückgeben. Sie können jedoch im Rahmen ihrer Arbeit zufällige Entscheidungen treffen. Infolgedessen kann die Zeit zwischen den Läufen variieren, selbst bei der gleichen Eingabe.
Wenn ein Verfahren zur Überprüfung vorliegt, ob die von einem Monte -Carlo -Algorithmus gegebene Antwort korrekt ist und die Wahrscheinlichkeit einer korrekten Antwort über Null begrenzt ist, gibt eine Wahrscheinlichkeit, dass der Algorithmus wiederholt wird, während die Antworten letztendlich eine korrekte Antwort geben. Ob dieser Prozess ein Las -Vegas -Algorithmus ist, hängt davon ab, ob das Anhalten der Wahrscheinlichkeit als Erfüllung der Definition angesehen wird.
Einseitiger vs zweiseitiger Fehler
Während die Antwort von a zurückgegeben wurde deterministischer Algorithmus Es wird immer erwartet, dass es bei Monte Carlo -Algorithmen nicht korrekt ist. Zum EntscheidungsproblemeDiese Algorithmen werden im Allgemeinen als beide klassifiziert FALSCH-bias oder Stimmt-voreingenommen. EIN FALSCH-Biaser Monte -Carlo -Algorithmus ist immer korrekt, wenn er zurückkehrt FALSCH; a Stimmt-Biaser Algorithmus ist immer korrekt, wenn er zurückkehrt Stimmt. Während dies Algorithmen mit beschreibt einseitige Fehlerandere haben möglicherweise keine Voreingenommenheit; Diese sollen haben zweiseitige Fehler. Die Antwort, die sie geben (entweder Stimmt oder FALSCH) ist falsch oder korrekt, mit einer gewissen begrenzten Wahrscheinlichkeit.
Zum Beispiel die Solovay -Strassen -Primalitätstest wird verwendet, um festzustellen, ob eine bestimmte Zahl a ist Primzahl. Es antwortet immer Stimmt für Primzahl -Eingaben; Für zusammengesetzte Eingänge antwortet es FALSCH mit Wahrscheinlichkeit zumindest 1⁄2 und Stimmt mit einer Wahrscheinlichkeit weniger als 1⁄2. Daher, FALSCH Antworten aus dem Algorithmus sind mit Sicherheit richtig, während die Stimmt Antworten bleiben ungewiss; Dies soll ein sein 1⁄2-Korrekten Sie falsch vorgespanntes Algorithmus.
Verstärkung
Für einen Monte-Carlo-Algorithmus mit einseitigen Fehlern kann die Fehlerwahrscheinlichkeit durch Ausführen des Algorithmus verringert (und die Erfolgwahrscheinlichkeit verstärkt) werden k mal. Betrachten Sie erneut den Solovay -Strassen -Algorithmus, der ist 1⁄2-Korrektur falsch vorgespannt. Man kann diesen Algorithmus mehrmals ausführen und a FALSCH Antwort, wenn es a erreicht FALSCH Antwort innerhalb k Iterationen und ansonsten zurückkehren Stimmt. Wenn die Zahl der Zahl ist, ist die Antwort immer korrekt, und wenn die Zahl zusammengesetzt ist, ist die Antwort mit mindestens 1– (1 -) korrekt1⁄2)k= 1–2−k.
Für Monte-Carlo-Entscheidungsalgorithmen mit zweiseitigem Fehler kann die Fehlerwahrscheinlichkeit durch Ausführen des Algorithmus erneut reduziert werden k Zeiten und zurückgeben die Mehrheitsfunktion der Antworten.
Komplexitätsklassen
Das Komplexitätsklasse BPP beschreibt Entscheidungsprobleme Dies kann durch Polynomzeit-Monte-Carlo-Algorithmen mit einer begrenzten Wahrscheinlichkeit von zweiseitigen Fehlern und der Komplexitätsklasse gelöst werden RP beschreibt Probleme, die durch einen Monte-Carlo-Algorithmus mit einer begrenzten Wahrscheinlichkeit eines einseitigen Fehlers gelöst werden können: Wenn die richtige Antwort ist FALSCH, der Algorithmus sagt immer so, aber es kann antworten FALSCH Falsch für einige Fälle, in denen die richtige Antwort lautet Stimmt. Im Gegensatz dazu die Komplexitätsklasse Zpp Beschreibt Probleme, die durch polynom erwartete Zeit -Las -Vegas -Algorithmen lösbar sind. ZPP ⊆ RP ⊆ BPP, aber es ist nicht bekannt, ob sich eine dieser Komplexitätsklassen voneinander unterscheidet; Das heißt, Monte -Carlo -Algorithmen haben möglicherweise mehr Rechenleistung als Las Vegas -Algorithmen, aber dies wurde nicht nachgewiesen. Eine andere Komplexitätsklasse, Pp, beschreibt Entscheidungsprobleme mit einem Polynom-Zeit-Monte-Carlo-Algorithmus, der genauer ist als eine Münze, bei der die Fehlerwahrscheinlichkeit nicht unbedingt weggelegt werden kann 1⁄2.
Anwendungen in der Rechenzahltheorie
Bekannte Monte-Carlo-Algorithmen umfassen den Solovay-Strassen-Primalitätstest, der Baillie -PSW -Primalitätstest, das Miller -Rabin -Primalitätstestund bestimmte schnelle Varianten der Schreier -Sims -Algorithmus in Computergruppentheorie.
Siehe auch
- Monte -Carlo -Methoden, Algorithmen, die in der physikalischen Simulation verwendet werden und Computerstatistik Basierend auf zufälligen Stichproben
- Atlantic City Algorithmus
- Las Vegas Algorithmus
Verweise
Zitate
- ^ Karger, David R.; Stein, Clifford (Juli 1996). "Ein neuer Ansatz für das Problem mit dem Mindestschnitt". J. ACM. 43 (4): 601–640. doi:10.1145/234533.234534. ISSN 0004-5411. S2CID 5385337.
- ^ Kudelić, Robert (2016-04-01). "Monte-Carlo Randomisierter Algorithmus für minimales Feedback-Bogen-Set-Problem". Angewandte Soft Computing. 41: 235–246. doi:10.1016/j.asoc.2015.12.018.
- ^ Metropolis, N. (1987). "Der Beginn der Monte -Carlo -Methode" (PDF). Los Alamos Science (1987 Sonderausgabe, die Stanislaw Ulam gewidmet ist): 125–130.
Quellen
- Motwani, Rajeev; Raghavan, Prabhakar (1995). Randomisierte Algorithmen. New York: Cambridge University Press. ISBN 0-521-47465-5.
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). "CH 5. Probabilistische Analyse und randomisierte Algorithmen". Einführung in Algorithmen (2. Aufl.). Boston: Mit Press und McGraw-Hill. ISBN 0-262-53196-8.
- Berman, Kenneth A.; Paul, Jerome L. (2005). "Ch 24. probabilistische und randomisierte Algorithmen". Algorithmen: sequentiell, parallel und verteilt. Boston: Kurstechnologie. ISBN 0-534-42057-5.