ALGORITMO DE DIJKSTRA

Documentos relacionados
Problema do Caminho Mínimo

MÓDULO 2 - OTIMIZAÇÃO DE REDES

Oalgoritmo de Dijkstra

Estruturas de Dados Grafos

APLICAÇÕES DE BUSCA EM GRAFOS

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

C 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar.

Matemática Discreta - Exercícios de Grafos

Problemas de Fluxo em Redes

GRAFOS Aula 03 Representações de Grafos Max Pereira

Investigação Operacional

Selecciona-se dos vértices ainda não seleccionados o vértice v k que está à menor distância de v i,

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

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

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

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

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

Teoria dos Grafos Aula 3

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

Grafos Parte 1. Aleardo Manacero Jr.

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

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

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.

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

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

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

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

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

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)

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

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

Optimização em Redes e Não Linear

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

Técnicas Inteligência Artificial

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

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

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

Pesquisa Operacional II. Professor João Soares de Mello

x y Grafo Euleriano Figura 1

Teoria dos Grafos Aula 1 - Introdução

Grafos Orientados (digrafos)

Teoria dos Grafos. Profa. Alessandra Martins Coelho

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

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

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

INF 1010 Estruturas de Dados Avançadas

Algoritmos em Grafos: Caminho Mínimo

Árvores: Conceitos Básicos e Árvore Geradora

Aula 08. Estruturas de dados Árvore e Grafo

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Pesquisa Operacional. Teoria dos Grafos

3 Decisões de Localização de Instalações

GRAFOS Conceitos Básicos (Parte 1)

Grafos: caminhos mínimos

Considere-se a relação dos exames requeridos, na mesma época, pelos alunos de uma escola: Número do Cadeiras requeridas

INVESTIGAÇÃO OPERACIONAL Exercícios de Optimização em Redes 1

Sistemas Baseados em Conhecimento

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

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

PLANO ANALÍTICO DA DISCIPLINA DE ESTRUTURA DE DADOS E ALGORÍTMOS

Grafos - Representação

Teoria dos Grafos Aula 23

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

2.1. Construção da Pista

TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados

Transcrição:

LGORITMO IJKSTR por runo Miguel Pacheco Saraiva de arvalho epartamento de ngenharia Informática Universidade de oimbra oimbra, Portugal brunomig@student.dei.uc.pt Resumo escreve-se o funcionamento do algoritmo de ijkstra através do cálculo do caminho mais curto entre duas cidades e do recurso aos grafos para a sua representação. ste algoritmo resolve o problema de qualquer cálculo do caminho mínimo num grafo ponderado apenas com pesos positivos. Palavras chave caminho mais curto, algoritmo de ijkstra, grafo. 1 INTROUÇÃO as mais diversas utilizações dos grafos (análise de circuitos, análise e planeamento de projectos, genética, linguística, ciências sociais, robótica...), uma delas é a optimização de percursos. ssim, uma rede de estradas que liga diversas cidades pode ser representada através de um grafo. través da conjugação do uso de um grafo e do lgoritmo de ijkstra é possível calcular o caminho mais curto para realizar determinado percurso. este modo, pretende-se com este artigo descrever o funcionamento do referido algoritmo, permitindo mesmo a sua implementação a nível informático, fazendo notar algumas vantagens e limitações deste algoritmo quando comparado com algoritmos semelhantes. É feita a descrição passo a passo, através do uso de um exemplo.

2 XUÇÃO O LGORITMO IJKSTR Um grafo G é um tuplo em que G = (V,), onde V é um conjunto não vazio de vértices e é um conjunto de pares de vértices denominados de arcos e que representam uma ligação entre dois vértices, arcos esses que podem ter um determinado peso (grafo ponderado), que será o custo necessário para percorrer o arco, pelo que uma rede de estradas que liga diversas cidades pode ser representada através de um grafo ponderado com pesos positivos. O grafo seguinte representa o conjunto de cidades V={,,,,} com as respectivas estradas e distâncias que as ligam: 0 Pretende-se calcular, de entre os caminhos possíveis, aquele que é o caminho mais curto entre a cidade e as restantes cidades. Para resolver este problema usou-se o lgoritmo de ijkstra. O lgoritmo de ijkstra (.W. ijkstra) é um dos algoritmos que calcula o caminho de custo mínimo entre vértices de um grafo. scolhido o vértice como raiz da busca (cidade origem), este algoritmo calcula a distância mínima deste vértice para todos os demais vértices do grafo, ou seja, as restantes cidades. ste algoritmo parte de uma estimativa inicial para a distância mínima, que é considerada infinita ( ), e vai sucessivamente ajustando esta distância. le considera que uma cidade estará fechada quando já tiver sido obtido um caminho de distância mínima da cidade tomada como origem da busca até ela. ste procedimento pode ser armaze nado na seguinte tabela que irá sendo alterada à medida que vão sendo percorridos todos os caminhos possíveis:

idades istância 0 Precedente - - - - - Fechado N N N N N Inicialmente, todos os vértices têm uma distância infinita, excepto a cidade de origem () que tem, logicamente, distância zero. Posteriormente, é seleccionada a cidade que tem uma distância menor em relação a todas as outras e que se encontra aberta que é, no caso inicial, a cidade. cidade seleccionada é fechada e são recalculadas, a partir de, todas as distâncias às cidades ainda abertas, somando à distância da cidade seleccionada as distâncias dos arcos respectivos. Nos casos em que as novas distâncias obtidas são inferiores às que se encontram armazenadas nas tabelas, procede-se à substituição das mesmas pelas novas distâncias e é alterada também a cidade precedente. pós o primeiro passo, a tabela seria a seguinte: idades istância 0 0 Precedente 0 Fechado S N N N N e forma análoga, o segundo passo será seleccionar a cidade ainda aberta com a menor distância na tabela (a cidade com distância ), fechá-la e, a partir de, recalcular as distâncias, alterando aquelas que sejam menores que as da tabela (a distância de é alterada para com precedente ), que ficaria da seguinte forma: idades istância 0 0 Precedente Fechado S N N N S

Repete-se o algoritmo até que todas as cidades tenham sido fechadas. s tabelas após as sucessivas operações são as seguintes: idades istância 0 40 Precedente 0 Fechado S N N S S - é fechada ; - istância e Precedente de são alterados. idades istância 0 3 Precedente 0 Fechado S N S S S - é fechada ; - istância e Precedente de são alterados. idades istância 0 3 Precedente 0 Fechado S S S S S - é fechada. Quando todas as cidades tiverem sido fechadas, os va lores obtidos são a distância mínima dos caminhos que partem da cidade para as restantes. O caminho percorrido nesse trajecto é obtido a partir dos valores colocados no campo Precedente. Por exemplo, considere-se o caminho que vai de até, cuja distância mínima é 3. cidade precedente

de é. Sendo assim, o caminho é?????. Por sua vez, o precedente de é. Portanto, o caminho final é??, com uma distância mínima de 3. É muito importante referir que o lgoritmo de ijkstra só pode ser utilizado em grafos ponderados e unicamente com pesos positivos e permite calcular as distâncias entre uma cidade específica e todas as outras, ao contrário do lgoritmo de Floyd que calcula as distâncias entre todas as cidades. e forma computacional, o lgoritmo de ijkstra pode ser traduzido da seguinte forma: Seja G(V,) um grafo orientado e a um vértice de G: 1. tribui-se valor zero à estimativa do custo mínimo do vértice a (a raiz da busca) e infinito às demais estimativas; 2. tribui-se um valor qualquer aos precedentes (o precedente de um vértice t é o vértice que precede t no caminho de custo mínimo de a para t); 3. nquanto houver vértice aberto: o seja k um vértice ainda aberto cuja estimativa seja a menor dentre todos os vértices abertos; o fecha-se o vértice k o Para todo vértice j ainda aberto que seja sucessor de k faz-se: soma-se a estimativa do vértice k com o custo do arco que une k a j; caso esta soma seja melhor que a estimativa anterior para o vértice j, substitui-se e anota-se k como precedente de j. implementação computacional deste algoritmo tem uma complexidade O(n²), enquanto, por exemplo, o lgoritmo de Floyd tem uma complexidade superior de O(n³), o que é uma grande desvantagem quando o número de vértices e arcos (ou sejam, cidades e estradas) vai aumentando, portanto, o computador levará menos tempo a realizar os cálculos necessários se for usado o lgoritmo de ijkstra. omo os grafos não existem como estrutura de dados pré-definida nas linguagens de programação, a sua implementação pode ser feita através de uma matriz de adjacência ou de uma lista de adjacência:

0 0 0 0 Matriz de adjacência Lista de adjacência 3 ONLUSÕS Pretendeu-se que este artigo explicasse, de forma sucinta, objectiva e simples, o funcionamento do lgoritmo de ijkstra com a utilização dos grafos ponderados de pesos positivos. Optou-se por uma descrição sequencial dos passos a seguir na execução do referido algoritmo, tendo antes sido definidos alguns conceitos necessários a uma correcta compreensão do mesmo. pesar de se limitar a grafos com pesos positivos e calcular apenas a distância entre uma cidade e todas as outras, este algoritmo é bastante mais rápido na sua execução que outros algoritmos existentes, pelo que o seu uso é adequado em grande parte das situações de cálculo do caminho mais curto. RFRÊNIS 1. cetatos da cadeira de omunicação e Profissão, 02/03. 2. cetatos da cadeira de Programação e lgoritmos 3, 01/02. 3. Mark llen Weiss ata Structures & Problem Solving Using JV, ddison- Wesley Pub. o., 1998. 4. avid M. rnow and Gerald Weiss JV - n Object Oriented pproach, ddison-wesley Pub. o., 1998.