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 ...


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


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)


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.


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?


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



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.


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


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)


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
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.