Fehler in meinem NP = CoNP Proof?


12

Ich habe diesen sehr einfachen "Beweis" für NP = CoNP und ich glaube, ich habe irgendwo etwas falsch gemacht, aber ich kann nicht finden, was falsch ist. Kann mir jemand weiterhelfen?

Sei A ein Problem in NP und sei M der Entscheider für A. Sei B das Komplement, dh B ist in CoNP. Da M ein Entscheider ist, können Sie damit auch B entscheiden (nur die Antwort umdrehen). Bedeutet das nicht, dass wir sowohl NP- als auch CoNP-Probleme mit demselben M lösen?

Genauer gesagt.

Sei A ein NP-vollständiges Problem, und sei M der Entscheider für A. Betrachte jedes Problem B in CoNP. Wir betrachten sein Komplement nicht-B, das in NP ist, und erhalten dann eine Polynomreduktion auf A. Dann führen wir unseren Entscheider M aus und drehen unsere Antwort um. Wir erhalten also einen Entscheider für B. Dies impliziert, dass B auch in NP ist.

Darf ich wissen, was an meiner Argumentation falsch ist?


2
Wie die folgenden Antworten ausführlich erklären, verwenden Sie den Begriff "Entscheider" nicht richtig. Probleme in coNP sind nicht die mit einem "umgedrehten NP-Entscheider". Bei NP-Problemen besteht eine wichtige Asymmetrie zwischen der Annahme einer Eingabe ("Es gibt nicht deterministische Entscheidungen, die zur Annahme führen") und der Zurückweisung ("Alle nicht deterministischen Entscheidungen führen zur Zurückweisung"). Ihr Argument setzt voraus, dass für NP die Zurückweisung eines Strings bedeutet ("es gibt nicht deterministische Entscheidungen, die zur Zurückweisung führen"), und das ist der Fehler. Mit anderen Worten, Sie haben Ihre Quantifizierer durcheinander gebracht.
Andrej Bauer

1
Vielleicht finden Sie die Antworten auf diese Frage aufschlussreich.
Raphael

@Raphael Überraschenderweise wird Co-NP in dieser Frage überhaupt nicht erwähnt! (Obwohl ich zustimme, dass es eine nützliche Lektüre für jemanden ist, der sich über
solche

@DavidRicherby Da die Antwort im Grunde "verwende die Definition von NP anstelle von fehlerhafter Intuition" ist, würde ich das hoffen!
Raphael

1
Faustregel: Die "Flip Final States" -Konstruktion funktioniert nur für deterministische Modelle. Studieren Sie, wie es NFA nicht gelingt, zu verstehen, warum. Siehe auch hier und hier .
Raphael

Antworten:


16

Es gibt zwei mögliche Fehler in diesem Beweis:

  1. Wenn Sie "Entscheider" sagen, meinen Sie ein deterministisches TM. In diesem Fall kann die beste Übersetzung (nach unserem Wissen) von einer NP-Maschine zu einer deterministischen Maschine eine Maschine ergeben, die in exponentieller Zeit läuft. Nach der Ergänzung haben Sie also einen Entscheider für die Ergänzung in exponentieller Zeit, der beweist, dass coNPEXP (oder nach einer gewissen Optimierung ).coNPPSPACE

  2. Wenn Sie "Entscheider" sagen, meinen Sie ein nicht deterministisches TM. In diesem Fall wird das Umdrehen der Antwort die Sprache nicht unbedingt ergänzen. In der Tat ist die Sprache der umgedrehten Maschine alle Wörter, für die es einen Ablehnungslauf von auf w gibtMw


Ich bin mir nicht sicher, warum das wichtig ist. Meine Definition für einen Entscheider ist, dass ich akzeptiere, wenn die Eingabe in L ist, und ablehne, wenn die Eingabe nicht in L ist. Dieser Entscheider kann deterministisch oder nicht deterministisch sein. Ich sage jedoch, dass L in NP ist, und wenn ich daher ein nicht deterministisches TM verwende, nehme ich Polynomzeit. Darf ich auch wissen, warum das Spiegeln des Bits nicht unbedingt die Sprache ergänzt. Meines Wissens ist CoNP = {L | nicht L \ in NP}. Wenn ich also das Bit drehe, sollte ich die Antwort erhalten?

Lassen . Stellen Sie sich ein nicht deterministisches TM vor, das wie folgt funktioniert: In einem Durchgang wird immer "reject" ausgegeben. In anderen läuft, erkennt es L in Polynomzeit (möglich , da L N P ). Überlegen Sie, was passiert , wenn die Bit - Flip - die Ablehnung Lauf wird für jede Eingabe zu akzeptieren, so dass die komplementierten Maschine erkennt Σ * - das ist nicht das Komplement es sei denn , ist L = . Ich schlage vor, dass Sie die Definitionen des Nichtdeterminismus sorgfältig prüfen, um dies vollständig zu verstehen. LNPLLNPΣL=
Shaull

Ich meine nicht, dass ich den Teil jedes einzelnen Berechnungspfads umkehre. Was ich meine ist, dass, wenn mein TM akzeptiert, dies bedeutet, dass ein Berechnungspfad existiert, der einen Akzeptanzzustand erreicht. Dies bedeutet, dass L in NP ist, was bedeutet, dass das Komplement in coNP ist. Wenn mein TM ablehnt, bedeutet dies, dass jeder Berechnungspfad abgelehnt wird. Dies bedeutet, dass das Komplement in NP vorliegt, was bedeutet, dass L in CoNP vorliegt.

4
@simpleton: Weißt du, dass ein NTM nicht auf alle Pfade gleichzeitig zugreifen kann, nur auf einen Pfad? Sie denken als jemand, der das Verhalten des NTM von außen deterministisch analysiert.
Freitag,

7
Ich denke, das OP könnte davon profitieren, die Definition von NP genauer nachzuschlagen.
MCH

15

Hier ist eine andere Sichtweise auf den Punkt, den Shaull in Bezug auf "Entscheider" macht.

Ein Problem ist in NP , wenn und nur wenn es einen Algorithmus , so dassV:{0,1}n×{0,1}poly(n){0,1}

  • für jede Instanz YES , gibt es ein Zertifikat , p { 0 , 1 } p o l y ( n ) , so daß V ( xx{0,1}np{0,1}poly(n) ; undV(x,p)=1

  • für jede NO-Instanz gilt V ( x , p ) = 0 für alle p { 0 , 1 } p o l yx{0,1}nV(x,p)=0 .p{0,1}poly(n)

Diese werden üblicherweise als die bezeichnet Vollständigkeits- und Zuverlässigkeitsbedingungen für den NP- Überprüfungsalgorithmus beschrieben: Die Bedingung "Vollständigkeit" besagt, dass jede JA-Instanz ein Zertifikat besitzt, und die Bedingung "Zuverlässigkeit" besagt, dass der Algorithmus niemals von einer NEIN-Instanz getäuscht wird. Bei coNP ist es umgekehrt: Es gibt einen Überprüfungsalgorithmus , der mindestens ein Zertifikat für jede NO-Instanz akzeptiert, aber niemals von einer YES-Instanz getäuscht werden kann.

Wenn Sie diesen NP zeigen wollencoNP ist , müssen Sie zeigen, dass jedes NP- Problem einen CoNP- Verifizierer hat, der NO-Instanzen anstelle von YES-Instanzen zertifizieren kann. Mit einer nicht deterministischen Turing-Maschine ist dies nicht möglich: Es gibt keine Möglichkeit, beispielsweise SAT-Instanzen so effizient aufeinander abzubilden, dass alle nicht erfüllbaren Formeln auf erfüllbare Formeln abgebildet werden, und umgekehrt. (Das Negieren der Ausgabe der Formel reicht beispielsweise nicht aus: Eine Formel, die befriedigend ist, aber keine Tautologie, würde nur einer anderen Formel zugeordnet, die befriedigend ist, aber keine Tautologie, wenn wir stattdessen eine unbefriedigende Formel benötigen würden.) Wir wissen einfach nicht, wie wir eine nicht deterministische Maschine zum Narren halten können, wenn sie erkennt, dass alle ihre Pfade Pfade ablehnen.

Sie könnten fragen: "Weiß die nichtdeterministische Turing-Maschine nicht , welches Ergebnis sie erzielt?" Die Antwort wäre nein , tut es nicht. Die Arbeitsweise der nicht deterministischen Maschine gibt ihr keinen Zugriff auf Informationen zu mehr als einem Computerpfad gleichzeitig: Sie können sich vorstellen, dass sie auf vielen Pfaden gleichzeitig funktioniert, aber innerhalb jedes Pfades kennt sie nur diesen einen Pfad. Wenn Sie versuchen, es mit der Fähigkeit auszustatten, zu "erkennen", ob es irgendwann Lösungen gibt oder nicht, beschreiben Sie stattdessen eine Maschine mit einem NP- Orakel , das (potenziell!) Leistungsfähiger ist als eine einfache nicht deterministische Turing-Maschine.

  • Wenn Sie beispielsweise eine (deterministische) Turing-Maschine mit einem NP- Orakel ausstatten , werden die Probleme, die in Polynomzeit auf dieser Maschine gelöst werden können, als , was häufig als P N P bezeichnet wird . Das "Orakel" ermöglicht es der Maschine, einfach in einem Schritt Antworten auf NP- vollständige Probleme zu erhalten, und so enthält P N P offensichtlich P ; und weil man antworten negieren kann, enthält es natürlich auch coNP . Wir wissen jedoch nicht, ob die umgekehrten Einschlüsse zutreffen, gerade weil wir nicht wissen, wie wir nicht deterministische Turing-Maschinen dazu bringen sollen, NEIN-Antworten zu erkennen.Δ2PPNPPNP

  • Was mehr ist , wenn Sie geben einen nichtdeterministischen Turing - Maschine die Fähigkeit zur Erkenntnis über das Ergebnis eines Problems zu kommen NP , die Probleme , die die Maschine in Polynomzeit heißt lösen kann oder N P N P , und diese wird allgemein angenommen, dass sie streng größer als die Klasse P N P ist . Dies enthält auch NP und coNP - aber wie NP ist es nicht bekannt, dass es unter Komplementen geschlossen ist: Die nicht deterministische Orakelmaschine kann möglicherweise wissen, wann ein Problem in NP vorliegtΣ2PNPNPPNPhat eine NEIN-Antwort wegen des Orakels, aber es würde immer noch in einem seiner eigenen (ziemlich mächtigen) Rechenzweige arbeiten, so dass es nicht in der Lage wäre zu sagen, ob alle seine eigenen Rechenzweige ablehnen.

Wenn Sie die Maschine weiterhin mit leistungsstärkeren Orakeln zur Lösung von Problemen in , N P, N P usw. versorgen , definieren Sie schließlich die Klassen der Polynomhierarchie , von denen angenommen wird, dass sie sich alle von der unterscheiden erste Stufe ab.NPNPNP

Also, nein, es gibt keine Maschine (deterministisch oder anderweitig), die einfach "entscheiden" kann, dass ein Problem eine JA- oder NEIN-Instanz ist, es sei denn, wir verwenden Orakel; aber selbst mit einer solchen Orakel, beenden wir mit einer Maschine , die (wahrscheinlich) ist mehr mächtiger als entweder NP oder coNP , nicht eine , die zeigt , dass sie gleich sind .


Hallo, danke dir und Shauli für die Kommentare. Wollen Sie damit sagen, dass ein NTM in polytime eine NP-Sprache erkennen kann, in polytime jedoch keine NP-Sprache entscheiden kann? Ich denke, das ist, was ich annehme, wenn ich sage, dass ich einen Entscheider für NP-Probleme habe.
Simpleton

2
Oh, ich glaube, ich verstehe irgendwie, was du meinst. Wollen Sie damit sagen, dass ich Orakelreduktion verwende, und das zeigt tatsächlich, dass das Problem in (was wahr ist, weil N PPNP und C o N P P N P )? Die Orakelreduktion zeigt, dass UNSAT NP-hart ist, aber ich muss immer noch zeigen, dass U N S A T N P , und ich kann das nicht zeigen? NPPNPCoNPPNPUNSATNP
Simpleton

5
Die NP-Härte wird mit einer Reduzierung um ein Vielfaches definiert, nicht mit einer Reduzierung des Orakels.
Yuval Filmus

6

Ihre Argumentation impliziert, dass RE = coRE, aber dies ist nachweislich falsch. Sie könnten versuchen, einen Beweis dafür zu finden und dann herauszufinden, wo Ihre Reduktion fehlschlägt.

Erinnern Sie sich, dass RE die Komplexitätsklasse von rekursiv aufzählbaren Sprachen ist, die Sprachen der Form . Man kann sich das auch nicht deterministisch vorstellen: RE ist die Klasse der Sprachen der Form { x : ( x , w ) L  für einige  w } , wobei L {x:P halts on input x}{x:(x,w)L for some w}L rekursiv (berechenbar) ist.

Hier ist ein Beweis, dass beide Definitionen übereinstimmen. Nehmen wir an, dass zuerst anhält  . Sei L ' = { ( x , w )L={x:p halts on input x} . Die Sprache L ' ist rekursiv und L = { x : ( x , w ) L '  für einige  w } .L={(x,w):p halts on input x in w steps}LL={x:(x,w)L for some w}

Für die andere Richtung sei , wobei L ' rekursiv ist, beispielsweise berechnet durch das Programm PL={x:(x,w)L for some w}L . Wir konstruieren ein neues Programm Q ( x ), das alle möglichen w auflistet und P ( x , w ) nacheinander auf allen w ausführt. Wenn P ( x , wP(x,w)Q(x)wP(x,w)w akzeptiert jemals für einige w , dannhält Q an. Es ist nicht schwer zu überprüfen, ob L = { x : Q  bei Eingabe x } anhält  .P(x,w)wQL={x:Q halts on input x}

Der Einfachheit halber finden Sie hier die Umrisse für den Beweis, dass sich RE von coRE unterscheidet. Die Sprache ist eindeutig rekursiv aufzählbar: Ein Programm dafür führt einfach P auf x aus . Angenommen, es gibt ein Programm H , bei dem H ( P , x ) genau dann anhält, wenn ( P , x ) x L ist . Wir definieren ein neues Programm G durch G ( x ) =L={(P,x):P halts on input x}PxHH(P,x)(P,x)LG . Ist ( G , G ) L ? Wenn ja, dann G stoppt auf G , so H stoppt auf ( G , G ) , so ( G , G ) L . Wenn ( G , G ) L , dannhört G nicht bei G auf , alsohört H nicht bei ( G , G ) aufG(x)=H(x,x)(G,G)LGGH(G,G)(G,G)L(G,G)LGGH(G,G), So . Dieser Widerspruch zeigt, dass H nicht existieren kann.(G,G)LH

Versuchen Sie nun, Ihren Beweis in diesem Fall zu führen und festzustellen, was schief geht. Versuchen Sie genauer, das Programm anhand Ihres Rezepts zu konstruieren und befolgen Sie den Beweis - irgendwann stimmt etwas nicht mehr.H


2

Hier ist eine TL; DR-Version; Ich habe auch eine längere Antwort auf eine ähnliche Frage gepostet .

Angenommen, wir haben eine Sprache , die in der Polynomzeit von der nichtdeterministischen Turing-Maschine  M bestimmt wird . Der Punkt ist , dass x A iff dort M  hat eine Annahme Pfad auf Eingang  x . Da M  jedoch nicht deterministisch ist, können auch Pfade zurückgewiesen werden, wenn es auf  x ausgeführt wirdAMxAMxMx. Wenn Sie nur den Akzeptanz- und den Ablehnungsstatus umkehren, wechseln Sie von einem Computer mit einigen Akzeptanzpfaden und einigen Ablehnungspfaden zu einem Computer mit einigen Ablehnungspfaden und einigen Akzeptanzpfaden. Mit anderen Worten, es hat immer noch akzeptierende Pfade, also akzeptiert es immer noch. Das Umkehren der Zustände "Annehmen" und "Ablehnen" einer nicht deterministischen Maschine bewirkt im Allgemeinen nicht, dass Sie die Komplementsprache akzeptieren.

Es ist diese Asymmetrie der Definition (Akzeptieren, wenn ein Pfad akzeptiert wird; Zurückweisen, wenn alle Pfade zurückgewiesen werden), die das NP- gegen- Co-NP- Problem schwierig macht.


-2

Tatsächlich stimme ich zu, dass Ihre nicht deterministische Maschine M entscheiden kann, ob eine bestimmte Eingabezeichenfolge in B enthalten ist. Sie "entscheidet" jedoch geringfügig anders als die Art und Weise, wie sie entscheidet, ob eine bestimmte Eingabe in A enthalten ist. Im letzteren Fall erfolgt dies durch ( nicht deterministisch) einen akzeptierenden Zustand finden. Im ersteren Fall werden keine akzeptierenden Zustände gefunden. Warum ist dieser Unterschied wichtig? Mal sehen:

Bei der Frage M "Ist die Zeichenfolge in der Sprache A?"

M erreicht einen Akzeptanzzustand. Dies können Sie beweisen (siehe zum Beispiel das Sipser-Buch Theorem 7.20), dass es eine deterministische Maschine gibt, die sicherstellt, dass die Zeichenfolge in der Polynomzeit in A ist

Bei der Frage M "Ist die Zeichenfolge in der Sprache B?"

M erreicht Rückweisungszustände in allen Zweigen seiner nichtdeterministischen Berechnung. Wenn Sie sich überlegen, wie der obige Überprüfungsnachweis funktioniert, werden Sie feststellen, dass dies in dieser Situation nicht möglich ist. Dies liegt grob daran, dass der Prüfer den Pfad, den M durch seinen Zustandsraum nimmt, als "Beweis" verwendet. In diesem Fall gibt es keinen solchen Pfad.

Fazit:

Wenn Sie die Existenz eines polynomiellen zeitdeterministischen Verifikators für eine Sprache als Definition einer NP-Sprache betrachten (was Sie sollten), beweist die Existenz von M nicht, dass B in NP ist.


1
Die Existenz von M beweist das nicht B is in NP precisely because you have to use this "weird" acceptance criterion to make it "accept" B. NP is defined via the conventional nondeterministic acceptance criterion. (The acceptance criterion is slightly weird partly because the question talks about flipping accepting and rejecting states in M but you don't seem to have done that.)
David Richerby
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.