Randomisierter Algorithmus, der deterministisch "aussieht"?

31

Gibt es ein interessantes Beispiel für einen randomisierten Algorithmus für ein Suchproblem , der unabhängig von seiner internen Zufälligkeit immer dieselbe (richtige) Antwort ausgibt, die Zufälligkeit jedoch ausnutzt, sodass seine erwartete Laufzeit besser ist als die Laufzeit der schnellsten bekannten deterministischer Algorithmus für das Problem?

Insbesondere habe ich mich gefragt, ob es einen solchen Algorithmus gibt, um eine Primzahl zwischen n und 2n zu finden. Es ist kein polynomieller zeitdeterministischer Algorithmus bekannt. Es gibt einen trivialen randomisierten Algorithmus, bei dem nur zufällige Ganzzahlen im Intervall abgetastet werden, was dank des Primzahlsatzes funktioniert . Aber gibt es einen Algorithmus der oben genannten Art, dessen erwartete Laufzeit zwischen beiden liegt?

BEARBEITEN: Um meine Frage ein wenig zu verfeinern, wollte ich einen solchen Algorithmus für ein Problem, bei dem es viele mögliche korrekte Ausgaben gibt, und dennoch setzt der randomisierte Algorithmus unabhängig von seiner Zufälligkeit auf einen. Mir ist klar, dass die Frage wahrscheinlich nicht vollständig spezifiziert ist ...

Arnab
quelle
3
Um Ihnen einige Suchbegriffe zu geben, werden randomisierte Algorithmen, die immer die richtige Antwort liefern (und Zufälligkeit für kürzere Laufzeit verwenden), Las Vegas-Algorithmen (im Gegensatz zu Monte-Carlo-Algorithmen) oder Null-Fehler-Algorithmen genannt, und eine zugehörige Komplexitätsklasse ist ZPP .
Tsuyoshi Ito
@ Tsuyoshi: Danke für deinen Kommentar. Ich kenne jedoch keine Las Vegas-Algorithmen für Suchprobleme. Das ist meine Frage.
Arnab
Wenn es einen zufälligen Algorithmus zum Auffinden eindeutiger Nash-Gleichgewichte gibt, der Ihre Frage beantworten würde.
Warren Schudy
Vielleicht gibt es ein Problem mit Geburtstagsangriffen ( en.wikipedia.org/wiki/Birthday_attack ), das Ihren Anforderungen entspricht?
Warren Schudy

Antworten:

23

Shafi Goldwasser teilte mir mit, dass sie und die Mitautoren genau solche Algorithmen für zahlentheoretische Probleme untersucht haben! Folgendes ist bekannt:

  1. Lenstra hat gezeigt, dass es einen solchen Algorithmus gibt, um eine quadratische nicht-restliche Modifikation einer gegebenen Primzahl zu finden.

  2. Zpp2q+1q

n2n

n2n

Arnab
quelle
1
Virtuelle +1. Das ist wirklich interessant, werde auf das Papier achten.
András Salamon
2
Trotz des Vermerks habe ich diese Antwort einfach deshalb positiv bewertet, weil dies eine gute Antwort ist. Ich glaube nicht, dass irgendetwas falsch daran ist, eine gute Antwort für jemand anderen zu stimmen. Ich habe eine Diskussion über Meta gestartet .
Tsuyoshi Ito
1
Ich habe die Notiz entfernt und sie gemäß der Diskussion im Meta-Thread zum "Community-Wiki" gemacht.
Arnab
Den von Arnab erwähnten Meta-Thread finden Sie hier: meta.cstheory.stackexchange.com/q/607/873 .
MS Dousti
18

Zählen randomisierte Datenstrukturen?

Es gibt die Überspringliste, die eine sortierte assoziative Kartendatenstruktur ist.

O(logn)

Konrad Rudolph
quelle
Vielen Dank! Dies zählt definitiv und ist eine nicht triviale Antwort auf meine ursprüngliche Frage. Ich wollte ein Problem, das dem Prim-Finding-Problem ähnlicher ist und für das es viele mögliche Lösungen gibt.
Arnab
Fügen Sie diesem Gedankengang Sprunglisten hinzu.
Raphael
13

Wie wäre es mit Kelners und Spielmans randomisiertem Polynom-Zeit-Simplex-Algorithmus? Es findet den optimalen Eckpunkt eines linearen Programms. Es ist kein deterministischer Simplex-Algorithmus bekannt, der nachweislich in polynomieller Zeit abläuft, und für viele von ihnen können pathologische Instanzen konstruiert werden, bei denen der Algorithmus exponentielle Zeit benötigt.

Natürlich gibt es Interieur-Punkt-Algorithmen für die Polynomzeit, also ist es nicht genau das, wonach Sie suchen.

Peter Shor
quelle
Wenn es mehrere optimale Punkte gibt, würde Kelner-Spielman immer den gleichen Punkt zurückgeben?
Sasho Nikolov
3
Generische lineare Programme haben nur einen optimalen Punkt, so dass mit Hilfe der Störung eine Variante von Kelner-Spielman erstellt werden kann, die immer den gleichen optimalen Punkt liefert.
Peter Shor
12

2nn2n

2n1

Qualifiziert sich das?

András Salamon
quelle
Nett!! Dies ist definitiv eine Qualifikation, obwohl ich nach einem nicht-trivialen Beispiel gesucht habe, bei dem die Laufzeitverbesserung wesentlich ist.
Arnab
Sie brauchen keine Baumstruktur, dies funktioniert in einem Array.
SDCVVC
7

Fplogpp

logp

Srikanth
quelle
6

Es gab ein Polymath-Projekt, das sich mit einer verwandten Frage befasste: http://michaelnielsen.org/polymath1/index.php?title=Finding_primes

Anthony Leverrier
quelle
Ja, das war eine Quelle der Motivation, die Frage zu stellen. Ich glaube nicht, dass sie diese Frage im Polymath-Projekt explizit erwähnt haben.
Arnab
3

Bei Ihrer ersten Frage habe ich zuerst an Quicksort gedacht, aber das sollte offensichtlich sein.

Es gibt einen String-Matching-Algorithmus ( Nebel, 2006 ), der probabilistische Ideen verwendet. Ich weiß jedoch, ob dies der schnellste existierende Ansatz ist und Sie anscheinend einige Beispiele für das Training benötigen.

Raphael
quelle
Median-Finding ist auch schneller, aber nicht dramatisch.
Aram Harrow
3

Das folgende STACS '97-Dokument könnte für Ihren Fall interessant sein: Die Komplexität der Generierung von Testinstanzen .

Abstract: Vor kurzem hat Watanabe ein neues Framework zum Testen der Korrektheit und des durchschnittlichen Fallverhaltens von Algorithmen vorgeschlagen, die vorgeben, ein bestimmtes NP-Suchproblem im Durchschnitt effizient zu lösen. Die Idee ist, zertifizierte Instanzen zufällig so zu generieren, dass sie der zugrunde liegenden Distribution ähneln. Wir diskutieren diesen Ansatz und zeigen, dass Testinstanzen für jedes NP-Suchproblem mit nicht adaptiven Abfragen an ein NP-Orakel generiert werden können. Außerdem stellen wir Generatoren für Las Vegas- und Monte-Carlo-Testinstanzen vor und zeigen, dass mit diesen Generatoren herausgefunden werden kann, ob ein Algorithmus im Durchschnitt korrekt und effizient ist. Tatsächlich ist es nicht schwer, Monte-Carlo-Generatoren für alle RP-Suchprobleme sowie Las Vegas-Generatoren für alle ZPP-Suchprobleme zu konstruieren. Auf der anderen Seite,

Sehen Sie sich insbesondere Seite 384 unter Folgerung 12 an:

ZPPRPZPPNPNPcoNP

MS Dousti
quelle
2

Vor [AKS] hatte Primality coRP- und RP-Algorithmen (Miller-Rabin für coRP, Adleman-Huang für RP). Eine natürliche Nullfehlererweiterung wäre, beide gleichzeitig auszuführen, bis Sie den Fehler auf reduzieren1ncpolylog(n)

Ramprasad
quelle
3
Dies bezieht sich auf Testen und nicht finden ...
Dana Moshkovitz
Ich interessierte mich mehr für Suchprobleme. Für Entscheidungsprobleme gibt es Las Vegas-Algorithmen.
Arnab