Angenommen, wir betrachten 3-SAT mit Variablen und Klauseln. Ich erforsche eine Methode, die anscheinend Zeit / Raum benötigt, um ein SAT-Problem zu lösen, das dieser Beschreibung entspricht, und zwar innerhalb eines Fehlers, der auf einen beliebigen Betrag eingestellt werden kann. Es gibt jedoch einen Haken.
Dieses Verfahren erfordert einen Satz vorberechneter Werte, wonach ein beliebiges 3-SAT-Problem gelöst werden kann, das der obigen Beschreibung entspricht. Die vorberechneten Werte sind eine Menge der Größe wobei jeder Wert Platz einnimmt . Das eigentliche Problem besteht darin, dass die Berechnung jedes dieser Werte dauern kann . Es besteht die Möglichkeit, dass ich einen Weg finde, diese Berechnungen zu beschleunigen.
Ich denke, dass die Grenzen selbst die in dieser Frage dargestellten oberen Grenzen überschreiten (für kleines ). Ich frage mich also, ob es einen trivialen Weg gibt, die von mir beschriebenen Obergrenzen zu erreichen, wenn wir -Vorberechnungen zulassen.
Ich möchte diese Forschung fortsetzen und hoffentlich meine Ergebnisse veröffentlichen, wenn alles klappt, aber zuerst möchte ich wissen, ob es einen trivialen Weg gibt, dies auch oder besser zu tun.
AKTUALISIEREN
Ich habe verwandte Probleme untersucht und diesen Algorithmus untersucht. Ich habe diese Frage auf der IT-Sicherheitsseite von StackExchange in Bezug auf das Knacken von Passwörtern und SAT gestellt, wenn Sie interessiert sind. Mindestens eine der Antworten spiegelt dies wider.
quelle
Antworten:
Wenn das, was Sie studieren, klappen würde, wäre es definitiv nicht trivial.
Dies würde bedeuten, dass 3SAT (ungleichmäßige) Schaltungen der Größe . Dann hätte jede Sprache in (und der Polynomzeithierarchie) quasi-polynomielle (dh ) Schaltungen. N P n O ( log c n )nO(logn) NP nO(logcn)
Selbst wenn es Vorverarbeitungszeit dauerte , um eine Datenstruktur mit einer Größe von nur zu erzeugen, die dann beliebige 3SAT-Anfragen der Größe in randomisierte Zeit mit hoher Wahrscheinlichkeit, 3SAT hätte quasi-polynomiale Größenschaltungen, wobei die bekannte Übersetzung von randomisierten Algorithmen in Schaltungen verwendet würde. Dies würde die bekannten Algorithmus-Zeitgrenzen aufgrund der Vorverarbeitung nicht verbessern, wäre aber als ungleichmäßiges Ergebnis immer noch äußerst interessant. 2 O ( log 2 n ) n 2 O ( log 2 n )22n 2O(log2n) n 2O(log2n)
Was meinst du mit "innerhalb eines Fehlers, der auf einen beliebigen Betrag eingestellt werden kann"? Ist der Algorithmus randomisiert?
quelle
Ich weiß nicht, ob Ihr Ergebnis - falls gültig - ein nicht trivialer Fortschritt wäre, aber hier ist eine Art von Problem, an dem Sie es testen könnten:
Problem. Fixiere eine Funktion . Wenn , finde so, dass .f:{0,1}n→{0,1}n y∈{0,1}n x∈{0,1}n f(x)=y
Wenn effizient berechnet werden kann (z. B. durch eine kleine Schaltung), impliziert Ihr Ergebnis eine Lösung für dieses Problem.f
In der kryptografischen Welt führt der bekannteste Algorithmus für dieses Problem eine Vorberechnung (nur abhängig von ) durch, die Zeit und Raum erfordert und einige Ratschläge der Größe ausgibt. ;; dann, da , kann es finden in Zeit, mit der Beratung Zeichenfolge der Größe vom precomputation. Sie können den Kompromiss zwischen Raum und Zeit anpassen, um eine Hinweiszeichenfolge der Größe und die Zeit , solange2 n 2 2 n / 3 2 2 n / 3 x y 2 2 n / 3 2 2 n / 3 S T S √f 2n 22n/3 22n/3 x y 22n/3 22n/3 S T ffST−−√=2n . Soweit ich weiß, wird diese Komplexität als die bestmögliche für Algorithmen angesehen, die keine der internen Strukturen von berücksichtigen . Insbesondere ist es wahrscheinlich optimal, wenn eine kryptografisch sichere Hash-Funktion ist. (Diese Technik ist als Hellman-Zeit-Raum-Kompromiss bekannt.)f f
Wenn Ihre Technik also besser als der Hellman-Zeit-Raum-Kompromiss bei einem kryptografisch sicheren , wäre dies sicherlich eine Neuigkeit.f
quelle