Árvores Geradoras...

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

Transcript of Árvores Geradoras...

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.