DAA - Max Cliques

Em um gráfico não direcionado, um cliqueé um subgráfico completo do gráfico fornecido. Sub-gráfico completo significa que todos os vértices deste sub-gráfico estão conectados a todos os outros vértices deste sub-gráfico.

O problema Max-Clique é o problema computacional de encontrar o clique máximo do grafo. Max clique é usado em muitos problemas do mundo real.

Vamos considerar um aplicativo de rede social, onde os vértices representam o perfil das pessoas e as arestas representam o conhecimento mútuo em um gráfico. Neste gráfico, um clique representa um subconjunto de pessoas que se conhecem.

Para encontrar um clique máximo, pode-se inspecionar sistematicamente todos os subconjuntos, mas esse tipo de busca de força bruta consome muito tempo para redes que compreendem mais do que algumas dezenas de vértices.

Algorithm: Max-Clique (G, n, k) 
S := Φ 
for i = 1 to k do 
   t := choice (1…n)  
   if t Є S then 
      return failure 
   S := S ∪ t  
for all pairs (i, j) such that i Є S and j Є S and i ≠ j do 
   if (i, j) is not a edge of the graph then  
      return failure 
return success

Análise

O problema da Max-Clique é um algoritmo não determinístico. Neste algoritmo, primeiro tentamos determinar um conjunto dek vértices distintos e então tentamos testar se esses vértices formam um gráfico completo.

Não existe um algoritmo determinístico de tempo polinomial para resolver este problema. Este problema é NP-Completo.

Exemplo

Dê uma olhada no gráfico a seguir. Aqui, o subgráfico contendo os vértices 2, 3, 4 e 6 forma um gráfico completo. Portanto, este subgráfico é umclique. Como este é o subgráfico máximo completo do gráfico fornecido, é um4-Clique.