Klassifizierung randomisierter Algorithmen


14

Aus Wikipedia über randomisierte Algorithmen

Man muss unterscheiden zwischen Algorithmen , die die Zufallseingabe verwenden, um die erwartete Laufzeit oder den Speicherbedarf zu verringern, aber immer mit einem korrekten Ergebnis in einem begrenzten Zeitraum enden, und probabilistischen Algorithmen , die abhängig von der Zufallseingabe eine Chance haben ein falsches Ergebnis zu erzeugen (Monte-Carlo-Algorithmen) oder ein Ergebnis nicht zu erzeugen (Las Vegas-Algorithmen), entweder durch Signalisieren eines Fehlers oder durch Nichtbeenden.

  1. Ich habe mich gefragt, wie die erste Art von Algorithmen die zufällige Eingabe verwendet, um die erwartete Laufzeit oder den Speicherbedarf zu verringern, aber immer mit einem korrekten Ergebnis in einer begrenzten Zeitspanne zu enden.
  2. Welche Unterschiede gibt es zu Las Vegas-Algorithmen, bei denen möglicherweise kein Ergebnis erzielt wird?
  3. Wenn ich das richtig verstehe, sind probabilistische Algorithmen und randomisierte Algorithmen nicht dasselbe Konzept. Probabilistische Algorithmen sind nur eine Art randomisierter Algorithmen, und die andere Art besteht darin, die Zufallseingabe zu verwenden, um die erwartete Laufzeit oder den erwarteten Speicherverbrauch zu verringern, aber immer mit einem korrekten Ergebnis in einem begrenzten Zeitraum zu enden.

Antworten:


12
  1. Ein Beispiel für einen solchen Algorithmus ist die zufällige schnelle Sortierung, bei der Sie die Liste zufällig permutieren oder den Pivot-Wert zufällig auswählen und dann wie gewohnt die schnelle Sortierung verwenden. Schnelles Sortieren hat eine Laufzeit im ungünstigsten Fall von , aber in einer zufälligen Liste hat es eine erwartete Laufzeit von O ( n log n ) , so dass es immer nach O ( n 2 ) Schritten endet , aber wir können das erwarten zufällige Instanz, die nach O ( n log n ) Schritten beendet wird, immer mit einer korrekten Antwort.Ö(n2)Ö(nLogn)Ö(n2)Ö(nLogn)

  2. Dies ergibt eine Teilmenge der Las Vegas-Algorithmen. Las Vegas-Algorithmen berücksichtigen auch die Möglichkeit, dass es (mit geringer Wahrscheinlichkeit) nicht beendet werden kann - nicht nur mit etwas mehr Zeit.

  3. Dies wiederum ist eigentlich nur eine Art Monte-Carlo-Algorithmus, bei dem die Antwort falsch sein kann (mit geringer Wahrscheinlichkeit), was zumindest konzeptionell anders ist, als wenn man vielleicht nicht antwortet.

Ich habe natürlich eine ganze Reihe von Details ausgelassen. Vielleicht möchten Sie die Komplexitätsklassen ZPP, RP und BPP nachschlagen, die diese Ideen formalisieren.


Vielen Dank! Zufallsalgorithmen, Monte-Carlo-Algorithmen und probabilistische Algorithmen sind also dasselbe Konzept?
StackExchange for All

Ja, obwohl Monte-Carlo-Algorithmen eine bestimmte Art von probabilistischem Algorithmus sind (entsprechend der Klasse BPP - es gibt andere Klassen wie PP, die probabilistisch sind, aber - wahrscheinlich! - mehr als BPP enthalten). Ich bin nicht sicher, warum dieser Satz im Wikipedia-Artikel steht, vielleicht hat sich jemand mit der Wahrscheinlichkeitsanalyse verwechselt, was etwas anderes ist.
Luke Mathieson

8

Die beiden Begriffe randomisierte Algorithmen und probabilistische Algorithmen werden in zwei verschiedenen Kontexten verwendet. Randomisierte Algorithmen sind Algorithmen, die Zufälligkeit verwenden, im Gegensatz zu deterministischen Algorithmen , die dies nicht tun. Probabilistische Algorithmen , zum Beispiel probabilistische Algorithmen für Primärtests, sind Algorithmen, die Zufälligkeit verwenden und mit einer (hoffentlich) geringen Wahrscheinlichkeit einen Fehler machen können.

Es muss ein wichtiger Unterschied zwischen Monte-Carlo-Algorithmen und Las-Vegas-Algorithmen gemacht werden . Las Vegas-Algorithmen sind zufällige Algorithmen, die immer die richtige Antwort zurückgeben, deren Laufzeit jedoch von den Münzwürfen abhängt. Ein Beispiel sind ganzzahlige Faktorisierungsalgorithmen - sie geben immer die richtigen Faktoren zurück, aber ihre Laufzeit hängt von der Zufälligkeit ab. Bei der Angabe der Laufzeit eines Las Vegas-Algorithmus (beispielsweise eines Factoring-Algorithmus) geben wir die erwartete Laufzeit an. Wenn wir Pech haben, könnte der Algorithmus länger laufen.

Monte-Carlo-Algorithmen hingegen sind randomisierte Algorithmen, deren Laufzeit vorab festgelegt wird. Solche Algorithmen können einen Fehler machen, aber normalerweise ist die Fehlerwahrscheinlichkeit sehr gering. Ein gutes Beispiel ist die probabilistische Prüfung der Primalität. Diese Algorithmen sind sehr schnell, können jedoch Fehler verursachen. Die Fehlerwahrscheinlichkeit ist jedoch langsam gering, so dass sie in der Praxis niemals einen Fehler machen.

Jeder Las Vegas-Algorithmus kann in einen Monte-Carlo-Algorithmus umgewandelt werden, indem die Ausführung nach einer ausreichend langen Zeit unterbrochen wird. Daher sind Las Vegas-Algorithmen in gewissem Sinne "besser" als Monte-Carlo-Algorithmen.


Können Sie eine Referenz für diese Definitionen anführen?
R. Chopin

Wikipedia sollte einige relevante Referenzen haben.
Yuval Filmus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.