Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Caminhamento em Grafos
Autoria: Celso C. Ribeiro e Caroline T. Rocha Adaptação: Maria Claudia Silva Boeres
2
Caminhamento em Grafos
Caminhar/percorrer um grafo: visitar todos os nós e arestas BUSCA EM PROFUNDIDADE Enquanto for possível, aprofundar-se no grafo. Quando não for mais possível, recuar. 7º 6º 8 9 1 5 4 2 6 3 7 10 1º 2 8º 3 10 1 10º 9 4 3º 6 2º 4º 7 5 9º 8 5º Algoritmos em Grafos
3
Caminhamento em Grafos
1 4 6 5 7 8 3 2 10 9 7º 6º 8 9 1 5 4 2 6 3 7 10 1º 2 8º 3 10 1 10º 9 4 3º 6 2º 4º 7 5 9º 8 5º Algoritmos em Grafos
4
Caminhamento em Grafos
A ordem em que os nós e arestas são visitados depende: do nó inicial da ordem em que os nós e as arestas aparecem na estrutura de dados Algoritmos em Grafos
5
Caminhamento em Grafos
Algoritmo recursivo para busca a partir de um nó Procedimento PROF(nó v) visitado(v) sim Para cada nó w adjacente a v faça Se visitado(w) = não então PROF(w) fim-para Fim Algoritmos em Grafos
6
Caminhamento em Grafos
Exemplo: 1 D A E B C F G H A A B C D E F G H X X 2 7 B C X X D E F G 3 X 5 6 8 X X H 4 X não visitado visitado Algoritmos em Grafos
7
Caminhamento em Grafos
Exemplo: A B E F D H C G 1 D A E B C F G H A 2 7 B C D E F G 3 5 6 8 H 4 Árvore de busca em profundidade (pilha) Algoritmos em Grafos
8
Caminhamento em Grafos
Algoritmo de busca em profundidade Procedimento BUSCA-PROF Para i = 1,...,n faça visitado(i) não fim-para Se visitado(i) = não então PROF(i) Fim Algoritmos em Grafos
9
Caminhamento em Grafos
Exemplo: 7 1 11 8 2 3 1 7 5 6 4 11 9 14 12 10 13 1 2 11 6 8 7 8 2 3 10 14 9 4 9 12 6 3 10 5 5 13 4 13 12 14 Algoritmos em Grafos
10
Caminhamento em Grafos
Aplicações de busca em profundidade, grafo G=(V,E) Algoritmos em Grafos
11
Caminhamento em Grafos
Algoritmo para encontrar as componentes conexas Procedimento COMPONENTES-CONEXAS Para i = 1,...,n faça visitado(i) 0 fim-para componente 0 Se visitado(i) = 0 então componente componente + 1 PROF(i, componente) fim-se Fim Algoritmos em Grafos
12
Caminhamento em Grafos
Algoritmo para encontrar as componentes conexas Procedimento PROF(v, marca) visitado(v) marca Para cada nó w adjacente a v faça Se visitado(w) = 0 então PROF(w, marca) fim-se fim-para Fim Algoritmos em Grafos
13
Caminhamento em Grafos
BUSCA EM AMPLITUDE Enquanto for possível, examinar todos os nós à mesma distância do nó inicial. Quando não for mais possível, aprofundar. 5 6 8 9 1 5 4 2 6 3 7 10 1 2 9 3 10 1 2 9 4 7 6 4 10 7 5 3 8 8 Algoritmos em Grafos
14
Caminhamento em Grafos
D A E B C F G Exemplo: Árvore de busca em profundidade (pilha) Árvore de busca em amplitude (fila) B C A F G D E D E A F G C B Algoritmos em Grafos
15
Caminhamento em Grafos
Algoritmo de busca em amplitude Procedimento BUSCA-AMPL(v) visitado(v) sim Colocar v em uma fila Enquanto fila não vazia faça w retirar o elemento da frente da fila Para cada vértice i adjacente a w faça Se visitado(i) = não então visitado(i) sim Colocar i no final da fila fim-se fim-para fim-enquanto Fim Algoritmos em Grafos
16
Caminhamento em Grafos
Exemplo: A B C D E F G H 1 D A E B C F G H A 2 3 B C D E F G 4 5 6 7 H 8 Fila w = G H F B D E A C não visitado visitado F G H B C A E D E C D B G F D F E C D E Algoritmos em Grafos
17
Caminhamento em Grafos
Exemplo: D A E B C F G H 1 D A E B C F G H A 2 3 B C D E F G 4 5 6 7 H 8 Árvore de busca em amplitude (fila) Algoritmos em Grafos
18
Caminhamento em Grafos
Exemplo: 1 5 6 8 2 5 4 RCM 1 7 3 4 3 7 1 7 5 4 2 3 8 6 2 6 8 Árvore de busca em amplitude (fila) Algoritmos em Grafos
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.