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 .AA′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). .AA′
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−εA1−ε
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′xxxA(x)Ak=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/2256xWo 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 .)xA′A
A Θ(n)1/2nnxnA′1/2n2nnAA′A′At(n)A′Θ(n⋅t(n))EIN′ ist etwas langsamer als EINaber nicht zu viel langsamer. Dies ist der Inhalt von Adlemans Beweis, dass BPP in P / poly enthalten ist. Aus praktischen Gründen ist dies wahrscheinlich übertrieben, aber wenn Sie saubere Beweise bevorzugen, die kryptografische Annahmen vermeiden, oder wenn Sie dies aus der Sicht eines Theoretikers betrachten, wird Ihnen diese Version möglicherweise besser gefallen.
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.