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, dann scheint es für Joes Algorithmus, dass ist, was benötigt wird. Für diese Version (glaube ich, bin mir aber nicht sicher) skizziert Ryans Antwort ein -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, dann legen die Antworten von Ruan und Joe nahe (aber ich bin mir auch nicht sicher), dass im Wesentlichen . Wir können die durch diese Interpretation spaculate die Operation eine Stufe höher in dem Polynom hiearachy nach oben drückt, und die .
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.
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 definieren
für alle Algorithmen A}.
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 .
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 ?
Können wir raten, was die Kompexitätsklassen so dass C + das Ideal ist, das von C aufgespannt wird ?
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.
Antworten:
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.
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 liestY. x HY.( x , i , j ) ich j 0 Y. HY.( x , i , j ) j Y. x ich j In der - ten Zelle ist dies zusammen mit dem Maschinenzustand zu berücksichtigen.) In der Komplexitätstheorie tauchen natürlich immer wieder Berechnungsverläufe auf.ich
Nun könnte man sagen, dass jeder Algorithmus die Sprache bestimmen kann
(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 .HY. Y. Y. CY. Y.
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+ P CY EXP+=EXP PSPACE+ PSPACE Y 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 Y ∈ P 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 ∈ sagenHY NP Y CY∈PNP NP NEXP Y , aus ähnlichen Gründen.CY∈EXPNP
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 , σ) | HY. HY.( 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 “.CY NP x Y
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 Y ∈ P / p o l y für jedes nichtdeterministischen 2 n k Zeit Y ? Impagliazzo, Kabanets und WigdersonNEXP EXPNP NEXP CY∈P/poly 2nk Y Diese 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
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.)Y Y PNP(1) PNP(1) NP CY PNP
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,L∈PNP(1) CY L M L NP A(x) F b x
ü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.)M F b
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 , a c c e p t ) ∈ CY. T F y CY. CY. NP -hard; Letzteres giltda ( F , T , 1 , r e j e c t ) ∈ C Y iff F istnichterfüllbar.c o NP ( F, T, 1 , r e j e c t ) ∈ CY. F
Die endgültige Reduktion von auf C Y ist: gegebenes x , Lauf A ( x ) erhält ( F , b ) . Wenn b =L CY. x A ( 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 , a c c e p t ) b = 1 .( F, T, 1 , r e j e c t )
Für jedes wir produzieren (in Polynomialzeit), ist y so, dass M ( x ) akzeptiert, wenn y ∈ C Y ist .x y M(x) y∈CY
(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 Σ2 x Y Y Y x
quelle
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
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 vonn 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 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.k t i k
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:j i x
quelle
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 :
quelle