Vous êtes sur la page 1sur 13

Algoritmos em Grafos

Celso C. Ribeiro Caroline T. Rocha

PARTE 5: rvore Geradora de Peso Mnimo

Algoritmos em

rvore Geradora de Peso Mnimo


Dados: G = (V,E) grafo no-orientado, com |V|=n e |E|=m peso c(e), e E

Problema Obter F E tal que: o grafo G=(V,F) acclico e conexo (G gerador de G) c(F) = eE c(e) mnimo

Algoritmos em

rvore Geradora de Peso Mnimo


Exemplo:
A 4 3 7 D 4 5 8 3 9 E 2 F 2 C 4 4 9 5 8 B

4 3

4 2 2

rvore geradora peso = 24

rvore geradora peso = 15


Algoritmos em 4

rvore Geradora de Peso Mnimo


Algoritmo de Kruskal
Princpio: a aresta de menor peso sempre pertence rvore geradora de peso mnimo. Prova:

Suponha que a aresta de peso mnimo no pertena soluo tima. Inserindo-se a aresta de peso mnimo nesta soluo tima, obtm-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 soluo no poderia ser tima.

Algoritmos em

rvore Geradora de Peso Mnimo


Algoritmo de Kruskal
Criar uma lista L com as arestas ordenadas em ordem crescente de pesos. Criar |V| subrvores contendo cada uma um n isolado. F contador 0 Enquanto contador < |V|-1 e L faa Seja (u,v) o prximo arco de L. L L {(u,v)} Se u e v no esto na mesma subrvore ento F F {(u,v)} Unir as subrvores que contm u e v. contador contador + 1 fim-se fim-enquanto
Algoritmos em 6

rvore Geradora de Peso Mnimo


Exemplo:
3 7 D 9 A 4 E 2 F 2 3 C 4 9 5 8 B

Lista L e c(e)
(C,F) (E,F) (A,D) (C,E) (A,B) (A,E) (B,F) (D,F) (B,C) (B,E) (C,D) 2 2 3 3 4 4 5 7 8 9 9

c(F) = 15 4 2 7 c(F) 11
Subrvores { {{ A }{D B{A, D }{C, C,{ }D }FD{FE}{} D F}F } A A, { {{BB B,CC, D,{E, FE, } E,E} } } A, B,} } { B } E, { }{ C, { { } } { { F C, } }

Algoritmos em

rvore Geradora de Peso Mnimo


Exemplo:
4 A 4 I 3 H 7 G 6 2 7 M 5 J B 4 6 8 L 4 2 F 2 C 3 D 1 E 3

Lista L e
(D,E) (D,L) (F,J) (G,J) (C,D) (E,F) (H,I) (A,B) (B,C)

c(e)
1 2 2 2 3 3 3 4 4

c(F) = 10 c(F) =13 24 20 16 5 3 1 7


Subrvores { A{}{{{A,}{{}BB {D,C,C,D,{E L,LL}}G, {FF} } { A AA,BB }} } C,{D,F,D,L,}{E,} L } J } A}} B B, C,C{ }C }{ DE,E,F, { F J } { { { { E,{ E,G, J,L G, { } D, } D, E } } D, E, F, {{G }J } H{ }GH,{I {{ H }}{ M{}} }{ { {}} } { M } F, F, G, J H }{ H I} J {}M } LMM } { { { } } {I I M

Algoritmos em

rvore Geradora de Peso Mnimo


Exemplo:
4 A 4 I 3 H 7 G 6 2 7 M 5 J B 4 6 8 L 4 2 F 2 C 3 D 1 E 3

Lista L e
... (A,I) (J,L) (G,M) (C,M) (I,J) (A,M) (G,H) (B,L)

c(e)
... 4 4 5 6 6 7 7 8

c(F) = 24 33 28
Subrvores { { A, B, C, D, E, F, G, J,I,LJ, L } A, B, C, D, E, F, G, H, } { A, B, C, D, E, F, G, H, I, J, L, M } { H, I } M { M } { }

Algoritmos em

rvore Geradora de Peso Mnimo


Algoritmo de Prim
Comear com uma rvore formada apenas por um n qualquer do grafo, ou pela aresta de peso mnimo. A cada iterao, adicionar a aresta de menor peso que conecta um n j conectado a um n no-conectado.

Algoritmos em

10

rvore Geradora de Peso Mnimo


Algoritmo de Prim
Seja (u,v) a aresta de menor peso. F {(u,v)} Para i = 1,...,n faa Se c(i,u) < c(i,v) ento prox(i) u Seno prox(i) v fim-para prox(u), prox(v) 0, contador 0 Enquanto contador < n-2 faa Seja j tal que prox(j) 0 e c(j,prox(j)) mnimo. F F {(j,prox(j))} prox(j) 0 Para i = 1,...,n faa Se prox(i) 0 e c(i,prox(i)) > c(i,j) ento prox(i) j fim-para contador contador + 1 fim-enquanto
Algoritmos em 11

rvore Geradora de Peso Mnimo


Exemplo:
A 4 3 7 D 9 E 2 F 2 3 C 4 9 5 8 B

c(F) = 11 15 4 2 7

Algoritmos em

12

rvore Geradora de Peso Mnimo


Exemplo:
4 A 4 I 3 H 7 G 6 2 7 M 5 J B 4 6 8 L 4 2 F 2 C 3 D 1 E 3

c(F) = 11 c(F) =13 28 21 33 25 17 9 6 3 1

Algoritmos em

13

Vous aimerez peut-être aussi