Ist das Problem, Operatoren zu finden, die eine Liste der booleschen Variablen NP erfüllen, vollständig?

11

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.1 op1 3 op2 7 op3 op4

DSounders
quelle
2
Wenn ich das richtig verstanden habe, wissen Sie, dass die Formel erfüllt werden kann, und Sie möchten eine Zuordnung der booleschen Operatoren kennen. Ordnen Sie Operator allen "Operatorvariablen" zu und Sie sind fertig. Ich weiß nichts über das zweite Problem, aber es sieht interessant aus.
George
3
@ GeorgeB: Ich denke nicht, dass die Lösung richtig ist. Was ist, wenn alle Booleschen Werte auf false gesetzt sind? Diese Frage ist interessant, erfordert aber möglicherweise etwas Arbeit. Aus welcher Gruppe von Booleschen Operatoren wählen wir aus? Vermutlich meinen Sie eine interessante Teilmenge von binären Booleschen Operatoren wie . Wenn Sie alle binären Booleschen Operatoren einschließen, ist das Problem trivial - wählen Sie einfach die konstante Zuordnung zu 'true'. {,,}
Huck Bennett
1
Wie Huck sagte, wähle für alle i . Wenn Sie jedoch die Operatoren auf einen bestimmten Satz beschränken, ist die Frage interessanter. Ähnliches gilt für den arithmetischen Fall. xopiy=1i
Kaveh
Dies scheint eine Verbindung zu QBFs zu haben oder möglicherweise darauf reduziert zu sein. wahrscheinlich kann ein QBF konstruiert werden, der, wenn er gelöst wird, den Operatoren gibt. richtig? Bei schneller Überprüfung sieht es so aus, als ob Pspace vollständig sein könnte. Außerdem müssen Sie die Priorität definieren, wenn keine Klammern vorhanden sind. UND höher als ODER? Das Problem scheint natürlicher zu sein, wenn Klammern / Gruppierungen definiert werden können.
VZN
@ GeorgeB. Es tut mir leid, dass ich es nicht klar gemacht habe. Die Auswertung eines booleschen Ausdrucks kann ein beliebiger boolescher Wert sein, entweder 0 oder 1.
DSounders

Antworten:

10

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,,sn}

o p 1 s 2 o p 2 s 3 o p 3o p n - 1 s n = 0 . s1 op1 s2 op2 s3 op3 opn1 sn=0

Wenn eine Lösung existiert, erstellen wir zwei Mengen:

S1={s1}{si|opi1=+}

S2={si|opi1=}

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.

SamM
quelle
1
Ich denke, Ihr Beweis kann ziemlich einfach an den -Fall angepasst werden. Setzen Sie einfach das Zielproblem auf s 1s n = 1 . Dann impliziert eine Lösung, dass der Nenner der gleiche ist wie der Zähler (unter der Annahme von s i×/÷s1sn=1 für alle i ist ). Natürlich gibt dies nicht den Fall der vier Operatoren an, aber dann müssten wir auch die Reihenfolge der Operationen regeln. si>0i
Luke Mathieson
Danke, @Sam und Luke. Was ist, wenn wir alle vier Operatoren mischen? Intuitiv mehr Operatoren zu haben, wird das Problem nur komplexer machen, aber ich sehe keinen direkten Beweis.
DSounders
Ich denke immer noch an alle vier. Wir können auch bekommenleicht + / ÷ bekommen , aber das sind immer noch nur zwei gleichzeitig. +/÷
Luke Mathieson
1
Auch eine Referenz für die (starke) Vollständigkeit der PRODUKTTEILUNG: "Produktpartition" und damit verbundene Probleme der Zeitplanung und Systemzuverlässigkeit: Komplexität und Annäherung der Berechnungen "sciencedirect.com/science/article/pii/S0377221710003905NP
Luke Mathieson
4

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:

2-BAUM-OPSAT. Gibt es bei einem Eingang für n 2 und einem Gatesatz G, der aus Gattern mit zwei Eingängen und einem Ausgang besteht, eine Schaltung C, die aus Gattern in G besteht, die akzeptiertx{0,1}nn2GCG , d.erfüllt, wenn der Eingang x gegeben ist (Abbildung der Bits von x auf die Blätter der Schaltung C in der Reihenfolge)?xxxC

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 xCx 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 alsn1nOPSAT ; 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 ,

OR(x,y)(AND(x,y)PARITY(x,y))
GGG ) die konstante Funktion simulieren, die 1 ergibt: Wir sagen, dass solche Gatesätzetautolog sind.{OR,NAND}1

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 .G10

  1. 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 .GG(x,y)=1CCx

  2. ODER und NAND. Für jede Gate-Menge die OR enthält : Wenn alle anderen Gates G G G ( x , y ) erfüllenGORGG , 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 ORG ist also einfach; und ähnliche Bemerkungen gelten fürG(x,y)OR(x,y)ORCORx0GG{G,OR}ORG .NANDG

  3. 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)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    . Wenn xx{0,1}nx0x 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=10wjG0wjx1xwj=01G , was die Ausgabe 1 für jedes w j ergibt = 1 , für den der problematische Fall Eingaben x 1 sindwj1wj. 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 m0m1mm1001m2GGm=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 gibtx10

    x=10G100GHGH(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.HGH(1,1)=0110(10)durch Anwenden von auf die ersten beiden Bits von x . Andernfalls kann keine Schaltung aufgebaut werden, die x 1 0 akzeptiert .Hxx10

    G

  4. ¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n1n2n1¬π11(0|1)n1n3n2¬π1(¬π1(x1,x2),x3)¬π11011

  5. PARITY(x,y)=(x¬y)(¬xy)G={PARITY}x{0,1}n

    • PARITYANDNOR(x,y)=¬(xy)ORNAND
    • π1(x,y)=xπ2(x,y)=yANDNORPARITY
    • PARITYEQUAL=¬PARITY
    • PARITYG01=¬xyx(11)0G0101xPARITYPARITYG10=x¬yx0(11)PARITYG01G10x0x=11
    • PARITYZ(x,y)=0x(11)x0G0110

    GPARITY

    EQUALPARITYEQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0 s in der Eingabe. Wir können dann die Analyse für reduzierenEQUALPARITY01

  6. π1(x,y)=xπ2(x,y)=y1π1π2

    • π1π2x0nGG(0,0)=1x
    • π1NORG01=¬xyOR
    • π1ANDG10=x¬yZ(x,y)=01

    π1π2π1π2π1Gπ2G

  7. ANDNORG10(x,y)=x¬yG01(x,y)=¬xyAND1EQUALπ1π2NOR{G01,G10}PARITYG10G01Z(x,y)=0G10G01

    G101(0|1)n111n2G10(x1,G10(x2,x3))11G10ZG101ZG10x1(0|10|11)(0|1)

  8. Z

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 .

Niel de Beaudrap
quelle
1
Cx b{0,1}b=101, die impliziten Tore mit den anderen Delta-Funktionenusw.
Niel de Beaudrap