Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Algoritmo de Caminho Mínimo
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Algoritmos em Grafos (Parte 2)
Antonio Dirceu Rabelo de Vasconcelos Filho
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
CC/EC/PPGI/UFES CC/EC/MestradoTeoria dos Grafos Algoritmo de Caminho Mínimo.
Métodos para representação de estruturas hierárquicas
Análise e Síntese de Algoritmos
Problemas de fluxo numa rede
GRASP Greedy Randomized Adaptative Search Procedure
Árvores.
Medida do Tempo de Execução de um Programa
SEMINÁRIO DE ALGORITMOS
Árvore Geradora de Peso Mínimo
FACENS – Engenharia da Computação Inteligência Artificial
FACENS – Engenharia da Computação Lógica Computacional II
Classificação e Pesquisa de Dados
Ronaldo Celso Messias Correia –
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
Árvore Geradora Mínima
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Caminhos e caminhamentos em Grafos
Algoritmos em Grafos.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Análise de Redes Complexas – Conceitos e Propriedades Básicas
Heaps de Fibonacci Lino Alves.
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Caminhamento em Grafos: Busca em Largura e Busca em Profundidade
Exercícios PAA- Grafos
Otimização Inteira 5a. Aula Franklina.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
O problema do emparelhamento máximo
Problemas de fluxo em grafos 1º semestre/2012 Prof. André Renato
Busca com informação e exploração
Introdução e Busca Cega
Algoritmos Gulosos em Grafos
Abordagens para problemas NP-completos
Problema do menor Caminho
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Ronaldo Celso Messias Correia –
Análise de Redes Complexas – Conceitos e Propriedades Básicas
Algoritmo de PRIM para MST
Análise de Complexidade do Algoritmo de Dijkstra
Algoritmos para Obtenção de Árvore Geradora Mínima
Katia S. Guimarães Busca em Grafos Katia S. Guimarães
Programação Dinâmica.

Introdução à NP-completude
Exercícios de Fluxo em Redes
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos e Teoria da Complexidade Professor: Fabio Tirelo
Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Algoritmo de Dijkstra.
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Busca Gulosa em Grafos IF672 - Algoritmos e Estruturas de Dados CIn -
Abordagens para Problemas Intratáveis Katia S. Guimarães
Transcrição da apresentação:

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

Busca em Largura (FIFO (Listas)) 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 V1 V2 V3 V5 V4 ds(V1)=ds(V2)=ds(V3)=1

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

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

Distância em Grafos Exemplo de Busca em Largura A C B F D E Fila 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 A D B C E F Fila

Distância em Grafos Exemplo onde o algoritmo de busca em largura não encontra o menor caminho num grafo com peso nas arestas. Grafo com Peso A D B C 10 4 3 2 D A B C Busca em Largura

Técnica do Algoritmo Guloso 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.

Single Source Shortest Path 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

Distância em Grafos Algoritmo Single Source Shortest Paths (G,v). • 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

Distância em Grafos Algoritmo Single Source Shortest Paths A F E D C B 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 2 10 3 4 6 1 5

Distância em Grafos Implementação 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.

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| ).