Professional Documents
Culture Documents
Teorema 1. Si π 1 ≤P π 2 ∧ π 2 ≤P π 3 entonces π 1 ≤P π 3
Demostración:
Hipótesis: π 1 ≤P π 2 ∧ π 2 ≤P π 3
Meta: π 1 ≤P π 3
Demostración:
Por demostrar que:
a) π 1∞π 1 (reflexiva)
b) π 1∞π 2 entonces π 2 ∞π1 (simétrica)
c) π 1∞π 2 ∧ π 2 ∞π 3 entonces π 1∞π 3 (transitiva)
Meta: π 2∈NPC
Sean π 1, π 2 ∈NP, π 1∈NPC y π 1 ≤P π 2
∴ π 2∈NPC
Teorema 4. Si π ∈ NPC, entonces π ∈ P, si y sólo si, P = NP.
Demostración
(=>)
Hipótesis: π ∈ NPC ∧ π ∈ P
Meta: P =NP ( P ⊂ NP ∧ NP ⊂ P )
Sea π ∈ NPC ∧ π ∈ P y π * ⊂ NP
=>π * ≤P π (por definición de NPC)
Sean f : D * → D una función computable
tal que i ∈ Y * , sí y solo sí f (i) ∈ Y
y
g : D
→{sí, no}
tal que
i ∈ Y , sí y solo sí g (i ) ∈ sí
(<=)
Hipótesis π ∈ NPC y P = NP
Meta: π ∈ P
Demostración
Hipótesis: π 1 y π2∈ N P C
Meta: π 1∞ π2 (π 1 ≤P π 2 ∧ π 2 ≤ P π 1)
Sean π 1 y π2∈ N P C
Entonces como
π1∈ NP
=> π 1 ≤P π 2 (por definición de NPC)
4. Problemario:
1. Probar que los siguientes problemas de decisión están en NP:
3SAT, k-clique, recubrimiento de vértices (Vertex Covering VC),
recubrimiento de conjuntos (Set Covering SC).
Bibliografía
1. Computers and Intractability
Garey and Johnson
La mayor parte del temario se realizó con base en el capítulo 2 de este
libro. En particular todo el desarrollo teórico a partir de la definición de
reducción polinomial y problemas NP_completos. Este marco
axiomatizado es el que sirve de base para resolver los problemas en los
que se pide probar diferentes teoremas relativos a la NP_completez.
5. Fundamentos de la Computación
Navarro
De estas notas se toma la definición de decisión y aceptación de lenguajes
(capítulo 4), conceptos que son utilizados para definir las clases P y NP. En el
capítulo 6 se pueden encontrar la prueba de NP_completez para varios
problemas. En principio las pruebas que realiza el autor pueden servir de base
para la construcción de pruebas con base en las especificaciones del temario.
En general a las pruebas que se presentan les hace falta detallar la prueba de
que el problema esta en NP y definir detalladamente la transformación.
6. Introduction to Algorithms
Cormen, Leiserson and Rivest
Para resolver los problemas relativos a los algoritmos de búsqueda en
profundidad, en anchura, Kruskal, Prim y Dijkstra, se debe utilizar el
material de este texto relativo a algoritmos de grafos (pg. 463-532 versión
impresa) (527-598 versión electrónica)
7. Ejercicios Resueltos
Problema 3-SAT
Entrada:
Un vector de variables binarias v=(v1,v2,…vm), una función booleana
F(v)=F1(v) ^ F2(v) ^ …..^ Fn(v), en la cual las ninguna de cláusulas
disyuntivas Fi contiene más de 3 variables booleanas naturales o negadas.
Pregunta:
¿Existe una asignación de valores a las variables booleanas v, que hacen
verdadera a F(v)?.
Demostración:
3-SAT está en NP
SAT<p3-SAT
Descripción de la transformación
Si F(v)=F1(v) ^ F2(v) ^ …..^ Fn(v) es la función booleana de SAT, entonces
F’(v)=F’1(v) ^ F’2(v) ^ …..^ F’n(v) es la función booleana en 3-SAT que se
obtiene al transformar cada Fi en F’i.
Transformación de Fi en F’i.
a) Si Fi tiene a lo más 3 literales entonces en F’i =Fi.
b) Si Fi tiene mas de 3 literales
Sea Fi=x1 ∨x2 ∨ …..∨ xk con xj = vr o xj = ∼ vr r∈{1,2,…n}
Dentro de cada Fi, al menos uno de los literales xj se hace verdadero con
esta asignación.
Si se conserva dicha asignación para F’i , ahora se muestra como asignar
valores a los yl que hagan verdadera a F’i .
Problema k-clique
Entrada:
Un grafo no dirigido G=(V,E) y un entero k.
Pregunta:
¿G tiene un clique de tamaño k?
Descripción de la transformación
Sea F=F1 ^ F2 ^ …..^ Fr la función booleana de SAT.
Sean k=r y el grafo G=(V,E) definido como sigue:
V={<xi,Fj> | xi es una literal en Fj}
E={(<xi,Fj> , <ys,Ft>) |F j !=Ft and xi != ∼ ys}
Entrada:
Un grafo no dirigido G= (V, E) y un entero k.
Pregunta:
¿G tiene un recubrimiento de vértices de tamaño k?
Teorema: VC es NP-Completo.
Demostración:
VC es NP
Representación de solución candidata:
x[i] i=1,…,k
Algoritmo aleatorio de complejidad O(k) para generar una solución
candidata x :
for i=1 to k x[i] =random(1:n)
k-clique<p VC
Descripción de la transformación
Sea G=(V,E) un grafo no dirigido.
Sea el grafo G’=(V,E’) donde E’es el complemento de las aristas E.
Construidos de esta manera los grafos G y G’, un par de vértices
conectados en G no están conectados en G’ e inversamente.
Ahora los vértices de V-V’ no están conectados entre si unos con otros, ya
que si al menos dos de ellos estuvieran conectados V’ no sería un
recubrimiento de vértices de G’.
Por otra parte, como los vértices de V-V’ no están conectados en G’,
entonces todos están conectados entre sí en G.
Esto significa que V-V’ es un clique en G.
Entrada:
Dados los conjuntos S1, S2, ….., Sn y un entero k.
Pregunta:
¿Existe un recubrimiento de conjuntos de tamaño k?
Teorema: SC es NP-Completo.
Demostración:
SC es NP
Representación de solución candidata:
Matriz R[k][m]
Algoritmo aleatorio de complejidad O(km) para generar una solución
candidata R :
for i=1 to k
for j=1 to if (random()<0.5) R [i][j] =0 else R [i][j] =1
for i=1 to m
for j=1 to n
SM[i]=SM[i] OR M[i][j]
for i=1 to k
for j=1 to n
SR[i]=SR[i] OR R[i][j]
for i=1 to m
if (SM[i]!=SR[i]) Return NO
Return SI
VC<p SC
Descripción de la transformación
Sea G=(V,E) un grafo no dirigido.
Sean los conjuntos Sv={(u,v)∈E} para cada v∈V.
Para cada vértice v de G, Sv es el conjunto de todas las aristas que inciden
en v.
Se observa también que la unión de todos los conjuntos Sv, incluye todas
las aristas E de G.