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 Grafos

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) = 7eEc(e) mnimo

Algoritmos em Grafos

rvore Geradora de Peso Mnimo


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

4 3

5 8 3

4 2 2

rvore geradora peso = 24

rvore geradora peso = 15


Algoritmos em Grafos 4

rvore Geradora de Peso Mnimo


Al oritmo de Kruskal
Princ io: a aresta de menor eso sem re ertence rvore eradora de eso mnimo. Prova:
Su onha que a aresta de eso mnimo no ertena soluo tima. Inserindo-se a aresta de eso mnimo nesta soluo tima, obtm-se um ciclo. Pode-se obter uma nova rvore eradora removendo-se a aresta de maior eso. Esta nova rvore eradora teria eso menor do que a anterior, ortanto aquela soluo no oderia ser tima.

Algoritmos em Grafos

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 n contador n 0 Enquanto contador < |V|-1 e L { faa Seja (u,v) o prximo arco de L. L n L {(u,v)} Se u e v no esto na mesma subrvore ento F n F {(u,v)} Unir as subrvores que contm u e v. contador n contador + 1 fim-se fim-enquanto
Algoritmos em Grafos 6

rvore Geradora de Peso Mnimo


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

Lista L e
(C,F) (E,F) (A,D) (C,E) (A,B) (A,E) (B,F) (D,F) (B,C) (B,E) (C,D)

c(e)
2 2 3 3 4 4 5 7 8 9 9

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

Algoritmos em Grafos

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 7 5 3 1


Subrvores { A{}A}A,} {{B B }D,C,C,D,E,D,{LF,}L J { F } { A{ {}A,B}B}} { C,{D,F,D,EE,F,E} } } J }} { A B B, C,C{}C }D, G, L,E, F { F { { { } E,{{ D {L,J,L{ G, } E,} E, L } D, } G, {{G{ }F, }{ HJ}GH,{I HH }}{ MI}}} }} { MM { M } F, J G, { H }{ {{ I} J { M { L{}} } } { } } {{I M

Algoritmos em Grafos

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 Grafos

rvore Geradora de Peso Mnimo


Al oritmo de Prim
omear com ma rvore formada a enas or m n al er do rafo, o ela aresta de eso mnimo.

A cada itera o, adicionar a aresta de menor eso e conecta m n j conectado a m n n o-conectado.

Algoritmos em Grafos

10

rvore Geradora de Peso Mnimo


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

Algoritmos em Grafos

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) = 13 c(F) =17 33 28 25 21 11 9 6 3 1

Algoritmos em Grafos

13

Vous aimerez peut-être aussi