Le problème de trouver des opérateurs pour satisfaire une liste de variables booléennes NP est-il complet?


11

Ceci est similaire à SAT, sauf que nous connaissons l'affectation de chaque variable, mais ne connaissons l'affectation d'aucun opérateur booléen. Dans ce cas, trouver l'affectation de chaque opérateur pour que l'expression évalue à une valeur booléenne donnée un problème NPC?

En fait, je me demandais si trouver l'affectation des opérateurs arithmétiques pour satisfaire une expression arithmétique entière (par exemple, = 10) est NP complet?1 op1 3 op2 7 op3 op4


2
Donc, si j'ai bien compris, vous savez que la formule est satisfaisable et vous voulez connaître une affectation des opérateurs booléens. Attribuez simplement l' opérateur à toutes les "variables d'opérateur" et vous avez terminé. Je ne connais pas le deuxième problème, mais il semble intéressant.
George

3
@GeorgeB: Je ne pense pas que cette solution soit correcte. Que faire si toutes les valeurs booléennes sont définies sur false? Cette question est intéressante, mais peut nécessiter un peu de travail. Dans quel ensemble d'opérateurs booléens choisissons-nous? Vraisemblablement, vous voulez dire un sous-ensemble intéressant d'opérateurs booléens binaires comme . Si vous incluez tous les opérateurs booléens binaires, le problème est trivial - il suffit de choisir la carte constante sur "true". {,,}
Huck Bennett

1
Comme l'a dit Huck, choisissez pour tout . Cependant, si vous limitez les opérateurs à un ensemble particulier, la question serait plus intéressante. De même pour le cas arithmétique. xopiy=1i
Kaveh

cela semble avoir une connexion avec les QBF ou peut-être même réduit. on peut probablement construire un QBF qui, une fois résolu, donne aux opérateurs. droite? lors d'une inspection rapide, il semble que Pspace soit complet ... vous devez également définir la priorité s'il n'y a pas de parenthèses. ET supérieur à OU? le problème semble plus naturel peut-être lorsque des parenthèses / groupements peuvent être définis.
vzn

@GeorgeB. Je suis désolé de ne pas l'avoir précisé L'évaluation d'une expression booléenne peut être n'importe quelle valeur booléenne donnée, soit 0 soit 1.
DSounders

Réponses:


10

Avec l'addition et la soustraction, je pense que le problème de partition , qui est NP-difficile, se réduit à votre deuxième problème.

Étant donné un ensemble nous créons le problèmeS={s1,s2,,sn}

s1 op1 s2 op2 s3 op3 opn1 sn=0 .

Si une solution existe, nous créons deux ensembles:

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

S2={si|opi1=}

Ces deux ensembles doivent avoir la même somme lors de la configuration de notre problème d'origine, donc le problème de partition est résolu. Cela montre que non seulement il est difficile de trouver la solution réelle à ce problème, mais qu'il est en fait difficile de déterminer si une solution existe (au moins pour l'addition et la soustraction).

Pour un ensemble d'opérations qui ne permet pas la création d'entiers négatifs, par exemple la multiplication et l'addition, ce n'est pas si clair. De plus, cela montre seulement que le problème est faiblement NP-difficile; il peut y avoir une réduction qui donne un résultat plus fort que cela.


1
Je pense que votre preuve peut être assez facilement adaptée au cas , définissez simplement le problème cible sur . Une solution implique alors que le dénominateur est le même que le numérateur (en supposant que pour tout ). Bien sûr, cela ne donne pas le cas des quatre opérateurs, mais nous devons également gérer l'ordre des opérations. s 1s n = 1 s i > 0 i×/÷s1sn=1si>0i
Luke Mathieson

Merci, @Sam et Luke. Et si nous mélangions les quatre opérateurs? Intuitivement, avoir plus d'opérateurs ne fera que rendre le problème plus complexe, mais je ne vois pas de preuve simple.
DSounders

Je pense toujours aux quatre. Nous pouvons également obtenir facilement , mais ce n'est toujours que deux à la fois. +/÷
Luke Mathieson

1
En outre, une référence pour la (forte) complétude de la PARTITION DE PRODUIT: "" Partition de produit "et problèmes connexes de planification et de fiabilité des systèmes: complexité et approximation de calcul " sciencedirect.com/science/article/pii/S0377221710003905NP
Luke Mathieson

4

Réponse courte. La version opérateur de SAT est efficacement résoluble - du moins, si nous supposons des circuits arbitraires de portes à deux entrées sans fan-out, sur tout choix souhaité de jeu de portes.

Longue réponse. J'assume la forme suivante du problème booléen:

2-TREE-OPSAT. Étant donné une entrée pour et un ensemble de portes composé de portes à une sortie à 2 entrées, existe-t-il un circuit composé de portes dans qui accepte , c'est-à-dire qui est satisfait quand on lui donne l'entrée (mappage des bits de aux feuilles du circuit dans l'ordre)? n 2 G C G xx{0,1}nn2GCG xx CxxC

En particulier, nous n'imposons aucune structure particulière aux circuits (en dehors d'être des arbres binaires), ne permettons pas de fan-out (pour que chaque bit de soit utilisé qu'une seule fois), et les portes peuvent être asymétriques. En n'autorisant que des portes à deux bits, j'exclus la porte NOT (mais qui peut être simulée en ayant plusieurs portes liées les unes aux autres par des négations, telles que AND / NAND ; et j'exclus également les portes qui produisent simplement des constantes sans entrées , de sorte que le nombre de portes dans le circuit sera en fait toujours pour une entrée à bits. Par souci de concision, je me référerai à 2-TREE-OPSAT ci - dessous simplement comme OPSATx n - 1 nCxn1n; bien que l'analyse du problème puisse devenir beaucoup plus difficile pour les circuits permettant des portes d'entrée k arbitraires ( k-TREE-OPSAT ) ou permettant le fan-out (que nous pourrions appeler k-FANOUT-OPSAT ).

[ Modifié pour ajouter : nous pouvons facilement l'adapter pour considérer le problème plus général de la révision actuelle de votre question, dans laquelle nous essayons de mapper un à une valeur cible , en échangeant les rôles de et dans l'analyse ci-dessous; cela a pour effet d'échanger les rôles de AND et OR , NAND et NOR , etc. ] b { 0 , 1 } 0 1x{0,1}b{0,1}01

Pour un choix fixe de , le problème de choisir un arbre approprié avec des portes appropriées n'est pas différent d'une disjonction logique: utiliser des équivalences telles que nous pouvons effectuer des réductions entre les collections reliant des jeux de portes plus compliqués à des jeux de portes simples (et puissants); on peut parler d'un ensemble de portes pouvant émuler d'autres portes n'appartenant pas à l'ensemble, en choisissant judicieusement un élément de qui a le même effet (lorsqu'il est présenté avec une entrée particulière) qu'une porte . En particulier, certaines combinaisons de portes (telles que ) peuvent simuler la fonction constante donnantOU ( x , y )x{0,1}n G G G { OU , NAND } 1

OR(x,y)(AND(x,y)PARITY(x,y))
GGG{OR,NAND}1: nous disons que de tels ensembles de portes sont tautologues .

Nous procédons en considérant les ensembles de portes comprenant différents types de portes , en excluant plus tard ces portes des cas ultérieurs de l'analyse, pour montrer que les ensembles de portes impliquant une seule des portes conduisent à un problème traitable. Nous allons procéder dans l'ordre du nombre de chaînes de deux bits qui satisfont la porte en question, en commençant de la porte constante porte constante .1 0G10

  1. Pour tout ensemble de portes qui contient la porte constante , nous pouvons simplement construire un circuit utilisant cette seule porte, auquel cas accepte tout . G ( x , y ) = 1 C C xGG(x,y)=1CCx

  2. OU et NON-ET. Pour tout ensemble de portes qui contient : si toutes les autres portes satisfont , alors il n'y a aucun avantage à choisir une autre porte mais dans la construction du circuit . Un circuit de portes uniquement accepte toute chaîne sauf . Sinon, il existe une porte telle que est tautologue. Ainsi, toute instance d' OPSAT avec est facile; et remarques similaires sont valables pour .OU G G G ( x , y )GORGGOU C OU x 0 G G { G , OR } OUG NON ETGG(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

  3. Portes de type implication. Considérons la porte , qui ne renvoie zéro que si . Pour ce qui suit, une analyse similaire s'appliquera pour la porte . Considérez n'importe quelle chaîne . Si se termine par , décomposer en sous-chaînes de la forme ; sur chacun de ces , nous appliquons récursivement de la droite vers la gauche, ce qui donne la sortie pour chaque . (Pour une sous-chaîne de longueur 1, nous utilisons le circuit trivial, c'est-à-dire laissons cette entrée seule.) De même, si( x , y ) = ( 1 , 0 ) G ( x , y ) = x ¬ y x { 0 , 1 } n x 0 x w jG(x,y)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    x{0,1}nx0xw j G 0 w j x 1 x wwj=10wjG0wjx se termine par , décompose en sous-chaînes de la forme et applique récursivement de gauche à droite sur chaque , ce qui donne la sortie pour chaque . Ainsi, nous pouvons réduire le problème à la construction de circuits qui sont satisfaits par ou , où est le nombre de sous-chaînes ou . Pour , nous pouvons accepter l'utilisation de portes en appliquant récursivement de gauche à droite. Cela laisse juste le cas1xG w j 1 w j 0 m 1 1 0 0 G H G H ( 1 , 0 ) = 1 { G , Hwj=01Gwj1wj0m m 1 0 0 1 m 2 G G m = 1 x 1 0 x = 1 0 G } H G H ( 1 , 1 ) = 0 11 0 (1mm1001m2GGm=1 , pour lequel le cas problématique sont les entrées . Pour , tout circuit composé uniquement de portes ne produira que des chaînes plus courtes de la forme , ce qui donnera finalement la chaîne de bits unique : de sorte qu'aucun circuit de portes ne pourra être satisfait par cette entrée. S'il existe aussi une porte pour laquelle , alors est tautologue; ou, s'il existe une porte pour laquelle , nous pouvons réduire les chaînes de la formex10

    x=10G100GHGH(1,0)=1{G,H}HGH(1,1)=0110aux chaînes de la forme , en appliquant aux deux premiers bits de . Sinon, aucun circuit ne peut être construit qui accepte . Ainsi, pour tout jeu de portes qui contient une porte de type implication, OPSAT est facile. H x x 1 0 G(10)Hxx10

    G

  4. Négociations de projections. Considérez les portes et . Nous considérons , l'analyse avec étant similaire. À lui seul, peut accepter n'importe quelle chaîne dans pour en réduisant les derniers bits à un seul bit, puis en appliquant ; et il peut également accepter pour en réduisant les derniers bits à un seul bit, puis en appliquant le circuit¬ π 2 ( x , y ) = ¬ y ¬ π 1 ¬ π 2 ¬ π 1 0 ( 0 | 1 ) n - 1 n 2¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n1n2¬ π 1 1 ( 0 | 1 ) n - 1 n 3n1¬π11(0|1)n1n3¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , x 3 ) ¬ π 1 10 11n2¬π1(¬π1(x1,x2),x3). Les seules entrées que les circuits ne peuvent pas accepter sont alors ou ; déterminer si une porte supplémentaire les accepte est trivial. Ainsi, OPSAT est facile pour les négations des projections.¬π11011

  5. PARITÉ et ÉGALITÉ . Considérons la porte . L'ensemble de portes ne peut évidemment être satisfait précisément que par des chaînes avec un nombre impair de 1; nous considérons l'avantage d'ajouter toute autre porte.G = { PARITÉ } x { 0 , 1 } nPARITY(x,y)=(x¬y)(¬xy)G={PARITY}x{0,1}n

    • Tout ensemble de portes qui contient à la fois et ou peut simuler des circuits qui contiennent des portes ou (respectivement) pour les entrées fixes, qui sont cas faciles d' OPSAT .PARITYNOR ( x , y ) = ¬ ( x y ) OU NANDANDNOR(x,y)=¬(xy)ORNAND
    • Soit ou peut être utilisé pour simuler ou sur des sous-chaînes de deux bits de parité paire, afin que nous puissions réduire les ensembles de portes avec ces portes et au cas précédent.π 2 ( x , y ) = y ET LA PARITÉ NORπ1(x,y)=xπ2(x,y)=yANDNORPARITY
    • ÉGALE = ¬ PARITÉPARITY avec est tautologue.EQUAL=¬PARITY
    • Si nous avec la porte , nous pouvons accepter n'importe quelle chaîne de parité paire à l'exception de en appliquant à une sous- chaîne de puis appliquer un circuit au reste. De même, avec peut accepter n'importe quelle chaîne sauf celles de la forme . En complétant avec et nous pouvons construire des circuits qui acceptent toutes les entrées sauf etG 01 = ¬ x y x ( 11 ) 0 G 01 01 x PARITÉ PARITÉ G 10 = x ¬ y x 0 ( 11 ) PARITYG01=¬xyx(11)0G0101xPARITYPARITYG10=x¬yx0(11)G 01 G 10 x 0 x = 11PARITYG01G10x0x=11 .
    • Enfin, si nous avec la porte constante , nous pouvons accepter n'importe quelle entrée à l'exception de ou en appliquant une porte à une sous-chaîne ou , se réduisant au cas de parité impaire. Z ( x , y ) = 0PARITYZ(x,y)=0 x 0 G 01 10x(11)x0G0110

    Ainsi, OPSAT est facile pour tout contenant . Une analyse similaire s'applique pour la porte comme pour la porte : parce que , circuits des portes comptent essentiellement la parité du nombre de s dans l'entrée. On peut alors réduire l'analyse de à celle de en échangeant et .PARITÉ ÉGALE PARITÉ ÉGALE ( x , y ) = ¬ PARITÉ ( x , y ) = ¬ PARITÉ ( ¬ x , ¬ yGPARITY

    EQUALPARITYÉGALE 0 ÉGALE PARITÉ 0 1EQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUALPARITY01

  6. Portes de projection. Les portes et , prises , ne peuvent construire que des circuits qui acceptent des chaînes commençant ou se terminant par , respectivement. Considérez l'effet de l'augmentation de la porte avec toute autre porte (une analyse similaire vaut pour ):π1(x,y)=x1 π 1 π 2π2(x,y)=y1π1π2

    • Permettre à la fois et permet la construction d'un circuit de "sélection", qui sort simplement n'importe quel bit unique de l'entrée; ceux-ci peuvent accepter n'importe quel , et les compléter avec n'importe quelle porte pour laquelle permet de construire un circuit satisfait pour tout .π 2π1π2 G G ( 0 , 0 ) = 1 xx0nGG(0,0)=1x
    • Si nous avec ou , nous pouvons simuler soit soit une porte de type implication pour des entrées fixes; OPSAT est résolu pour ces deux cas.NOR G 01 = ¬ x y OUπ1NORG01=¬xyOR
    • Si nous par , , la porte constante , ou toute combinaison d'entre eux, nous n'obtenons pas de puissance d'acceptation supplémentaire, de sorte que nous ne peut toujours accepter que des chaînes commençant par .ETπ1ANDZ ( x , y ) = 0 1G10=x¬yZ(x,y)=01

    Ainsi, pour toute autre porte avec laquelle nous pouvons compléter (ou ), nous obtenons soit un ensemble tautologue, aucun pouvoir d'acceptation supplémentaire sur simplement (ou ), ou nous réduire à un cas simple antérieur d' OPSAT . Ensuite, toute instance d' OPSAT avec ou est facile.π 2 π 1π1π2π1π 1G π 2Gπ2π1Gπ2G

  7. Portes à fonction delta. Considérez les portes à deux bits pour lesquelles il n'y a qu'une seule entrée qui les satisfait: , , , et . Les circuits réalisés uniquement avec des portes ne peuvent accepter que la chaîne : les compléter avec toute autre porte à fonction delta leur permet de simuler soit , ou , qui sont des cas résolus; des remarques similaires s'appliquent à . De même, le jeu de portes peut également être utilisé pour simuler leNI G 10 ( x , y ) = x ¬ y G 01 ( x , y ) = ¬ x y ET 1 ÉGAL π 1 π 2 NOR { G 01 , G 10 } PARITÉ G 10 G 01 Z ( x , y ) = 0 G 10 G 01ANDNORG10(x,y)=x¬yG01(x,y)=¬xyAND1EQUALπ1π2NOR{G01,G10}PARITYporte. On peut donc se concentrer soit sur la porte soit sur , éventuellement complétée par la porte . Nous nous concentrons sur , le cas de étant similaire. Des circuits constitués uniquement de peuvent être construits pour accepter , à l'exception de la chaîne , en appliquant un circuit arbitraire aux derniers bits, puis en appliquant le circuit . Clairement, la chaîne ne peut pas être acceptée par ou par ; et nous pouvons montrer par induction que toutG10G01Z(x,y)=0G10G01

    1 ( 0 | 1 ) n - 1 11 nG101(0|1)n111G 10 ( x 1 , G 10 ( x 2 , x 3 ) ) 11 G 10 Z G 10 1 Z Gn2G10(x1,G10(x2,x3))11G10ZG10Le circuit qui accepte une chaîne doit avoir des résultats intermédiaires des portes dans la branche la plus à gauche donnant tous , jusqu'à l'entrée la plus à gauche elle-même. Aucun avantage supplémentaire n'est obtenu en ajoutant portesPar conséquent, les circuits ne peuvent accepter que .1Z x1(0 | 10 | 11)(0 | 1 ) G10x1(0|10|11)(0|1)

  8. Enfin, les circuits composés uniquement de portes n'acceptent aucune entrée.Z

Comme chaque porte donne naissance à une classe bien définie et généralement assez grand nombre d'entrées qui accepte, avec des portes supplémentaires ayant tendance à banaliser le problème, nous constatons que 2-TREE-montre - terminal est en P .


1
@DSounders: par rapport à votre récente révision du problème pour déterminer s'il existe un circuit qui mappe à une valeur cible , plutôt que juste le cas spécial , le même l'analyse comme dans ma réponse actuelle suffit encore à montrer que le problème est en P ; seuls les rôles des portes changent. Par exemple, en échangeant les résultats souhaités et , nous échangeons efficacement les rôles de AND et OR , NAND et NOR , les portes de type implication avec les autres fonctions delta, etc.x b { 0 , 1 } b = 1 0 1Cx b{0,1}b=101
Niel de Beaudrap
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.