Vorausgesetzt, P NP, NP-vollständige Probleme sind "schwer zu lösen, haben aber leicht zu überprüfende Antworten." Ist es sinnvoll, das Gegenteil in Betracht zu ziehen, dh Probleme, für die es einfach ist, eine korrekte Antwort zu berechnen, aber eine willkürlich behauptete Lösung nur schwer zu überprüfen?
Ich denke, ein solches Problem würde entweder bedeuten:
Exponentiell viele "richtige" Antworten für eine bestimmte Eingabe, da ansonsten die Überprüfung durch einfaches Berechnen aller richtigen Antworten durchgeführt werden könnte.
Einige "richtige" Antworten sind einfach zu berechnen, andere jedoch schwer zu finden.
complexity-theory
rphv
quelle
quelle
Antworten:
Wenn Sie mit künstlichen Problemen zurechtkommen, können Sie eine Menge davon machen. Hier sind ein paar:
Es ist einfach, eine befriedigende 3CNF-Formel zu erhalten, aber zu entscheiden, ob eine bestimmte 3CNF-Formel befriedigend ist oder nicht, ist 3SAT, ein bekanntes NP-vollständiges Problem.
Es ist einfach, eine solche Turingmaschine zu geben, aber ob eine gegebene Turingmaschine anhält oder nicht, ist nicht zu entscheiden.
Hinzugefügt : Ich glaube übrigens nicht, dass das, was Sie im letzten Absatz geschrieben haben, gilt:
Wenn das Problem eine Lösung hat, ist es nicht schwieriger, eine Antwort zu überprüfen, als die richtige Lösung zu berechnen. Wenn das Problem jedoch eine einfache und eine schwierige Lösung hat, können Sie nicht alle Lösungen effizient berechnen. Hier ist ein solches Problem (das sehr künstlich ist):
Eine Lösung anzugeben ist einfach : Sie können immer " M ist eine Turing-Maschine" wählen . Ob eine gegebene Antwort jedoch richtig ist oder nicht, ist nicht zu entscheiden. Beachten Sie, dass es in diesem Problem nur zwei Lösungen für jede Instanz gibt.
quelle
Obwohl Tsuyoshi Itos Antwort die "Haupt" -Antwort abdeckt, gab es zwei subtilere Anmerkungen, die ich hinzufügen wollte.
Selbst wenn die Lösung schwer zu überprüfen ist, ist die Überprüfung der Lösung mit einer kurzen Prüfzeichenfolge problemlos möglich. Das heißt, indem die Lösung ein wenig mit zusätzlichen Informationen erweitert wird, kann sie leicht überprüft werden. Die Überprüfung erfolgt immer in NP. Eine Möglichkeit, dies zu erkennen, besteht darin, dass der Agent, der eine Lösung berechnet, alle von ihm verwendeten Zufallsbits aufzeichnen kann. Anschließend kann der Prüfer dieselbe Zufallszeichenfolge verwenden, um dieselbe Berechnung auszuführen. (Der Prüfer muss Zufallsbits verwenden, andernfalls geben sie immer die gleiche Antwort aus, und der Prüfer kann dies jederzeit leicht überprüfen, indem er eine Antwort nach der gleichen Methode berechnet.)
Für Quantencomputer ist dies eine sehr offene Frage. Bei klassischen Computern kann der Prüfer immer so etwas wie den Prüfer simulieren und prüfen, ob er die gleiche Antwort erhält. Es ist durchaus möglich, dass es für ein heikles Problem einen Quantenalgorithmus gibt, der eine gleichmäßige Verteilung über alle (exponentiell vielen) Lösungen erzeugt, die schwer zu überprüfen sind. Sie können den Prüfer nicht erneut ausführen, da Sie höchstwahrscheinlich jedes Mal eine andere Antwort erhalten.
Ein Beispiel für ein ähnliches Problem ist das Deutsch-Jozsa-Problem. Wenn ein Orakel keine ausgewogene Funktion ist, kann ein Quantencomputer schnell feststellen, ob dies der Fall ist, aber es gibt keinen kurzen Beweis, der es einem klassischen Computer ermöglichen würde, dies zu überprüfen. (Dies ist nur ein "ähnliches" Problem, da es immer noch von einem anderen Quantencomputer überprüft werden kann und die Überprüfung auch in klassischem BPP erfolgt, selbst wenn es nicht in P. ist.)
quelle