Dies ist ähnlich wie bei SAT, außer dass wir die Zuordnung jeder Variablen kennen, aber die Zuweisung eines booleschen Operators nicht kennen. Ist es in diesem Fall ein NPC-Problem, die Zuordnung jedes Operators so zu finden, dass der Ausdruck einen bestimmten booleschen Wert ergibt?
Eigentlich habe ich mich gefragt, ob die Zuordnung von arithmetischen Operatoren zur Erfüllung eines ganzzahligen arithmetischen Ausdrucks (z. B. o p 1 3 o p 2 7 o p 3 o p 4 = 10) NP vollständig ist.
cc.complexity-theory
np-hardness
DSounders
quelle
quelle
Antworten:
Mit Addition und Subtraktion reduziert sich das Partitionsproblem , das NP-schwer ist, auf Ihr zweites Problem.
Bei einer Menge erzeugen wir das ProblemS.= { s1, s2, … , S.n}}
o p 1 s 2 o p 2 s 3 o p 3 … o p n - 1 s n = 0 .s1 o p1 s2 o p2 s3 o p3 … O pn - 1 sn= 0
Wenn eine Lösung existiert, erstellen wir zwei Mengen:
Diese beiden Sätze müssen bei der Einrichtung unseres ursprünglichen Problems dieselbe Summe haben, damit das Partitionsproblem gelöst ist. Dies zeigt, dass es nicht nur schwierig ist, die eigentliche Lösung für dieses Problem zu finden, sondern dass NP tatsächlich schwer zu bestimmen ist, ob eine Lösung existiert (zumindest für Addition und Subtraktion).
Für eine Reihe von Operationen, bei denen keine negativen Ganzzahlen erstellt werden können, z. B. Multiplikation und Addition, ist dies nicht so klar. Dies zeigt auch nur, dass das Problem schwach NP-hart ist; Möglicherweise gibt es eine Reduzierung, die zu einem stärkeren Ergebnis führt.
quelle
Kurze Antwort. Die Operator-Version von SAT ist effizient lösbar - zumindest, wenn wir beliebige Schaltungen von Gates mit zwei Eingängen ohne Fan-Out über eine beliebige Wahl des Gate-Sets annehmen.
Lange Antwort. Ich nehme die folgende Form des Booleschen Problems an:
Insbesondere legen wir den Schaltungen keine bestimmte Struktur auf (abgesehen davon, dass es sich um Binärbäume handelt), lassen kein Fan-Out zu (so dass jedes Bit von xC x nur einmal verwendet wird), und die Gates können asymmetrisch sein. Indem ich nur Zwei-Bit-Gatter zulasse, schließe ich das NICHT- Gatter aus (das jedoch simuliert werden kann, indem mehrere Gatter vorhanden sind, die durch Negationen wie AND / NAND miteinander verbunden sind , und ich schließe auch Gatter aus, die einfach Konstanten ohne Eingaben ausgeben , so dass die Anzahl der Gatter in der Schaltung für einen n- Bit-Eingang tatsächlich immer . Der Kürze halber bezeichne ich 2-TREE-OPSAT im Folgenden einfach alsn−1 n OPSAT ; Die Analyse des Problems kann jedoch für Schaltungen, die beliebige k- Eingangsgatter ( k-TREE-OPSAT ) oder Fan-out (was wir als k-FANOUT-OPSAT bezeichnen könnten ) zulassen, viel schwieriger werden .
[ Bearbeitet, um hinzuzufügen : Wir können dies leicht anpassen, um das allgemeinere Problem der aktuellen Überarbeitung Ihrer Frage zu berücksichtigen, bei der wir versuchen, ein gegebenes einem Zielwert b ∈ { 0 , 1 zuzuordnen } durch Vertauschen der Rollen von 0 undx∈{0,1}∗ b∈{0,1} 0 in der folgenden Analyse; Dies hat den Effektdie Rollen von VertauschenANDundOR,NANDundNOR,usw.]
1
Für eine feste Wahl von ist das Problem der Auswahl eines geeigneten Baums mit geeigneten Toren einer logischen Disjunktion nicht unähnlich: Verwendung von Äquivalenzen wie OR ( x , y )x∈{0,1}n
Wir können Reduzierungen zwischen Sammlungen durchführen, die kompliziertere Gate-Sets mit einfachen (und leistungsstarken) Gate-Sets in Verbindung bringen. a kann aus einem Gatesatz sprichtLage, andere Tore nicht zu dem Satz gehörenzu emulieren, indem wiese ein Element der Wahl G , die die gleiche Wirkung hat wie ein Tor (wennmit einem bestimmten Eingang vorgelegt) G ∉ G . Insbesondere bestimmte Kombinationen von Toren (wie { OR ,
Wir gehen vor, indem wir Gatesätze betrachten, die verschiedene Arten von Gates , und diese Gates später aus späteren Fällen der Analyse ausschließen, um zu zeigen, dass Gatesets, an denen eines der Gates beteiligt ist, zu einem handhabbaren Problem führen. Wir werden in der Reihenfolge der Anzahl der Zwei-Bit-Strings fortfahren, die das fragliche Gate erfüllen, beginnend mit dem Gate mit konstanter 1 bis zum Gate mit konstanter 0 .G 1 0
Für jede Gate-Menge die das konstante Gate G ( x , y ) = 1 enthält , können wir einfach eine Schaltung C nur unter Verwendung dieses Gates bauen. In diesem Fall akzeptiert C jedes x .G G(x,y)=1 C C x
ODER und NAND. Für jede Gate-Menge die OR enthält : Wenn alle anderen Gates G ∈ G G ( x , y ) erfüllenG OR G∈G , dann ist es kein Vorteil, ein anderes Gatter als ODER beim Aufbau der Schaltung C zu wählen. Eine Schaltung mit nur ODER- Gattern akzeptiert eine beliebige Zeichenfolge außer x ∈ 0 ∗ . Ansonsten existiert ein Gate G ∈ G, so dass { G , OR } tautolog ist. Jede Instanz vonOPSATmit OR ∈ G ist also einfach; und ähnliche Bemerkungen gelten fürG(x,y)⟹OR(x,y) OR C OR x∈0∗ G∈G {G,OR} OR∈G .NAND∈G
Implikationsähnliche Tore. Betrachten Sie das Gate , das nur dann Null ausgibt, wenn ( x , y ) = ( 1 , 0 ) . Für das Folgende gilt eine ähnliche Analyse für das Gate G ' ( x , y ) = x ∨ ¬ y . Betrachten Sie eine beliebige Zeichenfolge x ∈ { 0 , endet mit 0 , zerlegen Sie xG(x,y)=¬x∨y (x,y)=(1,0) G′(x,y)=x∨¬y
x∈{0,1}n x 0 x in Teilzeichenfolgen der Form ; auf jedes solche w j wenden wir rekursiv G von rechts nach links an, was die Ausgabe 0 für jedes w j ergibt . (Für einen Teilstring der Länge 1 verwenden wir die Trivialschaltung, dh lassen Sie diesen Eingang in Ruhe.) Wenn x mit 1 endet , zerlegen Sie x in Teilstrings der Form w j = 0 ∗ 1 und wenden Sie G rekursiv von links nach an direkt auf jedemwj=1∗0 wj G 0 wj x 1 x wj=0∗1 G , was die Ausgabe 1 für jedes w j ergibt = 1 , für den der problematische Fall Eingaben x ∈ 1 sindwj 1 wj . So können wir das Problem für den Aufbau Schaltungen verringern , die entweder durch zufrieden ist oder 1 m , wobei m die Anzahl des Teils ist 1 * 0 oder 0 * 1 . Für m ⩾ 2 , können wir entweder unter Verwendung akzeptieren G durch rekursiv Anwendung Gates G von links nach rechts. Dies lässt nur den Fall m0m 1m m 1∗0 0∗1 m⩾2 G G m=1 . Für x = 1 ∗ 0 ergibtjede Schaltung, die nur aus G- Gattern besteht, nur kürzere Zeichenfolgen der Form 1 ∗ 0 , was letztendlich die Einzelbit-Zeichenfolge 0 ergibt: so dass keine Schaltung von G- Gattern durch diese Eingabe erfüllt werden kann. Wenn esauchein Gate H ∈ G gibt, für das H ( 1 , 0 ) = 1 ist , dann ist { G , H } tautolog; oder wenn es ein Tor H gibtx∈1∗0
x=1∗0 G 1∗0 0 G H∈G H(1,0)=1 {G,H} für das H ( 1 , 1 ) = 0 ist , können wir Zeichenfolgen der Form 11 ∗ 0 auf Zeichenfolgen der Form ( 1 ∗ 0 ) ∗ reduzieren
Somit istOPSATfür jeden Gate-Satz G, der einimplikationsähnlichesGate enthält,einfach.H∈G H(1,1)=0 11∗0 (1∗0)∗ durch Anwenden von auf die ersten beiden Bits von x . Andernfalls kann keine Schaltung aufgebaut werden, die x ∈ 1 ∗ 0 akzeptiert .H x x∈1∗0
G
. Wenn x
Da jedes Gate zu einer genau definierten und im Allgemeinen recht großen Klasse von Eingaben führt, die es akzeptiert, wobei zusätzliche Gates dazu neigen, das Problem zu trivialisieren, finden wir, dass 2-TREE-OPSAT in P ist .
quelle