Da Max sagte, dass die Änderung nicht schwierig ist, schlage ich vor, dass Sie den Rest dieser Antwort nicht lesen und ein wenig mehr über das Problem nachdenken. Es gibt nur einen Teil, der geändert werden muss und der sich an die Definition erinnert, wann ein Durch die Annahme durch die Maschine können Sie dieses Problem beheben.c o N P
Ich werde die erforderliche Modifikation unten erläutern, aber lassen Sie uns zuerst einen kurzen Blick auf den Originalbeweis werfen.
In dem ursprünglichen Beweis wird in den Schritten gebaut , wo im Schritt i mit dafür sorgen , dass i - ten Maschine in P , M i , entscheidet nicht die Sprache { x | ∃ y ∈ A | x | = | y | } richtig. Beachten Sie, dass sich der Satz in N P A befindet .A = ⋃nEINnichichPMich{ x ∣ ∃ y∈ A | x | = | y | }N PEIN
Dies erreichen wir, indem wir mit dem Teil von A simulieren , den wir auf einer 0 m aufgebaut haben, wobei m groß genug ist (die Zeichenfolge ist länger als die in den vorherigen Schritten berücksichtigten Zeichenfolgen). M i akzeptiert, wir fügen nichts hinzu, wenn es ablehnt, fügen wir eine Zeichenkette der Länge m hinzu , die M i nicht in der Menge abfragt (eine solche Zeichenkette existiert, da exponentiell viele Zeichenketten mit einer LängeMichEIN0mmMichmMich aber M i kann nicht nach allen in polynomialer Zeit fragen). Wir werden diesen Teil von A in zukünftigen Schrittennicht ändern(dh Zeichenketten mit der Länge mmMichEINmoder weniger bleibt gleich). Dies stellt sicher , dass wird die Sprache nicht richtig entscheiden , und ist der Beweis.MEINich
Nehmen wir nun an, dass die Maschinen in waren c o N P anstelle von P . Wir müssen den Beweis modifizieren, um sicherzustellen, dass M A ich L nicht wiedererkenne . Wenn es akzeptiert, behalten wir A wie zuvor und alles funktioniert wie im Original-Proof. Wenn es abgelehnt wird, müssen wir dem Satz eine Zeichenfolge hinzufügen, um sicherzustellen, dass es nicht richtig antwortet. Wir können M i immer noch mit dem Teil von A simulieren , das Problem ist, dass M i möglicherweise alle Zeichenfolgen der Länge n abfragt . Hier ist der Weg a c oMichc o N PPMEINichLEINMichEINMichn Maschinenarbeit wird wichtig. Es akzeptiert genau dann, wennalleBerechnungspfade akzeptieren. Da es in diesem Fall abgelehnt wird, gibt es einen Berechnungspfad, der abgelehnt wird. Solange dieser Pfad intakt bleibt, funktioniert alles. Daher müssen die Antworten auf die Abfragen in diesem Pfad nur gleich bleiben. Die Anzahl der Abfragen in diesem Pfad ist polynomial (da die Maschine in polynomialer Zeit ausgeführt wird). Es gibt also Zeichenfolgen der Länge m , nach denen der Pfad keine Abfrage vornimmt. Fügen Sie einfach eine davon zu A hinzu, und der Rest des Beweises funktioniert wiefolgtVor.c o N PmEIN
EIND S p a c e ( nω ( 1 ))