Problema de la clique

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En complejidad computacional, el problema de Clique o problema de la liga de amigos es un problema NP-completo según la Teoría de la complejidad computacional.

Definición[editar]

Dado un grafo G=(N,A), decimos 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. En el grafo de la derecha, los vértices 1, 2 y 5 forman un clique porque cada uno tiene un arco que le une a los otros. En cambio, los vértices 2, 3 y 4 no, dado que 2 y 4 no son adyacentes.


6n-graf-clique.svg

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. 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.


Algoritmos[editar]

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.

Véase también[editar]