Caminho mais curto e o algoritmo de Dijkstra

Documentos relacionados
Teoria dos Grafos Aula 7

Teoria dos Grafos Aula 8

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado

Algoritmos em Grafos: Caminho Mínimo

Oalgoritmo de Dijkstra

Melhor caminho entre duas estações de metro

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Prof. Marco Antonio M. Carvalho

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

Otimização em Grafos

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

Projeto e Análise de Algoritmos. Método Guloso

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

GRAFOS Aula 06 Algoritmo de Caminho Mínimo: Dijkstra Max Pereira

Caminhos de Amizades pelo Facebook:

Algoritmo de Dijkstra Estudo e Implementação

Grafos IFRN. Prof.Robinson Alves

06 Grafos: Caminhos Mínimos SCC0503 Algoritmos e Estruturas de Dados II

Teoria dos Grafos Aula 14

Teoria dos Grafos Aula 9

Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo

Teoria dos Grafos Aula 8

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

Teoria dos Grafos Aula 22

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira

Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica (continuação) Prof. Humberto Brandão

PCC173 - Otimização em Redes

Grafos: caminhos mínimos

TP308 Introdução às Redes de Telecomunicações

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

Universidade Federal de Alfenas

Tecnicas Essencias Greedy e Dynamic

Teoria dos Grafos Aula 23

Edsger Wybe Dijkstra

Projeto e Análise de Algoritmos

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Análise e Síntese de Algoritmos

Teoria dos Grafos Aula 24

Grafos: caminhos mínimos em Listas de Adjacência. Profa. Graça Nunes

Árvore Geradora Mínima

Teoria da Computação. Complexidade computacional classes de problemas

Grafos: aplicações. Grafos: árvore geradora mínima

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

Teoria dos Grafos AULA

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1

Análise de Algoritmos. Prof. Sérgio Carlos Portari Júnior

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira

Problema do Caminho Mínimo

Abordagens para Resolução de Problemas

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Grafos Caminhos mais Curtos

Grafos: caminhos mínimos

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford. O problema tem subestrutura óptima

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford

Fluxo Máximo a Custo Mínimo

INSTITUTO FEDERAL DO ESPÍRITO SANTO CURSO BACHARELADO EM SISTEMAS DE INFORMAÇÃO

1 Distância em Grafos

Caminhos mínimos de todos os pares

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Grafos COM11087-Tópicos Especiais em Programação II

PTC Aula Introdução ao plano de controle 5.2 Algoritmos de roteamento. (Kurose, p ) (Peterson, p ) 13/06/2017

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

Otimização em Grafos

Grafos: árvores geradoras mínimas. Graça Nunes

Projeto e Análise de Algoritmos

5COP096 TeoriadaComputação

Complexidade computacional

Teoria dos Grafos Aula 9

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Análise e Projeto de Algoritmos

Protocolos de Roteamento link-state

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Algoritmos 2 - Introdução

Grafos: algoritmos de busca

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

Algoritmos de aproximação

Caminhos mínimos de única origem

Sub-grafo. Árvore Geradora Mínima

Complexidade de Tempo e Espaço

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Uma introdução ao Apache Hama

Algoritmos de roteamento

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

RESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1

Departamento de Matemática da Universidade de Aveiro Matemática Discreta. A prova consta de 4 questões cada uma cotada com 5 valores.

Algoritmos em redes de fluxo e aplicações

Modelos Evolucionários e Tratamento de Incertezas

Teoria dos Grafos Aula 1

Transcrição:

Caminho mais curto e o algoritmo de Dijkstra Márcia R. Cerioli Departamento de Ciência da Computação - IM e PESC - COPPE UFRJ Algoritmos e Grafos Dezembro de 05

Problema do Caminho mais Curto Problema a ser resolvido a cada consulta do tipo: Qual o caminho mais curto do DCC ao Pão de Açúcar?

Problema do Caminho mais Curto O Problema Qual o caminho mais curto do DCC ao Pão de Açúcar? Objetivo: Caminho com o menor: custo distância trânsito tempo

Problema do Caminho mais Curto Modelagem em grafos Mundo real Modelagem Matemática pontos importantes vértices V (G) esquinas ruas arestas E(G)

Problema do Caminho mais Curto Modelagem em grafos Mundo real Modelagem Matemática pontos importantes vértices V (G) esquinas ruas arestas E(G) custo custo da aresta c : E(G) Q +

Problema do Caminho mais Curto Modelagem em grafos b d a f c e

Problema do Caminho mais Curto b d a f c e Vértice a é a origem do caminho

Problema do Caminho mais Curto b d a f c e e queremos encontrar o menor caminho de a até f.

Problema do Caminho mais Curto Propriedades dos caminhos v 0 -v k -caminho: Sequência de vértices P = v 0 v... v k, tal que v i v i E(G) Custo de P: Distância entre u e v: Custo(P) = k c(v i v i ) i= dist(u, v) = min{custo(p) : P é u-v-caminho}

Problema do Caminho mais Curto b d a f c e Custo(P) = + + = 6

Problema do Caminho mais Curto b d a f c e Custo(Q) = + + + = 5 dist(a,f) = 5 Q é caminho mínimo de a até f

Problema do Caminho mais Curto Propriedade dos caminhos mínimos a v f Se P é um a-f -caminho mínimo e v P, então P, a parte de P que vai de a até v, é um a-v-caminho mínimo.

Problema do Caminho mais Curto Caminhos mínimos tem a Prop. da Subestrutura Ótima a v f Se P é um a-f -caminho mínimo e v P, então a parte de P que vai de a até v é um a-v-caminho mínimo. Pois caso contrário, existiria Q um a-v-caminho mínimo, e Q concatenado com P, a parte de P que vai de v até f, seria um a-f -caminho menor que P (que é mínimo)... um absurdo!

A solução de Dijkstra E.W. Dijkstra Edsger Wybe Dijkstra, em 956 Holanda (90 00)

A solução de Dijkstra A motivação de Dijkstra 956 Trabalhando como programador no Centro de Matemática da Holanda atual CWI Tarefa de divulgação ao público leigo sobre a capacidade do novo computador - ARMAC

A solução de Dijkstra A ideia de Dijkstra 956 Menor caminho de Amsterdã a uma cidade escolhida pelo público.

A solução de Dijkstra A ideia de Dijkstra 956 Menor caminho de Amsterdã a uma cidade escolhida pelo público. Mas... era necessário ter um programa para determinar tal caminho...

A solução de Dijkstra A ideia de Dijkstra 956 Menor caminho de Amsterdã a uma cidade escolhida pelo público. Mas... era necessário ter um programa para determinar tal caminho... e os algoritmos até então existentes não funcionavam no ARMAC...

A solução de Dijkstra A ideia de Dijkstra 956 Menor caminho de Amsterdã a uma cidade escolhida pelo público. Mas... era necessário ter um programa para determinar tal caminho... e os algoritmos até então existentes não funcionavam no ARMAC... Calcular e Manter d(v) = tamanho do menor caminho até então encontrado de a até v Conjunto S dos vértices resolvidos

A solução de Dijkstra O algoritmo Entrada: Grafo G = (V, E), c : E Q + e a V Saída: d : V Q +, onde d é a distância de a até v, v V. d(a) 0; π(a) a. Para cada v V \ {a}, d(v). Q V Q é dos ainda a resolver. S S é o dos resolvidos

A solução de Dijkstra O algoritmo Entrada: Grafo G = (V, E), c : E Q + e a V Saída: d : V Q +, onde d é a distância de a até v, v V. d(a) 0; π(a) a. Para cada v V \ {a}, d(v). Q V Q é dos ainda a resolver. S S é o dos resolvidos Q é uma fila de prioridades.

A solução de Dijkstra O algoritmo 5. Enquanto Q 6. u Extrai min (Q, d) 7. Para cada v Adj(u) Q, 8. Se d(u) + c(uv) < d(v), 8. então d(v) d(u) + c(uv) 8. π(v) u 9. S S {u}

A solução de Dijkstra O algoritmo 5. Enquanto Q 6. u Extrai min (Q, d) 7. Para cada v Adj(u) Q, 8. Se d(u) + c(uv) < d(v), 8. então d(v) d(u) + c(uv) 8. π(v) u 9. S S {u}

A solução de Dijkstra Um exemplo b d a f c e

A solução de Dijkstra Um exemplo b d a f c e Execute o algoritmo de Dijkstra, com o mesmo estilo de tabela que usamos para a execução do algoritmo de Prim.

E.W. Dijkstra Prêmio Turing Edsger W. Dijkstra, em 00 Prêmio Turing, em 97

Outros problemas O algoritmo de Dijkstra é amplamento usado Roteamento de msg em rede de computadores Na determinação de caminhos em aplicativos e em muitas outras aplicações, de forma indiretas Estima-se que seja o algoritmo que mais vezes é executado por minuto, no mundo.