Uploaded by Fernandito Tancara

Problema NP Completos

advertisement
PROBLEMA
NP-COMPLETOS
En teoría de la complejidad computacional, la clase de complejidad
NP-completo es el subconjunto de los problemas de decisión en
NP tal que todo problema en NP se puede reducir en cada uno de
los problemas de NP-completo. Se puede decir que los problemas
de NP-completo son los problemas más difíciles de NP y muy
probablemente no formen parte de la clase de complejidad P.
DEFINICION
En complejidad computacional,
el problema del clique (a veces
también traducido desde el
inglés como problema del
clan o problema de la camarilla1
), es un problema NP-completo
según la Teoría de la complejidad
computacional.
El correspondiente problema de optimización,
consiste en encontrar un clique de tamaño
máximo en un grafo (un subgrafo completo
de tamaño máximo). Este problema se
puede enunciar como un problema de
decisión si la pregunta que se hace es
saber si existe un clique de tamaño k en
el grafo.
{\displaystyle k-CLIQUE=\{(G,k)|G{\text
{ tiene un clique de tamaño }}k\}}
Dado un grafo G=(N,A), se dice que G tiene
un clique de tamaño k si existe un subgrafo
G' = (N',A') de G tal que N' es subconjunto
de N, |N'|=k y A'=N'×N', vale decir, todos
sus vértices están conectados entre ellos.
El problema de clique es un problema de
decisión para determinar cuándo un grafo
contiene un clique de al menos un tamaño
k. Una vez que tenemos k o más vértices
que forman un clique, es trivial verificar que
lo son, por eso es un problema NP.
EJEMPLO
ALGORTIMOS
Un ejemplo de algoritmo de búsqueda de fuerza
bruta para encontrar un clique en un grafo
consiste en listar todos los subconjuntos de
vértices V y verificar para cada uno de ellos si
forma una clique. Ese algoritmo es polinómico
si k es una constante pero no lo es cuando se
hace depender a k de, por ejemplo, |V|/2.
Un mejor algoritmo (Bron y Kerbosch) consiste
en arrancar con cliques de un solo elemento
(cualquier elemento sirve) e intentar mezclar
cliques para obtener otras más grandes, hasta
que no queden más mezclas por intentarse. Dos
cliques pueden ser mezcladas si cada nodo del
primero es adyacente a cada nodo del segundo.
En este grafo de ejemplo, los
vértices 1, 2 y 5 forman un clique
porque cada uno tiene un arco
que le une a los otros dos. En
cambio, los vértices 2, 3 y 4 no,
dado que 2 y 4 no son adyacentes.
Download