En particular, no imponemos una estructura particular en los circuitos (aparte de ser árboles binarios), no permitimos el despliegue (por lo que cada bit de se usa solo una vez), y las puertas pueden ser asimétricas. Al permitir solo compuertas de dos bits, excluyo la compuerta NOT (pero que puede simularse teniendo múltiples compuertas que están relacionadas entre sí por negaciones, como AND / NAND ; y también excluyo compuertas que simplemente generan constantes sin entradas , de modo que el número de compuertas en el circuito de hecho siempre será para una entrada de bits. En aras de la brevedad, me referiré a 2-TREE-OPSAT a continuación simplemente como OPSATx n - 1 nCxn−1n; aunque el análisis del problema puede ser mucho más difícil para los circuitos que permiten puertas de entrada k arbitrarias ( k-TREE-OPSAT ) o que permiten el despliegue (que podríamos llamar k-FANOUT-OPSAT ).
Para una elección fija de , el problema de elegir un árbol adecuado con puertas adecuadas no es diferente de una disyunción lógica: usar equivalencias como
podemos realizar reducciones entre colecciones que relacionan conjuntos de compuertas más complicados con conjuntos de compuertas simples (y potentes); a puede hablar de que un conjunto de compuerta puede emular otras compuertas que no pertenecen al conjunto, eligiendo sabiamente algún elemento de que tenga el mismo efecto (cuando se presenta con una entrada particular) como una compuerta . En particular, ciertas combinaciones de compuertas (como ) pueden simular la función constante que producex∈{0,1}n
Procedemos considerando conjuntos de compuertas que incluyen diferentes tipos de compuertas , más tarde excluyendo esas compuertas de casos posteriores del análisis, para mostrar que los conjuntos de compuertas que involucran a cualquiera de las compuertas conducen a un problema tratable. Procederemos en el orden del número de cadenas de dos bits que satisfacen la puerta en cuestión, comenzando desde la puerta constante hasta la puerta constante .G10
Para cualquier conjunto de compuerta que contenga la compuerta constante , simplemente podemos construir un circuito utilizando esa compuerta sola, en cuyo caso acepta cualquier .GG(x,y)=1CCx
O y NAND. Para cualquier conjunto de compuerta que contenga : si todas las demás compuertas satisfacen , entonces no hay ventaja en elegir otra compuerta pero en la construcción del circuito . Un circuito de solo puertas acepta cualquier cadena excepto . De lo contrario, existe una puerta tal que es tautóloga. Entonces, cualquier instancia de OPSAT con es fácil; y observaciones similares se aplican para .GORG∈GG(x,y)⟹OR(x,y)ORCORx∈0∗G∈G{G,OR}OR∈GNAND∈G
Puertas de implicación. Considere la puerta , que solo genera cero si . Para lo que sigue, se aplicará un análisis similar para la puerta .
Considere cualquier cadena . Si termina en , descomponga en subcadenas de la forma ; en cada uno de estos , aplicamos recursivamente de derecha a izquierda, lo que produce la salida para cada . (Para una subcadena de longitud 1, usamos el circuito trivial, es decir, dejamos esa entrada sola). De manera similar, siG(x,y)=¬x∨y(x,y)=(1,0)G′(x,y)=x∨¬y
x∈{0,1}nx0xwj=1∗0wjG0wjx termina en , descompone en subcadenas de la forma , y aplica recursivamente de izquierda a derecha en cada , lo que produce la salida para cada . Así, podemos reducir el problema a la construcción de circuitos que están satisfechos, ya sea por o , donde es el número de subseries o . Para , podemos aceptar ya sea usando puertas aplicando de forma recursiva de izquierda a derecha. Esto solo deja el caso1xwj=0∗1Gwj1wj0m1mm1∗00∗1m⩾2GGm=1 , para el cual el caso problemático son entradas . Para , cualquier circuito que consista solo en compuertas solo producirá cadenas más cortas de la forma , en última instancia, arrojará la cadena de un solo bit : de modo que ningún circuito de compuertas pueda satisfacerse esta entrada Si también hay una puerta para la cual , entonces es tautóloga; o, si hay una puerta para la cual , podemos reducir las cadenas de la formax∈1∗0
x=1∗0G1∗00GH∈GH(1,0)=1{G,H}H∈GH(1,1)=011∗0a cadenas de la forma , aplicando a los primeros dos bits de . De lo contrario, no se puede construir un circuito que acepte .
Por lo tanto, para cualquier gate-set que contenga una compuerta de implicación, OPSAT es fácil.(1∗0)∗Hxx∈1∗0
G
Negaciones de proyecciones. Considere las puertas y . Consideramos , el análisis con es similar. Por sí solo, puede aceptar cualquier cadena en para al reducir los bits finales a un solo bit y luego aplicar ; y puede aceptar de manera similar para reduciendo los bits finales a un solo bit y luego aplicando el circuito¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n−1n⩾2n−1¬π11(0|1)n−1n⩾3n−2¬π1(¬π1(x1,x2),x3). Las únicas entradas que los circuitos no pueden aceptar son entonces u ; determinar si alguna puerta suplementaria los acepta es trivial. Por lo tanto, OPSAT es fácil para las negaciones de proyecciones.¬π11011
PARIDAD E IGUALDAD . Considere la puerta . El conjunto de puertas obviamente solo puede satisfacerse con precisión mediante cadenas con un número impar de 1s; Consideramos el beneficio de agregar cualquier otra puerta.PARITY(x,y)=(x∨¬y)∧(¬x∨y)G={PARITY}x∈{0,1}n
- Cualquier conjunto de compuertas que contenga tanto como o
puede simular circuitos que contienen
compuertas o (respectivamente) para entradas fijas, que son casos fáciles de OPSAT .PARITYANDNOR(x,y)=¬(x∨y)ORNAND
- Se puede usar o para simular o en subcadenas de dos bits de paridad par, para que podamos reducir los conjuntos de puertas con estos puertas y al caso anterior.π1(x,y)=xπ2(x,y)=yANDNORPARITY
- PARITY junto con es tautólogo.EQUAL=¬PARITY
- Si complementamos con la puerta , podemos aceptar cualquier cadena de paridad par excepto aplicando a una subcadena de y luego aplica un circuito al resto. De manera similar, junto con puede aceptar cualquier cadena excepto las de la forma . Complementar con y nos permite construir circuitos que aceptan todas las entradas excepto yPARITYG01=¬x∧yx∈(11)∗0∗G0101xPARITYPARITYG10=x∧¬yx∈0∗(11)∗PARITYG01G10x∈0∗x=11 .
- Finalmente, si complementamos con la puerta constante , podemos aceptar cualquier entrada, excepto o aplicando una puerta a una subcadena o , que se reduce al caso de paridad impar.PARITYZ(x,y)=0x∈(11)∗x∈0∗G0110
Por lo tanto, OPSAT es fácil para cualquier contenga . Se aplica un análisis similar para la puerta como para la puerta : porque , circuitos Las puertas de cuentan esencialmente la paridad del número de s en la entrada. Entonces podemos reducir el análisis para al de intercambiando y .GPARITY
EQUALPARITYEQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUALPARITY01
Puertas de proyección. Las puertas y , tomadas solas, solo pueden construir circuitos que acepten cadenas que comiencen o terminen en , respectivamente. Considere el efecto de aumentar la puerta con cualquier otra puerta (un análisis similar es válido para ):π1(x,y)=xπ2(x,y)=y1π1π2
- Permitir tanto como permite la construcción de un circuito de "selección", que simplemente emite cualquier bit desde la entrada; estos pueden aceptar cualquier , y complementarlos con cualquier puerta para la cual permite construir un circuito satisfecho para cualquier .π1π2x≠0nGG(0,0)=1x
- Si complementamos con o , podemos simular o una puerta de tipo implicación para entradas fijas; OPSAT está resuelto para ambos casos.π1NORG01=¬x∧yOR
- Si complementamos con , , la puerta constante , o cualquier combinación de ellas, no obtendremos poder de aceptación adicional, de modo que todavía solo puede aceptar cadenas que comiencen con .π1ANDG10=x∧¬yZ(x,y)=01
Por lo tanto, para cualquier otra puerta con la que podamos complementar (o ), obtenemos un conjunto , no obtenemos poder de aceptación adicional sobre solo (o ), o podemos reducirlo a un caso fácil anterior de OPSAT . Entonces, cualquier instancia de OPSAT con o es fácil.π1π2π1π2π1∈Gπ2∈G
Puertas con función Delta. Considere las compuertas de dos bits para las cuales solo hay una entrada que las satisface: , , , y . Los circuitos hechos solo con compuertas solo pueden aceptar la cadena : complementarlos con cualquier otra compuerta de función delta les permite simular , o , que son casos resueltos; observaciones similares se aplican a . Además, el conjunto de puertas se puede utilizar para simular también laANDNORG10(x,y)=x∧¬yG01(x,y)=¬x∧yAND1∗EQUALπ1π2NOR{G01,G10}PARITYportón. Por lo tanto, podemos centrarnos en la puerta o , posiblemente complementada con la puerta . Nos centramos en , siendo el caso de similar. Los circuitos hechos de solo se pueden construir para aceptar , excepto para la cadena , aplicando un circuito arbitrario a los bits finales y luego aplicando el circuito . Claramente, la cadena no puede ser aceptada por o por ; y podemos demostrar por inducción que cualquierG10G01Z(x,y)=0G10G01
G101(0|1)n−111n−2G10(x1,G10(x2,x3))11G10ZG10El circuito que acepta una cadena debe tener resultados intermedios de las compuertas en la rama más a la izquierda, todos con un , hasta la entrada más a la izquierda. No se obtienen beneficios adicionales al agregar puertasPor lo tanto, los circuitos solo pueden aceptar .1ZG10x∈1(0|10|11)(0|1)∗
Finalmente, los circuitos compuestos solo por puertas no aceptan entradas.Z
Como cada puerta da lugar a una clase de entradas bien definida y, en general bastante grandes que acepta, con puertas adicionales que tienden a trivializar el problema, nos encontramos con que 2-ÁRBOL-OPSAT está en P .