Buscar

Grafos: Árvore Geradora Mínima

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Grafos: Árvore Geradora 
ORD 
DFW 
SFO 
LAX 
80
2 
1843 
1233 
337 
ÁRVORE GERADORA 
ÁRVORE GERADORA MÍNIMA 
ÁRVORE GERADO MÁXIMA 
2 
3 
Subgrafos 
Um subgrafo S de um grafo G 
é um grafo tal que: 
n  Os vértices de S são um 
subconjunto dos vértices de G 
n  As arestas de S são um 
subconjunto das arestas de G 
Um subgrafo gerador 
(spanning sugraph) de G é 
um subgrafo que contém 
todos os vértices de G 
Subgrafo 
Subgrafo gerador 
4 
Conectividade 
Um grafo G é conectado se 
existe um caminho entre 
qualquer par de vértices de G 
Componente conectado de 
um grafo G é um subgrafo 
conectado de G 
Uma árvore é um grafo 
conectado que não possui 
ciclos 
Grafo conectado 
Grafo não-conectado com dois 
componentes conectados 
Árvore 
5 
Árvore Geradora 
Uma árvore geradora 
(spanning tree) de um 
grafo conectado é um 
subgrafo gerador que é 
uma árvore 
Uma árvore geradora não 
é única, a menos que o 
grafo seja uma árvore 
Existem muitas aplicações 
de árvores geradoras: por 
exemplo, no projeto de 
redes de comunicação 
Grafo 
Árvore geradora 
6 
Árvore Geradora Mínima 
ORD 
PIT 
ATL 
STL 
DEN 
DFW 
DCA 
10 
1 
9 
8 
6 
3 
2 5 
7 
4 
Subgrafo Gerador: 
n  Subgrafo de um grafo G 
contendo todos os vértices 
de G 
Árvore Geradora 
n  Subgrafo gerador conectado 
e sem ciclos 
Árvore Geradora Mínima 
n  Árvore geradora de um grafo 
valorado com mínimo peso 
total de arestas 
n  Minimum Spanning Tree 
(MST) 
Exemplos de Aplicações 
n  Redes de Comunicações 
7 
Algoritmo: Prim-Jarnik’s 
Inicia por um vértice arbitrário s, e cresce a árvore 
geradora mínima como uma “nuvem” de vértices 
n  Particiona o grafo em dois conjuntos de vértices, aqueles dentro 
e fora da árvore geradora mínima 
Armazena em cada vértice v: 
n  v.dist = menor peso de uma aresta conectando v a um vértice na 
nuvem 
Em cada passo: 
n  Adiciona-se à árvore geradora mínima o vértice u com o menor 
valor dist dentre os vértices de fora da nuvem 
n  Atualiza-se os valores dist dos vértices adjacentes ao vértice u 
fora da nuvem 
8 
Prim-Jarnik’s Algorithm 
(cont.) 
Uma fila de prioridade Q 
armazena cada vértice v 
fora nuvem 
Vértice v armazena: 
n  v.dist = chave para Q 
n  v.pai = vértice predecessor 
Aresta e armazena: 
n  e.peso = peso 
Fila de Prioridade Q: 
n  insert(Q, v, k): insere 
item v com chave k. 
n  remove(Q): remove e 
retorna item com menor 
chave 
n  replaceKey(Q, v, k): 
substitui por k a chave do 
item v e reorganiza a fila 
PrimJarnikMST(G, s) 
 
 Q ← nova min-heap (fila de prioridade) 
 for all v ∈ G.vertices 
 if v = s 
 v.dist = 0 
 else 
 v.dist = +∞ 
 v.pai = ∅ 
 v.label = “fora” //da nuvem 
 insert(Q, v, v.dist) 
 
while ~isEmpty(Q) 
 u ← remove(Q) 
 v.label =“dentro” //da nuvem 
 for all e ∈ G.incidente(u) 
 z ← G.endpoint(u,e) 
 if z.label=“fora” & z.dist > e.peso 
 z.dist = e.peso 
 z,pai = u 
 replaceKey(Q, z, z.dist) 
9 
Exemplo: Árvore Geradora Mínima 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 7 
2 
8 ∞ 
∞ 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 7 
2 
5 ∞ 
7 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 7 
2 
5 ∞ 
7 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 7 
2 
5 4 
7 
10 
Exemplo: Árvore Geradora Mínima 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 3 
2 
5 4 
7 
B 
D 
C 
A 
F 
E 
7 
4 
2 
8 
5 
7 
3 
9 
8 
0 3 
2 
5 4 
7 
11 
Análise 
Algoritmos Prim-Jarník representa um exemplo de algoritmo 
guloso que leva a soluções globalmente ótimas 
Prim-Jarník utilizando uma min-heap (priority queue) 
n  Pode ser implementado com tempo de execução O((V + E) log V) 
w  Cada vértice V é inserido uma vez na fila à O(V) 
w  While loop executa V vezes, cada remove tem complexidade O(logV) à O(V logV) 
w  For loop executa E vezes no total, cada replaceKey O(logV) à O(E logV) 
12 
Resumo 
Subgrafos e árvore geradora 
n  Um subgrafo gerador (spanning sugraph) de G é um subgrafo que 
contém todos os vértices de G 
n  Uma árvore geradora (spanning tree) é um subgrafo gerador que é 
uma árvore 
Caminhamento em grafos para cálculo da árvore geradora 
n  Procedimento sistemático para explorar um grafo através da 
examinação de todos os seus vértices e arestas 
n  Busca em amplitude (Breadth-First Search - BFS) 
n  Busca em largura (Depth-First Search – DFS) 
n  Árvore geradora mínima 
Próxima aula: Grafos valorados e caminhos mínimos 
(shortest-paths) 
13 
Bibliografia 
M. T. Goodrich and R. Tamassia, Algorithm Design: 
Foundations, Analysis and Internet Examples, John 
Wiley & Sons, 2002. 
T. H. Cormen, C. E. Leiserson, and R. L. Rivest, 
Introduction to Algorithms, MIT Press, 3rd Edition, 
2009. 
Material adicional: 
n  N. Ziviani, Projeto de Algoritmos, Thomson, 2a. Edição, 2004. 
n  S. Skiena e M. Revilla, Programming Challenges: The 
Programming Contest Training Manual, Springer-Verlag, 2003. 
Exercício 
■  Existem 8 pequenas ilhas em um 
arquipélago e o governo deseja 
construir 7 pontes conectando-as 
de forma que cada ilha possa ser 
alcançada de qualquer outra ilha 
através de uma ou mais pontes 
■  O custo de construção de uma 
ponte é proporcional ao seu 
comprimento 
■  As distâncias entre os pares de 
ilhas são dadas na tabela 
■  Ache quais pontes devem ser 
construídas para que o custo da 
construção seja mínimo 
1 2 3 4 5 6 7 8 
1 - 240 210 340 280 200 345 120 
2 - - 265 175 215 180 185 155 
3 - - - 260 115 350 435 195 
4 - - - - 160 330 295 230 
5 - - - - - 360 400 170 
6 - - - - - - 175 205 
7 - - - - - - - 305 
8 - - - - - - - -

Mais conteúdos dessa disciplina