Você está na página 1de 4

UNIVERSIDADE FEDERAL DE UBERLNDIA - FACULDADE DE COMPUTAO

ANLISE DE ALGORITMOS

PROBLEMA DO CLIQUE MXIMO


PROF MRCIA APARECIDA FERNANDES MATEUS NISHIDA MXIMO DA CRUZ 10921BCC042 MIRIENE PEREIRA DAYRELL 10921BCC019 TIAGO FERNEDA MANSUELI 10921BCC033

1-

Introduo

O problema do clique tem como objetivo encontrar a maior clique em um grafo G dado. Um clique em um grafo um subgrafo que contem um subconjunto de seus vrtices tais que para cada par de vrtices existem uma aresta entre eles, ou seja, uma clique um subgrafo completo de um grafo G. O documento mostra algumas propostas de algoritmos para resoluo do problema, bem como sua anlise.

2-

Algoritmos Propostos

Foram propostos dois algoritmos para resolver o problema do clique mximo. A seguir so introduzidos os algoritmos, juntamente com a sua anlise e exemplos.

2.1- Fora Bruta


Esse algoritmo usa uma abordagem de fora bruta e calcula

Pseudocdigo:
Entrada: G : Grafo original Sada: clique: clique mximo encontrado no grafo algoritmo cliqueMaximoFB(G) 1. n tam(VG) 2. for(i = 0; i < 2n; i++) 3. Pi geraPermutacao(i) 4. if( isClique(GPi) && tam(clique) < tam(GPi )) 5. clique GPi 6. return clique

Anlise:

Na linha 1 do algoritmo obtido o tamanho do conjunto de vrtices do grafo G, esse procedimento varre todo o conjunto de vrtices do grafo contando cada vrtice que aparece no grafo. Esse procedimento possui custo de O(n). A linha 3 gera uma nova permutao para criar um grafo novo. O custo de criar essa nova permutao tem custo de O(n). A linha 4 verifica se o grafo gerado pela nova permutao uma clique, esse procedimento verifica as arestas na matriz de adjacncia do grafo. Esse procedimento tem custo de O(n). Como as linhas 2 a 5 so executadas 2n vezes, dessa forma o custo do algoritmo da ordem de O(n2n).

Exemplo: 2.2- Algoritmo Guloso Aproximado


Esse algoritmo....

Pseudocdigo:
Entrada: G : Grafo original Sada: clique: clique mximo encontrado no grafo algoritmo cliqueMaximoAG(G) 1. listaOrd ordenaVertices(G) 2. for(i = 0; i < tam(VG); i++) 3. if(isClique(clique, listaOrd(i))) 4. clique.add(listaOrd(i)) 5. return clique

Anlise:
A linha 1 um procedimento que ordena os vrtices em ordem decrescente de grau. Esse procedimento pode ser realizado com um custo de O(nlogn). A linha 3 verifica se o vrtice de maior grau da lista ordenada deve entrar na clique. Esse procedimento possui custo semelhante ao procedimento da abordagem que utiliza de fora bruta, sendo assim, seu custo O(n). As linhas 2 a 4 so executadas para todos os n vrtices que o grafo possui. Portanto, o custo do algoritmo da ordem de O(n2).

Exemplo: 3Comparando as Abordagens

Para comparao entre os algoritmos foram realizados dois tipos de teste. Um leva em considerao o tempo mdio de execuo de ambos os algoritmos em grafos que no so completos. O tempo mdio de execuo para cada grafo apresentado na tabela 3.1. Nmero de vrtices 1 5 Mdia fora bruta (ms) 12,4 12,4 Mdia algoritmo aproximado (ms) 6,4 9,4

10 15 20 24

16 259,2 16186,6 444856,2

3,2 6,4 4 6

Tabela 3.1 Tempo mdio de execuo em grafos no completos

O grfico a seguir relativo aos dados apresentados na tabela 3.1

Fora Bruta vs Aproximado Grafos no Completos

1000000
Tempo (ms)

Fora Bruta Algoritmo Aproximado 1 5 10 15 20 24


Nmero de Vrtices

10000 100 1

O outro teste leva em considerao o tempo mdio de execuo de ambos os algoritmos em grafos completos. O tempo mdio para cada grafo apresentado na tabela 3.2. Mdia algoritmo Nmero de vrtices Mdia fora bruta (ms) aproximado (ms) 1 0 6,4 5 3,2 3,2 10 9,2 12 15 268,2 15,4 20 16448,8 18,8 24 322021,8 15,4

Fora Bruta vs Aproximado Grafos Completos

1000000
Tempo (ms) 10000

Fora Bruta

100
1 1 5 10 15 20 24

Algoritmos Aproximados
Nmero de Vrtices

Para cada um dos testes foi possvel notar a grande diferena de execuo entre os algoritmos. O algoritmo que utiliza da fora bruta cresce rapidamente a partir de 15 vrtices, enquanto o algoritmo aproximado mantm tempo quase constante. Quando

comparamos o tempo de execuo do algoritmo aproximado para grafos completos e no completos foi possvel notar que o tempo de execuo em grafos completos foi um pouco maior, pois o algoritmo insere mais vrtices na clique final, o que aumenta ligeiramente o custo de execuo. J no algoritmo de fora bruta a diferena no foi notvel.

4-

Concluses

Apesar do alto custo computacional possvel garantir para o algoritmo de fora bruta sempre encontra a soluo, para um grafo com qualquer quantidade de vrtices. Porm, pelo fato do algoritmo ser exponencial invivel esperar tanto tempo para receber a soluo do problema, podendo demorar at mesmo horas ou dias para problemas de tamanho considerado pequeno e meses ou anos a medida que esses problemas forem crescendo. Por outro lado, o algoritmo aproximado que usa da estratgia gulosa para resolver o problema retorna a soluo com um tempo muito menor que a abordagem gulosa, porm suas solues podem ser distintas dependendo a forma como o grafo de entrada estiver organizado. Ou seja, a soluo que apresentada pelo algoritmo aproximado pode no ser a melhor em alguns casos.

Referncias
[1] David M. Mount. Design and Analysis of Computer Algorithms. [2] Lewis. CLIQUE is NP-complete. Disponvel em: http://www.cs.uky.edu./~lewis/csheuristic/text/class/more-np.html Acesso em 06/2012 [3] Qi Ouyang, Peter D. Kaplan, Shumao Liu and Albert Libchaber. DNA Solution of the Maximal Clique Problem. Disponvel em: http://www.sciencemag.org/content/278/5337/446.full Acesso em 06/2012 [4] Omar Latorre. Teoria dos grafos: Clique. Disponvel em: http://omarlatorre.blogspot.com.br/2011/08/teoria-dos-grafos-clique.html Acesso em 06/2012