Wie schwierig ist die exakte Simulation von Algorithmen und eine damit verbundene Operation für Komplexitätsklassen?


17

Teaser

Da das Problem hier länger ist, handelt es sich um einen Sonderfall, der seine Essenz erfasst.

Problem: Sei A ein detrministischer Algorithmus für 3-SAT. Ist das Problem der vollständigen Simulation des Algorithmus A (bei jedem Auftreten des Problems). P-Space schwer?

(Genauer gesagt, gibt es Gründe zu der Annahme, dass diese Aufgabe P-Space-schwer ist, folgt etwas in dieser Richtung aus Standard-CC-Vermutungen, und es besteht die Hoffnung, zu beweisen, dass diese Aufgabe für eine Komplexitätsklasse X, für die angenommen wird, X-schwer ist streng über NP sein.)

Verwandte Fragen : sind-Pspace-vollständige-Probleme-von Natur aus-weniger-erfassbar-als-NP-vollständige-Probleme ;

EDITED UPDATE : Es gibt verschiedene Interpretationen für "A vollständig simulieren". Und je nach Interpretation kann es unterschiedliche interessante Antworten geben. (Auch Ryan Williams schlug eine Interpretation zur Simulation eines nicht deterministischen Algorithmus vor.) Um ein Entscheidungsproblem auf eine bestimmte Weise mit der Rechenaufgabe "A vollständig simulieren" zu verknüpfen, fand Joe Fitzsimons einen Algorithmus A, für den sich dieses zugehörige Entscheidungsproblem noch in NP befindet . Wenn sich "vollständig simulieren" darauf bezieht, das gesamte Register des Computers in einem gegebenen Schritt ausgeben zu können, idann scheint es für Joes Algorithmus, dass PNP ist, was benötigt wird. Für diese Version (glaube ich, bin mir aber nicht sicher) skizziert Ryans Antwort ein PNP-Härte Argument. Joe bemerkte, dass, wenn von Ihnen verlangt wird, die gesamten Register zu liefern (was kein Entscheidungsproblem mehr ist), es nicht verwunderlich ist, dass Sie aufsteigen müssen und die Komplexitätsklassen nicht gleich sind.

Wie auch immer, wenn wir den Zustand der Register in einem vorgeschriebenen Schritt ausgeben müssen, idann legen die Antworten von Ruan und Joe nahe (aber ich bin mir auch nicht sicher), dass NP+ im Wesentlichen PNP . Wir können die durch diese Interpretation spaculate die Operation eine Stufe höher in dem Polynom hiearachy nach oben drückt, und die PH+=PH .

In jedem Fall lautet die Antwort auf meine Teaser-Frage nach diesen Interpretationen NEIN .

Ich hatte eine drastischere Interpretation für das "vollständige Simulieren eines Algorithmus A" im Sinn. (Aber vielleicht ist Joes und Ryans Interpretation interessanter.) Meine Interpretation durch "vollständig simulieren von Algorithmus A" ist, dass Sie bei jedem Schritt den Zustand der Register herausfinden . Insbesondere wenn der Algorithmus nicht polynomisch ist, ist Ihre Ausgabe auch nicht polynomisch. Unter dieser drastischen Interpretation fragte ich mich , ob wir , dass für jeden Algorithmus A glauben sollten, C A P-SPACE hart, und was können wir beweisen.iCA

Motivation:

Diese Frage wurde durch einen Vortrag von Paul Goldberg ( Folien , Video , Papier ) motiviert , in dem ein Papier mit Papadimitriou und Savani beschrieben wurde. Sie zeigten, dass der P-Raum vollständig ist, um alle Gleichgewichte zu finden, die vom Lemke-Howson-Algorithmus berechnet werden. Das Problem, einen Gleichgewichtspunkt zu finden, ist nur PPAD-vollständig. Diese Lücke ist erstaunlich und ähnliche Ergebnisse werden bereits in Papadimitrius bekanntem Aufsatz beschrieben: Die Komplexität des Paritätsarguments und andere ineffiziente Existenznachweise (1991) . (Es ist bekannt, dass PPAD-vollständige Probleme nicht einmal NP-schwer sein können (es sei denn, schreckliche Dinge passieren, so dass dies in der Komplexitätswelt weit unten im Vergleich zum P-Raum liegt).

Worum geht es in der Frage?

Meine Frage bezieht sich auf ähnliche Lücken für noch ältere und klassischere Probleme mit der Komplexität von Berechnungen. (Vielleicht ist das schon bekannt.)

Bei einem Rechenproblem können wir drei Probleme unterscheiden

a) Lösen Sie das Problem algorithmisch

b) Erreichen Sie die gleiche Lösung wie für einen bestimmten Algorithmus A

c) Simulieren Sie den gesamten Algorithmus A

Natürlich ist c) mindestens so hart wie b), was mindestens so hart wie a) ist. Die oben genannten Ergebnisse zeigen eine Lücke zwischen den Rechenschwierigkeiten der Aufgaben a) und b) für das Problem der Gleichgewichtsberechnung. Wir möchten die Situation (und hauptsächlich die Lücke zwischen a) und c)) für andere Rechenprobleme verstehen.

Die Frage:

Die Grundform der Frage mit einem Beispiel

Wir beginnen mit einem Rechenproblem, Problem X

Ein Beispiel kann sein

Problem X: Lösen Sie eine Instanz von SAT mit n Variablen

wir spezifizieren auch

A: Ein Algorithmus, der Problem X ausführt

und wir werfen ein neues Problem auf

Aufgabe Y: Simulieren Sie genau den Algorithmus A

und wir sind an der Rechenschwierigkeit von Problem Y interessiert. Wir möchten die Klasse solcher Probleme Y für alle Algorithmen A verstehen, die das ursprüngliche Problem X lösen. Insbesondere möchten wir wissen, wie einfach Problem Y sein kann (oder wie schwer es sein muss) be) wenn wir den Algorithmus A frei wählen dürfen.

Die vorgeschlagene Operation für Komplexitätsklassen

Beginnen Sie mit einer Komplexitätsklasse die durch eine Rechenaufgabe beschrieben wird. Wenn ein Algorithmus A gegeben ist, um jede Instanz dieser Rechenaufgabe auszuführen, betrachte man eine neue Komplexitätsklasse C A, die durch die Rechenaufgabe des vollständigen Simulierens von A beschrieben wird . Dann können wir (hoffentlich) ein "Ideal" von Komplexitätsklassen definierenCCAA

für alle Algorithmen A}.C+={CA:

Wenn wir beschreiben lassen, was ein digitaler Computer in der Polynomzeit kann (damit ich die Aufmerksamkeit nicht auf Entscheidungsprobleme beschränken möchte), dann ist P + das Ideal, das von P selbst aufgespannt wird .PP+P

Schließlich meine Fragen

Meine Fragen sind:

1) Ist die Definition sinnvoll (im weitesten Sinne des Wortes Sinn)? Ist es bekannt oder dasselbe wie (oder ähnlich wie) etwas Bekanntes? (Meine Formulierung war informell und insbesondere, wenn wir von spezifischen Problemen wie SAT zu einer Komplexitätsklasse wie NP übergehen, müssen wir uns über verschiedene Dinge Gedanken machen, die ich vernachlässigt habe.)

Bei den nächsten beiden Fragen wird davon ausgegangen, dass die Definition sinnvoll sein kann oder dass sie sinnvoll sein kann.

2) Nehmen wir an, wir rüsten uns mit allen gängigen Vermutungen zur rechnerischen Vollständigkeit aus. Können wir sagen, was für einige bekannte Komplexitätsklassen sein soll? (ZB C = N P , C = P-Raum, ..)? EDIT: Einige Leute darauf hingewiesen , dass P S P A C E + = P S P A C E . Wir können also stattdessen fragen, was ( P N P ) + ist . ist P H + = P H ?C+C=NPCPSPACE+=PSPACE(PNP)+PH+=PH

Können wir raten, was die Kompexitätsklassen so dass C + das Ideal ist, das von C aufgespannt wird ?CC+C

Die Frage, wie einfach die Rechenaufgabe der Simulation eines Algorithmus A für 3-SAT sein kann (wenn wir den Algorithmus so einfach wie möglich wählen können), ist daher ein interessanter Spezialfall.

3) Gibt es Hoffnung, tatsächlich etwas über diese Operation zu beweisen?

Wenn Sie beweisen, dass alle Komplexitätsklassen in P-Raum-schwer sind, wird dies natürlich zeigen, dass P = N P P = P S P A C E impliziert , was (ich denke) ein riesiges und höchst unerwartetes Ergebnis wäre . Wenn Sie jedoch zeigen, dass alle Komplexitätsklassen in N P + auf der dritten Ebene der Polynom-Hi-Hierarchie schwer zu sagen sind (z. B. Δ P 3 ), würde dies nur Dinge implizieren, die wir bereits kennen, Dinge, die sich aus der Tatsache ergeben, dass P = N P bewirkt, dass PH zusammenbricht.NP+P=NPP=PSPACENP+Δ3PP=NP


3
Interessante Frage! Aber: "Natürlich ist a) mindestens so hart wie b), was mindestens so hart ist wie c)." Sollte die Reihenfolge nicht umgekehrt sein?
Bart Jansen

2
Ist es möglich, einen Link oder eine kurze Beschreibung dessen, was es bedeutet, "den gesamten Algorithmus A zu simulieren", einzufügen? Was ist in diesem Fall der Unterschied zwischen "simulieren" und "laufen"? Ist es möglich, einen Algorithmus schneller als zur Laufzeit zu simulieren?
Artem Kaznatcheev

1
Lieber Artem, mit der Simulation eines Algorithmus auf einer bestimmten Instanz meine ich die gesamte Entwicklung des Algorithmus zu beschreiben. (Vielleicht ist es also so, als würde man den Algorithmus "ausführen".) Sie können den Algorithmus nicht schneller als zur Laufzeit simulieren. Es ist kein Standardbegriff (meines Wissens), daher kann ich keine Links oder Verweise angeben (hoffe aber auf Links und Verweise). Die Simulation des Algorithmus unterscheidet sich von der Rechenaufgabe "Geben Sie die gleiche Ausgabe wie Algorithmus A", die sich auf die in der Frage beschriebene Motivation und Aufgabe b) bezieht.
Gil Kalai

2
Lieber Gil, ich verstehe nicht, warum wir einen Algorithmus mit Ressourcen der gleichen Reihenfolge wie A simulieren können . Sofern einige Ressourcen nicht eingeschränkter sind, können wir nur simulieren, was auch immer A tut. Lassen Sie mich sehen , ob ich richtig die Motivation Teil verstehen: wir haben ein Problem Q in der Klasse C . A ist ein Algorithmus, der möglicherweise außerhalb von C liegt und Q löst . Obwohl das Finden einer Lösung für Q in C durchgeführt werden kann , kann das Finden einer der Lösungen, die A findet, eine Komplexität außerhalb von C habenAAAQCACQQCAC. Verstehe ich den Motivationsteil des Beitrags richtig?
Kaveh

2
Ja ja, wir gehen davon aus, dass der Algorithmus A deterministisch ist! Ich habe keine klare Vorstellung, warum wir erwarten sollten, dass die Simulation jedes deterministischen Algorithmus für 3-SAT P-Raum-schwierig ist. Das ist die Frage! Ich wollte sehen, was Experten denken.
Gil Kalai

Antworten:


12

Problem: Sei A ein deterministischer Algorithmus für 3-SAT. Ist das Problem, den Algorithmus A (bei jedem Auftreten des Problems) P-Space vollständig zu simulieren, schwierig?

Ich verstehe die Aussage zu diesem Problem nicht. Aber ich denke, es gibt einen natürlichen Weg, Ihre allgemeinere Frage zu formalisieren, der ein wenig Licht ins Dunkel bringen könnte. Vielleicht verpasse ich Ihren Standpunkt völlig, aber hoffentlich finden Sie hier noch etwas Interessantes zu lesen.

1) Ist die Definition sinnvoll (im weitesten Sinne des Wortes Sinn)? Ist es bekannt oder dasselbe wie (oder ähnlich wie) etwas Bekanntes? (Meine Formulierung war informell und insbesondere, wenn wir von spezifischen Problemen wie SAT zu einer Komplexitätsklasse wie NP übergehen, müssen wir uns über verschiedene Dinge Gedanken machen, die ich vernachlässigt habe.)

Ein Weg, um einen Sinn für die Aufgabe zu haben , den Algorithmus genau zu simulieren,Y ist der folgende. Lassen Sie uns das Modell der Einfachheit halber als One-Tape-Turing-Maschine definieren. Was ich sagen werde, kann auf jedes typische Rechenmodell angewendet werden.

Für jeden Algorithmus und Eingang x können wir seineBerechnungshistorie H Y ( x , i , j ) definieren : Gegebene ganze Zahlen i und j, die von 0 bis zur Laufzeit von Y reichen, sind H Y ( x , i , j ) gleich den Inhalt der j- ten Zelle des Bandes der Turingmaschine Y am Eingang x im Zeitschritt i . (Und wenn der Tonkopf den j liestYx HY(x,i,j)ij0YHY(x,i,j)jYxijIn der - ten Zelle ist dies zusammen mit dem Maschinenzustand zu berücksichtigen.) In der Komplexitätstheorie tauchen natürlich immer wieder Berechnungsverläufe auf.i

Nun könnte man sagen, dass jeder Algorithmus die Sprache bestimmen kann

CY={(x,i,j,σ) | HY(x,i,j)=σ}

(oder simulieren Sie die Funktion auf allen Eingaben) löst die Aufgabe genau, simulieren Sie den Algorithmus Y , weil es die Fähigkeit hat, jeden kleinen Teil jeder möglichen Berechnung des Algorithmus Y zu drucken . Natürlich könnte man bei einem gegebenen Orakel für C Y eine schrittweise Simulation von Y durchführen .HYYYCYY

2) Nehmen wir an, wir rüsten uns mit allen gängigen Vermutungen zur Komplexität von Rechnungen aus. Können wir sagen, was C + für einige bekannte Komplexitätsklassen sein soll? (ZB C = NP, C = P-Raum, ..)? Können wir erraten, was die Komplexitätsklassen C sind, so dass C + das Ideal ist, das von C aufgespannt wird?

Dies ist nach dem obigen Vorschlag immer noch eine interessante Frage. Für deterministische Zeitklassen ändert sich nichts. ist nur P : Wir können C Y in polytime für jeden polytime-Algorithmus bestimmen. Ähnlich E X P + = E X P . Auch P S P A C E + ist noch P S P A C E . Für nichtdeterministische Zeitkomplexitätsklassen wird die Situation interessanter. In diesem Fall kann ein Algorithmus Y mehrere Berechnungsverläufe habenP+PCYEXP+=EXPPSPACE+PSPACEY ist nicht mehr gut definiert. Wir möchten jedoch immer noch einenTeil derBerechnungshistoriedrucken, sodass unsere "exakte Simulation" eine bestimmte nicht deterministische Berechnungshistorie isolieren und dann ihre Werte drucken müsste. Für einen N P- Algorithmus Y kann man sagen, dass C YP N P : Wir können das N P- Orakel für die binäre Suche nach dem "ersten" akzeptierenden Berechnungsverlauf (in lex-Reihenfolge) verwenden und dann, sobald wir ihn erhalten haben, drucken die relevanten Bits. Für einen N E X P- Algorithmus Y kann man C Y sagenHYNPYCYPNPNPNEXPY , aus ähnlichen Gründen.CYEXPNP

Können wir in eine kleinere Klasse einordnen? Ich weiß es nicht. Beachten Sie, dass wir nicht einfach neu definieren könnenNP+

{ ( x , i , j , & sgr; ) | es existiert ein H Y, so dass H Y ( x , i , j ) = σ }CY=(x,i,j,σ) | HYHY(x,i,j)=σ

um zu versuchen , zu setzen in N P , weil wir die Geschichte Zeichenfolge sein müssen , das gleiche für all vervierfacht die x , um „genau simulieren Algorithmus Y “.CYNPxY

Wie auch immer, dieses Problem, dass es nicht möglich ist, einen Zeugen für eine Berechnung "auszudrucken", ohne zu E X P N P zu wechseln, tritt in einigen Situationen auf, wie beispielsweise bei der Komplexität der Schaltung. Wenn N E X P Polynoms Größe Schaltungen hat, dann ist es auch der Fall , dass C YP / p o l y für jedes nichtdeterministischen 2 n k Zeit Y ? Impagliazzo, Kabanets und WigdersonNEXPEXPNPNEXPCYP/poly2nkYDiese Frage wurde 2001 bejahend beantwortet. Ihr Beweis ist äußerst interessant und ruft Werkzeuge aus der Derandomisierung und Diagonalisierung auf (warum sollte eine Derandomisierung für ein solches Ergebnis erforderlich sein?), und erweist sich als sehr nützlicher Satz zum Nachweis der Schaltkreisuntergrenzen für funktioniert.NEXP

Gibt es Hoffnung, tatsächlich etwas über diese Operation zu beweisen?

Vielleicht ... das hängt davon ab, ob Sie mit der obigen Formalisierung Ihrer Frage zufrieden sind. Für einen deterministischen 3-SAT-Algorithmus , denke ich, wäre die obigeexakte Simulation des Y- Problems P N P ( 1 ) -hart, wobei P N P ( 1 ) die Polynomzeit mit einer Abfrage an N P ist . (Die lästige Syntax von StackExchange erfordert, dass ich (1) anstelle der Alternative schreibe. Früher habe ich gesagt, C Y sollte P N P -hart sein, aber ich bin mir nicht sicher, was die Details angeht: Möglicherweise sehen Sie, wie Sie das Folgende verallgemeinern.)YYPNP(1)PNP(1)NPCYPNP

Wir geben eine vielfache Vielfachreduktion von jedem zu C Y an . Bei einer solchenL, lassenMeine Maschineerkennen seinLdie eine einzelne tutNPAbfrage. WLOG, diese Abfrage ist eine SAT-Formel. Auch WLOG, die SAT-Abfrage kann in folgendem Sinne bis zum letzten Schritt der Berechnung "verschoben" werden: Es gibt einen polynomiellen ZeitalgorithmusA(x),der eine FormelFund ein Bitb ausgibt, so dass für allex,LPNP(1)CYLMLNPA(x)Fbx

übernimmt iff A ( x ) = ( F , B ) , so dass ( S A T ( F ) XOR b ) = 1.M(x)A(x)=(F,b)SAT(F)b

( kann ablehnen, wenn F erfüllbar ist, oder es kann akzeptieren; das Bit b erfasst dies.)MFb

Nehmen wir der Einfachheit halber an, wenn seine Berechnung beendet, verschiebt es seinen Bandkopf in Zelle 1, schreibt "accept" oder "reject" in diese Zelle und führt eine Endlosschleife durch. Dann fragen, ob ( F , TY für ausreichend großes T ist, erfahren Sie, ob F akzeptiert wird. (Im Allgemeinen brauchen wir nur, dass es effizient ist, die Instanz y von C Y zu berechnen, dieuns sagt.) Beachten Sie, dass dies bereits zeigt, dass C Y sowohl N P -hard als auch(F,T,1,accept)CYTFyCYCYNP -hard; Letzteres giltda ( F , T , 1 , r e j e c t ) C Y iff F istnichterfüllbar.coNP(F,T,1,reject)CYF

Die endgültige Reduktion von auf C Y ist: gegebenes x , Lauf A ( x ) erhält ( F , b ) . Wenn b =LCYxA(x)(F,b) dann wird ausgegeben ( F , T , 1 , a c c e p t ) , andernfalls ist b = 1 ausgegeben ( F , T , 1 , r e j e c t)b=0(F,T,1,accept)b=1 .(F,T,1,reject)

Für jedes wir produzieren (in Polynomialzeit), ist y so, dass M ( x ) akzeptiert, wenn y C Y ist .xyM(x)yCY

(Vielen Dank an Joe für die Forderung, dass ich diesen Teil klarer formuliere.)

Aber ich sehe (zum Beispiel) nicht, wie ich Härte bekomme. Um Σ 2 -SAT auf das Problem zu reduzieren , müssten Sie anscheinend eine 3-CNF-SAT-Instanz x schreiben, die Ihren deterministischen Algorithmus Y darin simuliert (wobei Y Tautologien für verschiedene Unterprobleme löst). Da Y jedoch keine vorgegebene Zeitgrenze hat, kann dieser 3-CNF x sehr groß sein, sodass Sie nicht unbedingt eine Reduzierung der Polynomzeit erhalten. Es sei denn, ich vermisse etwas.Σ2PΣ2xYYYx


Ryan, vielen Dank für deine Antwort. Es ist interessant, wie schwierig es ist, einen deterministischen Algorithmus Y für 3-SAT zu simulieren. Und die Frage ist, ob das P-Raum hart ist, egal was Y ist. (Ihr Verständnis der Simulation nicht deterministischer Algorithmen ist ebenfalls interessant und möglicherweise die richtige Frage, aber ich habe nur die Simulation deterministischer Algorithmen in Betracht gezogen.)
Gil Kalai

Ja, ich dachte, der letzte Absatz meiner Antwort würde diesen Teil ansprechen.
Ryan Williams

Aha. Ja, in der Tat. Ich habe auch vermutet, dass es nachweislich -hart sein könnte, was interessant ist (aber ich bin mir nicht sicher, ob ich Ihren Beweis verstehe). Erwarten Sie, dass PPNP die richtige Antwort ist? Ich vermutete auch, dasses schwierig sein würde,etwas jenseits von P N P zubeweisen. Gehen wir zurück von dem, was wir beweisen können, zu dem, was wir glauben sollten, Ryan. Was denkst du, ist die Antwort? PNPPNP
Gil Kalai

Nun, die Komplexität von hängt vom Algorithmus Y ab . Einige C Y können sehr schwierig sein und andere können viel einfacher sein. Aber ich denke, dass Sie für jeden Algorithmus Y wahrscheinlich nichts Besseres tun werden, als zu sagen: " C Y ist PCYYCYYCY -hard". (Ich glaube nicht, dassmanaus dem oben genannten intuitiven Grundfür jedesY Σ 2 P-Härtebekommen kann.)PNPYΣ2P
Ryan Williams

Ryan, Sie sagen , dass „es ein Polynom Reduktion von einem sprachige Übersetzungen ... bis C Y “, aber Ihre Reduktion scheint mehrere Instanzen zu verwenden C YPNPCYCY . Dies zeigt doch, dass es eine polynomielle Reduktion von einem -kompletten Problem zu P C Y gibt ? PNPPCY
Joe Fitzsimons

7

Ich habe anfangs eine falsche Antwort gepostet, also ist dies hoffentlich eine Verbesserung.

Ich beginne mit dem 3SAT-Beispiel. In Ihrem Kommentar zu Ryans Antwort sagen Sie

Es ist interessant, wie schwierig es ist, einen deterministischen Algorithmus Y für 3-SAT zu simulieren. Und die Frage ist, ob das P-Raum hart ist, egal was Y ist.

Die Antwort darauf ist, dass es für einige Y nicht PSPACE-schwer ist, vorausgesetzt, dass NP PSPACE ist, sondern dass es andere Algorithmen gibt, für die es PSPACE-schwer ist. Letzteres zu zeigen ist trivial: Wir konstruieren einfach einen Algorithmus, der die Bitfolge, die die 3SAT-Formel darstellt, als TQBF-Problem interpretiert, das dann vor dem Lösen der 3SAT-Instanz gelöst wird. Offensichtlich hat TQBF in diesem Fall nichts Besonderes, sodass die Simulation des Algorithmus willkürlich erschwert werden kann. Wir sollten uns also nur um die unteren Grenzen der Simulation eines Algorithmus für ein bestimmtes Problem kümmern und nicht um einen bestimmten Algorithmus.

In diesem Sinne konstruieren wir den folgenden Algorithmus, um 3SAT zu lösen:

Nehmen Sie ein Register von n Bits (anfangs alle auf 0 gesetzt), um eine Versuchslösung zusammen mit einem Register zu enthalten, das die 3SAT-Instanz enthält, ein der Größe log 2 ( c + 1 ), das anfangs auf 1 gesetzt ist, und ein Zwei-Flag Bits (nennen Sie diese das Fail-Flag und das Accept-Flag). Hier ist c die Anzahl der Klauseln. Der Algorithmus geht dann wie folgt vor:log2(c+1)c

  • Wenn der Wert des Klauselzählers kleiner oder gleich c ist und die Versuchslösung nicht 111 ... 1 lautet , prüfen Sie, ob Klausel k erfüllt ist. Wenn nicht, setzen Sie das Fehlerbit. Erhöhe den Zähler.kc111......1k
  • Wenn der Wert des Klauselzählers kleiner oder gleich c ist und die Versuchslösung 111 ... 1 lautet , prüfen Sie, ob Klausel k erfüllt ist. Ist dies nicht der Fall, setzen Sie das Fail-Flag. Erhöhe den Zähler.kc111......1k
  • Wenn c überschreitetund die Versuchslösung nicht 111 ... 1 ist , prüfen Sie, ob das Fehlerflag gesetzt ist. Wenn dies der Fall ist, erhöhen Sie dieTestlösung, setzen Sie den Zähler k auf 1 zurück und deaktivieren Sie das Fail-Flag. Wenn das Fail-Flag nicht gesetzt wurde, setzen Sie das Accept-Flag, setzen Sie den Klauselzähler k auf Null, setzen Sie die Testlösung auf Null und halten Sie an.kc111......1kk
  • Wenn c überschreitet und die Versuchslösung 111 ... 1 ist , prüfen Sie, ob das Fehlerflag gesetzt ist. Wenn das Fail-Flag nicht gesetzt wurde, setzen Sie das Accept-Flag. Setzen Sie den Klauselzähler k auf Null, setzen Sie die Versuchslösung auf Null und halten Sie an.kc111......1k

Wenn der Algorithmus anhält, gibt der Status des Accept-Flags an, ob die 3SAT-Formel erfüllt werden kann oder nicht.

Wenn ich nun den Zustand des Algorithmus zum Zeitpunkt berechnen möchte, habe ich einen Algorithmus, der dies in polynomialer Zeit mit einem einzelnen Aufruf an ein NP-Orakel wie folgt berechnet:i

Man beachte, dass für jedes , vorausgesetzt, das Akzeptanzbit wurde noch nicht gesetzt, der Zustand der Register in Polynomzeit berechnet werden kann, da der Wert voni und das Versuchslösungsregister t einfach Funktionen von i sind . Das Ermitteln, ob das Fehlerflag gesetzt ist, kann in Polynomzeit erfolgen, indem einfach geprüft wird, ob der aktuelle Status des Versuchslösungsregisters alle Klauseln erfüllt, die kleiner oder gleich dem aktuellen Wert von k sind . Wenn und nur wenn dies nicht der Fall ist, wird das Fehlerflag gesetzt. Das Accept-Flag wird auf Null gesetzt.ktik

In ähnlicher Weise kann, wenn das Akzeptanzbit bereits gesetzt wurde, der Zustand der Register effizient berechnet werden, da mit Ausnahme des gesetzten Akzeptanzbits alles Null ist.

Die einzige Härte ergibt sich daraus, ob das Akzeptanzbit gesetzt ist. Dies entspricht der Feststellung, ob die angegebene 3SAT-Instanz eine Lösung von weniger als . Wenn dies der Fall ist, muss das Akzeptanzbit unbedingt gesetzt sein, und wenn dies nicht der Fall ist, muss das Akzeptanzbit unbedingt Null sein. Offensichtlich ist dieses Problem selbst NP-vollständig.t

Somit kann der Zustand des Systems in Schritt in Polynomzeit mit einer einzelnen Anfrage an ein NP-Orakel bestimmt werden.i

Wichtiges Update: Am Anfang hatte ich Ryans Formulierung der exakten Simulation als ein Entscheidungsproblem falsch verstanden, und daher war meine Behauptung, dass die Entscheidungsversion in NP war, falsch. Angesichts des Problems zu entscheiden, ob Bit in Schritt i bei Eingabe x, wie in Ryans formuliert, antwortet, gibt es drei Möglichkeiten:jix

  1. Dieses Bit ist konstant, unabhängig davon, ob erfüllbar ist. Da es zu diesem Zeitpunkt nur zwei mögliche Zustände für das System gibt (die beide in P berechnet werden können), wird in P bestimmt, ob dies der Fall ist, und wenn ja, ob der Wert gleich σ ist.Fσ
  2. Das Bit ist gleich wenn FσFSATF
  3. Das Bit ist gleich wenn FσFUNSAT

FSATFUNSATCY=NPcoNP

i


1
Können Sie nicht mit der gleichen Technik zeigen, dass b) das Erreichen der gleichen Lösung wie bei Algorithmus A bereits PSPACE-schwierig ist? Lassen Sie den Algorithmus abhängig von der Lösung eines PSPACE-harten Problems, das in die Eingabe codiert ist, zwischen zwei möglichen Lösungen wählen.
Peter Shor

1
@Peter: Sicher, du könntest es beliebig schwierig machen, aber ich dachte, die interessante Frage ist, dass die Obergrenze über A minimiert ist, was uns zu NP macht.
Joe Fitzsimons

3

Sehr interessanter Gedanke! Hier ist ein erweiterter Kommentar, der zu lang war, um ihn als solchen zu posten:

In Bezug auf die Definition in (1) als solche bedeutet dies :

CCAAC+={CA:A}

C+MML(M)=?L(M)

MMMMMt(n)MO(t(n))M

NPPSPACENP

PSPACEPPADPSPACE


Δ3P

Gil, sehen Sie, ob dies überhaupt zu Ihrer Frage passt: Korrigieren Sie einen (beliebigen) Algorithmus A für 3-SAT. Betrachten Sie einen neuen Algorithmus B. Dann wollen wir behaupten: B simuliert A im Sinne von (b) - dh, dass B auf allen genau definierten Eingaben die gleichen Lösungen wie A erreicht. Da wir Algorithmen als Turing-Maschinen betrachten können, können wir annehmen, dass A 3-SAT akzeptiert (nach der Annahme). Um die Behauptung zu beweisen, scheint es mir, dass wir uns dann für die Frage entscheiden müssen, ob B (als TM angesehen) auch 3-SAT akzeptiert, was zu Unentscheidbarkeitsproblemen führt.
Daniel Apon

C+

1
Lieber Daniel, Sie haben geschrieben: "Dann wollen wir behaupten: B simuliert A im Sinne von (b) - dh, dass B bei allen genau definierten Eingaben die gleichen Lösungen wie A erreicht." Das meine ich nicht mit "B simuliert A". Für mich bedeutet B simuliert A, dass es genau beschreibt, wie Algorithmus A "abläuft" und nicht nur dieselben "Lösungen" (oder Ergebnisse) erzielt.
Gil Kalai

1
Zu deinem zweiten Kommentar. Es sieht so aus, als könnten wir eine vernünftige Einschränkung für die Algorithmen finden, die wir betrachten oder die Frage etwas anders formulieren: ZB die Aussage "Für jeden Algorithmus A zur Lösung von 3-SAT ist es schwierig, den P-Raum A zu simulieren." Ich verstehe nicht, wie sich das Halteproblem einschleicht (mehr als bei anderen Fragen in Bezug auf die Rechenkomplexität).
Gil Kalai
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.