You are on page 1of 27

Teoria dos Grafos

Trabalho Computacional

ALGORITMO DE KRUSKAL
Algoritmo polinomial para gerao de uma rvore Geradora Mnima de um grafo conexo

Hilio Holz Ramon M. Ramos


Professora: Maria Claudia Silva Boeres

Agenda
1. rvores, rvores Geradoras, rvores Geradoras Mnimas e seus pesos 2. O problema da rvore Geradora Mnima 3. O algoritmo de Kruskal

4. Estruturas de dados utilizadas


5. Implementaes realizadas

6. Complexidade do algoritmo
7. Resultados obtidos 8. Concluso
Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

rvore
O que ?
Na teoria dos grafos, uma rvore nada mais do que um tipo especial de grafo:

rvores so grafos em que no existem ciclos!

Uma rvore

Um grafo comum com ciclos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

rvore Geradora
O que ?
Uma rvore dita geradora se ela interliga (direta ou indiretamente) todos os ns do grafo.

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

rvore Geradora Mnima AGM


O que ?
Uma rvore Geradora Mnima - AGM, ou Minimum Spanning Tree - MST, de um grafo com pesos nas arestas (grafo valorado) qualquer rvore geradora do grafo que tenha peso mnimo.

Vale frisar..
Localizar uma AGM s possvel em grafos valorados, ou seja, com pesos nas arestas.
Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Peso total de uma AGM


O que peso?
Peso o valor dado a cada aresta, podendo representar qualquer valor em um problema real, como custo, fluxo, confiabilidade, etc.

Como calcular o peso total?


O peso total de uma AGM dado pela soma dos pesos das arestas da rvore.

Peso total da rvore geradora: 1+2+4+6+12 = 25


Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

O problema da AGM
O problema da rvore Geradora Mnima AGM consiste em encontrar, dado um grafo com arestas valoradas, uma estrutura de conexo (rvore) em que todos os ns (geradora) se conectem (direta ou indiretamente) uns aos outros. Essa estrutura deve possuir o menor peso possvel, onde o peso dado pela soma dos pesos das arestas escolhidas (mnima).

Como resolver?
Opo 1 Difcil! formar todas as rvores geradoras possveis e escolher a de menor peso O matemtico Arthur Caley provou que um grafo com N ns possui NN-2 rvores geradoras diferentes.

N=4, 16 rvores
Opo 2 Melhor

N=6, 1.296 rvores

N=10, 100.000.000 rvores

Apenas 1 rvore mnima Usar um algoritmo especfico para esta tarefa...


Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Algoritmos possveis de AGM


H quatro possibilidades conhecidas
Algoritmo de Kruskal. Algoritmo de Prim. Algoritmo Reverse-Delete. Algoritmo de Borvka.

Esta apresentao se limita a demonstrar o comportamento do

Algoritmo de Kruskal
Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

O algoritmo de Kruskal
Histria
Este algoritmo apareceu pela primeira vez no jornal Proceedings of the American Mathematical Society, em 1956, e foi escrito por Joseph Bernard Kruskal, Jr.

Objetivo
Resolver o problema de AGM para grafos conexos.
Para grafos desconexos encontra a Floresta Geradora Mnima.

O que Floresta Geradora Mnima?


o mesmo princpio das AGM s que para grafos desconexos. Uma Floresta Geradora Mnima composta pelo conjunto de rvores geradoras mnimas de cada componente conexo.
Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Funcionamento
1. L todas as arestas 2. Ordena em ordem crescente 3. Seleciona cada aresta na ordem 1. Verifica: 1. Se forma ciclo, descarta 2. Seno adiciona arvore

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Programa exemplo

Clicar na figura para abrir o programa...

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Estrutura de dados
Estruturas de dados utilizadas
Matriz de Adjacncia com pesos Lista de Arestas Algoritmo implementado utilizando Conjuntos Disjuntos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Matriz de Adjacncia
Arestas nulas representadas com 999 Alocado somente metade da matriz Sem ordenao!

No faam isso em casa!


Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Lista de Arestas
No representa arestas inexistentes No consegue representar grafos desconexos
1 2 7 4 3 10 4 5 2

V1 : 1 V2 : 2 Custo : 5
Algoritmo de Kruskal

V1 : 1 V2 : 5 Custo : 7

V1 : 1 V2 : 3 Custo : 2

V1 : 3 V2 : 2 Custo : 4

V1 : 3 V2 : 5 Custo : 10

Hilio Holz e Ramon M. Ramos

Conjuntos Disjuntos
Conjuntos de objetos conectados Objetos Conjuntos Disjuntos Find Union

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Conjuntos Disjuntos - Quick Find


Estrutura de Dados
Vetor de inteiros id[ ] de tamanho N Dois vrtices so de mesmo conjunto se tem o mesmo id.

Find: Retornar o id do n Union: Para mesclar conjuntos contendo p e q, muda-se todas as entradas com id[p] para id[q]

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Conjuntos Disjuntos - Quick Union


Estrutura de Dados
Vetor de inteiros id[ ] de tamanho N id[i] o pai de i

Find: Procurar recursivamente at id[i] =i


Union: mudar o id da raiz de um dos conjuntos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Heurstica 1 - Unio por Ordenao


Objetivo
Evitar rvores compridas.

Union: A raiz de menor ordem aponta para a raiz de maior ordem.

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Heurstica 2 - Compresso de Caminho


Find: Fazer cada n no caminho apontar diretamente para a raiz.

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Implementao Complexidade
Make Sets Ordenao Find's + Union's

Estrutura Matriz

Conjuntos Quick-Find Quick-Find

Make Sets O(V) O(V)

Ordenao O(n3) O(E Lg E) O(E Lg E) O(E Lg E)

Find's + Union's O(n+Lg n) O(n+Lg n)

Lista

Quick-Union QU+heursticas

O(V)
O(V)

O(n+Lg n)
O(n)

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Implementao
Linguagem
C

Testes
Grafos Esparsos

Densos
Completos Nmero de Vrtices variando de 50 a 2000 (de 50 em 50)

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Resultados Grafos Esparsos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Resultados Grafos Densos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Resultados Grafos Completos

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Exemplo
Ex:Problema realmente grande
109 vrtices e 1010 arestas
Aplicao das heursticas reduz o tempo de 3000 anos para 1 minuto em relao ao Quick-Find

Fonte: http://www.cs.princeton.edu/~rs/AlgsDS07/01UnionFind.pdf

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Concluso
Ordenao tem efeito muito importante

'Quick Union + heursticas' implementao assintoticamente mais rpida conhecida


Bons Algoritmos tornam as solues possveis

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

Obrigado!
Dvidas / Perguntas?

Algoritmo de Kruskal

Hilio Holz e Ramon M. Ramos

You might also like