Top Banner
Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha
126

Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Oct 13, 2018

Download

Documents

nguyenquynh
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: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Grafos Representações, Buscas e Aplicações

MC 202 – Estruturas de Dados

Prof. Anderson Rocha

Page 2: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Organização dessa aula

Page 3: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Sumário

3

‣ Recapitulando

‣ Implementação de Grafos

‣ Algoritmos em Grafos: Busca em Profundidade e Largura

‣ Aplicações

‣ Lição da aula de hoje

‣ Próximos capítulos

‣ Exercícios

Page 4: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Warming Up...

Page 5: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

O que vimos até agora?

‣ O que vimos no curso até o momento

• Arranjos, filas, pilhas

• Árvores (Binária, B, heaps)

• Hashes

• Grafos (Definições)

5

Page 6: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Grafos – Definições

‣ Um grafo G = (V, A) é constituído de um conjunto de vértices e um conjunto de arestas conectando pares de vértices.

‣ Pode ser direcionado, não direcionado, ponderado

6

Page 7: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Grafos – Definições

‣ Muitas aplicações em computação precisam considerar um conjunto de conexões entrepares de objetos

• Existe um caminho para ir de um objeto a outro seguindo as conexões?

• Qual a menor distância entre um objeto e outro?

• Quantos objetos podem ser alcançados a partir de um determinado objeto?

7

Page 8: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Grafos – Aplicações

‣ Alguns problemas práticos que podemos resolver com grafos

• Ajudar máquinas de busca a localizar informação relevante na Web

• Descobrir os melhores casamentos entre posições disponíveis em empresas e pessoas que aplicaram para as posições de interesse

• Descobrir qual o roteiro mais curto para visitar as principais cidades de uma regiões turística

8

Page 9: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Grafos – Modelagem

‣ Finalmente, vimos a questão da modelagem de problemas segundo a ótica de grafos

‣ Exemplo da conexão entre cidades, distâncias, pedágios, pavimentação etc.

9

Page 10: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Ok... mas como implementar?

Page 11: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Idéias básicas

‣ Podemos implementar o tipo abstrato de dados “Grafo” basicamente de duas formas

• Matriz de Adjacências

• Lista de Adjacências

11

Page 12: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Matriz de Adjacências

‣ A matriz de adjacências de um grafo G = (V, A) contendo n vértices é uma matriz de nxn

‣ A[i,j] é 1 se e somente se existe um arco do vértice i para o vértice j.

12

Page 13: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Matriz de Adjacências

13

Como fazer com grafos ponderados?

Page 14: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Matriz de Adjacências

‣ Quando devemos optar por essa representação?

• Grafos densos (|A| ~ |V|2)

• Por que?

‣ O tempo necessário para acessar um elemento é independente de |V| ou |A|

14

Page 15: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Matriz de Adjacências

‣ É útil quando queremos saber com rapidez se existe um aresta ligando dois vértices

‣ Qual a desvantagem?

• Armazenamento necessita Ω(|V|2) de espaço

• Então ler ou examinar a matriz nos custa O(|V|2)

15

Page 16: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Lista de Adjacências

‣ Utilizamos listas encadeadas

‣ Temos um arranjo adj de |V| listas, uma para cada vértice em V

‣ Para cada vértice u em V

• adj[u] contém todos os vértices adjacentes a u em G.

16

Page 17: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Lista de Adjacências

17

0

1

2

3

1 5

1 3 2 7

0

1

2

3

1 5

0 5 2 7

1 7

Page 18: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Lista de Adjacências

‣ Armazenamento em ordem arbitrária

‣ Complexidade de espaço é O(|V| + |A|)

‣ Quando é indicada?

• Grafos esparsos (|A| << |V|2)

18

Page 19: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Lista de Adjacências

‣ Qual a maior desvantagem?

• Pode ter tempo O(|V|) para determinar se existe uma aresta entre o vértice i e o vértice j

• Por que? Podem existir O(|V|) vértices na lista de adjacentes do vértice i.

19

Page 20: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Ok... mas o que podemos fazer com isso?

Page 21: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Algoritmos em Grafos

‣ Efetuar buscas

‣ Determinar topologias e restrições

‣ Achar caminhos mínimos

‣ Achar componentes

21

Page 22: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Algoritmos em Grafos

‣ Determinar comunidades em redes sociais

‣ Analisar padrões de espalhamento e comportamento

‣ etc.

22

Page 23: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Busca em Profundidade

Page 24: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ É um algoritmo para caminhar no grafo

‣ A estratégia é buscar o “mais profundo” no grafo sempre que possível

‣ As arestas são exploradas a partir do vértice v mais recentemente descoberto que ainda possui arestas não exploradas saindo dele

24

Page 25: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ Quando todas as arestas adjacentes a v tiverem sido exploradas a busca “anda para tras” para explorar vértices que saem do vértice do qual v foi descoberto

‣ Algoritmo útil em diversas aplicações

• Ordenação topológica

• Componentes conectados

• Verificação de ciclos

25

Page 26: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ Para acompanhar o progresso do algoritmo, cada vértice é colorido de branco, cinza ou preto

‣ Todos os vértices começam em branco

‣ Quando um vértice é descoberto pela 1ª vez, ele se torna cinza

26

Page 27: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ Quando acabamos de analisar sua lista de adjacentes ele se torna preto

‣ Usamos “time-stamps” para marcar o tempo de descoberta e o tempo de finalização

27

Page 28: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

28

u v w

x y z

Page 29: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

29

1/

u v w

x y z

Page 30: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

30

1/ 2/

u v w

x y z

Page 31: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

31

1/ 2/

u v w

x y z

Page 32: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

32

1/ 2/

3/

u v w

x y z

Page 33: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

33

1/ 2/

3/

u v w

x y z

Page 34: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

34

1/ 2/

4/ 3/

u v w

x y z

Page 35: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

35

1/ 2/

4/ 3/

u v w

x y z

Page 36: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

36

1/ 2/

4/5 3/

u v w

x y z

Page 37: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

37

1/ 2/

4/5 3/6

u v w

x y z

Page 38: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

38

1/ 2/7

4/5 3/6

u v w

x y z

Page 39: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

39

1/ 2/7

4/5 3/6

u v w

x y z

Page 40: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

40

1/8 2/7

4/5 3/6

u v w

x y z

Page 41: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

41

1/8 2/7 9/

4/5 3/6

u v w

x y z

Page 42: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

42

1/8 2/7 9/

4/5 3/6

u v w

x y z

Page 43: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

43

1/8 2/7 9/

4/5 3/6

u v w

x y z

Page 44: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

44

1/8 2/7 9/

4/5 3/6 10/

u v w

x y z

Page 45: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

45

1/8 2/7 9/

4/5 3/6 10/

u v w

x y z

Page 46: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

46

1/8 2/7 9/

4/5 3/6 10/1

u v w

x y z

Page 47: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

47

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

Page 48: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Algoritmo e Complexidade

Page 49: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

1. BuscaProf(G)

2. Para cada vértice u em V[G]

3. coru = Branco; paiu = NULL

4. tempo = 0

5. Para cada vértice u em V[G]

6. Se(coru == Branco)

7. Visitar(u)

Busca em Profundidade

49

Page 50: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

1. BuscaProf(G)

2. Para cada vértice u em V[G]

3. coru = Branco; paiu = NULL

4. tempo = 0

5. Para cada vértice u em V[G]

6. Se(coru == Branco)

7. Visitar(u)

Busca em Profundidade

50

O(|V|)

Page 51: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

1. BuscaProf(G)

2. Para cada vértice u em V[G]

3. coru = Branco; paiu = NULL

4. tempo = 0

5. Para cada vértice u em V[G]

6. Se(coru == Branco)

7. Visitar(u)

Busca em Profundidade

51

O(|V|)

???

Page 52: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

1. Visitar(u)

2. coru = cinza; tempo = tempo + 1; du = tempo;

3. Para cada v em Adj[u]

4. Se (corv == Branco)

5. paiv = u

6. Visitar(v)

7. coru = Preto

8. fu = tempo + 1; tempo = tempo + 1;

Busca em Profundidade

52

Executado vezes |Adj[u]|

Page 53: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ Fazemos uso da Análise agregada

‣ Visitar é chamado apenas uma vez para cada vértice v em V mas apenas para vértices brancos

‣ Todas as chamadas a Visitar tem custo

!

!

‣ Logo, custo do algoritmo é O(|V| + |E|)

53

u�V

|Adj[u]| = �(E)

Page 54: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Busca em Largura

Page 55: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

‣ Explicar busca em largura

55

Page 56: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

56

r s t u

v w x y

Page 57: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

57

∞ 0 ∞ ∞

∞ ∞ ∞ ∞

r s t u

v w x y

Fila Q s

0Nível

Page 58: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

58

1 0 ∞ ∞

∞ 1 ∞ ∞

r s t u

v w x y

Fila Q w

1Nívelr

1

Page 59: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

59

1 0 ∞ ∞

∞ 1 ∞ ∞

r s t u

v w x y

Fila Q w

1Nívelr

1

Page 60: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

60

1 0 2 ∞

∞ 1 2 ∞

r s t u

v w x y

Fila Q r

1Nívelt

2

x

2

Page 61: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

61

1 0 2 ∞

∞ 1 2 ∞

r s t u

v w x y

Fila Q r

1Nívelt

2

x

2

Page 62: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

62

1 0 2 ∞

2 1 2 ∞

r s t u

v w x y

Fila QNível

t

2

x

2

v

2

Page 63: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

63

1 0 2 ∞

2 1 2 ∞

r s t u

v w x y

Fila QNível

t

2

x

2

v

2

Page 64: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

64

1 0 2 3

2 1 2 ∞

r s t u

v w x y

Fila QNível

x

2

v

2

u

3

Page 65: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

65

1 0 2 3

2 1 2 ∞

r s t u

v w x y

Fila QNível

x

2

v

2

u

3

Page 66: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

66

1 0 2 3

2 1 2 3

r s t u

v w x y

Fila QNível

v

2

u

3

y

3

Page 67: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

67

1 0 2 3

2 1 2 3

r s t u

v w x y

Fila QNível

v

2

u

3

y

3

Page 68: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

68

1 0 2 3

2 1 2 3

r s t u

v w x y

Fila QNível

u

3

y

3

Page 69: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

69

1 0 2 3

2 1 2 3

r s t u

v w x y

Fila QNível

y

3

Page 70: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura

70

1 0 2 3

2 1 2 3

r s t u

v w x y

Fila QNível

ø

Page 71: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura – Algoritmo

71

1. BuscaLarg(G)

2. Para cada vértice u em V[G] - {S}

3. coru = Branco; du = 0; paiu = NULL

4. cors = Cinza

5. ds = 0; pais = NULL;

6. Q = {}

7. Enqueue(Q,s)

Page 72: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Largura – Algoritmo

72

8. (...)

9. while(Q != {})

10. u = DeQueue(Q)

11. foreach v = Adj[u]

12. if(corv BRANCO)

13. corv = CINZA; dv = du + 1; paiv = u;

14. Enqueue(Q,v)

15. coru = PRETO

Page 73: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Aplicações de Buscas

Page 74: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Onde podemos usar a Busca em Profundidade?

Page 75: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Ordenação Topológica

Aplicação 1

Page 76: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade

‣ Podemos usar Busca em Profundidade para Ordenar Topologicamente um grafo

‣ Ordenação topológica é uma ordenação linear de todos os seus vértices, tal que se se o grafo G (acíclico*) tem uma aresta (u, v), então u aparece antes de v na ordenação

76

* Grafo cíclico = não é possível ordem linear

Page 77: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade‣ Considere o problema

• João quer definir a ordem de ações em que deve se preparar para uma reunião

• Suas restrições são que ele deve vestir a cueca antes das calças e o cinto só pode ser colocado após vestir a calça

• O paletó deve ser colocado após colocar os cintos

• A camisa deve ser colocada antes do cinto

77

Page 78: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Busca em Profundidade‣ Considere o problema

• A gravata deve ser colocada depois da camisa e antes do paletó

• As meias podem ser colocadas em qualquer ordem

• As Cueca devem ser colocadas antes dos sapatos assim como as calças

‣ Como conseguir um plano de execução?

78

Page 79: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

79

Cueca

Calças

Cinto

Camisa

Gravata Sapatos

Meias

Paletó

Page 80: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

80

Cueca

Calças

Cinto

Camisa (1/)

Gravata Sapatos

Meias

Paletó

Page 81: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

81

Cueca

Calças

Cinto

Camisa (1/)

Gravata (2/) Sapatos

Meias

Paletó

Page 82: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

82

Cueca

Calças

Cinto

Camisa (1/)

Gravata (2/) Sapatos

Meias

Paletó (3/)

Page 83: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

83

Cueca

Calças

Cinto

Camisa (1/)

Gravata (2/) Sapatos

Meias

Paletó (3/4)

{Paletó}

Page 84: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

84

Cueca

Calças

Cinto

Camisa (1/)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Gravata, Paletó}

Page 85: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

85

Cueca

Calças

Cinto (6/)

Camisa (1/)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Gravata, Paletó}

Page 86: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

86

Cueca

Calças

Cinto (6/7)

Camisa (1/)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Cinto, Gravata, Paletó}

Page 87: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

87

Cueca

Calças

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Camisa, Cinto, Gravata, Paletó}

Page 88: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

88

Cueca (9/)

Calças

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Camisa, Cinto, Gravata, Paletó}

Page 89: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

89

Cueca (9/)

Calças (10/)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos

Meias

Paletó (3/4)

{Camisa, Cinto, Gravata, Paletó}

Page 90: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

90

Cueca (9/)

Calças (10/)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/)

Meias

Paletó (3/4)

{Camisa, Cinto, Gravata, Paletó}

Page 91: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

91

Cueca (9/)

Calças (10/)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/12)

Meias

Paletó (3/4)

{Sapatos, Camisa, Cinto, Gravata, Paletó}

Page 92: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

92

Cueca (9/)

Calças (10/13)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/12)

Meias

Paletó (3/4)

{Calças, Sapatos, Camisa, Cinto, Gravata, Paletó}

Page 93: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

93

Cueca (9/14)

Calças (10/13)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/12)

Meias

Paletó (3/4)

{Cueca, Calças, Sapatos, Camisa, Cinto, Gravata, Paletó}

Page 94: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

94

Cueca (9/14)

Calças (10/13)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/12)

Meias (15/)

Paletó (3/4)

{Cueca, Calças, Sapatos, Camisa, Cinto, Gravata, Paletó}

Page 95: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

95

Cueca (9/14)

Calças (10/13)

Cinto (6/7)

Camisa (1/8)

Gravata (2/5) Sapatos (11/12)

Meias (15/16)

Paletó (3/4)

{Meias, Cueca, Calças, Sapatos, Camisa, Cinto, Gravata, Paletó}

Page 96: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Ordenação Topológica

96

{Meias, Cueca, Calças, Sapatos, Camisa, Cinto, Gravata, Paletó}

Meias (15/16) Cueca (9/14) Calças (10/13)

Sapatos (11/12)

Camisa (1/8)

Cinto (6/7)

Gravata (2/5)

Paletó (3/4)

Page 97: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Componentes Fortemente Conectados

Aplicação 2

Page 98: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

‣ A decomposição de um grafo orientado em seus componentes fortemente conectados

‣ Por que? Porque muitos algoritmos podem fazer a decomposição e depois serem executados separadamente em cada componente

98

Page 99: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

‣ O que é um componente fortemente conectado em um grafo G = (V, A)?

• É um conjunto maximal de vértices C em V, tal que para todo par u e v em C, temos ao mesmo tempo um caminho de u a v e v a u

• Em outras palavras, u e v são mutuamente acessíveis

99

Page 100: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

1. CPTFortementeConectado(G)

2. BuscaProf(G)

3. Calcular GT

4. BuscaProf(GT), mas no laço principal da busca em profundidade, considerar os vértices em ordem decrescente de tempo de término fu

5. Dar saída aos vértices de cada árvore resultante em (3) como um CPT fortemente conectado

100

Page 101: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

1. CPTFortementeConectado(G)

2. BuscaProf(G)

3. Calcular GT

4. BuscaProf(GT), mas no laço principal da busca em profundidade, considerar os vértices em ordem decrescente de tempo de término fu

5. Dar saída aos vértices de cada árvore resultante em (3) como um CPT fortemente conectado

101

Page 102: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

102

u v w

x y z

G

u v w

x y z

GT

Page 103: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

103

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

u v w

x y z

BuscaProf(GT)

Page 104: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

104

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

1/

u v w

x y z

BuscaProf(GT)

Page 105: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

105

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

1/2

3/

u v w

x y z

BuscaProf(GT)

Page 106: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

106

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

1/2

3/4

u v w

x y z

BuscaProf(GT)

Page 107: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

107

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/ 1/2

3/4

u v w

x y z

BuscaProf(GT)

Page 108: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

108

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 1/2

3/4

u v w

x y z

BuscaProf(GT)

Page 109: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

109

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

3/4

u v w

x y z

BuscaProf(GT)

Page 110: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

110

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/ 3/4

u v w

x y z

BuscaProf(GT)

Page 111: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

111

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/ 9/ 3/4

u v w

x y z

BuscaProf(GT)

Page 112: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

112

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/ 9/ 3/4

u v w

x y z

BuscaProf(GT)

Page 113: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

113

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/ 9/ 3/4

u v w

x y z

BuscaProf(GT)

Page 114: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

114

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/ 9/10 3/4

u v w

x y z

BuscaProf(GT)

Page 115: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

115

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/ 1/2

8/11 9/10 3/4

u v w

x y z

BuscaProf(GT)

Page 116: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

116

1/8 2/7 9/12

4/5 3/6 10/1

u v w

x y z

BuscaProf(G)

5/6 7/12 1/2

8/11 9/10 3/4

u v w

x y z

BuscaProf(GT)

Page 117: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Componentes Conectados

117

5/6 7/12 1/2

8/11 9/10 3/4

u v w

x y z

BuscaProf(GT)v

x y

w

z

u

Resultado

1/8 2/7 9/12

4/5 3/6 10/11

u v w

x y z

BuscaProf(G)

Page 118: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Lição da aula de hoje

Page 119: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Lição da aula de hoje

1. O que aprendemos na aula de hoje?

2. Importância da estrutura de dados grafo

3. Como implementá-la em computador (Listas x Matrizes)

4. Busca em profundidade e complexidade

5. Aplicação da busca em profundidade

119

Page 120: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Próximos capítulos...

Page 121: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Próximos capítulos...

1. Mais aplicações da busca em profundidade

2. Complexidade e Aplicações

3. Árvores geradoras

4. Caminhos mínimos

121

Page 122: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Para casa...

Page 123: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Para casa...

‣ Para cada um dos grafos a seguir, representá-los como matrizes e listas de adjacências

‣ Discutir quais vantagens e desvantagens de cada implementação para cada grafo

‣ Realizar a busca em profundidade em cada grafo

‣ Realizar ordenação topológica (quando cabível)

‣ Achar os CPTs fortemente conectados

123

Page 124: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Para casa...

124

1 2

3

Page 125: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

MC202 Estruturas de Dados – Prof. Anderson Rocha

Referências

Projeto de Algoritmos com implementações em Java e C++. Nivio Ziviani, 2007. Cap. 7

Introduction to Algorithms. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, 2nd ed. Caps. 22-26

Introduction to Algorithms – A creative approach. Udi Manber. Cap. 7 The Algorithm design manual. Steven Skiena. Cap. 4

125

Page 126: Grafos - ic.unicamp.brrocha/teaching/2014s1/mc202/aulas/aula-grafos.pdf · Grafos Representações, Buscas e Aplicações MC 202 – Estruturas de Dados Prof. Anderson Rocha

Obrigado!