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 nCxn−1n; 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 ).
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
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
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
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 )GORG∈GOU C OU x ∈ 0 ∗ G ∈ G { G , OR } OU ∈ G NON ET ∈ GG(x,y)⟹OR(x,y)ORCORx∈0∗G∈G{G,OR}OR∈GNAND∈G
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)=¬x∨y(x,y)=(1,0)G′(x,y)=x∨¬y
x∈{0,1}nx0xw j G 0 w j x 1 x wwj=1∗0wjG0wjx 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=0∗1Gwj1wj0m 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 (1mm1∗00∗1m⩾2GGm=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 formex∈1∗0
x=1∗0G1∗00GH∈GH(1,0)=1{G,H}H∈GH(1,1)=011∗0aux 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(1∗0)∗Hxx∈1∗0
G
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)n−1n⩾2¬ π 1 1 ( 0 | 1 ) n - 1 n ⩾ 3n−1¬π11(0|1)n−1n⩾3¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , x 3 ) ¬ π 1 10 11n−2¬π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
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)∧(¬x∨y)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)=¬(x∨y)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=¬x∧yx∈(11)∗0∗G0101xPARITYPARITYG10=x∧¬yx∈0∗(11)∗G 01 G 10 x ∈ 0 ∗ x = 11PARITYG01G10x∈0∗x=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)∗x∈0∗G0110
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
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 xx≠0nGG(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=¬x∧yOR
- 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π 1 ∈ G π 2 ∈ Gπ2π1∈Gπ2∈G
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)=¬x∧yAND1∗EQUALπ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)n−111G 10 ( x 1 , G 10 ( x 2 , x 3 ) ) 11 G 10 Z G 10 1 Z Gn−2G10(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 x∈1(0 | 10 | 11)(0 | 1 ) ∗G10x∈1(0|10|11)(0|1)∗
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 .