Buscar

grafos_aula_6

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

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

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ê viu 3, do total de 17 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

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

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ê viu 6, do total de 17 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

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

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ê viu 9, do total de 17 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

Prévia do material em texto

Teoria dos Grafos
Aula 6
Aula passada
Grafos com pesos
Dijkstra
Implementação
Fila de prioridades e 
Heap
Dijkstra (o próprio)
Aula de hoje
MST
Algoritmos de Prim e 
Kruskal
Propriedades da 
MST
Grafos - 2012/2
Projetando uma Rede
Garantir a conectividade
de qualquer lugar, chegamos a qualquer outro 
Conjunto de localidades 
(ex. cidades)
Custo para conectá-los 
diretamente (ex. construir 
estradas)
Problema: Como conectar as localidades de 
forma a minimizar o custo total?
$$$
$ $$$
$$
$$
$$$$
$$
$
$
$$
$$
Grafos - 2012/2
Projetando uma Rede
Abstração via grafos
Vértices: localidades
Arestas com pesos: custo 
de conexão direta entre 
localidades
$$$
$ $$$
$$
$$
$$$$
$$
$
$
$$
$$
Como será a “cara” do resultado?
Subgrafo de G, Árvore, Árvore geradora!
Qualquer árvore? Não!
Árvore Geradora de Custo Mínimo!
Grafos - 2012/2
MST
Minimum Spanning Tree (MST)
árvore geradora de custo mínimo
Exemplo
MST?
Custo desta MST? 11
MST é única?
1
3
2
1
4
5
2
5
b
a
e f
d
c 1
3
1
4
2
b
a
e f
d
c
Grafos - 2012/2
Descobrindo a MST
Problema: Obter a MST de um grafo
Grafo com pesos 
idênticos?
BFS to the rescue!
qualquer árvore geradora tem custo mínimo
Grafo com pesos diferentes?
Idéias?
Grafos - 2012/2
Descobrindo a MST – Idéias I
Modificar BFS
BFS constrói uma árvore geradora
Dado vértice inicial s
Construir árvore geradora mínima
Expandir “fronteira” na direção correta
Qual é a “direção” correta?
Direção de menor custo
Adicionar vértice que aumenta o custo 
total o menos possível
Grafos - 2012/2
Descobrindo a MST – Idéias I
Algoritmo de Prim
Dado G=(V, E)
Construir MST, T=(S, E')
Inicialmente S e E' estão vazios
Selecionar s, vértice inicial
Adicionar vértices em T na ordem mais barata 
possível
próximo vértice aumenta custo total o mínimo 
possível
Muito parecido com qual algoritmo?
Grafos - 2012/2
Algoritmo de Prim
Idéia: crescer T de forma mais barata 
possível
Exemplo
. . .
1
3
2
1
4
5
2
5
s
b
a
e f
d
c
1
4
2
b
a
e f
d
c1
4
b
a
e f
d
c
4
b
as a
Grafos - 2012/2
Algoritmo de Prim
Como tornar a idéia em algoritmo 
(eficiente)?
adicionar o vértice que aumenta o custo o 
menos possível
Idéias: 
Manter um conjunto de vértices da árvore
Manter custo para adicionar cada vértice até o 
momento
Adicionar o vértice de menor custo
Atualizar custos
Grafos - 2012/2
Algoritmo de Prim
1.Prim(G, o)
2.Para cada vértice v
3. custo[v] = infinito
4.Define conjunto S = 0 // vazio
5.custo[o] = 0
6.Enquanto S != V
7. Selecione u em V-S, tal que custo[u] é mínimo
8. Adicione u em S
9. Para cada vizinho v de u faça
10. Se custo[v] > w((u,v)) então
11. custo[v] = w((u,v))
Como o algoritmo executa?
Grafos - 2012/2
Executando o Algoritmo
Manter tabela com 
passos e custos
1 b
e
da
2
4
4
2
1
3
2
2
3
c
f
g
2
Grafos - 2012/2
Complexidade
Qual é a complexidade do algoritmo?
Complexidade idêntica a Dijkstra
Usando filas de prioridade baseada em heap
n operações de remoção, m de atualização
O((m+n)log n) = O(m log n)
1.Prim(G, o)
2.Para cada vértice v
3. custo[v] = infinito
4.Define conjunto S = 0 // vazio
5.custo[o] = 0
6.Enquanto S != V
7. Selecione u em V-S, tal que custo[u] é mínima
8. Adicione u em S
9. Para cada vizinho v de u faça
10. Se custo[v] > w((u,v)) então
11. custo[v] = w((u,v))
Grafos - 2012/2
Descobrindo a MST – Idéias II
Outra abordagem, diferente de BFS
mas também gulosa
Aresta de menor peso está na MST?
Aresta segundo menor peso está na MST?
Aresta de terceiro menor peso?
Cuidado com ciclos!
Grafos - 2012/2
Descobrindo a MST – Idéias II
Dado G=(V, E)
Construir MST, T=(V, E')
Inicialmente E' está vazio
Adicionar arestas de E em ordem crescente
Se aresta gerar um ciclo em T, então descarte-a 
e continue
Algoritmo de Kruskal
Grafos - 2012/2
Algoritmo de Kruskal
Idéia: construir T adicionado arestas de 
menor peso
Exemplo
. . .
1
3
2
1
4
5
2
5
b
a
e f
d
c
1
1
2
b
a
e f
d
c
1
1
b
e f
c
1
b c
Grafos - 2012/2
Analizando o Algoritmo
Algoritmos de Prim e Kruskal produzem 
sempre uma MST?
Mas isto é óbvio?
Como provar que algoritmo sempre produz 
resultado desejado – uma MST
Duas propriedades de uma MST
Propriedade do ciclo (cycle property)
Propriedade do corte (cut property)
Grafos - 2012/2
Propriedade do Ciclo
Para qualquer ciclo C do grafo, se o peso de 
uma aresta e do ciclo for maior do que de 
todas as outras arestas do ciclo, então e não 
pertence a MST
Prova por contradição
Assuma que aresta e pertence a MST, T
Mostrar que existe outra árvore geradora T' 
com custo menor que não utiliza e
Concluir que aresta e não pode pertencer a 
MST
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17

Outros materiais