Top Banner
Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim Árvores Geradoras Mínimas Letícia Rodrigues Bueno UFABC
50

Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Aug 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Árvores Geradoras Mínimas

Letícia Rodrigues Bueno

UFABC

Page 2: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Aplicação

• Aplicação: projeto de redes de comunicações;

• queremos conectar n localidades;

• podemos usar n − 1 conexões, cada uma conectandoduas localidades;

• conexões: cabos de transmissão;

• Objetivo: conexão que usa menor quantidade de cabos émais desejável.

Page 3: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

Page 4: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

Page 5: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

• E(G): conjunto de possíveis conexões entre localidades;

Page 6: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

• E(G): conjunto de possíveis conexões entre localidades;

• para cada uv ∈ E(G): peso p(u, v) é o custo (cabonecessário) para conectar u a v ;

Page 7: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

• E(G): conjunto de possíveis conexões entre localidades;

• para cada uv ∈ E(G): peso p(u, v) é o custo (cabonecessário) para conectar u a v ;

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 8: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

• E(G): conjunto de possíveis conexões entre localidades;

• para cada uv ∈ E(G): peso p(u, v) é o custo (cabonecessário) para conectar u a v ;

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

Peso: 376

Page 9: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema

• grafo conexo não-orientado G = (V (G),E(G));

• V (G): conjunto de localidades;

• E(G): conjunto de possíveis conexões entre localidades;

• para cada uv ∈ E(G): peso p(u, v) é o custo (cabonecessário) para conectar u a v ;

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

Peso: 376

Page 10: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Definição do Problema• Objetivo: encontrar um subconjunto T ⊆ E tal que:

• T é acíclico;• T conecta todos os vértices de G;• peso total p(T ) =

∑uv∈T p(u, v) é minimizado;

• Como T é acíclico e conecta todos vértices, T forma umaárvore geradora de G uma vez que T “gera” o grafo G;

• o problema de obter a árvore T é conhecido como árvoregeradora mínima ;

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

Peso: 376

Page 11: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Estratégia Gulosa

• adiciona uma aresta por vez;

• gerencia subconjunto S de arestas tal que S é umsubconjunto de uma árvore geradora mínima;

• uv é uma aresta segura para S se pode ser adicionadasem violar a propriedade de S;

• a cada passo uma aresta segura é determinada para seradicionada a S;

Page 12: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo Genérico para Árvore Geradora Mínima

1 GenericoAGM(G):2 S = ∅3 enquanto S não é árvore geradora mínima faça4 uv = selecionaAresta(E)5 se uv é segura para S então6 S = S ∪ {uv}7 retorne S

Page 13: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Como escolher uma aresta segura?

• um corte (V ′,V (G)− V ′) de G é uma partição de V (G);

• uma aresta uv ∈ E(G) cruza o corte (V ′,V (G)− V ′) seum de seus vértices pertence a V ′ e o outro vérticepertence a V (G)− V ′;

• um corte respeita um conjunto S de arestas se nãoexistirem arestas em S que cruzem o corte;

• uma aresta que tenha custo mínimo sobre todas asarestas cruzando o corte é uma aresta leve .

Page 14: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Como escolher uma aresta segura?

TeoremaSeja G = (V ,E) um grafo conexo, não-orientado e com pesosp sobre as arestas. Seja S um subconjunto de E que estáincluído em alguma árvore geradora mínima para G, seja(V ′,V − V ′) um corte qualquer que respeita S e seja uv umaaresta leve cruzando (V ′,V − V ′). Logo, a aresta uv é umaaresta segura para S.

Page 15: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 16: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 17: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 18: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 19: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 20: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 21: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 22: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 23: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 24: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

• escolha gulosa: árvore aumenta acrescentando umaaresta leve por vez.

• S forma uma árvore única;

• aresta segura adicionada é aresta leve que conecta árvorea vértice não presente na árvore.

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 25: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

1 Prim(G,r ):2 para cada v ∈ V (G) faça3 p[v ] = ∞4 pai[v ] = −15 p[r ] = 06 Constrói heap mínimo A com V (G) (com base em p)7 S = ∅8 enquanto |A| > 1 faça9 u = RetiraMin(A); Refaz heap

10 S = S ∪ {u}11 para v ∈ adj(u) faça12 se (v ∈ A) e (p[v ] > p(u, v)) então13 p[v ] = p(u, v)14 pai[v ] = u; Refaz heap

Page 26: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

Análise da complexidade:• Constrói heap (linha 6): custa O(n);

Page 27: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

Análise da complexidade:• Constrói heap (linha 6): custa O(n);

• Refazer heap (linha 9): custa (log n) e é chamada n vezes.Total: (n log n);

Page 28: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

Análise da complexidade:• Constrói heap (linha 6): custa O(n);

• Refazer heap (linha 9): custa (log n) e é chamada n vezes.Total: (n log n);

• Laço “para” (linha 11) executa O(m) vezes;

Page 29: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

Análise da complexidade:• Constrói heap (linha 6): custa O(n);

• Refazer heap (linha 9): custa (log n) e é chamada n vezes.Total: (n log n);

• Laço “para” (linha 11) executa O(m) vezes;

• Refazer heap (linha 14): custa (log n) e é chamada 2mvezes. Total: (m log n);

Page 30: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Prim

Análise da complexidade:• Constrói heap (linha 6): custa O(n);

• Refazer heap (linha 9): custa (log n) e é chamada n vezes.Total: (n log n);

• Laço “para” (linha 11) executa O(m) vezes;

• Refazer heap (linha 14): custa (log n) e é chamada 2mvezes. Total: (m log n);

• Complexidade total: (n log n) + (m log n);

Page 31: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

• escolha gulosa sempre faz escolha que parece melhor nomomento;

• nem sempre garante encontrar solução ótima global;

• para árvore geradora mínima, estratégias gulosas obtêmárvore geradora de peso total mínimo;

• algoritmo de Kruskal: S é floresta e aresta seguraadicionada é sempre aresta leve que conecta doiscomponentes distintos;

• escolha gulosa: árvore aumenta acrescentando-se umaaresta leve por vez.

Page 32: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 33: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 34: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 35: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 36: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 37: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 38: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 39: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 40: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 41: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 42: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 43: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 44: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 45: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 46: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

a

b

h g

c

i

d

f

e

8 7

9

10

144

24

8

11

7

1 2

6

Page 47: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

1 Kruskal(G):2 para v ∈ V (G) faça3 MAKE-SET(v )4 Ordena arestas de E(G) por p não decrescente5 S = ∅6 para cada (u, v) ∈ E(G) em ordem não-decrescente faça7 se FIND-SET(u) 6= FIND-SET(v )) então8 S = S ∪ {(u, v)}9 UNION(u, v )

10 retorne S

Page 48: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

Complexidade:

Page 49: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Algoritmo de Kruskal

Complexidade:• Complexidade total: O(m log n);

Page 50: Árvores Geradoras Mínimasprofessor.ufabc.edu.br/~leticia.bueno/classes/teoriagrafos/materiais… · Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de

Definição do Problema Estratégia Gulosa Algoritmo de Kruskal Algoritmo de Prim

Bibliografia Utilizada

• CORMEN, T.H.; LEISERSON, C.E.; RIVEST, R.L. eSTEIN, C. Introduction to Algorithms, 3a edição, MITPress, 2009.

• ZIVIANI, N. Projeto de Algoritmos com Implementaçõesem Java e C++. Thomson, 2007.