¿El SAT 1 en 3 permanece NP-duro incluso si todas las variables ocurren tanto positiva como negativamente?


9

El problema estándar 1-en-3 SAT (o XSAT o X3SAT) es:
Instancia : una fórmula CNF con cada cláusula que contiene exactamente 3 literales
Pregunta : ¿existe una asignación satisfactoria que establezca exactamente 1 literal por cláusula verdadera?

El problema es NP-completo y sigue siendo difícil incluso si no se produce una variable negada. Me pregunto si este problema se vuelve fácil o difícil si se requiere que cada variable ocurra al menos una vez de manera positiva y al menos una vez de manera negativa .

La reducción habitual de 3SAT que muestra que 1-en-3 SAT es difícil reemplaza una cláusula por cláusulas , , donde son frescas para cada cláusula. Por lo tanto, esta reducción no ayuda a responder mi pregunta. He tenido problemas para encontrar un dispositivo que muestre la dureza de esta variante, ya que si exactamente 1 literal en una cláusula es verdadero, entonces los 2 literales no simétricos son falsos. Si resulta fácil, pensar en términos de particiones del conjunto de cláusulas podría hacerlo, pero no puedo ver cómo.( ¬ x a b ) ( y b c ) ( ¬ z c d ) a , b , c , d(xyz)(¬xab)(ybc)(¬zcd)a,b,c,d


¿Se puede reducir a 2 sat?
Joshua Herman

44
pista: para cada var , agregue cláusulas y, diga, . Xi(XiX¯iW)(XiX¯iY)(XiX¯iZ)(WYZ¯)
Neal Young

Ja, eso funciona (por supuesto, agregando también ). Dejaré la pregunta abierta en caso de que alguien pueda resolverlo sin el truco . (W¯YZ)(WY¯Z)XiX¯i
Dominik Peters

3
¿Puedo animarlo a escribir una respuesta completa a su propia pregunta, tal vez basada en la idea de Neal young? (Por cierto, no estoy seguro de por qué eso es "insatisfactorio". Una reducción es una reducción).
DW

44
Si ese caso especial es el que realmente le importa, ¿entonces quizás tenga sentido editar su pregunta para reflejar esa restricción adicional?
DW

Respuestas:


2

En un comentario, OP expresó interés en una reducción que generó instancias con 3 variables distintas por cláusula. Aquí hay un enfoque simple:

La reducción es de 1 en 3 SAT con 3 variables distintas por cláusula:

  • En primer lugar, incluya todas las cláusulas en la fórmula de entrada como cláusulas en la fórmula de salida.
  • En segundo lugar, introduzca tres nuevas variables , y y agregue las siguientes tres cláusulas a la fórmula de salida: , y .F1F2F3(¬F1,F2,F3)(F1,¬F2,F3)(F1,F2,¬F3)
  • Finalmente, para cada variable en la fórmula original, introduzca una nueva variable y agregue las siguientes dos cláusulas a la fórmula de salida: y .xx(x,x,F1)(¬x,¬x,F1)

Verifiquemos que esta reducción haga lo que queremos. Las siguientes propiedades son lo que queremos:

  1. Cada cláusula siempre tiene tres variables distintas.
  2. Cada variable ocurre en alguna cláusula positivamente y en alguna cláusula negativamente.
  3. La fórmula de entrada es equivalente a la fórmula de salida.

La propiedad 1 es trivial para verificar. La propiedad 2 también es fácil de verificar: las variables , y presentan de manera positiva y negativa en las cláusulas agregadas en el segundo punto, mientras que todas las demás variables en la fórmula se presentan de manera positiva y negativa en las cláusulas agregadas en Tercera viñeta.F1F2F3

En cuanto a la propiedad 3, esto es menos trivial pero aún así fácil. Puede argumentar fácilmente que la única asignación para las variables , y que satisface cada cláusula desde el segundo punto es hacer que las tres falsas. Pero luego, suponiendo un valor de falso para , las cláusulas y agregadas en el tercer punto se satisfacen si y solo si . Como no hay otras restricciones en , esto significa que siempre es posible extender una asignación satisfactoria para la fórmula de entrada en una asignación satisfactoria para la fórmula de salida: simplemente configure cadaF1F2F3FiF1(x,x,F1)(¬x,¬x,F1)x=¬xxx será la negación de la correspondiente y establecerá cada en falso.xFi

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.