aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’...

49
Grafos – Árvores Geradoras Mínimas Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo Ba5sta, Robson Cordeiro, Moacir Pon5 Jr. e Maria Cris5na Oliveira, Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS DE DADOS II

Transcript of aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’...

Page 1: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

Grafos  –  Árvores  Geradoras  Mínimas  

Profa.  Elaine  Parros  Machado  de  Sousa  adaptações:  Cris.na  Dutra  de  Aguiar  Ciferri  

Material  baseado  em  aulas  dos  professores:    Gustavo  Ba5sta,  Robson  Cordeiro,  Moacir  Pon5  Jr.  e  

Maria  Cris5na  Oliveira,  Thiago  A.  S.  Pardo  

ALGORITMOS E ESTRUTURAS DE DADOS II

Page 2: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  RELEMBRANDO  DEFINIÇÕES  ¢ Árvore  (ou  árvore  livre):  

�  um  grafo  conexo  acíclico.  

¢ Árvore  geradora  (spanning  tree)  de  um  grafo  conexo:    �  um  subgrafo  gerador  que  é  uma  árvore  =>  contém  todos  os  

vér5ces  

¢ Árvore  geradora  mínima  (minimum  spanning  tree):    �  uma  árvore  geradora  com  a  menor  soma  de  pesos  de  arestas  

árvore  geradora  mínima  

1

4

2

5

3 1

4

2

5

3

grafo    

1 2

5

3

10

8 1 2

5

3

Page 3: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMOS  ¢ Dois  algoritmos  bastante  conhecidos  

�  Algoritmo  de  Prim  

�  Algoritmo  de  Kruskal  

¢ Caracterís5cas  �  algoritmos  “gulosos”  

�  encontram  a  árvore  geradora  mínima  de  um  grafo  não  direcionado  

 

Page 4: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  ¢  Ideia  geral  

1)  Começar  com  um  vér5ce  v    qualquer,  e  adicioná-­‐lo  a  um  conjunto  U;  

2)  Escolher  a  aresta  de  menor  peso  que  conecta  um  vér5ce  em  U  a  um  vér5ce  em  V-­‐U;  

3)  Incluir  o  vér5ce  da  aresta  escolhida  em  U;  4)  Incluir  a  aresta  escolhida  em  um  conjunto  T;  5)  Voltar  ao  passo  2  enquanto  U  ≠  V.  

Page 5: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

vértice de início: 1

Page 6: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar vértice ao conjunto U U = {1} T =

U

Page 7: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1} T =

U

Page 8: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1} T =

U

Page 9: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: incluir o vértice da aresta escolhida em U incluir a aresta escolhida em T

U = {1,3} T = {(1,3)}

U

Page 10: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3} T = {(1,3)}

Page 11: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3} T = {(1,3)}

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

Page 12: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: incluir o vértice da aresta escolhida em U incluir a aresta escolhida em T

U = {1,3,4} T = {(1,3),(3,4)}

Page 13: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4} T = {(1,3),(3,4)}

Page 14: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4} T = {(1,3),(3,4)}

Page 15: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: incluir o vértice da aresta escolhida em U incluir a aresta escolhida em T

U = {1,3,4,2} T = {(1,3),(3,4),(2,3)}

Page 16: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4,2} T = {(1,3),(3,4),(2,3)}

Page 17: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4,2} T = {(1,3),(3,4),(2,3)}

Page 18: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: incluir o vértice da aresta escolhida em U incluir a aresta escolhida em T

U = {1,3,4,2,6} T = {(1,3),(3,4),(2,3),(4,6)}

Page 19: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4,2,6} T = {(1,3),(3,4),(2,3),(4,6)}

Page 20: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: escolher a aresta de menor peso que conecta um vértice em U a um vértice em V-U U = {1,3,4,2,6} T = {(1,3),(3,4),(2,3),(4,6)}

Page 21: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

U

algoritmo: incluir o vértice da aresta escolhida em U incluir a aresta escolhida em T

U = {1,3,4,2,6,5} T = {(1,3),(3,4),(2,3),(4,6),(5,6)}

Page 22: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

1

2 3

4

6 5

2 2 1

4

3

FIM DO ALGORITMO

Page 23: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  -­‐  EXEMPLO  

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

Dado  um  grafo  G,  pode  exis5r  mais  de  uma  árvore  

geradora  mínima  para  G  

1

2 3

4

6 5

2 2 1

4

3

1

2 3

4

6 5

2 2 1

4

3

Page 24: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  PRIM  procedimento Prim(var Grafo: TGrafo; var T: conjunto de arestas) variáveis u, v: TVertice; U: conjunto de TVertice; início T := ∅; U := {1}; enquanto U ≠ V faça início seja (u, v) a aresta de menor peso tal que (u ∈ U) e (v ∈ V–U) T := T ∪ {(u, v)}; U := U ∪ {v}; fim fim

Page 25: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ALGORITMO  DE  PRIM:  COMPLEXIDADE  

¢ Implementação  simples  com  dois  vetores:    �  prox[i]  fornece  o  vér5ce  em  U  atualmente  mais  próximo  ao  vér5ce  i  em  V-­‐U.    

�  mc[i]  fornece  o  custo  da  aresta  (i,  prox[i]).  �  operação  de  encontrar  (u,  v)  =>  percorrer  o  vetor  mc  =>  O(|V|)  ¢  necessário  atualizar  os  vetores  prox  e  mc  a  cada  novo  vér5ce  em  U    

¢ Complexidade  dessa  implementação  �   O(|V|2).  

Eficiência  do  algoritmo  de  Prim  depende  de  como  será  feita  a  seleção  da  aresta  (u,  v)  

Page 26: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ALGORITMO  DE  PRIM:  COMPLEXIDADE  

¢ Implementação  mais  sofis5cada:    �  fila  de  prioridade  para  manter  os  vér5ces  em  V-­‐U.  �  chave  da  fila  de  prioridade  de  um  vér5ce    v  ∈  V-­‐U  é  o  peso  da  aresta  mais  leve  que  liga  v  a  um  vér5ce  de  U.  

�  se  a  fila  de  prioridade  for  implementada  com  um  heap    

¢ Complexidade  dessa  implementação  �  O(|A|  log  |V|).  

Eficiência  do  algoritmo  de  Prim  depende  de  como  será  feita  a  seleção  da  aresta  (u,  v)  

Page 27: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  KRUSKAL  ¢ Ideia  geral:  

�  inicia-­‐se  com  um  grafo  G’  =  (V,  ∅)  �  cada  vér5ce  é  um  componente  conexo  de  si  mesmo  

�  a  cada  iteração,  são  construídos  componentes  conexos  cada  vez  maiores  

Page 28: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE  GERADORA  MÍNIMA:  ALGORITMO  DE  KRUSKAL  ¢ Ideia  geral  (cont.):  

�  para  “aumentar”  os  componentes  conexos  =>  arestas  em  A  são  analisadas  por  ordem  ascendente  de  peso.  ¢   Q:  contém  as  arestas  de  G  ordenadas  pelo  peso  

�  se  a  aresta  conecta  dois  vér5ces  em  dois  componentes  separados  =>  a  aresta  é  adicionada  a  T.  

�  se  a  aresta  conecta  dois  vér5ces  do  mesmo  componente    =>  ela  é  descartada,  pois  criaria  um  ciclo.  

Page 29: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

Page 30: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

Q = {(1,3),(2,3),(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T =

no  início,  cada  vér5ce  

é  um  componente  

dis5nto  

Page 31: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta dois componentes distintos Q = {(1,3),(2,3),(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T =

Page 32: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar aresta a T Q = {(2,3),(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3)}

Page 33: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta dois componentes distintos Q = {(2,3),(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3)}

Page 34: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar aresta a T Q = {(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3)}

Page 35: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta dois componentes distintos Q = {(3,4),(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3)}

Page 36: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

4

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar aresta a T Q = {(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4)}

Page 37: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta dois componentes distintos Q = {(5,6),(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4)}

4

Page 38: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar aresta a T Q = {(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6)}

4

Page 39: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: escolher a aresta de menor peso que conecta dois componentes distintos Q = {(3,6),(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6)}

4

Page 40: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: adicionar aresta a T Q = {(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 41: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: destacar a aresta de menor peso, desde que ela conecta dois vértices do mesmo componente Q = {(4,6),(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 42: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: destacar a aresta de menor peso, desde que ela conecta dois vértices do mesmo componente Q = {(1,4),(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 43: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: destacar a aresta de menor peso, desde que ela conecta dois vértices do mesmo componente Q = {(2,5),(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 44: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: destacar a aresta de menor peso, desde que ela conecta dois vértices do mesmo componente Q = {(1,2),(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 45: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

6 1

2 3

6 5

5

2 2 1

5 6 4 4

3

algoritmo: destacar a aresta de menor peso, desde que ela conecta dois vértices do mesmo componente Q = {(3,5)} T = {(1,3),(2,3),(3,4),(5,6),(3,6)}

4

Page 46: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL - EXEMPLO

1

2 3

6 5

2 2 1

4

3

4

FIM DO ALGORITMO

Page 47: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ÁRVORE GERADORA MÍNIMA: ALGORITMO DE KRUSKAL

procedimento Kruskal(var Grafo: TGrafo; var T: conjunto de arestas)

variáveis u, v: TVertice; U1,...,Un: conjunto de TVertice; Q: fila de prioridade;

início T := ∅; Q := as arestas de G ordenadas pelo seu peso; para i:=1 até Grafo.NumVertices faça Ui := {i}; enquanto houver arestas em Q faça início seja (u, v) a aresta de menor peso de Q tal que (u ∈ Up) e (v ∈ Uq) e (Up ∩ Uq)= ∅ T := T ∪ {(u, v)}; Up := Up ∪ Uq; eliminar Uq; fim

fim

Page 48: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

ALGORITMO  DE  KRUSKAL:  COMPLEXIDADE  

¢  Implementação  mais  sofis5cada:  �  Q  implementada  como  uma  fila  de  prioridade  com  um  heap  

�  operação  de  conjuntos  eficiente  ¢ Complexidade  dessa  implementação  

�  O(|A|  log  |A|).  

Eficiência  do  algoritmo  de  Kruskal  depende  de  dois  fatores  principais:  -­‐  encontrar  a  aresta  de  menor  peso  -­‐  verificar  se  a  aresta  conecta  dois  componentes  

dis5ntos  (Up  ∩  Uq)  

mais  eficiente  do  que  o  algoritmo  de  Prim    para  grafos  esparsos  

Page 49: aula06 grafos mst - USPwiki.icmc.usp.br/images/6/65/SCC0603022016... · Grafos’–Árvores’ Geradoras’Mínimas’ Profa.Elaine Parros’Machado’de’Sousa’ adaptações:*Cris.na*Dutra*de*AguiarCiferri

BIBLIOGRAFIA  ¢ N.  Ziviani.  Projeto  de  Algoritmos,  Thomson,  2a.  Edição,  2004.  

¢ T.  H.  Cormen,  C.  E.  Leiserson  and  R.  L.  Rivest.  Introduc5on  to  Algorithms,  MIT  Press,  2nd  Edi5on,  2001.