Oalgoritmo de Dijkstra

Documentos relacionados
Problema do Caminho Mínimo

Grafos: caminhos mínimos

Grafos IFRN. Prof.Robinson Alves

INF 1010 Estruturas de Dados Avançadas

Estruturas de Dados Grafos

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

Árvores: Conceitos Básicos e Árvore Geradora

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

FATEC Zona Leste. Teoria dos Gráfos. Métodos Quantitativos de Gestão MQG

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

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

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

Matemática Discreta - Exercícios de Grafos

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

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

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Tecnicas Essencias Greedy e Dynamic

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

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

Grafos Orientados (digrafos)

Problemas de Fluxo em Redes

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

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

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

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

Grafos Parte 1. Aleardo Manacero Jr.

Definição e Conceitos Básicos

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

Teoria dos grafos. FATEC Carapicuíba Augusto de Toledo Cruz Junior

Análise e Projeto de Algoritmos

Algoritmo de Dijkstra em LISP

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

Teoria dos Grafos Aula 5

Grafos: algoritmos de busca

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Algoritmo de Dijkstra

Otimização em Grafos

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

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

Teoria dos Grafos AULA 1

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Redes Complexas. Renato Vicente. Complex Systems EACH USP

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012)

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

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

Teoria dos Grafos. Árvores

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

Teoria dos Grafos AULA 1

5COP096 TeoriadaComputação

Conceitos Básicos da Teoria de Grafos

Módulo 2 OTIMIZAÇÃO DE REDES

GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

2. Desenhe o grafo orientado G = (X, Γ) para: 3. Em cada alínea dois grafos são iguais. Identifique-os. (a) (b) (c)

ALGORITMO DE DIJKSTRA

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Teoria dos Grafos Aula 1 - Introdução

Capítulo 2- Modelos de grafos.

GRAFOS Aula 03 Representações de Grafos Max Pereira

Teoria dos Grafos. Profa. Alessandra Martins Coelho

15 - Coloração Considere cada um dos grafos abaixo:

76) 1.1 Sim 1.2 Não 1.3 Não

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

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

grafo nós vértices arcos arestas

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

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Pesquisa Operacional II. Professor João Soares de Mello

Introdução. Introdução. Introdução. Distância euclidiana. Superfícies de custo

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes!

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Matemática Discreta 10

Melhor caminho entre duas estações de metro

Transcrição:

Dijkstra

Oalgoritmo de Dijkstra O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 1959, soluciona o problema do caminho mais curto num grafo dirigido ou não dirigido com arestas de peso não negativo, em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices.

O Problema Um exemplo prático do problema que pode ser resolvido pelo algoritmo de Dijkstra é: alguém precisa se deslocar de uma cidade para outra. Para isso, ela dispõe de várias estradas, que passam por diversas cidades. Qual delas oferece uma trajetória de menor caminho? 3

PROBLEMAS 1º Problema: Construir a árvore de menor comprimento total entre todos os nós de um grafo. º Problema: Encontrar o caminho de menor comprimento total entre dois determinados nós de um grafo. 4

Oalgoritmo de Dijkstra Escolhido um vértice como raiz da busca, este algoritmo calcula o custo mínimo deste vértice para todos os demais vértices do grafo. O algoritmo pode ser usado sobre grafos orientados (dígrafos), ou não, e admite que todas as arestas possuem pesos não negativos (nulo é possível). 5

Oalgoritmo de Dijkstra Esta restrição (pesos não negativos ) é perfeitamente possível no contexto de redes de transportes, onde as arestas representam normalmente distâncias ou tempos médios de percurso; poderão existir, no entanto, aplicações onde as arestas apresentam pesos negativos, nestes casos o algoritmo não funcionará corretamente. 6

O Problema: achar o menor caminho entre A e F B 5 D 4 6 A 1 8 F C 10 E 7

O Algoritmo Seja G(V,A) um grafo orientado esum vértice de G: Atribua valor zero à estimativa do custo mínimo do vértices(a raiz da busca) e infinito às demais estimativas; Atribua um valor qualquer aos precedentes (o precedente de um vérticeté o vértice queprecedetno caminho de custo mínimo desparat); Enquanto houver vértice aberto: sejakum vértice ainda aberto cuja estimativa seja a menor dentre todos os vértices abertos; feche o vérticek Para todo vérticejainda aberto que seja sucessor dekfaça: some a estimativa do vérticekcom o custo do arco que unekaj; caso esta soma seja melhor que a estimativa anterior para o vérticej, substitua-a e anote k como precedente de j. 8

Solução Nó inicial 4 B 5 D 6 A 1 8 F C 10 E 9

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A B C D E F 10

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A B C D E F 11

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A B 4, A C D E F Distância de B a A = 4 1

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A C, A D E F Distância de B a A = 4 Distância de C a A = Nós não adjacentes a A -> D, E, F = 13

Solução Nó inicial 4 B 5 D 6 A 1 8 F C 10 E 14

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A C, A D E F Distância de B a A = 4 Distância de C a A = Nós não adjacentes a A -> D, E, F = Nó não mais visitado * 15

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A C, A, A D E F Caminho de menor custo A, C = 16

Solução B 5 D 4 6 A 1 8 F C 10 E Nó corrente 17

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C C, A, A * * * * D E F A distância de B até A, com referência a C é (A, C) + (C, B) = + 1 = 3 18

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C C, A, A * * * * D 10, C E 1, C F A distância de D até A, com referência a C é (A, C) + (C, D) = + 8 = 10 A distância de E até A, com referência a C é (A, C) + (C, E) = + 8 = 1 Nós não adjacentes (A, F) = 19

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C C, A, A * * * * D 10, C E 1, C F Caminho de menor custo A, C = 3 0

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C C, A, A * * * * D 10, C E 1, C F 1

Solução B 5 D 4 6 A 1 8 F C 10 E Nó corrente

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C E 1, C F 3

Solução Nó corrente B 5 D 4 6 A 1 8 F C 10 E 4

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B E 1, C 1, C F A distância de D até A, com referência a B é (A, C) + (C, B) + (B, D) = + 1 + 5 = 8 A distância de E até A, com referência a C é (A, C) + (C, E) = + 10 = 1 5

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B E 1, C 1, C F Caminho de menor custo (A, D) é passando por B e C = 8 6

Solução Nó corrente B 5 D 4 6 A 1 8 F C 10 E 7

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B E 1, C 1, C F Caminho de menor custo (A, D) passando por B e C = 8 8

Solução B 5 D Nó corrente 4 6 A 1 8 F C 10 E 9

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B * * E 1, C 1, C 10, D F 14, D Caminho de menor custo (A, E) é passando por B, C e D = 10 30

Solução B 5 D Nó corrente 4 6 A 1 8 F C 10 E 31

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B * * E 1, C 1, C 10, D 10, D F 14, D Caminho de menor custo (A, E) é passando por B, C e D = 10 3

Solução B 5 D Nó corrente 4 6 A 1 8 F C 10 E 33

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B * * E 1, C 1, C 10, D 10, D * F 14, D 1, E Caminho de menor custo (A, F) é passando por B, C, D e E= 1 34

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B * * E 1, C 1, C 10, D 10, D * F 14, D 1, E 1, E Caminho de menor custo (A, F) é passando por B, C, D e E= 1 35

Solução B 5 D Nó corrente 4 6 A 1 8 F C 10 E 36

O Algoritmo Vértice Passo 1 Passo Passo 3 Passo 4 Passo 5 Passo 6 A 0, A * * * * * B 4, A 3, C 3, C * * * C, A, A * * * * D 10, C 8, B 8, B * * E 1, C 1, C 10, D 10, D * F 14, D 1, E 1, E Caminho de menor custo (A, F) é passando por B, C, D e E= 1 37

E se o grafo for orientado? 10 B 1 D 6 A 3 9 6 F 5 C E 7 38

Exercícios Execute o algoritmo de Dijkstra com o grafo da figura a, começando com o vértice 1. Execute o algoritmo de Dijkstra com o grafo da figura a, mas começando com o vértice 4. A resposta é a mesma? Para o grafo ilustrado na figura b, mostre cada passo da execução do algoritmo de Dijkstra. Começando com o vértice 1. 39

Grafos 40

Fim 41