26
Grafos - Busca Profa. Elaine Parros Machado de Sousa alterações: Cristina Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo Ba5sta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS DE DADOS II

Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

Grafos - Busca

Profa.ElaineParrosMachadodeSousaalterações: Cristina Dutra de Aguiar Ciferri

Materialbaseadoemaulasdosprofessores:

GustavoBa5sta,RobsonCordeiro,MoacirPon5Jr.,MariaCris5naOliveiraeThiagoA.S.Pardo

ALGORITMOS E ESTRUTURAS DE DADOS II

Page 2: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

BUSCAEMGRAFOS:MOTIVAÇÃO¢ Percorrerumgrafoéumproblemafundamental�  deve-seterumaformasistemá5cadevisitarasarestaseosvér5ces

�  oalgoritmodevesersuficientementeflexívelparaseadequaràdiversidadedegrafos

¢ Requisitos�  nãodevehaverrepe5ções(desnecessárias)devisitasaumvér5cee/ouaresta

�  todososvér5cese/ouarestasdevemservisitados

Page 3: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

BUSCAEMGRAFOS:TIPOSDEBUSCA¢ Exemplos:

�  dadoumgrafoG=(V,A)eumvér5cev∈V=>encontrartodososvér5cesemGqueestãoconectadosav.

� dadoumgrafoG=(V,A)=>visitartodososvér5cesdeG.

¢ Duasmaneirasprincipaisderealizaressastarefas:�  Buscaemprofundidade�  Buscaemlargura

Page 4: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Breadth-FirstSearch–BFS�  expandeafronteiraentrevér5cesdescobertosenãodescobertosuniformementeatravésdalarguradafronteira.

¢ Caracterís5cas�  oalgoritmodescobretodososvér5cesaumadistânciakdovér5ceorigemantesdesedescobrirqualquervér5ceaumadistânciak+1

�  abuscaemlargurapermitedescobrirtodososvér5cesalcançáveisapar5rdeumvér5cedeorigemu,comomenornúmerodearestasentreuetodososoutrosvér5ces

BuscaemLargura:Definição

Page 5: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Cadavér5ceécoloridodebranco,cinzaoupreto.�  todososvér5cessãoinicialmentebrancos.�  quandoumvér5cevé“descoberto”pelaprimeiravezeletorna-secinza.

�  quandotodososvér5cesadjacentesavforem“descobertos”,vtorna-sepreto.

BuscaemLargura:Estratégia

Page 6: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Observações�  vér5cescinzaepretojáforam“descobertos”,massãodiferenciadosparaassegurarqueabuscaocorraemlargura

�  se(u,v)∈Aeovér5ceuépreto,entãoovér5cevtemquesercinzaoupreto.¢ todososvér5cesadjacentesaumvér5cepretojáforam“descobertos”

�  vér5cescinzapodemteralgunsvér5cesadjacentesbrancos,representandoafronteiraentrevér5ces“descobertos”enão“descobertos”.

BuscaemLargura:Estratégia

Page 7: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Usodeumafilaparaorganizarosvér5cesquedevemserdescobertos1  afilacomeçacomovér5ceorigem2  oprimeirovér5cedafilaérecuperadoe

processado,sendoqueseusvér5cesadjacentessãoinseridosnofinaldafila

3  seafilaestávazia,oprocessotermina.Casocontrário,volta-seaopasso2

BuscaemLargura:Fila

Page 8: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 1 0

Busca em Largura: Exemplo

k

Vértice origem: 1 Distância k do vértice origem: 0 Ação: vértice 1 torna-se cinza

Page 9: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 1 0

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 1: 2, 6 Distância k do vértice origem: 1

Page 10: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 6 1

2 1

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 1: 2, 6 Distância k do vértice origem: 1 Ação: vértice 1 torna-se preto e vértices 2 e 6 tornam-se cinza

Page 11: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 6 1

2 1

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 6: 3, 7 Distância k do vértice origem: 2

Page 12: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 2 1

3 7 2 2

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 6: 3, 7 Distância k do vértice origem: 2 Ação: vértice 6 torna-se preto e vértices 3 e 7 tornam-se cinza

Page 13: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 2 1

3 7 2 2

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 2: 5 Distância k do vértice origem: 2

Page 14: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 3 2

7 5 2 2

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 2: 5 Distância k do vértice origem: 2 Ação: vértice 2 torna-se preto e vértice 5 torna-se cinza

Page 15: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 3 2

7 5 2 2

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 3: 4 Distância k do vértice origem: 3

Page 16: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 7 2

5 4 2 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 3: 4 Distância k do vértice origem: 3 Ação: vértice 3 torna-se preto e vértice 4 torna-se cinza

Page 17: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 7 2

5 4 2 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 7: 8 Distância k do vértice origem: 3

Page 18: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 5 2

4 8 3 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 7: 8 Distância k do vértice origem: 3 Ação: vértice 7 torna-se preto e vértice 8 torna-se cinza

Page 19: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 5 2

4 8 3 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 5: nenhum Distância k do vértice origem: -

Page 20: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 4 3

8 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 5: nenhum Distância k do vértice origem: - Ação: vértice 5 torna-se preto

Page 21: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 4 3

8 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 4: nenhum Distância k do vértice origem: -

Page 22: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 8 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 4: nenhum Distância k do vértice origem: - Ação: vértice 4 torna-se preto

Page 23: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q 8 3

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 8: nenhum Distância k do vértice origem: -

Page 24: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

2

5

1

6

3

7

4

8

q

Busca em Largura: Exemplo

k

Vértices não descobertos adjacentes a 8: nenhum Distância k do vértice origem: - Ação: vértice 8 torna-se preto

Page 25: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Caracterís5ca�  linearemrelaçãoaotamanhodarepresentaçãodografousandolistasdeadjacência

¢ O(|V|)�  todososvér5cessãocolocadosnafilanomáximoumavez,ouseja,sãoexecutadas|V|iteraçõescomcustoO(1)cadaumadelas

¢ O(|A|)�  cadalistadeadjacênciaépercorridanomáximoumavezquandoovér5ceére5radodafila

Busca em Largura: Complexidade

O(|V|+|A|)

Page 26: Grafos - Buscawiki.icmc.usp.br/images/5/5d/SCC0603022016GrafosBu... · Gustavo Basta, Robson Cordeiro, Moacir Pon5 Jr., Maria Cris5na Oliveira e Thiago A. S. Pardo ALGORITMOS E ESTRUTURAS

¢ Oalgoritmoébaseparaoutrosalgoritmosimportantes:�  encontraraárvoregeradoramínima(MST)–AlgoritmodePrim

�  encontrarocaminhomaiscurtodeumvér5cevatodososoutros–AlgoritmodeDijkstra

BuscaemLargura:Uso

a busca em largura resulta no caminho mais curto entre o vértice origem u e um vértice qualquer v.