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

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

C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

Apresentações semelhantes


Apresentação em tema: "C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos."— Transcrição da apresentação:

1 C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos

2 C AMINHAMENTO 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 B USCA EM P ROFUNDIDADE 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 º 2º 3º 4º 5º 6º 7º 8º 9º 10º

4 B USCA EM P ROFUNDIDADE Esse processo de busca pode ser representado por meio de uma árvore binária º 2º 3º 4º 5º 6º 7º 8º 9º 10º

5 B USCA EM P ROFUNDIDADE Caminhamento na lista de adjacências A árvore de busca em profundidade é gerada através de uma pilha D A E BC FG H ABCDEFGHABCDEFGH B C A BH FG A DE BH CH CH DE FG 1 A D E BC FG H X X X X X X X X não visitado visitado

6 A LGORITMO DE B USCA EM P ROFUNDIDADE Procedimento BUSCA-PROF Para i = 1,...,n faça visitado(i) não fim-para Para i = 1,...,n faça Se visitado(i) = não então PROF(i) fim-para 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 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 B USCA EM L ARGURA 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

8 B USCA EM P ROFUNDIDADE X B USCA EM L ARGURA D A E B C FG BC A F G D E Árvore de busca em profundidade (pilha) (pilha) DE A FG C B Árvore de busca em largura (fila) (fila)

9 B USCA EM L ARGURA Caminhamento na lista de adjacências D A E BC FG H ABCDEFGHABCDEFGH B C A BH FG A DE BH CH CH DE FG 1 A D E BC FG H não visitado visitado Fila A w =w =w =w = B A BC B CDCDE C DEFDEFG D EFGH EF GH

10 A LGORITMO DE B USCA EM L ARGURA 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 A RESTAS 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 E XERCÍCIO 1 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, Vértice inicial

14 E XERCÍCIO 2 Lista de adjacências 1 2, 3, 4 2 1, 4 3 1, 4 4 2, 1, 3, 5, 6, , 8 7 4, 8 8 6, Vértice inicial


Carregar ppt "C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos."

Apresentações semelhantes


Anúncios Google