Algoritmos para Obtenção de Algoritmos para Obtenção de Árvore Geradora MínimaÁrvore Geradora Mínima
Fabio Tirelo
AplicaçãoAplicação
Obtenção de uma rede de comunicação entre pontos de interesse com o menor custo possível.
Algoritmo de PrimAlgoritmo de Prim
Algoritmo de busca em prioridade em grafos.
Análogo ao algoritmo de obtenção de Árvore Geradora de Caminho Mínimo, alterando somente o cálculo da prioridade: O vértice escolhido a cada passo é o “mais próximo” a
qualquer vértice da árvore naquele momento e não somente o mais próximo da origem.
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
6 5
1
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
5
5
6 4
1
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
5
26 4
1
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
5
26 4
1
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
5
23 4
1
Algoritmo de Prim...Algoritmo de Prim...
A
B D
C
FE
A
B D
C
FE
6
3
5
5
1
5
6 2
6
4
5
23 4
1
Custo do Algoritmo de PrimCusto do Algoritmo de Prim
O algoritmo de Prim tem um custo de tempo O(n2), onde n é o número de vértices do grafo.
Exercício:Exercício:
Encontre a AGM para o grafo abaixo, utilizando o algoritmo de Prim:
A B C D
F G H I
O N M L
J
K
E
P
57 6 9
3 9
5
7 8 6
2 9
6 43 5
8 7
3
4
1
10
7
112
13
7
5
Algoritmo de KruskalAlgoritmo de Kruskal
Inicialmente, a AG é um grafo sem arestas
Enquanto não houver incluído n-1 arestas, o algoritmo obtém a aresta de menor custo, incluindo-a na árvore caso esta não forme ciclo.
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
2
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
23
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
23 4
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
23 4
5
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
23 4
5
Algoritmo de Kruskal...Algoritmo de Kruskal...
A
B D
C
FE
B D
C
FE
6
3
5
5
1
5
6 2
6
4
A
Arestas: AC DF BE CF AD BC AB CE EF
1
23 4
5
Exercício:Exercício:
Encontre a AGM para o grafo abaixo, utilizando o algoritmo de Kruskal:
A B C D
F G H I
O N M L
J
K
E
P
57 6 9
3 9
5
7 8 6
2 9
6 43 5
8 7
3
4
1
10
7
112
13
7
5
Custo do Algoritmo de KruskalCusto do Algoritmo de Kruskal
O algoritmo de Kruskal tem um custo de tempo O(e log(e)), onde e é o número de arestas do grafo.