Pesquisa Operacional Modelos Determinísticos Parte 2

Documentos relacionados
O Problema do Transporte. Pesquisa Operacional. Formulação do Problema. Descrição Geral de um problema de transporte. Parte 2

Exemplo de um problema de transporte, com 3 fontes e 3 destinos. Custos unitários de transporte para o exemplo de problema de transporte

Resolvendo algebricamente um PPL

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

Problemas de Fluxos em Redes

Problema de Designação. Fernando Nogueira Problema de Designação 1

Pesquisa Operacional

PESQUISA OPERACIONAL Problema de Designação. Professor Volmir Wilhelm Professora Mariana Kleina

Problema de designação

MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL

Planejamento e Análise de Sistemas de Produção

TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

MÓDULO 3 - PROBLEMAS DE TRANSPORTE

Exercícios de Transportes Enunciados

Problema do Caminho Mínimo

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Optimização em Redes e Não Linear

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

Investigação Operacional

Pesquisa Operacional

Problema de Transporte (Redes) Fernando Nogueira Problema de Transporte 1

Programação Linear. MÉTODOS QUANTITATIVOS: ESTATÍSTICA E MATEMÁTICA APLICADAS De 30 de setembro a 13 de novembro de 2011 prof. Lori Viali, Dr.

Algoritmo Simplex para Programação Linear I

O método Simplex Aplicado ao Problema de Transporte (PT).

MB PRINCÍPIOS DA PESQUISA OPERACIONAL PO INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS 2

EXERCÍCOS PO SEGUNDO BIMESTRE. Prof. Me. Carlos Guimarães. Administração de Empresas 7º e 8º semestre.

O Método Simplex. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto

Determinação de Uma Solução Básica Factível Inicial

Min cx (1) s a Ax = b (2) 0 x u, (3) sendo que b i = 0 (4)

Otimização Combinatória - Parte 4

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Programação Linear. Dual Simplex: Viabilidade Dual Método Dual Simplex

Pesquisa Operacional

Programação Linear/Inteira

O Problema de Transportes

Pesquisa Operacional Programação em Redes

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Professor: Rodrigo A. Scarpel

Problemas de Transportes e de Afectação

Programação Linear (PL) Solução algébrica - método simplex

Regras para evitar ciclagem

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

Matemática Aplicada Nt Notas de aula

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

Lógica do Método Simplex: Passar de Solução Básica Factível para outra Solução Básica, buscando melhorar a Função Objetivo e manter factibilidade

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

Investigação Operacional

3- O MÉTODO SIMPLEX Introdução e fundamentos teóricos para o Método Simplex

ANÁLISE DE ALGORITMOS (INF 1721)

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

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

Problemas de Fluxo em Redes

CAPÍTULO 4. Teoria da Dualidade

PCC173 - Otimização em Redes

Solução de problemas de PL com restrições do tipo >= e =

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

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

2 Definição do Problema

Departamento de Engenharia de Produção UFPR 22

Pesquisa Operacional

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Tópicos Especiais em Computação I

Controle Ótimo - Aula 2 (Exemplos 2, 3 e 4)

Método Simplex Dual. Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP

Redes. ADSA António Câmara

Otimização em Grafos

Aula 19: Lifting e matrizes ideais

Teoria dos Grafos. Edson Prestes

Simplex. Investigação Operacional José António Oliveira Simplex

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

MB PRINCÍPIOS DA PESQUISA OPERACIONAL PO INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS - PROGRAMAÇÃO LINEAR

ANÁLISE DE ALGORITMOS (INF 1721)

Aula 2: Algoritmos: Intuição

Graduação em Engenharia Elétrica MÉTODOS DE OTIMIZAÇÃO ENE081. PROF. IVO CHAVES DA SILVA JUNIOR

PESQUISA OPERACIONAL 11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX ( ) DEFINIÇÕES REGRAS DE TRANSFORMAÇÃO. Prof. Edson Rovina Página 16

PESQUISA OPERACIONAL APLICADA A LOGÍSTICA

Universidade Federal de Itajubá. Instituto de Engenharia de Produção e Gestão. Pesquisa Operacional. Redes. Prof. Dr. José Arnaldo Barra Montevechi

Parte 1 - Matrizes e Sistemas Lineares

Problema de Transportes

Teoria dos Grafos Aula 7

Faculdade de Engenharia Investigação Operacional. Prof. Doutor Engº Jorge Nhambiu

Professor: Rodrigo A. Scarpel

1. INTRODUÇÃO. FAAP Faculdade de Administração

Otimização Aplicada à Engenharia de Processos

Otm1 12/04/2012. Método Simplex Obtenção base inicial Degeneração (alguns comentários) Variáveis Canalizadas

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc.

Investigação Operacional

PEA 2522 MÉTODOS DE OTIMIZAÇÃO. Otimização

Universidade Federal de Goiás Instituto de Matemática e Estatística

PESQUISA OPERACIONAL II APRESENTAÇÃO E NOÇÕES DE TEORIA DOS GRAFOS

Aula 10: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 02: Algoritmo Simplex (Parte 1)

Pesquisa Operacional Programação em Redes

Investigação Operacional

BCC204 - Teoria dos Grafos

UNIDADE I PROGRAMAÇÃO LINEAR INTEIRA

Fluxo em Redes -01. Prof. Gustavo Peixoto Silva 2 modelos

Simplex. Transparências de apoio à leccionação de aulas teóricas. c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP

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

Transcrição:

Pesquisa Operacional Modelos Determinísticos Parte Graduação em Engenharia de Produção DEPROT / UFRGS Prof. Flavio Fogliatto, Ph.D. O Problema do Transporte Descrição Geral de um problema de transporte:. Um conjunto de m pontos de fornecimento a partir dos quais um insumo é embarcado ou remetido. O ponto de fornecimento i pode fornecer no máximo s i unidades.. Um conjunto de n pontos de demanda para os quais o insumo é remetido. O ponto de demanda j deve receber pelo menos d j unidades do insumo. Prof. Fogliatto PO - Graduação

Descrição Geral de um problema de transporte. Cada unidade produzida no ponto de fornecimento i e remetida ao ponto de demanda j incorre num custo de c ij. Prof. Fogliatto PO - Graduação Formulação do Problema Seja x ij = n o de unidades despachadas do ponto de fornecimento i para o ponto de demanda j. A formulação genérica do problema do transporte será: Min s. t. m n ij ij i= j= n ij j= m c x x ij i= x x s i d j Restrições de fornecimento ( i =,..., m) Restrições de demanda ( j =,..., n) Prof. Fogliatto ij PO - Graduação

Problema Balanceado Um problema de transporte é considerado balanceado se: m i= = n j j= s i d Ou seja, o fornecimento supre toda a demanda. Num problema balanceado, as restrições são todas igualdades. Prof. Fogliatto PO - Graduação Como balancear um problema de transporte quando a capacidade de fornecimento excede a demanda Cria-se um ponto fictício de demanda. A demanda nesse ponto será igual ao excedente da capacidade. Como balancear o problema quando a demanda é maior que a capacidade de fornecimento? Neste caso, o problema não possui soluções viáveis. Como alternativa, pode-se adicionar um ponto fictício de fornecimento. O custo de fornecimento daquele ponto será igual à penalização incorrida pelo não fornecimento do insumo. Prof. Fogliatto PO - Graduação

O Tableau de Transporte Fornecimento c c c n L s c c c n L s M M O M M c m c m c mn L s m Demanda d d L d n m i= = n j j= s i d Prof. Fogliatto PO - Graduação 7 Exemplo Dois reservatórios de água abastecem três cidades. Cada reservatório pode abastecer até milhões de litros de água por dia. Cada cidade necessita receber milhões de litros de água por dia. Associado a cada milhão de litros de água não fornecido por dia existe uma multa. A multa na cidade é de $; na cidade é de $8; na cidade é de $. Os custos do transporte entre reservatórios e cidades vem dado ao lado... Reserv. Reserv. Cid. Cid. Cid. $7 $8 $8 $9 $7 $8 Prof. Fogliatto PO - Graduação 8

Tableau do Simplex Res. Res. Res. Artif. Cid. Cid. Cid. 7 8 8 9 7 8 8 Capacidade Demanda Prof. Fogliatto PO - Graduação 9 Prática: A Açosul produz três tipos de aço em suas três plantas. O tempo necessário para fabricar tonelada de aço (independente do tipo) e os custos de fabricação em cada planta vem dado abaixo. Semanalmente, toneladas de cada tipo de aço devem ser produzidas. Cada planta opera horas por semana. Escreva o problema (o objetivo é minimizar o custo de fabricação dos aços) e organize o problema no tableau do transporte. Custo Aço Aço Aço Tempo (min) Planta $ $ $8 Planta $ $ $ Planta $ $ $ Prof. Fogliatto PO - Graduação

Método do Extremo Noroeste para Determinação da Solução Viável Inicial de um problema de Transporte Inicie o método considerando a célula (,) do tableau. Faça com que x seja o maior valor possível. Obviamente, x = Min (d, s ). Se x = s, desconsidere as demais células na primeira linha do tableau, já que nenhuma outra variável básica virá desta linha. Atualize o valor de d para d - s. Se x = d, desconsidere as demais células na primeira coluna do tableau, já que nenhuma outra variável básica virá desta coluna. Atualize o valor de s para s - d. Prof. Fogliatto PO - Graduação Método do Extremo Noroeste para Determinação da Solução Viável Inicial de um problema de Transporte Se x = s = d, desconsidere as demais células na primeira linha ou na primeira coluna do tableau (mas não ambas). Se você escolher desconsiderar a linha, mude d para. Se você escolher desconsiderar a coluna, mude s para. Repita o procedimento, sempre escolhendo a célula posicionada no extremo noroeste do tableau (desde que ela não esteja em uma linha ou coluna eliminada anteriormente). Ao cabo de (m + n - ) iterações chega-se a uma base viável inicial para o problema. Prof. Fogliatto PO - Graduação

Exemplo O método do extremo noroeste não utiliza os custos, omitidos nos tableaus abaixo: 8 7 x = Min {, } = Prof. Fogliatto PO - Graduação Exemplo 7 7 8 x = Min {, 7} = 7 Prof. Fogliatto PO - Graduação

Exemplo 7 8 x = Min {8, } = Prof. Fogliatto PO - Graduação Exemplo 7 x = Min {, } = Prof. Fogliatto PO - Graduação

Exemplo 7 x = Min {, } = Prof. Fogliatto PO - Graduação 7 Exemplo Base Inicial Viável 7 x = Min {, } = Prof. Fogliatto PO - Graduação 8

Prática: Determine uma base inicial para o problema anterior. Prof. Fogliatto PO - Graduação 9 O Método Simplex para problemas de transporte Decidindo qual variável não-básica deve entrar na base Como calcular z ij - c ij para cada variável não-básica A determinação de z ij - c ij envolve determinar um menor loop contendo algumas variáveis básicas e a variável não-básica em questão. Existe um loop único possível para cada variável não-básica. Prof. Fogliatto PO - Graduação

Exemplo 9 Capacidd 9 Demanda Base inicial determinada pelo método do extremo noroeste. Prof. Fogliatto PO - Graduação Determine a variável não-básica a entrar na base Calcule z ij - c ij para cada variável não-básica: + - 9 (+-+) = -8 9-7 + (-8) - 9 = -7 Iniciando com x :. Determine um loop de var. básicas que contenha a var. nãobásica.. Alterne sinais pos. e neg. nas var. bás. extremas.. Some os c ij de acordo com os sinais.. Subtraia o coef. de custo da var. não-bás. em questão do resultado Prof. Fogliatto PO - Graduação

Cálculo para x + -8 - + 9 9-7 (+-+) = - (-) - = -8 Prof. Fogliatto PO - Graduação Repetindo o cálculo p/ as demais var. não-básicas -8-9 + - - 9-7 Num problema de minimização a variável mais positiva entra na base. Prof. Fogliatto PO - Graduação

Para verificar qual variável deve sair da base, determine um loop contendo a var. entrante e algumas variáveis básicas -8-9 + - - 9-7 Prof. Fogliatto PO - Graduação A primeira célula básica do loop recebe um sinal positivo, a segunda um sinal negativo, e assim por diante... Dentre as células positivas, selecione aquela de menor valor: esta é a var. que sairá da base. A variável entrante assumirá o valor da variável que sai da base. + - -8 + - 9 + - - 9-7 - + Prof. Fogliatto PO - Graduação

Atualize o valor das demais células do loop: células com sinal + têm seu valor decrescido em θ; células com sinal -, têm seu valor acrescido de θ. A variável entrante entra na base com valor θ. + - 9 + 9 - + Prof. Fogliatto PO - Graduação 7 Novo tableau Nenhuma var. não-bás. com z ij - c ij > tableau ótimo! 9-7 - - - 9 - - Prof. Fogliatto PO - Graduação 8

Prática: Resolva o problema proposto no Slide 9. Resolva o problema do aço. Prof. Fogliatto PO - Graduação 9 O Problema do Transbordo Ponto de fornecimento - pode remeter insumos para outros pontos mas não pode receber. Ponto de demanda - pode receber insumos de outros pontos mas não pode remeter. Ponto de transbordo - remete e recebe insumos de outros pontos. Prof. Fogliatto PO - Graduação

Exemplo A BITCO monta PCs em Manaus ( PCs/dia) e Assunción do Paraguai ( PCs/dia) e remete para suas lojas em São Paulo e Recife, totalizando PCs por loja. Os PCs são remetidos via aérea. A BITCO suspeita que devido à promoções e uso de outras empresas aéreas, seja mais econômico usar Brasília e Curitiba como pontos de transbordo. Os custos de transporte por PC vêm dados a seguir. Prof. Fogliatto PO - Graduação Custos De/Para Man Ass Bra Cur SP Rec Manaus $ - $8 $ $ $8 Assuncion - $ $ $ $ $ Brasilia - - $ $ $ $7 Curitiba - - $ $ $ $ SPaulo - - - - $ - Recife - - - - - $ Prof. Fogliatto PO - Graduação

Exemplo Deseja-se minimizar o custo do frete: Manaus Brasília SPaulo Assunción Curitiba Recife Prof. Fogliatto PO - Graduação O problema do transbordo é resolvido como um problema balanceado de transportes PASSO - Balanceie o problema, se necessário. Por exemplo: Capacidade > Demanda Acrescente pto de demanda artificial Capacidade = Demanda = excedente capacidd. Cargas são remetidas p/ ponto artificial a custo zero. Prof. Fogliatto PO - Graduação

Passo - Construa o tableau do transporte Uma linha p/ cada ponto de fornecimento e transbordo. Uma coluna p/ cada ponto de demanda e transbordo. Cada ponto de fornecimento terá capacidade de fornecimento igual a sua capacidade original de fornecimento. Cada ponto de demanda terá demanda igual a sua demanda original. Prof. Fogliatto PO - Graduação Passo - Cont. Seja s = capacidade total de fornecimento. Cada ponto de transbordo terá: capacidade = (capacidade do ponto original) + s demanda = (demanda do ponto original) + s Prof. Fogliatto PO - Graduação

Passo - Resolva o problema resultante como um problema de transporte Ao interpretar a solução ótima: ignore remessas aos pontos artificiais; ignore remessas de um ponto para ele mesmo. Prof. Fogliatto PO - Graduação 7 No exemplo Brasília Curitiba SPaulo Recife Artificial Capacidade Manaus 8 8 Assuncion Brasília 7 Curitiba Demanda 9 Prof. Fogliatto PO - Graduação 8

Resultado Manaus Brasília SPaulo Assunción Curitiba Recife Prof. Fogliatto PO - Graduação 9 Prática 9 A GM produz carros em SP e POA e tem um depósito (transbordo) em Foz do Iguaçu; a companhia fornece carros para Assunción e Buenos Aires. O custo do frete de um carro entre os pontos de fabricação e venda vem dado abaixo: Capacidade De/Para SP POA Foz Ass Bue Spaulo $ $ $ $9 $ POA $ $ $ $ $9 Foz $ $ $ $ $78 Assuncion $89 $9 $ $ - Buenos $ $7 $8 - $ 9 Demanda Minimize os custos de transporte. Prof. Fogliatto PO - Graduação

O Problema da Alocação São problemas balanceados de transporte nos quais todas as demandas e todas as capacidades são iguais a. As variáveis do problema são booleanas: x ij = ; se o ponto de abastecimento i for utilizado para suprir a demanda no ponto de demanda j. x ij = ; caso contrário. Prof. Fogliatto PO - Graduação Exemplo: Aloque trabalhos nas máquinas tal que tempo de setup seja mínimo Trab. Trab. Trab. Trab. min min 8 min Maq. Maq. Maq. 7 min Maq. Tempo (min) Tr. Tr. Tr. Tr. Máq. 8 7 Máq. Máq. 7 8 9 Máq. Prof. Fogliatto PO - Graduação

Formulação Variáveis de decisão: x ij = máquina i executando trabalho j; i =,..., e j =,...,. Função objetivo: Max z = x + x + 8 x + 7 x + x + x + x + x + 7 x + 8 x + x + 9 x + x + x + x + x Restrições de máquina: Restrições de trabalho: x +x +x +x = x +x +x +x = x +x +x +x = x +x +x +x = x +x +x +x = x +x +x +x = x +x +x +x = x +x +x +x = x ij = ou Prof. Fogliatto PO - Graduação Para resolver problemas de alocação, usaremos o Algoritmo Húngaro Passo - determine o elemento de custo mínimo em cada linha do tableau dos transportes. Construa um novo tableau subtraindo de cada custo o custo mínimo da linha correspondente. Determine então o custo mínimo em cada coluna. Construa um novo tableau subtraindo de cada custo o custo mínimo da coluna correspondente. Passo - determine o n o mínimo de linhas (horizontais e/ou verticais) necessárias para cobrir todos os zeros no tableau de custos reduzidos. Se forem necessárias m linhas, a resposta ótima é dada pelos zeros cobertos por linhas no tableau. Se menos de m linhas forem necessárias, siga para o passo. Prof. Fogliatto PO - Graduação

Algoritmo Húngaro Passo - determine o menor elemento dentre os elementos não cobertos por linhas no tableau; seja k o valor deste elemento. Subtraia k de cada elemento não-coberto do tableau e adicione k a cada elemento coberto por duas linhas no tableau. Volte ao passo. Nota - somente problemas balanceados podem ser resolvidos pelo algoritmo húngaro. Se um problema for não balanceado, adicione pontos artificiais de demanda ou capacidade. Exemplo... Prof. Fogliatto PO - Graduação Exemplo Mínimo da linha 8 7 7 8 9 Prof. Fogliatto PO - Graduação

Novo tableau após subtração dos mínimos de linha 9 8 Mín. da coluna Prof. Fogliatto PO - Graduação 7 Novo tableau após subtração dos mín. das colunas 9 linhas. m =, logo procedemos c/ passo. k = Prof. Fogliatto PO - Graduação 8

Subtraindo e somando k nas devidas células... Note que o mínimo das linhas e colunas é! 9 linhas. Como m =, temos uma solução ótima. Prof. Fogliatto PO - Graduação 9 Como identificar a solução ótima 9 O único zero coberto na col. é x. Logo, x =, e a col. e linha não podem mais ser usadas. O único zero coberto na col. é x. Logo, x =, e a col. e linha não podem mais ser usadas. Sendo assim, x =, e a linha não pode mais ser usada. Logo, x =. Prof. Fogliatto PO - Graduação

Prática 8 Um treinador necessita formar um time de nadadoras para competir em uma prova olímpica de metros medley. As nadadoras apresentam as seguintes médias de tempo em cada estilo: Tempo (s) / m Nadadora Livre Peito Golfinho Costas 7 Qual nadadora deve nadar qual estilo? Prof. Fogliatto PO - Graduação Modelos de Redes Definições básicas: Grafos ou Redes Defnido por Nós (ou vértices) Arcos Arco - par ordenado de vértices; representa uma possível direção de movimento entre vértices (j, k) = arco representando o movimento do nó j (nó inicial) para o nó k (nó final). Prof. Fogliatto PO - Graduação

Exemplo de Rede Nós = {,,, } Arcos = {(,), (,), (,) (,), (,)} Prof. Fogliatto PO - Graduação Correntes, Trilhas e Circuitos CORRENTE = sequência de arcos tal que cada arco apresenta exatamente um vértice em comum com o arco anterior. TRILHA = sequência de arcos tal que o nó terminal de cada arco é idêntico ao nó inicial do arco seguinte. CIRCUITO = trilha finita em que o nó terminal coincide com o nó inicial. Prof. Fogliatto PO - Graduação

No exemplo... Ex. de corrente = (,) - (,) - (,) Ex. de trilha = (,) - (,) - (,) Ex. de circuito = (,) - (,) - (,) - (,) Prof. Fogliatto PO - Graduação Problemas de determinação da trilha mais curta entre dois nós Exemplo Desejamos remeter energia elétrica da planta à cidade. A rede abaixo apresenta as distâncias entre pares de pontos conectados (incluindo subestações). Desejamos determinar a trilha mais curta entre a planta e a cidade. Planta Cidade Prof. Fogliatto PO - Graduação

Problemas de determinação da trilha mais curta entre dois nós Exemplo Eu comprei um carro novo por $. Os custos de manutenção e o valor na troca do carro em um determinado ano dependem da idade do carro no começo daquele ano. Idade do Carro (anos) Custo anual de manutenção 9 Idade do Carro Valor na troca (anos) 7 Prof. Fogliatto PO - Graduação 7 Exemplo O preço do carro novo em qualquer instante no tempo será $. Meu objetivo é minimizar o custo líquido: (custo de compra) + (custos manutenção) - (valor recebido na troca) durante os próximos cinco anos. Formule este problema como um problema de determinação da trilha mais curta. Prof. Fogliatto PO - Graduação 8

Solução O problema terá nós (i =,,, ). Arco (i, j) = comprar o carro novo no início do ano i e mantê-lo até o início do ano j. Custo c ij = (custo de manutenção incorrido durante os anos i, i+,,j-) + (custo de compra do carro no início do ano i) - (valor do carro na troca no início do ano j) Prof. Fogliatto PO - Graduação 9 Solução c = + - 7 = 7 c = + + - = c = + + + - = c = + + + 9 + - = c = + + + 9 + + - = e assim por diante... Prof. Fogliatto PO - Graduação

Rede 7 7 7 7 7 Prof. Fogliatto PO - Graduação Algoritmo de Dijkstra Todas as distâncias diretas entre dois nós da rede são conhecidas e não-negativas. Todos os nós da rede recebem um rótulo permanente ou temporário. Um rótulo temporário representa o limite superior da menor distância entre o nó e aquele nó. Um rótulo permanente corresponde à menor distância entre o nó e aquele nó. Prof. Fogliatto PO - Graduação

Passos do Algoritmo Passo Inicial: O nó inicial recebe um rótulo permanente com valor zero. Todos os demais nós têm rótulos temporários com valor igual à distância direta entre o nó inicial e o nó em questão. Nós com rótulos temporários e não conectados diretamente com o nó inicial recebem valor. Selecione, dentre os nós c/ rótulo temporário, aquele que apresentar o menor valor; esse nó passará a ter rótulo permanente. Em caso de empate, escolha aleatoriamente um dos nós de menor valor. Prof. Fogliatto PO - Graduação Passo Seja k o nó mais recente cujo rótulo foi transformado em permanente. Considere os demais nós (com rótulos temporários). Compare o valor de cada nó temporário com a soma (valor do nó + distância direta entre o nó k e o nó em questão). O mínimo entre esses valores será o novo valor do nó em questão. Prof. Fogliatto PO - Graduação

Passo Selecione o nó com menor valor dentre aqueles com rótulo temporário; transforme seu rótulo em permanente. Se o nó escolhido acima for o nó final, pare. Caso contrário, retorne ao passo. Prof. Fogliatto PO - Graduação Exemplo 7 9 Todos os arcos são Deseja-se encontrar a trilha mais curta entre os nós e. Prof. Fogliatto PO - Graduação

Comece fazendo com que o nó tenha um rótulo permanente = Todos os demais nós recebem rótulos provisórios iguais a distância direta entre o nó em questão e o nó. Assim: * indica rótulo permanente. L () = [*,, 7,,, ] Prof. Fogliatto PO - Graduação 7 O menor dos rótulos temporários vira permanente (nó ). A menor distância entre nós e é =. Os novos rótulos são: L () = [*, *, 7,,, ] Prof. Fogliatto PO - Graduação 8

Para todos os demais nós (j =,,,), calcule o número dado pela soma do valor no nó (=) e a distância direta entre o nó e o nó j em questão Compare o número obtido com o rótulo temporário do nó j; o menor dentre esses valores passa a ser o novo rótulo temporário de j. Para j = min (+, 7) = Para j = min (+, ) = Para j = min (+, ) = Os novos rótulos são: L () = [*, *,,,, ] Para j = min (+9, ) = Prof. Fogliatto PO - Graduação 9 O menor dos rótulos temporários vira permanente (nó ). A menor distância entre nós e é =. Os novos rótulos são: L () = [*, *,, *,, ] Prof. Fogliatto PO - Graduação 7

Para todos os demais nós (j =,,), calcule o número dado pela soma do valor no nó (=) e a distância direta entre o nó e o nó j em questão Compare o número obtido com o rótulo temporário do nó j; o menor dentre esses valores passa a ser o novo rótulo temporário de j. Para j = min (+, ) = Para j = min (+, ) = 7 Para j = min (+, ) = Os novos rótulos são: L () = [*, *,, *, 7, ] Prof. Fogliatto PO - Graduação 7 O menor dos rótulos temporários vira permanente (nó ). A menor distância entre nós e é =. Os novos rótulos são: L () = [*, *, *, *, 7, ] Prof. Fogliatto PO - Graduação 7

Para todos os demais nós (j =,), calcule o número dado pela soma do valor no nó (=) e a distância direta entre o nó e o nó j em questão Compare o número obtido com o rótulo temporário do nó j; o menor dentre esses valores passa a ser o novo rótulo temporário de j. Para j = min (+, 7) = 7 Para j = min (+, ) = Os novos rótulos são: L () = [*, *, *, *, 7, ] Prof. Fogliatto PO - Graduação 7 O menor dos rótulos temporários vira permanente (nó ). A menor distância entre nós e é = 7. Os novos rótulos são: L () = [*, *, *, *, 7*, ] Prof. Fogliatto PO - Graduação 7

Para todos os demais nós (j =), calcule o número dado pela soma do valor no nó (=7) e a distância direta entre o nó e o nó j em questão Compare o número obtido com o rótulo temporário do nó j; o menor dentre esses valores passa a ser o novo rótulo temporário de j. Os novos rótulos são: Para j = min (7+, ) = L () = [*, *, *, *, 7*, ] Prof. Fogliatto PO - Graduação 7 O menor dos rótulos temporários vira permanente (nó ). A menor distância entre nós e é =. Os novos rótulos são: L () = [*, *, *, *, 7*, *] O algoritmo termina e a menor trilha entre e pode ser determinada. Prof. Fogliatto PO - Graduação 7

Determinando a trilha mais curta Comece do nó de destino (). Calcule a diferença entre o rótulo permanente do nó e os demais nós diretamente ligados a ele. 7 9 L () = [*, *, *, *, 7*, *] Nós, e estão diretamente ligados a. Assim: ( ): - 7 = ( ): - = ( ): - = 7 Prof. Fogliatto PO - Graduação 77 Se a diferença ( j) for igual ao comprimento real do arco (j, ), escolha j como ponto intermediário 7 9 Diferenças / Arcos: ( ) = / (,) = ( ) = / (,) = ( ) = 7 / (,) = 9 Assim, o primeiro nó intermediário no caminho entre e é o nó. Prof. Fogliatto PO - Graduação 78

Repita o procedimento para o nó 7 9 Nós e estão diretamente ligados a. L () = [*, *, *, *, 7*, *] Diferenças: ( ): 7 - = ( ): 7 - = Prof. Fogliatto PO - Graduação 79 Se a diferença ( j) for igual ao comprimento real do arco (j, ), escolha j como ponto intermediário 7 9 Diferenças / Arcos: ( ) = / (,) = ( ) = / (,) = Assim, o segundo nó intermediário no caminho entre e é o nó. Caminho parcial: Prof. Fogliatto PO - Graduação 8

Repita o procedimento para o nó 7 9 Nós e estão diretamente ligados a. L () = [*, *, *, *, 7*, *] Diferenças: ( ): - = - ( ): - = Prof. Fogliatto PO - Graduação 8 Se a diferença ( j) for igual ao comprimento real do arco (j, ), escolha j como ponto intermediário 7 9 Diferenças / Arcos: ( ) = - / (,) = ( ) = / (,) = Como o nó é o nó de destino, determinamos a trilha mais curta entre os nós e. Trilha Mais Curta: Prof. Fogliatto PO - Graduação 8

Prática Use o algoritmo de Dijkstra para resolver o problema no slide. Prof. Fogliatto PO - Graduação 8