La capacidad de satisfacción se puede lograr de la siguiente manera (reducción de 2SAT a HornSAT). Entonces también se puede reducir a una fórmula Horn de esta manera. Gracias a Joshua Gorchow por señalar esta reducción.(p∨q)
Entrada: una fórmula 2-SAT , con cláusulas C 1 , ..., C k en las variables x 1 , ..., x n .ϕC1Ckx1xn
Construya una fórmula de bocina siguiente manera:Q
Habrá 4 ( n elegir 2 ) + 2 n + 1 nuevas variables, una para cada posible×n2+2n+1
cláusula 2-cnf posible en las variables con como máximo 2 literales ( no solo las cláusulas C i en ϕ ) - esto es incluyendo cláusulas de la unidad y la cláusula de vacío .. la nueva variable correspondiente a una cláusula de D se denota por z D .xCiϕDzD
El 4 ( n elige 2 ) proviene del hecho de que cada par de ( x i , x j )
da lugar a cuatro cláusulas 2-cnf. El 2 n proviene del hecho de que cada x i×n2(xi, xj)2nxi puede crear cláusulas de 2 unidades. Y finalmente el "uno" proviene de la cláusula vacía. Entonces, el número total de posibles cláusulas 2-cnf es
4 × ( n elige 2 ) + 2 n + 1 .=×n2+2n+1
Si una cláusula 2-cnf sigue de otras dos cláusulas 2-cnf D y E en un solo paso de resolución, entonces agregamos la cláusula Horn
( z D ∧ z E → z F )
a Q ... Nuevamente, hacemos esto para todos los posibles cláusulas 2-CNF - los 4 × ( n
elegir 2 ) + 2 n + 1 de ellos - no sólo la C i .FDE(zD∧zE→zF)Q×n2+2n+1Ci
Luego agregamos las cláusulas unitarias a Q , para cada cláusula C izCiQCi
aparece en la entrada de ... Por último, se añade la cláusula unidad ( ¬ z e m p t y ) a Q .ϕ(¬zempty)Q
La fórmula Cuerno ahora está completa. Observe que las variables utilizadas en Q son completamente diferentes de las utilizadas en ϕ .QQϕ