(Si conoces los fundamentos de la informática teórica, puedes saltar inmediatamente al cuadro oscuro de abajo. Pensé en tratar de explicar mi pregunta muy cuidadosamente, para maximizar el número de personas que la entiendan).
Decimos que un Fórmula booleana es una fórmula propositiva sobre algunas variables 0-1 x1,…,xnx1,…,xn que involucran conecciones AND y OR, donde los átomos son literales que son ejemplos de xixi o ¬xi¬xi para algunos ii . Es decir, una fórmula booleana es una fórmula "monótona" sobre la 2n2n átomos x1,…,xn,¬x1,…,¬xnx1,…,xn,¬x1,…,¬xn . Por ejemplo, ((¬x1 OR x2) AND (¬x2 OR x1)) OR x3((¬x1 OR x2) AND (¬x2 OR x1)) OR x3 es una fórmula booleana que expresa que o bien x1x1 y x2x2 toman el mismo valor, o x3x3 debe ser 11 . Decimos que una asignación de 0-1 a las variables de una fórmula es satisfactoria si la fórmula evalúa a 11 en la misión.
El teorema de Cook-Levin dice que el general la satisfacción de las fórmulas booleanas El problema es NPNP -completo: dada una fórmula arbitraria, es NPNP - es difícil encontrar un trabajo satisfactorio para él. De hecho, incluso las satisfactorias fórmulas booleanas donde cada variable xixi aparece como máximo tres veces en la fórmula es NPNP - completo. (Aquí hay una reducción del caso general a este caso: Supongamos que una variable xx aparece k>3k>3 veces. Reemplazar cada una de sus ocurrencias con nuevas variables frescas x1,x2,…,xkx1,x2,…,xk y limitar estos kk variables para que todas tomen el mismo valor, al ANDar la fórmula con (¬x1 OR x2) AND (¬x2 OR x3) AND ⋯ AND (¬xk−1 OR xk) AND (¬xk OR x1).(¬x1 OR x2) AND (¬x2 OR x3) AND ⋯ AND (¬xk−1 OR xk) AND (¬xk OR x1). El número total de ocurrencias de cada variable xjxj es ahora tres.) Por otra parte, si cada variable aparece sólo una vez en la fórmula, entonces el algoritmo de satisfacción es muy fácil: ya que tenemos una fórmula monótona en x1,…,xn,¬x1,…,¬xnx1,…,xn,¬x1,…,¬xn nos pusimos xixi a 00 si ¬xi¬xi aparece, de lo contrario fijamos xixi a 11 . Si esta asignación no consigue que la fórmula salga 11 entonces ninguna asignación lo hará.
Mi pregunta es, supongamos que cada variable aparece como máximo dos veces en una fórmula booleana general. ¿Es el problema de satisfacción para esta clase de fórmulas NPNP -completo, o solucionable en tiempo de polinomio?
Para aclarar más, aquí hay un ejemplo del problema: ((x1 AND x3) OR (x2 AND x4 AND x5)) AND (¬x1 OR ¬x4) AND (¬x2 OR (¬x3 AND ¬x5))((x1 AND x3) OR (x2 AND x4 AND x5)) AND (¬x1 OR ¬x4) AND (¬x2 OR (¬x3 AND ¬x5))
Nótese que cuando restringimos la clase de fórmulas más a la forma normal conjuntiva (es decir, un circuito de profundidad-2, un Y de O de literales) entonces este problema de "a lo sumo dos veces" se sabe que es solucionable en tiempo polinómico. De hecho, la aplicación de la "regla de resolución" repetidamente funcionará. Pero no está claro (al menos, no para mí) cómo extender la resolución para la clase de fórmulas generales para obtener un algoritmo de politono. Obsérvese que cuando reducimos una fórmula a la forma normal conjuntiva de la manera habitual, esta reducción introduce variables con tres ocurrencias. Por lo tanto, parece plausible que tal vez se pueda codificar un NPNP -problema completo en la estructura adicional proporcionada por una fórmula, incluso una con sólo dos ocurrencias por variable.
Creo que el problema es que el tiempo de polinomios es solucionable. Estoy muy sorprendido de no haber encontrado una referencia a este problema en la literatura. Tal vez no estoy buscando en los lugares correctos.
ACTUALIZACIÓN: Por favor, piense en el problema antes de mirar abajo. La respuesta es sorprendentemente simple.