P T I M E ( f ( n ) ) die Menge von Sprachen, die durch ein randomisiertes TM mit konstant begrenztem (einseitigem oder zweiseitigem) Fehler in Schritten entscheidbar sind.
Kauft uns der Zufall irgendetwas im Inneren? ?
Um es klar zu sagen, ich suche etwas, bei dem der Unterschied asymptotisch ist (vorzugsweise polynomisch, aber ich würde mich für polylogarithmisch entscheiden), nicht nur eine Konstante.
Ich suche im schlimmsten Fall asymptotisch bessere Algorithmen. Algorithmen mit besser erwarteter Komplexität sind nicht das, wonach ich suche. Ich meine randomisierte Algorithmen wie RP oder BPP, nicht ZPP.
Antworten:
Beim Testen der polynomiellen Identität wird ein randomisierter polynomieller Zeitalgorithmus zugelassen (siehe das Schwartz-Zippel-Lemma ), für den es derzeit weder einen deterministischen polynomiellen Zeit- noch einen subexponentiellen Zeitalgorithmus gibt.
Spielbaumauswertung Betrachten Sie einen vollständigen Binärbaum mit Blattknoten, die jeweils einen 0/1-Wert speichern. Die internen Knoten enthalten ODER / UND-Gatter in alternativen Ebenen. Mit dem Gegenargument kann bewiesen werden, dass jeder deterministische Algorithmusim schlimmsten Fall Ω ( n ) Blattknotenuntersuchen müsste. Es gibt jedoch einen einfachen randomisierten Algorithmus, der eine erwartete Laufzeit von O ( n 0,793 ) benötigt. Schauen Sie sich die Folien 14-27 des Vortrags an.n Ω(n) O(n0.793)
Oblivious routing on a hypercube Betrachten Sie einen Würfel in Dimensionen mit N = 2 n Eckpunkten. Jeder Vertex hat ein Datenpaket und ein Ziel, an das er das Paket schließlich übermitteln möchte. Das Ziel aller Pakete ist unterschiedlich. Auch dafür wurde bewiesen, dass jede deterministische Routing-Strategie Ω ( √n N=2n Schritte. Es gibt jedoch eine einfache randomisierte Strategie, diemit hoher WahrscheinlichkeitinerwartetenO(n)-Schrittenendet.Ω(Nn−−√) O(n)
Es ist zu beachten, dass in randomisierten Algorithmen die erwarteten Kosten mit hoher Wahrscheinlichkeit (wie zum Beispiel für P r [ F ( n ) > 10 ≤ E ( F ( n ) ) ] < 1 sindE(F(n)) ) entspricht dem schlechtesten Fall in der Praxis.Pr[F(n)>10⋅E(F(n))]<1n2
quelle
Die Untersuchung des Worst-Case ist für randomisierte Algorithmen bedeutungslos. Die Laufzeit im ungünstigsten Fall ist häufig nicht nur unendlich, sondern kann auch deterministische Algorithmen in dieser Metrik nicht übertreffen.
Betrachten Sie jeden randomisierten Algorithmus . Erhalten Sie einen deterministischen Algorithmus B, indem Sie das Zufallsband für A auf 0 ∞ festlegen . Dann ist T B ( n ) ≤ T A ( n ) für alle n .A B A 0∞ TB(n)≤TA(n) n
quelle
Es gibt viele Probleme, bei denen wir einen effizienten randomisierten Algorithmus kennen, und wir kennen keinen deterministischen Algorithmus, von dem wir nachweisen können, dass er effizient ist. Dies kann jedoch auf Mängel in unserer Fähigkeit zurückzuführen sein, eher die Komplexität als einen fundamentalen Unterschied zu beweisen.
Auf der Grundlage Ihres Kommentars möchten Sie anscheinend fragen, ob es ein Problem mit einem effizienten randomisierten Algorithmus gibt, und wir können nachweisen, dass es keinen deterministischen Algorithmus mit vergleichbarer Effizienz gibt. Ich kenne kein solches Problem.
In der Tat gibt es hinreichende Gründe für den Verdacht, dass solche Probleme unwahrscheinlich sind. Heuristisch würde das Vorhandensein eines solchen Problems wahrscheinlich bedeuten, dass eine sichere Kryptographie unmöglich ist. Das scheint ein ziemlich unplausibles Ergebnis zu sein.
Was ist die Verbindung, fragst du? Betrachten Sie einen beliebigen randomisierten Algorithmus , der ein Problem effizient löst. Es basiert auf zufälligen Münzen: zufälligen Bits, die aus einer echten Zufallsquelle stammen. Nehmen wir nun an, wir nehmen einen Pseudozufallsgenerator mit kryptografischer Qualität und ersetzen die echte Zufallsquelle durch die Ausgabe des Pseudozufallsgenerators. Rufen Sie den resultierenden Algorithmus A 'auf . Es ist zu beachten, dass A ' ein deterministischer Algorithmus ist und seine Laufzeit ungefähr gleich A ist .A A′ A′ A
Wenn das kryptografische PRNG sicher ist, sollten wir heuristisch erwarten , dass ein guter Algorithmus ist, wenn A ist:A′ A
Wenn beispielsweise ein Las Vegas-Algorithmus ist (er gibt immer die richtige Antwort aus und endet schnell mit hoher Wahrscheinlichkeit), dann ist A ' ein ziemlich guter deterministischer Algorithmus (gibt immer die richtige Antwort aus und endet schnell für die meisten Eingaben). .A A′
Wenn ein Monte-Carlo-Algorithmus ist (deterministische Laufzeit und Ausgabe der richtigen Antwort mit einer Wahrscheinlichkeit von mindestens 1 - ε ), dann ist A ein ziemlich guter deterministischer Algorithmus (deterministische Laufzeit und Ausgabe der richtigen Antwort auf einen Bruchteil 1 - ε aller Eingaben).A′ 1−ε A 1−ε
Wenn also der kryptografische PRNG sicher ist und ein effizienter randomisierter Algorithmus vorliegt, erhalten Sie einen ziemlich guten deterministischen Algorithmus. Nun gibt es viele Konstruktionen von kryptografischen PRNGs, die bei bestimmten kryptografischen Annahmen als sicher gelten. In der Praxis wird allgemein angenommen, dass diese kryptografischen Annahmen zutreffen: Zumindest für sicheren Handel und Transaktionen müssen sie zutreffen, sodass wir offenbar bereit sind, große Summen auf sichere Kryptografie zu setzen. Diese Umwandlung kann nur fehlschlagen, wenn kein kryptografisches PRNG vorhanden ist, was wiederum impliziert, dass eine sichere Kryptografie unmöglich ist. Wir haben zwar keinen Beweis dafür, dass dies nicht der Fall ist, aber es scheint ein unwahrscheinliches Ergebnis zu sein.
Konstruktionsdetails: So funktioniert . Bei Eingabe x wird ein Startwert für das kryptografische PRNG als Funktion von x abgeleitet (z. B. durch Hashing von x ) und anschließend A ( x ) unter Verwendung der Ausgabe des kryptografischen PRNG als Münzen für A simuliert . Eine spezielle Instanziierung wäre beispielsweise, k = SHA256 ( x ) zu setzen und dann k als Startwert für AES256 im Zählermodus oder ein anderes kryptografisches PRNG zu verwenden. Wir können die obigen Aussagen nach dem Zufalls-Orakel-Modell beweisen.A′ x x x A(x) A k=SHA256(x) k
Wenn Sie mit der Idee unzufrieden sind, dass bei einem kleinen Teil der Eingaben falsche Ergebnisse ausgibt, kann dies behoben werden. Wenn Sie A ' mehrmals wiederholen und eine Mehrheitsentscheidung treffen, nimmt die Fehlerwahrscheinlichkeit in der Anzahl der Iterationen exponentiell schnell ab. Also, durch eine konstante Anzahl von Malen iteriert, können Sie die Fehlerwahrscheinlichkeit erhalten ε unten zu 1 / 2 256 , was die Chancen bedeutet , dass Sie über einen Eingang laufen xA′ A′ ε 1/2256 x Wo der Algorithmus die falsche Antwort ausgibt, sind sie verschwindend klein (weniger als die Wahrscheinlichkeit, mehrmals hintereinander vom Blitz getroffen zu werden). Darüber hinaus mit dem Bau habe ich oben, um die Chancen , dass ein Gegner kann selbst findet einen Eingang , wo A ' kann die falsche Antwort gibt sehr klein gemacht werden, so dass erfordern würde die Sicherheit des SHA256 Hash zu brechen. (Aus technischer Sicht muss das Zufalls-Orakel-Modell dies rechtfertigen. Dies bedeutet, dass A so gewählt werden muss , dass es von SHA256 "unabhängig" ist und keine mit SHA256 verwandten Hardcode-Berechnungen enthält, aber fast alle realen Algorithmen erfüllen diese Anforderung .)x A′ A
For more details on the latter theoretical considerations and additional problems where we know of an efficient randomized algorithm but we don't know of any deterministic algorithm that we can prove is efficient, see /cstheory//q/31195/5038
In summary: For any problem where we know an efficient randomized algorithm, we also know of a deterministic algorithm that seems likely to be efficient in practice -- but at present we don't know how to prove that it is efficient. One possible interpretation is that we're just not very good at proving stuff about algorithms.
quelle