A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Caminhos e caminhamentos em Grafos

Apresentações semelhantes


Apresentação em tema: "Caminhos e caminhamentos em Grafos"— Transcrição da apresentação:

1 Caminhos e caminhamentos em Grafos
Leandro Guarino de Vasconcelos

2 Caminhamento em grafos
Caminhar (ou percorrer) um grafo consiste em visitar todos os seus vértices atravessando todas as suas arestas O caminhamento pode ocorrer utilizando busca em profundidade ou busca em largura A representação por lista de adjacências facilita o processo de caminhamento em grafos

3 Busca em Profundidade Enquanto for possível, aprofundar-se no grafo. Quando não for mais possível, recuar até que seja possível continuar a aprofundar-se. A ordem em que os nós e arestas são visitados depende Do vértice inicial Da ordem em que os vértices e arestas aparecem na lista de adjacências 8 9 1 5 4 2 6 3 7 10 2 3 10 1 10º 9 4 6 7 5 8

4 Busca em Profundidade Esse processo de busca pode ser representado por meio de uma árvore binária 1 4 6 5 7 8 3 2 10 9 8 9 1 5 4 2 6 3 7 10 2 3 10 1 10º 9 4 6 7 5 8

5 Busca em Profundidade X X X X X X X X
Caminhamento na lista de adjacências A árvore de busca em profundidade é gerada através de uma pilha 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

6 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 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

7 Busca em Largura Enquanto for possível, examinar todos os nós à mesma distância do nó inicial. Quando não for mais possível, aprofundar. Usa uma fila ao invés de uma pilha no processo de caminhamento 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

8 Busca em Profundidade X Busca em Largura
Árvore de busca em profundidade (pilha) Árvore de busca em largura (fila) B C A F G D E D E A F G C B

9 Busca em Largura Caminhamento na lista de adjacências Fila w = F G H D
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 = F G H D C E A B não visitado visitado F B C A G H E D B E D G C F E F C D D E

10 Algoritmo de Busca em Largura
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

11 APLICAÇÕES A solução de certos problemas não requerem que se encontre um caminho qualquer, mas um caminho específico Exemplo: caminho mínimo Usando busca em largura obtemos o menor caminho em termos do número de arestas percorridas Mas se tivermos pesos associados a arestas, a busca em largura não resolve

12 Arestas valoradas Na solução de diversos problemas, temos a associação de pesos, custos ou distâncias a cada aresta de um grafo Caminho mais curto Caminho mais rápido Caminho mais barato etc.

13 Exercício 1 Vértice inicial Lista de adjacências 1  2, 7 2  3, 1, 8 3  2, 4 4  3, 5, 9 5  4, 9, 6, 7 6  5, 8 7  1, 5 8  2, 6, 9 9  4, 5, 8 3 2 1 4 7 5 9 6 8

14 Exercício 2 Vértice inicial Lista de adjacências 1  2, 3, 4 2  1, 4 3  1, 4 4  2, 1, 3, 5, 6, 7 5  4 6  4, 8 7  4, 8 8  6, 7 5 2 1 6 3 4 8 7


Carregar ppt "Caminhos e caminhamentos em Grafos"

Apresentações semelhantes


Anúncios Google