Escolar Documentos
Profissional Documentos
Cultura Documentos
MINIMIZAÇÃO DE REDES:
ALGORITMO DE KRUSKAL
1 2 10 5 6 1 2 5 6
7 3 4 8 3 4 8
8 8
Algoritmo de Prim “Simplificado”
1. Escolher o nó ligado ao menor arco e colocar na
árvore destino
2. A partir de um dos nós presentes na árvore
destino, escolher o nó mais próximo no grafo
origem – e que não esteja no destino – e colocar
ele e o arco que ligam os nós na árvore destino
3. Repita até que todos os nós estejam na árvore
destino
7 3 4 8
8
D
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D 2
3
Aplicando o Algoritmo de Kuskal
3. Se ainda há nós em O que não estão em D, ou há
nós desconectados em D, volte ao passo 1.
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D 2
3
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D 2
3
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D 2
3
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
D 2
3
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
2 5
D 2 5
3 4
Aplicando o Algoritmo de Kuskal
3. Se ainda há nós em O que não estão em D, ou há
nós desconectados em D, volte ao passo 1.
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
2 5
D 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
2 5
D 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
2 5
D 2 5
3 4
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
2 5
D 2 5
3 4
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
3. Se ainda há nós em O que não estão em D, ou há
nós desconectados em D, volte ao passo 1.
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5
3 4
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
Aplicando o Algoritmo de Kuskal
3. Se ainda há nós em O que não estão em D, ou há
nós desconectados em D, volte ao passo 1.
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
Aplicando o Algoritmo de Kuskal
1. No grafo original O, escolha o arco L de menor
custo “seguro”
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
Aplicando o Algoritmo de Kuskal
2. Transfira o arco L e os vértices A e B de seus
extremos para a árvore destino D
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
8
Aplicando o Algoritmo de Kuskal
3. Se ainda há nós em O que não estão em D, ou há
nós desconectados em D, volte ao passo 1.
12
5 2 5 12
10
O 1 2 5 6
7 3 4 8
8
5 2 5
D 1 2 5 6
3 4 8
8
QUANDO USAR PRIM E
QUANDO USAR KRUSKAL
Comparando Prim x Kruskal
• Complexidade Computacional de Prim
𝐶 = 𝑂(𝑣 2 )
31 21
60 51
5 25
6 7
40 51
18
46
3
4
34
Fonte: https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/prim.html
Exercício
1. Aplique o Algoritmo de Kruskal
29
2 0 1
31 21
5 25
6 7
18
46
3
4
34
Fonte: https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/prim.html
Exercício (para entrega!)
2. Aplique o Algoritmo de Kruskal
3 15
2 6 7
4 9
2
1 11 10 9
4 14
8 4 6
10
3 5 8
1 2
Fonte: http://www.ic.unicamp.br/~zanoni/mc448/2003-2s/listas/lista23.pdf
CONCLUSÕES
Resumo
• Algoritmo de Prim: tem limites
• Algoritmo de Kruscal: também tem!
• Cada um se dá melhor em casos diferentes
• TAREFA: Exercícios Aula 3