A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.

Apresentações semelhantes


Apresentação em tema: "Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha."— Transcrição da apresentação:

1 Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha

2 2Algoritmos em Grafos PARTE 5: Árvore Geradora de Peso Mínimo

3 3Algoritmos em Grafos Árvore Geradora de Peso Mínimo Dados: G = (V,E) grafo não-orientado, com |V|=n e |E|=m peso c(e), e E Problema Obter F E tal que: o grafo G=(V,F) é acíclico e conexo (G é gerador de G) c(F) = e E c(e) é mínimo

4 4Algoritmos em Grafos Árvore Geradora de Peso Mínimo Exemplo: 9 D A E B C F árvore geradora peso = 15 D AB C EF árvore geradora peso = 24 D A E B C F

5 5Algoritmos em Grafos Árvore Geradora de Peso Mínimo Princípio: a aresta de menor peso sempre pertence à árvore geradora de peso mínimo. Algoritmo de Kruskal Prova: Suponha que a aresta de peso mínimo não pertença à solução ótima. Inserindo-se a aresta de peso mínimo nesta solução ótima, obtém-se um ciclo. Pode-se obter uma nova árvore geradora removendo-se a aresta de maior peso. Esta nova árvore geradora teria peso menor do que a anterior, portanto aquela solução não poderia ser ótima.

6 6Algoritmos em Grafos Árvore Geradora de Peso Mínimo Criar uma lista L com as arestas ordenadas em ordem crescente de pesos. Criar |V| subárvores contendo cada uma um nó isolado. F contador 0 Enquanto contador < |V|-1 e L faça Seja (u,v) o próximo arco de L. L L – {(u,v)} Se u e v não estão na mesma subárvore então F F {(u,v)} Unir as subárvores que contêm u e v. contador contador + 1 fim-se fim-enquanto Algoritmo de Kruskal

7 7Algoritmos em Grafos Exemplo: Árvore Geradora de Peso Mínimo D A E B C F ec(e) (C,F)2 (E,F)2 (A,D)3 (C,E)3 (A,B)4 (A,E)4 (B,F)5 (D,F)7 (B,C)8 (B,E)9 (C,D)9 Lista L Subárvores { A }{ B }{ C }{ D }{ E }{ F }{ A }{ B }{ C, F }{ D }{ E } c(F) = 2 { A }{ B }{ C, E, F }{ D } c(F) = 4 { A, D }{ B }{ C, E, F } c(F) = 7 { A, B, D }{ C, E, F } c(F) = 11 { A, B, C, D, E, F } c(F) = 15 3 X

8 8Algoritmos em Grafos Exemplo: Árvore Geradora de Peso Mínimo H A B J C ec(e) (D,E)1 (D,L)2 (F,J)2 (G,J)2 (C,D)3 (E,F)3 (H,I)3 (A,B)4 (B,C)4 …… Lista L Subárvores c(F) = 1 E ML G D I F { A }{ B }{ C }{ D }{ E }{ F } { G }{ H }{ I }{ J }{ L }{ M } { A }{ B }{ C }{ D, E }{ F } { G }{ H }{ I }{ J }{ L }{ M } c(F) = 3 { A }{ B }{ C }{ D, E, L }{ F } { G }{ H }{ I }{ J }{ M } { A }{ B }{ C }{ D, E, L } { F, J }{ G }{ H }{ I }{ M } c(F) = 5 { A }{ B }{ C }{ D, E, L } { F, G, J }{ H }{ I }{ M } c(F) = 7 { A }{ B }{ C, D, E, L } { F, G, J }{ H }{ I }{ M } c(F) = 10 { A }{ B }{ C, D, E, L, F, G, J } { H }{ I }{ M } c(F) = 13 { A }{ B }{ C, D, E, L, F, G, J } { H, I }{ M } c(F) = 16 { A, B }{ C, D, E, L, F, G, J } { H, I }{ M } c(F) = 20 { A, B, C, D, E, F, G, J, L } { H, I }{ M } c(F) = 24

9 9Algoritmos em Grafos Exemplo: Árvore Geradora de Peso Mínimo H A B J C Lista L Subárvores E ML G D I F { A, B, C, D, E, F, G, J, L } { H, I }{ M } c(F) = 24 ec(e)... (A,I)4 (J,L)4 (G,M)5 (C,M)6 (I,J)6 (A,M)7 (G,H)7 (B,L)8 { A, B, C, D, E, F, G, H, I, J, L } { M } c(F) = 28 X { A, B, C, D, E, F, G, H, I, J, L, M } c(F) = 33

10 10Algoritmos em Grafos Árvore Geradora de Peso Mínimo Começar com uma árvore formada apenas por um nó qualquer do grafo, ou pela aresta de peso mínimo. Algoritmo de Prim A cada iteração, adicionar a aresta de menor peso que conecta um nó já conectado a um nó não-conectado.

11 11Algoritmos em Grafos Árvore Geradora de Peso Mínimo Seja (u,v) a aresta de menor peso. F {(u,v)} Para i = 1,...,n faça Se c(i,u) < c(i,v) então prox(i) u Senão prox(i) v fim-para prox(u), prox(v) 0, contador 0 Enquanto contador < n-2 faça Seja j tal que prox(j) 0 e c(j,prox(j)) é mínimo. F F {(j,prox(j))} prox(j) 0 Para i = 1,...,n faça Se prox(i) 0 e c(i,prox(i)) > c(i,j) então prox(i) j fim-para contador contador + 1 fim-enquanto Algoritmo de Prim

12 12Algoritmos em Grafos Árvore Geradora de Peso Mínimo Exemplo: 9 D A E B C F c(F) = 2 c(F) = 4 c(F) = 7 c(F) = 11 c(F) = 15 3

13 13Algoritmos em Grafos Árvore Geradora de Peso Mínimo Exemplo: c(F) = 1 H A B J C E ML G D I F c(F) = 3 c(F) = 6 c(F) = 9 c(F) = 11 c(F) = 13 c(F) = 17 c(F) = 21 c(F) = 25 c(F) = 28 c(F) = 33


Carregar ppt "Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha."

Apresentações semelhantes


Anúncios Google