Sunteți pe pagina 1din 70

Grafos:

Busca em Profundidade
Centro de Inform-ca Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br

2011 Vinicius Cardoso Garcia

Introduo
Existem duas maneiras bsicas de percorrer um grafo:
Busca em profundidade Busca em largura

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

Busca em Profundidade
A estratgia de buscar o mais profundamente no grafo quanto possvel As arestas so exploradas a par-r do vr-ce V mais recentemente descoberto que ainda possui arestas ainda no exploradas Quando no existem mais arestas a serem exploradas em profundidade, busca-se explorar as outras arestas de V
Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

Passos para a Busca em Profundidade


1. Marcar todos os vr-ces como no visitados 2. Percorrer cada um dos vr-ces no visitados em profundidade
1. Visitar o vr-ce e marc-lo como visitado 2. Obter uma lista de vr-ces adjacentes 3. Visitar em profundidade os vr-ces adjacentes marcados como no visitados

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

Exemplo
8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

1. Marcar todos os vr?ces como no visitados


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

2. Percorrer os vr?ces no visitados em profundidade


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

2.1 Visitar o 1 vr?ce no visitado: Vr?ce 0


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

2.2. Obter a lista de vr?ces adjacentes ao vr?ce 0


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

2.2. Visitar em profundidade vr?ces adjacentes no visitados (1, 2 e 3)


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

10

Visitando o vr?ce 1 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

11

Obtendo a lista de adjacentes de 1


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

12

Visitando em profundidade os vr?ces adjacentes no visitados (4 e 5)


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

13

Visitando o vr?ce 4 em profundidade


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

14

Obtendo a lista de adjacentes ao vr?ce 4


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

15

Visitando o vr?ce 8 em profundidade


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

16

Obtendo a lista de adjacentes ao vr?ce 8


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

17

Visitando o vr?ce 7 em profundidade


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

18

Obtendo a lista de adjacentes ao vr?ce 7


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

19

Visitar os vr?ces adjacentes ao vr?ce 7 no visitados em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

20

Visitando o vr?ce 5 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

21

Lista de adjacentes ao vr?ce 5 vazia...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

22

Lista de adjacentes ao vr?ce 5 vazia


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

23

Visitar os vr?ces adjacentes ao vr?ce 7 no visitados em profundidade


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

24

Visitando o vr?ce 10 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

25

Lista de adjacentes ao vr?ce 10 vazia...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

26

Todos os adjacentes ao vr?ce 7 j foram visitados


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

27

Todos os adjacentes ao vr?ce 8 j foram visitados...


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

28

Todos os adjacentes ao vr?ce 4 j foram visitados...


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

29

Todos os adjacentes ao vr?ce 1 j foram visitados...


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

30

Con?nuando a visita aos vr?ces adjacentes ao vr?ce 0 no visitados...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

31

Visitando o vr?ce 2 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

32

Obtendo adjacentes ao vr?ce 2...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

33

Visitando o vr?ce 6 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

34

No existem vr?ces adjacentes ao vr?ce 6...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

35

Todos os vr?ces adjacentes ao vr?ce 2 j foram visitados...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

36

Con?nuando a visita aos vr?ces adjacentes a zero no visitados...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

37

Visitando o vr?ce 3 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

38

Obtendo os vr?ces adjacentes a 3...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

39

Visitando o vr?ce 9 em profundidade...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

40

No existem adjacentes ao vr?ce 9...


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

41

Todos adjacentes ao vr?ce 3 j foram visitados...


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

42

Todos adjacentes ao vr?ce 0 j foram visitados...


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

43

Percursos Pr e Ps Ordem
A busca em profundidade pode ser usada para a realizao de operaes nos vr-ces de um grafo Para isto, podem ser considerados dois -pos de percurso:
Percurso pr-ordem Percurso ps-ordem

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

44

Percurso Pr-Ordem
No percurso pr-ordem, as operaes acontecem no momento em que o vr-ce marcado como CINZA No percurso ps-ordem, as operaes acontecem no momento em que o vr-ce marcado como PRETO

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

45

Percurso pr e ps ordem na busca em profundidade


4

8 1 3 0 6 9 2

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

46

Pr-Ordem: 0 Ps-Ordem:
8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

47

Pr-Ordem: 0,1 Ps-Ordem:


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

48

Pr-Ordem: 0,1,4 Ps-Ordem:


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

49

Pr-Ordem: 0,1,4,8 Ps-Ordem:


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

50

Pr-Ordem: 0,1,4,8,7 Ps-Ordem:


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

51

Pr-Ordem: 0,1,4,8,7,5 Ps-Ordem:


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

52

Pr-Ordem: 0,1,4,8,7,5 Ps-Ordem: 5


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

53

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

54

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5,10


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

55

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5,10,7


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

56

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5,10,7,8


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

57

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5,10,7,8,4


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

58

Pr-Ordem: 0,1,4,8,7,5,10 Ps-Ordem: 5,10,7,8,4,1


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

59

Pr-Ordem: 0,1,4,8,7,5,10,2 Ps-Ordem: 5,10,7,8,4,1


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

60

Pr-Ordem: 0,1,4,8,7,5,10,2,6 Ps-Ordem: 5,10,7,8,4,1


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

61

Pr-Ordem: 0,1,4,8,7,5,10,2,6 Ps-Ordem: 5,10,7,8,4,1,6


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

62

Pr-Ordem: 0,1,4,8,7,5,10,2,6 Ps-Ordem: 5,10,7,8,4,1,6,2


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

63

Pr-Ordem: 0,1,4,8,7,5,10,2,6,3 Ps-Ordem: 5,10,7,8,4,1,6,2


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

64

Pr-Ordem: 0,1,4,8,7,5,10,2,6,3,9 Ps-Ordem: 5,10,7,8,4,1,6,2


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

65

Pr-Ordem: 0,1,4,8,7,5,10,2,6,3,9 Ps-Ordem: 5,10,7,8,4,1,6,2,9


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

66

Pr-Ordem: 0,1,4,8,7,5,10,2,6,3,9 Ps-Ordem: 5,10,7,8,4,1,6,2,9,3


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

67

Pr-Ordem: 0,1,4,8,7,5,10,2,6,3,9 Ps-Ordem: 5,10,7,8,4,1,6,2,9,3,0


8 1 3 0 6 9 2 4

7 10

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

68

Recapitulando...
Passos para a Busca em Profundidade Recapitulando
1. Marcar todos os vr-ces como no visitados 2. Percorrer cada um dos vr-ces no visitados em profundidade
1. Visitar o vr-ce e marc-lo como visitado 2. Obter uma lista de vr-ces adjacentes 3. Visitar em profundidade os vr-ces adjacentes marcados como no visitados

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

69

A?vidades Complementares
Leitura do captulo 22 do livro do Cormen Implementar a busca em profundidade para grafos, incluindo a impresso do grafo em pr e ps ordem

Algoritmos e Estrutura de Dados Grafos: Busca em Profundidade 2011 Vinicius Cardoso Garcia

70

S-ar putea să vă placă și