You are on page 1of 20

Otros problemas NP-completos

Notaci
on: si L es completo para C, decimos que L es C-completo.
C
omo podemos demostrar que un problema L es NP-completo?
- Nos basta con demostrar que L NP y que existe una
reducci
on polinomial de SAT a L.
Antes de utilizar esta tecnica tenemos que pensar que versi
on de
SAT usar.
- En general es m
as facil utilizar formulas en alguna forma
normal.
65

Otros problemas NP-completos

Una versi
on de SAT muy u
til:
CNF-SAT = { | es una formula en CNF y es satisfacible}.

Es CNF-SAT NP-completo?
- Podemos modificar la demostracion del Teorema de Cook para
mostrar esto.
Teorema: CNF-SAT es NP-completo.

66

Otros problemas NP-completos

Ahora podemos usar la idea inicial para mostrar que otros


problemas son NP-completos.
Algunos ejemplos:
- 3-CNF-SAT = { | es una f
ormula en CNF que contiene tres
literales por cl
ausula y es satisfacible}.
- 3-COL = {G | G es una grafo 3-coloreable}.
- PRO-ENT = {(A, ~b) | A es una matriz de enteros, ~b es un vector de
enteros y existe un vector de enteros ~
x tal que A~
x ~b}.
67

Conjetura de Cook

Conjetura de Cook: PTIME ( NP.


- No existe un algoritmo eficiente para resolver SAT.
- Tampoco existen algoritmos eficientes para resolver ninguno de
los problemas NP-completos.
Cu
an fundamental es este problema?

68

Conjetura de Cook

Desde la p
agina del Clay Mathematics Institute:
In order to celebrate mathematics in the new millennium, The Clay
Mathematics Institute of Cambridge, Massachusetts (CMI) has named
seven Prize Problems. The Scientific Advisory Board of CMI selected
these problems, focusing on important classic questions that have resisted solution over the years. The Board of Directors of CMI designated a
$7 million prize fund for the solution to these problems, with $1 million
allocated to each.

69

Conjetura de Cook
Uno de los siete problemas es PTIME versus NP:
Suppose that you are organizing housing accommodations for a group
of four hundred university students. Space is limited and only one hundred of the students will receive places in the dormitory. To complicate
matters, the Dean has provided you with a list of pairs of incompatible students, and requested that no pair from this list appear in your
final choice. This is an example of what computer scientists call an
NP-problem, since it is easy to check if a given choice of one hundred
students proposed by a coworker is satisfactory ..., however the task
of generating such a list from scratch seems to be so hard as to be
completely impractical ...
Ejercicio: Muestre que el problema mencionado en este p
arrafo es
NP-completo.
70

Que hacer con un problema NP-completo


Que hacemos si tenemos que solucionar un problema NP-completo?
- Existen casos que no vamos a ser capaces de solucionar.
- Pero, Que pasa en la practica?
Dado un problema NP-completo:
- Nos gustara encontrar casos que puedan ser solucionados
eficientemente y que sean interesantes en la practica.
Ejemplo: 3-COL es NP-completo pero 2-COL puede ser solucionado
eficientemente.
Vamos a ver dos casos en los que SAT puede ser resuelto eficientemente:
2-CNF-SAT y Cl
ausulas de Horn.
71

La complejidad de 2-CNF-SAT
Sea 2-CNF-SAT = { | es una f
ormula en CNF que contiene dos
literales por cl
ausula y es satisfacible}.
Teorema: 2-CNF-SAT puede ser solucionado eficientemente.
Demostraci
on: Sea una f
ormula en CNF que contiene dos literales
por cl
ausula. Asuma que menciona las variables proposicionales x1 ,
. . ., xn .
Sea G = (N, A) un grafo construido de la siguiente forma:
- N = {x1 , . . . , xn , x1 , . . . , xn }.
- Para cada cl
ausula C = l1 l2 en , A contiene los arcos (l1 , l2 ) y
(l2 , l1 ).
N
otese que este grafo es dirigido.
72

La complejidad de 2-CNF-SAT

Por ejemplo, si = (x1 x2 ) (x1 x3 ) (x2 x3 ), entonces


G es el siguiente grafo:
x1

x1

x2

x2

x3

x3

73

La complejidad de 2-CNF-SAT

Por que construimos G ? Cual es la relacion entre y G ?


Vamos a demostrar que es satisfacible si y solo si no existe un
nodo xi tal que xi es alcanzable desde xi y xi es alcanzable desde
xi en G .
Por que nos sirve esta propiedad?
- Porque se puede verificar en tiempo polinomial (c
omo?).

74

La complejidad de 2-CNF-SAT
() Por contradicci
on: Suponga que es satisfacible y existe xi tal que
xi es alcanzable desde xi y xi es alcanzable desde xi en G .
Sea una valuaci
on tal que () = 1.
Consideramos (xi ) = 1. El otro caso se resuelve de la misma forma.
Como xi es alcanzable desde xi en G : Existe un camino l1 , . . . , lk en
G tal que k 2, l1 = xi y lk = xi .
Como (xi ) = 0: Existe j [1, k 1] tal que (lj ) = 1 y (lj+1 ) = 0.
Como (lj , lj+1 ) A: (lj lj+1 ) o (lj+1 lj ) es una cl
ausula en .
Pero: no satisface a ninguna de estas cl
ausulas, por lo que () = 0,
una contradicci
on.
75

La complejidad de 2-CNF-SAT
() Suponga que para todo i [1, n]: xi no es alcanzable desde xi o
xi no es alcanzable desde xi en G .
on tal que () = 1:
Usamos G para construir una valuaci
Sea V = {x1 , . . . , xn , x1 , . . . , xn }
Mientras V 6=
elija li V tal que li no es alcanzable desde li en G
V := V \ {li , li }
(li ) := 1
Para todo lj tal que lj es alcanzable desde li en G
V := V \ {lj , lj }
(lj ) := 1

76

La complejidad de 2-CNF-SAT
Primero tenemos que demostrar que est
a bien definida:
- asigna un valor de verdad a cada variable xi .
- No existe una variable xi tal que el procedimiento asigna 1 tanto a
xi como a xi .
Es claro que el primer punto se cumple (por que?).
Segundo punto: Por contradicci
on, asuma que existe xi tal que el
procedimiento asigna 1 tanto a xi como a xi .
Entonces existen literales l y l0 tales que:
- l y l0 fueron elegidos en la tercera linea del procedimiento.
- Existe un camino l1 , . . ., lj en G tal que j 1, l1 = l y lj = xi .
- Existe un camino l10 , . . ., lk0 en G tal que k 1, l10 = l0 y lk0 = xi .
77

La complejidad de 2-CNF-SAT
Supongamos que l0 fue elegido primero.
Como lj , . . . , l1 es un camino en G desde xi a
l: Existe un camino en
G desde l0 a
l.
Como l0 fue elegido primero: el procedimiento asigna 1 a (
l) y remueve
tanto l como
l desde V .
Por lo tanto: l no es elegido y (l) = 0, una contradicci
on.

Para terminar la demostraci


on, tenemos que mostrar que () = 1.
- Sea C = l1 l2 una cl
ausula en . Tenemos que demostrar que
(C) = 1.
78

La complejidad de 2-CNF-SAT

Como (l1 l2 ) es una cl


ausula en : (l1 , l2 ) es un arco en G .

Para cada arco (l, l0 ) en G , el procedimiento:


- asigna 0 a (l) y (l0 ) o
- asigna 0 a (l) y 1 a (l0 ) o
- asigna 1 a (l) y (l0 ).
Por lo tanto: En los dos primeros casos (l1 ) = 1, y en el u
ltimo caso
(l2 ) = 1.
En cualquiera de los tres casos, (l1 l2 ) = 1.
79

Clausulas de Horn

Notaci
on: p es un literal positivo y p es un literal negativo.
Una clausula C es de Horn si C contiene a lo mas un literal
positivo.
Ejemplos:
p q r,

p,

q r,

q.

Por que son interesantes las clausulas de Horn?


80

Conocimiento definitivo

Una f
ormula (p q) r expresa conocimiento definitivo:
- Si sabemos que p y q son verdaderos, entonces tambien sabemos que
r es verdadero.

En cambio, una f
ormula (p q) (r s) no expresa conocimiento
definitivo:
- Si sabemos que p y q son verdaderos, no podemos concluir que r es
verdadero ni tampoco podemos concluir que s es verdadero, s
olo
podemos concluir que alguno de los dos es verdadero.
- Esta f
ormula expresa conocimiento disyuntivo.
81

Conocimiento definitivo

La cl
ausulas de Horn corresponden al siguiente tipo de reglas que
expresan conocimiento definitivo:
- q.
- q.
- (p1 pn ) q.
- (p1 pn ) q.
En muchos casos es posible modelar el dominio de aplicacion
usando s
olo este tipo de reglas.
82

La complejidad de HORN-SAT

Sea HORN-SAT = { | es una conjuncion de clausulas de Horn y


es satisfacible}.

Teorema: HORN-SAT puede ser solucionado eficientemente.

Ejercicio: Demuestre el teorema.

83

La complejidad de NEG-HORN-SAT

C es una clausula de Horn negativa si C contiene a lo m


as un
literal negativo.

Sea NEG-HORN-SAT = { | es una conjuncion de cl


ausulas de
Horn negativas y es satisfacible}.

Ejercicio: Demuestre que NEG-HORN-SAT puede ser solucionado


eficientemente.

84

You might also like