Grafos: caminhos mínimos

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

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Circuitos Hamiltorianos

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Oalgoritmo de Dijkstra

Teoria dos Grafos AULA 1

UNIVERSIDADE FEDERAL DO PARÁ BIBLIOTECA DE OBJETOS MATEMÁTICOS COORDENADOR: Dr. MARCIO LIMA

APLICAÇÕES DE BUSCA EM GRAFOS

Teoria dos Grafos AULA 1

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

Noções da Teoria dos Grafos. André Arbex Hallack

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE MATEMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENSINO DE MATEMÁTICA

GRAFOS. Introdução Conceitos Fundamentais

Teoria dos Grafos Introdu c ao

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

Noções da Teoria dos Grafos

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

Teoria dos Grafos. Edson Prestes

As pontes de Königsberg

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

Alguns probleminhas...

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

Noções da Teoria dos Grafos. André Arbex Hallack

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

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

Teoria dos Grafos. Motivação

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

Grafos: caminhos mínimos

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

Comunicação e redes. Aula 2: Teoria dos Grafos Conceitos básicos. Professor: Guilherme Oliveira Mota.

Grafos Parte 1. Aleardo Manacero Jr.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Matemática Discreta - Exercícios de Grafos

Teoria dos Grafos. Profa. Alessandra Martins Coelho

As Pontes de Königsberg

INF 1010 Estruturas de Dados Avançadas

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Problema do Caminho Mínimo

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

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos

Grafos Eulerianos e o Problema do Carteiro Chinês

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

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

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

Grafos IFRN. Prof.Robinson Alves

Aula 12: Programação Inteira

Grafos: algoritmos de busca

GRAFOS: UMA INTRODUÇÃO

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

MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz. EST Setúbal / IPS. 28 Maio - 3 Junho 2012

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Teoria dos Grafos. Maria Claudia Silva Boeres. UFES. Teoria dos Grafos

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

Alguns Problemas Clássicos Sobre Grafos

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

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

Teoria dos Grafos. Apresentação da disciplina. Profa. Sheila Morais de Almeida. março DAINF-UTFPR-PG

Grafos. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC PAA Grafos 1

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

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

Pesquisa Operacional. Teoria dos Grafos

Conteúdo. Histórico. Notas. Teoria dos Grafos BCC204. Notas. Notas. 1736: Euler e as Pontes de Königsberg

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala

Aula nº / Outubro/ 07. Problema do carteiro chinês

Capítulo 1. Aula Caminhos de Euler e Hamilton Caminhos de Euler e Circuitos

Problemas de otimização

Grafos IFRN. Robinson Alves

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

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

Capítulo 2- Modelos de grafos.

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.

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

Grafos. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Grafos 1

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo

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

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Estruturas de Dados Grafos

Teoria dos Grafos Aula 2

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Transcrição:

quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem pesos associados às arestas, o caminho mais curto pode não ser o que usa menos arestas dado um grafo dirigido e ponderado G = (V,A), deseja-se obter o caminho P mais curto a partir de um dado vértice origem s V até cada v V o comprimento (ou peso) de um caminho P é a soma dos pesos das arestas que compõem P exemplo prático: 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? algoritmos para solucionar o problema do caminho mais curto: Dijkstra (grafos dirigidos e não dirigidos com pesos não negativos) *** Bellman-Ford (grafos com pesos negativos) *** o que será abordado no curso

algoritmo de DIJKSTRA (1959) encontra o comprimento (ou peso) mínimo a partir de um vértice de partida s até todos os outros vértices do grafo comprimento (ou peso) mínimo de origem única notação: grafo dirigido ponderado G (V,A) s é o vértice origem D[v] é o menor comprimento (ou peso) estimado de s até v em um determinado instante se é igual a, não existe caminho entre s e v Q = V S (lista ordenada com menor valor de D[v]) S contém os vértices com os caminhos mais curtos calculados até o momento NVERT é o número de vértices do grafo G MA = matriz de adjacências e LA = lista de adjacências algoritmo de DIJKSTRA passo 1) inicialização de D[v]: D[s]=0 e demais, iguais a passo 2) usa-se dois conjuntos: S, que representa todos os vértices v com caminhos calculados até o momento e o Q, simbolizando todos os outros vértices (V S) passo 3) realiza-se uma série de relaxamentos das arestas (distância dos menores caminhos são atualizadas) relaxamento (ou relaxação) de uma aresta (u,v) consiste em verificar se é possível melhorar o melhor comprimento (mínimo) até v obtido até o momento (se isto acontecer, D[v] deve ser atualizado)

pseudocódigo do algoritmo de DIJKSTRA procedimento DIJKSTRA (V, MA, LA, s, NVERT); início para i 0 até NVERT-1 faça {para todo vértice pertencente ao grafo} D[i] infinito; D[s] 0; S ; Q V; enquanto (Q <> ) faça {enquanto houver vértice em Q} início u retira (Q); {retira de Q o vértice com menor valor de D[ ]} S S + {u}; para cada v LA[u] faça {para cada adjacente de u} se (D[v] > D[u] + MA[u,v]) {relaxamento de (u,v)} então D[v] D[u] + MA[u,v]; fim; para i 0 até NVERT-1 faça imprima D[ i ]; {imprime o comprimento mais curto de s a i} fim; algoritmo de DIJKSTRA exemplo_1

algoritmo de DIJKSTRA exemplo_1 (cont.) animação do algoritmo de Dijkstra http://students.ceid.upatras.gr/~papagel/project/kef5_7_1.htm problemas clássicos da literatura que envolvem grafos sete pontes de Königsberg caixeiro viajante alguns links de animações de jogos utilizando teoria de grafos http://www.math.ucalgary.ca/~laf/colorful/colorful.html

o problema das sete pontes de Königsberg: foram construídas sete pontes que cruzavam o rio Pregel, ligando diferentes partes da cidade (antiga Prússia) como mostra a figura: é possível fazer um percurso de tal forma que se inicie e volte à mesma posição passando por todas as pontes somente uma única vez? o problema das sete pontes de Königsberg marca o início da teoria dos grafos o matemático suíço, Leonhard Euler, em 1736, provou que não existia caminho que possibilitasse tais restrições para isso transformou os caminhos (pontes) em retas (arestas) e suas intersecções (ilhas, áreas de terra) em pontos (vértices) 4 vértices e 7 arestas

o problema das sete pontes de Königsberg a ser resolvido é possível achar um caminho que comece e termine num vértice qualquer (A, B, C, ou D) e passe por cada aresta uma única vez? partindo do vértice A, toda vez que se passa por qualquer outro vértice, duas arestas são usadas: a de chegada e a de saída se for possível achar uma rota que usa todas as arestas do grafo e que começa e termina em A, por exemplo, o número total de chegadas e saídas de cada vértice deve ser um valor múltiplo de 2 no entanto, grau(a) = grau(c) = grau(d) = 3 e grau(b) = 5 (????) portanto a travessia proposta não é possível, cada ponto deve ter um número par de caminhos (um para entrar e outro para sair) o problema do caixeiro viajante: traveling salesman problem (TSP): determinar a viagem de custo mínimo que o vendedor deve efetuar para visitar todas as cidades no seu território de vendas, começando e acabando na mesma localidade suponha o mapa abaixo mostrando quatro cidades (A,B,C,D) e as distâncias em km entre elas

o problema do caixeiro viajante solução: enumere todos os possíveis circuitos começando e terminando em A calcule a distância de cada um deles determine o menor deles Rota (distância em km): ABCDA 30+30+25+40 = 125 ABDCA 30+35+25+50 = 140 ACBDA 50+30+35+40 = 155 ACDBA 50+25+35+30 = 140 ADBCA 40+35+30+50 = 155 ADCBA 40+25+30+30 = 125 tanto a rota ABCDA ou ADCBA tem uma distância total de 125 km o problema do caixeiro viajante algoritmo para resolver o TSP atualmente, por força bruta, como feito no exemplo anterior para o grafo com 30 vértices existem 29! 8.84 10 30 circuitos diferentes começando e terminando num determinado vértice mesmo se cada circuito puder ser achado e calculado em apenas 1µs, seriam necessários, aproximadamente, 2.8 10 17 anos para solucionar o problema de descoberta dos possíveis circuitos neste tipo de computador

Exercício 1) Execute o algoritmo de Dijkstra para os grafos (a e b) abaixo: considerando como vértice origem s, o vértice 4 para a) considerando como vértice origem s, o vértice 1 para b) Exercício 2) A Empresa Brasileira de Correios e Telégrafos de Santa Rita mantém vários postos de coleta de correspondência espalhados pela cidade, inclusive em bairros mais afastados. A localização e a quantidade destes postos são algumas vezes modificadas de forma que diariamente o motorista responsável por recolher a correspondência recebe um esquema que mostra o melhor percurso para passar em todos os postos de coleta. Este esquema é montado manualmente por um funcionário da E.C.T. Este funcionário não agüenta mais as reclamações do motorista de que as rotas que ele traça nunca são as melhores. O chefe, sem saber como tratar o problema, resolve contratar um especialista (você), para resolvê-lo. Como você modelaria o problema? Como encontrar a melhor rota? Que particularidades devem ser tratadas?