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

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

DISTÂNCIA EM GRAFOS Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza.

Apresentações semelhantes


Apresentação em tema: "DISTÂNCIA EM GRAFOS Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza."— Transcrição da apresentação:

1 DISTÂNCIA EM GRAFOS Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza

2 Distância em Grafos Busca em Largura (FIFO (Listas)) Nós usamos o algoritmo de Busca em Largura para descobrir o número de arestas no menor caminho de S a Vi para grafos sem pesos nas arestas. Onde S é o vértice escolhido inicialmente e Vi é qualquer um dos outros vértices do grafo. S V1V2V3 V5V4 ds(V1)=ds(V2)=ds(V3)=1

3 Distância em Grafos Entrada: G=(V,E) (um grafo não direcionado e V um vértice de G) Saída : Depende da aplicação Algoritmo Busca em Largura (G,v)

4 Distância em Grafos Algoritmo Início Marque V; Coloque V numa fila; Enquanto a fila não estiver vazia faça Remova o primeiro vértice W da fila; Faça o Pré-Work em W; //(depende da aplicação)// Para Todo (W,X) tal que X é desmarcado faça Marque X; Adicione (W,X) à árvore T; Coloque X na fila; Fim

5 Distância em Grafos Fila A D B C E F Exemplo de Busca em Largura Início Marque V; Coloque V numa fila; Enquanto a fila não estiver vazia faça Remova o primeiro vértice W da fila; Faça o Pré-Work em W; Para Todo (W,X) tal que X é desmarcado faça Marque X; Adicione (W,X) à árvore T; Coloque X na fila; Fim

6 Distância em Grafos Exemplo onde o algoritmo de busca em largura não encontra o menor caminho num grafo com peso nas arestas. D A BC Busca em Largura A D BC Grafo com Peso

7 Distância em Grafos Técnica do Algoritmo Guloso Consiste num processo interativo para construir soluções sucessivamente mais próximas da solução global procurada. Aplica-se para alguns problemas do tipo : Dado um conjunto S, achar S S tal que : -- S satisfaz a uma propriedade P dada, e -- S é o máximo (ou mínimo) com relação a algum critério. Obs: Essa metodologia não permite remover elementos já incluídos no conjunto S. Por isso nem sempre é uma abordagem correta para resolver problemas de maximização.

8 Distância em Grafos Single Source Shortest Path É um algoritmo que descobre a menor distância de um vértice V para qualquer outro vértice do grafo. Algoritmo Implementação Custo

9 Distância em Grafos Entrada: G=(v,e) (um grafo com peso nas arestas e (v) vértice de origem). Saída : Para cada vértice w, w.sp é a menor distância de v para w Algoritmo Single Source Shortest Paths (G,v).

10 Distância em Grafos Algoritmo Single Source Shortest Paths Início: Para todos os vértices W faca w.mark := Falso; w.sp:= ; v.sp:= 0; Enquanto existir um vértice não marcado faça pegue w sendo um vértice não marcado desde que w.sp é mínimo; w.mark := Verdadeiro; Para toda aresta (w,z) desde que z é não marcado faça se w.sp + peso (w,z) < z.sp então z.sp := w.sp + peso (w,z) Fim. A F E D C B

11 Distância em Grafos O heap é uma boa estrutura de dados para encontrarmos os elementos mínimos (w.sp) e atualizarmo-os, quando tornarem-se menores que seus pais, devendo ser trocados e movidos para cima até a sua posição apropriada. Ele guarda todos os vértices desmarcados com suas atuais menores distâncias de V como suas chaves, que inicialmente recebem o valor com exceção de V, que recebe o valor zero. Para localizarmos um elemento utilizamos um array com ponteiros para suas localizações no heap, pois o heap não é uma estrutura de busca. Implementação

12 Distância em Grafos CUSTO Atualizar uma distância toma O(log m) comparações onde m é o tamanho do heap. Há |V| iterações, levando a |V| deleções no heap. Há também no máximo |E| atualizações ( desde que cada aresta pode causar no máximo uma atualização), levando a O ( |E| log |V| ) comparações no heap. Daí o tempo de execução é: O ( ( |E| + |V| ) log |V| ).


Carregar ppt "DISTÂNCIA EM GRAFOS Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza."

Apresentações semelhantes


Anúncios Google