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 12 und Stimmt mit einer Wahrscheinlichkeit weniger als 12. Daher, FALSCH Antworten aus dem Algorithmus sind mit Sicherheit richtig, während die Stimmt Antworten bleiben ungewiss; Dies soll ein sein 12-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 12-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 -) korrekt12)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 12.

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

Verweise

Zitate

  1. ^ 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.
  2. ^ 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.
  3. ^ Metropolis, N. (1987). "Der Beginn der Monte -Carlo -Methode" (PDF). Los Alamos Science (1987 Sonderausgabe, die Stanislaw Ulam gewidmet ist): 125–130.

Quellen