En una fórmula CNF de lectura dos veces opuesta, cada variable aparece dos veces, una vez positiva y otra negativa.
Estoy interesado en el problema , que consiste en calcular la paridad del número de asignaciones satisfactorias de una fórmula CNF de lectura dos veces opuesta.
No pude encontrar ninguna referencia sobre la complejidad de tal problema. Lo más cercano que pude encontrar es que la versión de conteo es # P -completa (consulte la sección 6.3 de este documento ).
Gracias de antemano por tu ayuda.
Actualización 10 de abril de 2016
- En este documento , se muestra que el problema es ⊕ P- completo, sin embargo, la fórmula producida por la reducción de 3 SAT no está en CNF, y tan pronto como intentas convertirlo nuevamente en CNF obtienes un Fórmula de lectura tres veces.
- La versión monótona se muestra como ⊕ P -completa en este documento . En dicho documento, ⊕ Rtw-Opp-CNF se menciona rápidamente al final de la sección 4: Valiant dice que está degenerado. No me queda claro qué significa exactamente ser degenerado, ni qué implica en términos de dureza.
Actualización 12 de abril de 2016
También sería muy interesante saber si alguien ha estudiado alguna vez la complejidad del problema . Dada una fórmula CNF de lectura dos veces opuesta, dicho problema requiere calcular la diferencia entre el número de asignaciones satisfactorias que tienen un número impar de variables establecidas en verdadero y el número de asignaciones satisfactorias que tienen un número par de variables establecidas en verdadero. No he encontrado ninguna literatura al respecto.
Actualización 29 de mayo de 2016
Como señaló Emil Jeřábek en su comentario, no es cierto que Valiant haya dicho que el problema es degenerado. Solo dijo que una versión más restringida de ese problema, ⊕ Pl-Rtw-Opp-3CNF , es degenerada. Mientras tanto, sigo sin saber qué significa exactamente degenerar, pero al menos ahora parece claro que es sinónimo de falta de poder expresivo.
fuente
Respuestas:
Resulta que cada fórmula de lectura doble opuesta tiene un número par de tareas satisfactorias. Aquí hay una buena prueba de ello, aunque probablemente se podría eliminar la terminología de la teoría de grafos.
Sea una fórmula CNF de lectura opuesta dos veces. Sin pérdida de generalidad, ninguna cláusula contiene tanto una variable como su negación.ϕ
Considere el gráfico cuyo conjunto de vértices son las cláusulas de ϕ , y para cada variable x , agregamos un borde (no dirigido) que incide en las dos cláusulas que contienen x . Nuestra suposición de WLOG en ϕ dice que este gráfico no tiene bucles automáticos. Además, piense en etiquetar cada borde por la variable que lo define; De esta manera podemos distinguir entre aristas paralelas.G ϕ x x ϕ
Una orientación de es un gráfico dirigido cuyos bordes están formados mediante la asignación de una dirección a cada borde en G . Llame a una orientación de G admisible si cada vértice de G tiene un borde saliente. Es fácil ver que satisfagan las asignaciones a φ están en correspondencia biyectiva con las orientaciones admisibles de G .G G G G ϕ G
Ahora afirmo que el número de orientaciones admisibles de es par. El argumento es "por involución": construyo un mapa Φ con las siguientes propiedades:G Φ
Una vez que estos se establecen, podemos observar que las órbitas de tienen un tamaño de 2 y una partición de las orientaciones admisibles de G . De ello se deduce que el número de orientaciones admisibles es par.Φ G
Para definir , deje que → G sea una orientación admisible y considere dividir → G en sus componentes fuertemente conectados. Sends luego envía → G a la orientación formada al invertir todos los bordes dentro de los componentes fuertemente conectados. Las propiedades se verifican directamente:Φ G⃗ G⃗ Φ G⃗
fuente
No estoy seguro de si mi idea es comprensible, así que explicaré el ejemplo de Giorgio:
Primero necesito cambiar esto en el formulario DNF:
Esto debería dar la misma respuesta. Y no importa si calculo el número de soluciones del módulo 2 para esto:
o para esto:
Así que elijo el segundo. Tengo implicantes:
Ahora estoy construyendo un sistema de ecuaciones:
fuente
1) tiene todas las variables,
2) cada variable ocurre exactamente una (si la variable ocurre dos veces, entonces tenemos positivo y negativo en un implicante, por lo que esto dará como 0).
fuente