Sunteți pe pagina 1din 13

Anlisis y demostracin de los problemas de Clique y TSP.

Anlisis y Diseo de Algoritmos


Maestra en Ingeniera en Sistemas Computacionales.
Instituto Tecnolgico Superior de Misantla.

Introduccin.
En teora de la complejidad computacional, la clase de complejidad NP-completo
es una clase de problemas de decisin. Un problema de decisin L es NP
completo si est en el conjunto de los problemas de NP y tambin en el conjunto
de problemas NP-duros. La abreviatura se refiere NP a "tiempo polinmico no
determinista".
Aunque cualquier solucin dada a un problema tal puede ser verificada
rpidamente, no hay forma conocida eficiente de localizar una solucin, en primer
lugar, de hecho, la caracterstica ms notable de los problemas NP-completos es
que no se conoce ninguna solucin rpida a ellos. Es decir, el tiempo requerido
para resolver el problema con cualquier algoritmo conocido actualmente aumenta
muy rpidamente como el tamao del problema crece. Esto significa que el tiempo
requerido para resolver versiones incluso moderadamente tamao de muchos de
estos problemas puede alcanzar fcilmente en los miles de millones o billones de
aos, el uso de cualquier cantidad de potencia de clculo disponible en la
actualidad. Como consecuencia, la determinacin de si es o no es posible resolver
estos problemas de manera rpida, llamada la P en funcin de problema NP, es
uno de los principales problemas no resueltos en la informtica hoy en da.
Mientras que un mtodo para el clculo de las soluciones a los problemas NPcompletos usando una cantidad de tiempo razonable sigue siendo desconocida,
los informticos y programadores todava con frecuencia encuentran problemas
NP-completos. Problemas NP-completos con frecuencia se abordan mediante el
uso de algoritmos de aproximacin.

El problema Clique.
Un clique en un grafo es un conjunto de vrtices que todos estn unidos a todos.

Problema: Clique
Entrada: Un grafo G (con vrtices V) y k

Salida: Tiene G un clique de k vrtices, es decir, existe un conjunto U de k


vrtices de G tal que cada par x,y U, existe la arista (x,y) en G?
Cuanto ms grande k ms difcil es Clique.
El problema de Conjunto Independiente y el problema del Clique tratan de
encontrar conjuntos de vrtices, el primero que no contenga aristas, el segundo
que contenga todas las aristas
Para reducir Conjunto Independiente a Clique se cambian las aristas por no aristas
y no aristas por aristas, es decir, complementar el grafo.

La reduccin anterior tarda tiempo O (n2), se puede resolver Conjunto


Independiente en el tiempo de Clique +O (n2). Se tiene una reduccin eficiente de

Conjunto Independiente a Clique. Como Conjunto Independiente es intratable


entonces Clique es intratable
Conjunto Independiente Clique
Nota: La misma reduccin (complementar el grafo) sirve para reducir Clique a
Conjunto Independiente, luego los dos problemas son equivalentes.
--------------------------------------------------------------------------------------------------------------

Dado un grafo G y un entero k, es posible encontrar un subgrafo de G completo


de tamao k?
Un clique (liga) en un grafo no dirigido G=(V,E) es un subconjunto

de

vrtices, cada par del cual est conectado por un arista en E. En otras palabras,
un clique es sub-grafo completo de G. El tamao de un clique es el nmero de
vrtices contenidos. El problema clique es el problema de optimizacin para
encontrar un clique de tamao mximo en un grafo. Como un problema de
decisin, nos preguntamos simplemente si un clique de un tamao dado k existe
en un grafo. La definicin formal es:
CLIQUE = {(G, k) : G es un grafo conteniendo un clique de tamao k}.
Un algoritmo sencillo para determinar si un grafo G=(V,E) con |V| vrtices tiene un
clique de tamao k es listar todos los k-subconjuntos de V, y verificar cada uno
para determinar si forma un clique. El tiempo de ejecucin de este algoritmo es lo
cual es polinomial si k es una constante. En general, como quiera, k podra ser
cercano |V|/2, en cual caso el algoritmo corre en tiempo super polinomial.
Ciertamente, un algoritmo eficiente para el problema clique es improbable que
exista.
Teorema. El problema clique es un problema NP-completo.
Prueba.
Para demostrar que CLIQUE NP, para un grafo dado G=(V,E), usamos el
conjunto
verificar si
par u,v

de vrtices en el clique como un certificado para G. Podemos


es un clique en tiempo polinomial comprobando ya sea, para cada
, la arista (u,v) pertenece a E.

A continuacin probaremos que 3-CNF-SAT p CLIQUE, lo cual mostrar que el


problema del clique es del tipo NP-duro.
El algoritmo de reduccin comienza con una instancia de 3-CNF-SAT. Sea
es una frmula booleana en 3-CNF con k clausulas. Para
r=1,2,,k, cada clausula C, tiene exactamente tres distintas literales
5

dentro de V. Pondremos un arista entre 2 vrtices

si ambos de los

siguientes mantienen:
son triples diferentes, esto es, r s, y
Sus literales correspondientes son consistentes, esto es,

no es la negacin de

.
Fcilmente podemos construir este grafo desde en tiempo polinomial. Como un
ejemplo de esta construccin, si tenemos:

Entonces G es el grafo mostrado en la siguiente figura.

Debemos demostrar que esta transformacin de


Primero, suponer que

en G es una reduccin.

tiene una asignacin de satisfaccin. Entonces, cada

clausula Cr contiene al menos una literal


6

que es asignado 1, y cada tal literal

corresponde a un vrtice

. Seleccionando uno semejante a literal verdadera

para cada clausula produce un conjunto V de k vrtices. Afirmamos que V es un


clique. Para cualquier de los dos vrtices
correspondientes

V, donde r s, ambas literales

mapean a 1 por la asignacin de satisfaccin, y as las

literales no pueden ser complementadas. As, para la construccin de G, la arista


(

) pertenece a E.

Inversamente, suponga que G tiene un clique V de tamao k. No aristas en G que


conecten vrtices en el mismo triple, y as V contiene exactamente un vrtice por
triple. Podemos asignar 1 a cada literal

tal que

V sin temor de asignar 1 a

ambos una literal y su complemento, desde que G contenga no aristas entre


literales inconsistentes. Cada clausula est satisfecha, y as est satisfecha.
(Cualquier variable que no corresponda a un vrtice en el clique puede ser
asignada arbitrariamente).
En el ejemplo de la figura anterior, una asignacin de satisfaccin de tiene x2=0
y x3=1. Un clique correspondiente de tamao k=3 consiste de los vrtices
correspondientes a x2 desde la primer clausula, x3 desde la segunda clausula, y
x3 desde la tercer clausula. Porque el clique contiene no vrtices correspondientes
a cualquier x1 o x1, podemos asignar x1 a cualquier 0 o 1 en esta asignacin de
satisfaccin.
Observe que en la prueba del teorema, reducimos una instancia arbitraria de 3CNF-SAT a una instancia de CLIQUE con una estructura particular. Hemos
demostrado que CLIQUE es NP-duro solamente en este caso restringido, pero
esta prueba satisface para demostrar que CLIQUE es NP-hard en grafos
generales. Porque? Si tenemos un algoritmo en tiempo polinomial que resuelve
CLIQUE en grafos generales, debera tambin resolver CLIQUE en grafos
restringidos.
El acercamiento opuesto- instancias reducidas de 3-CF-SAT con una estructura
especial para instancias generales de CLIQUE- no deberan tener satisfechas, sin
embargo. Por qu no? Quiza las instancias de 3-CNF-SAT que escogimos para
7

reducir desde fue fcil, y as que debera no ser reducido de un problema NP-duro
a CLIQUE.
Observe tambin que la reduccin usada la instancia de 3-CNF-SAT, pero no la
solucin. Habramos errado si la reduccin en tiempo polinomial se haba atenido
en saber si la frmula es satisfecha, desde no saber cmo decidir si es
satisfecha en tiempo polinomial.

El problema del viajante.


En el problema del viajante, el cual est estrechamente relacionado con el
problema del ciclo hamiltoniano, un vendedor debe visitar n ciudades. Modelando
el problema como un grafo completo con n vrtices, podemos decir que el
vendedor desea hacer un viaje, o un ciclo hamiltoniano, visitando cada ciudad
exactamente una vez y terminando en la ciudad que comenz. El vendedor
obtiene un costo no negativo entero c (i , j) para viajar de la ciudad i a la ciudad j,
y el vendedor desea hacer el viaje cuyo costo total sea mnimo, donde el costo
total es la suma de los costos individuales a lo largo del viaje.
Problema: Ciclo Hamiltoniano
Entrada: Un grafo G.
Salida: Existe un ciclo hamiltoniano en G, es decir, un camino que visita una vez
cada vrtice y vuelve al vrtice inicial?

Problema: TSP
Entrada: n el nmero de ciudades, la matriz de distancias n x n y cota superior k.
Salida: Existe un recorrido por las n ciudades y volviendo al punto de partida con
distancia total k?

Los dos problemas tratan de encontrar ciclos cortos, TSP en un grafo con pesos.
Para reducir Ciclo Hamiltoniano a TSP se tiene que convertir cada entrada de
Ciclo Hamiltoniano (un grafo) en una entrada de TSP (ciudades y distancias).

La reduccin anterior tarda tiempo O (n2) (los dos for anidados), se puede resolver
el Ciclo Hamiltoniano en O(n2) + el tiempo de TSP. Es correcta, la respuesta de
ciclo Hamiltoniano con entrada G es la misma que TSP con entrada (n, d, n):
Si G tiene un circuito hamiltoniano (vi , . . . , vn) entonces el mismo recorrido para
(n, d, n) tiene distancia total:

Si G no tiene un circuito hamiltoniano entonces (n, d, n) no tiene recorrido con


distancia total n porque un recorrido as slo puede pasar por n distancias 1,
luego pasa por n aristas del grafo y ser un ciclo hamiltoniano de G.
Se tiene una reduccin eficiente de Ciclo Hamiltoniano a TSP. Como Ciclo
Hamiltoniano es intratable entonces TSP es intratable.

----------------------------------------------------------------------------------------------------------

10

Por ejemplo, en la siguiente figura, un viaje de costo-mnimo es (u, w, v , x ,u), con


costo 7. El lenguaje formal para el problema de decisin correspondiente es:
TSP = { (G, c, k) : G = (V, E) es un grafo completo.
c es una funcin de VxV
k

,y

G tiene un viaje del vendedor con un costo a lo sumo de k}.


El siguiente teorema demuestra que un algoritmo rpido para el problema del
viajero es probable que no exista.
Teorema. El problema del viajero es un NP-completo.
Prueba.
Primero demostraremos que TSP pertenece a NP. Dado una instancia del
problema, usamos como un certificado la secuencia de n vrtices en el tour. El
algoritmo de verificacin verifica que esta secuencia contiene cada vrtice
exactamente una vez, resume los costos de la arista, y verifica si la suma es a lo
sumo k. Este proceso puede ser ciertamente hecho en tiempo polinomial.
Para probar que TSP es NP-duro, demostraremos que CICLO-HAM p TSP. Sea
G= (V, E) una instancia de un ciclo hamiltoniano (HAM-CYCLE).Construiremos un
instancia de TSP como sigue. Formamos el grafo completo G= (V, E), donde E=
{(i,j) : i,j V and i j}, y definimos la funcin costo c por:
{
(Note que porque G es in-dirigido, no tiene bucles y as c (u ,v) =1 para todos los
vrtices v V.) La instancia de TSP es entonces (G,c,0), lo cual puede fcilmente
crearse en tiempo polinomial.
Ahora demostramos que el grafo G tiene un ciclo hamiltoniano si y slo si el grafo
G tiene un viaje de costo a lo sumo de 0. Suponiendo que el grafo G tiene un ciclo
hamiltoniano h. Cada arista en h pertenece a E y as tiene costo 0 en G. As, h es
11

un viaje en G con costo 0. Inversamente, suponga que el grafo G tiene un viaje h


de costo de a lo sumo 0. Desde el costo de las aristas en E son 0 y 1, el costo del
viaje h es exactamente 0 y la arista en el viaje debe tener costo de 0. Por lo tanto,
h contiene solamente aristas en E. Concluimos que h es un ciclo hamiltoniano en
un grafo G.

12

Referencias.
Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. & Stein, Clifford
(2010), Introduction to Algorithms (3ra edicin), Cambridge, MA: MIT Press and
McGraw-Hill.
Sipser, Michael (2006), Introduction to the Theory of Computation (2da edicin),
USA: Thomson Course Technology.
Steven S. Skiena. The Algorithm Design Manual. Springer 2008. Captulo 9.

13