Für ( Suchversionen ) von NP- vollständigen Problemen ist die Überprüfung einer Lösung eindeutig einfacher als das Auffinden, da die Überprüfung in Polynomzeit erfolgen kann, während das Auffinden eines Zeugen (wahrscheinlich) exponentielle Zeit in Anspruch nimmt.
In P kann die Lösung jedoch auch in Polynomzeit gefunden werden, so dass es nicht offensichtlich erscheint, wann die Verifikation schneller ist als das Finden der Lösung. Tatsächlich scheinen sich verschiedene Probleme aus dieser Sicht unterschiedlich zu verhalten. Einige Beispiele:
3SUM: Bei Eingangszahlen finden Sie 3 davon, die sich zu 0 summieren. Soweit ich weiß, läuft der schnellste bekannte Algorithmus in der Zeit , und diese Reihenfolge wird als optimal angenommen. Andererseits ist die Überprüfung einer Lösung viel schneller, da wir nur überprüfen müssen, ob die 3 gefundenen Zahlen tatsächlich 0 ergeben.O ( n 2 - o ( 1 ) )
All-Pairs Shortest Paths: Berechnen Sie bei einem Diagramm mit Kantengewichten die Matrix für den kürzesten Pfadabstand. Kann nach der Angabe einer solchen Matrix schneller überprüft werden, ob es sich tatsächlich um die richtige Distanzmatrix handelt, als sie neu zu berechnen? Meine Vermutung ist, dass die Antwort vielleicht ja ist, aber es ist sicherlich weniger offensichtlich als für 3SUM.
Lineares Programmieren. Wenn eine behauptete optimale Lösung angegeben wird, ist die Überprüfung einfacher als die erneute Berechnung, wenn auch zusätzliche Informationen angegeben werden (eine optimale duale Lösung). Wenn andererseits nur die ursprüngliche Lösung verfügbar ist, ist nicht klar, ob man sie schneller überprüfen kann, als die LP tatsächlich zu lösen.
Frage: Was ist zu diesem Thema bekannt? Das heißt, wann ist es einfacher, eine Lösung für ein Problem in P zu überprüfen , als die Lösung zu finden?