Documente Academic
Documente Profesional
Documente Cultură
ANLISE DE ALGORITMOS
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.
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).
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).
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
3,2 6,4 4 6
1000000
Tempo (ms)
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
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