¿El problema de encontrar operadores para satisfacer una lista de variables booleanas NP está completo?


11

Esto es similar a SAT, excepto que conocemos la asignación de cada variable, pero no conocemos la asignación de ningún operador booleano. En ese caso, ¿encontrar la asignación de cada operador para que la expresión evalúe un valor booleano dado es un problema NPC?

En realidad, me preguntaba si encontrar asignación de operadores aritméticos para satisfacer una expresión aritmética entera (por ejemplo, 1 op1 3 op2 7 op3 op4 = 10) ¿NP está completo?


2
Entonces, si entendí correctamente, usted sabe que la fórmula es satisfactoria y desea conocer una asignación de los operadores booleanos. Simplemente asigne el operador a todas las "variables de operador" y ya está. No sé sobre el segundo problema, pero parece interesante.
George

3
@ GeorgeB: No creo que esa solución sea correcta. ¿Qué sucede si todos los valores booleanos se establecen en falso? Esta pregunta es interesante, pero puede necesitar un poco de trabajo. ¿De qué conjunto de operadores booleanos estamos eligiendo? Presumiblemente se refiere a un subconjunto interesante de operadores booleanos binarios como {,,} . Si incluye todos los operadores booleanos binarios, entonces el problema es trivial: simplemente elija el mapa constante como 'verdadero'.
Huck Bennett el

1
Como dijo Huck, elija para todo i . Sin embargo, si restringe los operadores a un conjunto particular, la pregunta sería más interesante. Del mismo modo para el caso aritmético. xopiy=1i
Kaveh

Parece que podría tener alguna conexión con QBF o posiblemente reducirse a él. probablemente se puede construir un QBF que, cuando se resuelve, da a los operadores. ¿Correcto? en una inspección rápida, parece que podría haber completado Pspace ... también debe definir la precedencia si no hay paréntesis. ¿Y más alto que OR? el problema parece más natural tal vez cuando se pueden definir paréntesis / agrupaciones.
vzn

@GeorgeB. Lo siento, no lo dejé claro. La evaluación de una expresión booleana puede ser cualquier valor booleano dado, ya sea 0 o 1.
DSounders

Respuestas:


10

Con la suma y la resta, creo que el problema de Partición , que es NP-hard, se reduce a su segundo problema.

Dado un conjunto creamos el problemaS={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

Si existe una solución, creamos dos conjuntos:

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

S2={si|opi1=}

Estos dos conjuntos tienen que tener la misma suma por la configuración de nuestro problema original, por lo que el problema de partición está resuelto. Esto muestra que no solo es difícil encontrar la solución real a este problema, de hecho es NP difícil determinar si existe una solución (al menos para sumar y restar).

Para un conjunto de operaciones que no permite la creación de enteros negativos, digamos multiplicación y suma, no está tan claro. Además, esto solo muestra que el problema es débilmente NP-duro; puede haber una reducción que dé un resultado más fuerte que esto.


1
Creo que su prueba se puede adaptar al caso bastante facilidad, solo establezca el problema objetivo en s 1 ... s n = 1 . Entonces, una solución implica que el denominador es el mismo que el numerador (suponiendo que s i > 0 para todo i ). Por supuesto, esto no da el caso de los cuatro operadores, pero también tendríamos que manejar el orden de las operaciones. ×/÷s1sn=1si>0i
Luke Mathieson el

Gracias, @Sam y Luke. ¿Qué pasa si mezclamos los cuatro operadores? Tener intuitivamente más operadores solo hará que el problema sea más complejo, pero no veo una prueba directa.
DSounders

Todavía estoy pensando en los cuatro. También podemos obtener fácilmente, pero todavía son solo dos a la vez. +/÷
Luke Mathieson

1
Además, una referencia para la (fuerte) -completitud de la PARTICIÓN DEL PRODUCTO: "" Partición del producto "y problemas relacionados de programación y confiabilidad de sistemas: complejidad computacional y aproximación" sciencedirect.com/science/article/pii/S0377221710003905NP
Luke Mathieson

4

Respuesta corta. La versión del operador de SAT se puede resolver de manera eficiente, al menos, si asumimos circuitos arbitrarios de puertas de dos entradas sin despliegue, sobre cualquier elección deseada de conjunto de puertas.

Respuesta larga. Asumo la siguiente forma del problema booleano:

x{0,1}nG C G x x x Cn2GCG xxxC

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 nCxn1n; 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 ).

[ Editado para agregar : podemos adaptar esto fácilmente para considerar el problema más general de la revisión actual de su pregunta, en la que intentamos asignar una dada a un valor objetivo , intercambiando los roles de y en el análisis a continuación; esto tiene el efecto de intercambiar los roles de AND y OR , NAND y NOR , etc. ] b { 0 , 1 } 0 1x{0,1}b{0,1}01

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

OR(x,y)(AND(x,y)PARITY(x,y))
GGG{OR,NAND}1: decimos que tales conjuntos de puertas son tautólogos .

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

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

  2. 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 .GORGGG(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

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

    x{0,1}nx0xwj=10wjG0wjx 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=01Gwj1wj0m1mm1001m2GGm=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 formax10

    x=10G100GHGH(1,0)=1{G,H}HGH(1,1)=0110a 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.(10)Hxx10

    G

  4. 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)n1n2n1¬π11(0|1)n1n3n2¬π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

  5. 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)(¬xy)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)=¬(xy)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=¬xyx(11)0G0101xPARITYPARITYG10=x¬yx0(11)PARITYG01G10x0x=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)x0G0110

    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

  6. 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π2x0nGG(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=¬xyOR
    • 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π1Gπ2G

  7. 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)=¬xyAND1EQUALπ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)n111n2G10(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 .1ZG10x1(0|10|11)(0|1)

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


1
@DSounders: con respecto a su reciente revisión del problema para determinar si hay un circuito que asigna a algún valor objetivo , en lugar de solo el caso especial , lo mismo El análisis como en mi respuesta actual todavía es suficiente para mostrar que el problema está en P ; solo cambian los roles de las puertas. Por ejemplo, en el intercambio de los resultados deseados y , que efectivamente intercambiar los papeles de Y y O , NAND y NOR , la implicación-como puertas con los demás delta-funciones, etc.Cx b{0,1}b=101
Niel de Beaudrap
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.