382 Apostila Pesquisa Operacional Parte 2

Download 382 Apostila Pesquisa Operacional Parte 2

Post on 03-Jan-2016

93 views

Category:

Documents

13 download

TRANSCRIPT

Pesquisa Operacional Parte 2Graduao em Engenharia de ProduoDEPROT / UFRGS Prof. Flavio Fogliatto, Ph.D.Prof. Fogliatto PO - Graduao 2O Problema do TransporteDescrio Geral de um problema de transporte:1. Um conjunto de m pontos de fornecimento a partir dos quais uminsumo embarcado ou remetido.O ponto de fornecimento i pode fornecer no mximo si unidades.2. Um conjunto de n pontos de demanda para os quais o insumo remetido.O ponto de demanda j deve receber pelo menos dj unidades do insumo.Prof. Fogliatto PO - Graduao 3Descrio Geral de um problema de transporte3. Cada unidade produzida no ponto de fornecimento i e remetida ao ponto de demanda j incorre num custo de cij.Prof. Fogliatto PO - Graduao 4Formulao do ProblemaSeja xij = no de unidades despachadas do ponto de fornecimento i parao ponto de demanda j.A formulao genrica do problema do transporte ser:Restries de fornecimentoRestries de demandaProf. Fogliatto PO - Graduao 5Problema BalanceadoUm problema de transporte considerado balanceado se:Ou seja, o fornecimento supre toda a demanda.Num problema balanceado, as restries so todas igualdades.Prof. Fogliatto PO - Graduao 6Como balancear um problema de transporte quando a capacidade de fornecimento excede a demandaCria-se um ponto fictcio de demanda. A demanda nesse ponto ser igualao excedente da capacidade.Como balancear o problema quando a demanda maior que a capacidadede fornecimento?Neste caso, o problema no possui solues viveis.Como alternativa, pode-se adicionar um ponto fictcio de fornecimento.O custo de fornecimento daquele ponto ser igual penalizao incorridapelo no fornecimento do insumo.Prof. Fogliatto PO - Graduao 7O Tableau de Transportec11 c12 c1nc21 c22 c2ncm1 cm2 cmnDemanda d1 d2 dnFornecimentos1s2smProf. Fogliatto PO - Graduao 8ExemploDois reservatrios de gua abastecem trs cidades. Cada reservatrio pode abastecer at 50 milhes de litros de gua por dia. Cada cidade necessita receber 40 milhes de litros de gua por dia. Associado a cada milho de litros de gua no fornecido por dia existe uma multa. A multa na cidade 1 de $20; na cidade 2 de $18; na cidade 3 de $23. Os custos do transporte entre reservatrios e cidades vemdado ao lado...Reserv. 1Reserv. 2Cid.1 Cid.2 Cid.3$7 $8 $8$9 $7 $8Prof. Fogliatto PO - Graduao 9Tableau do Simplex7 8 89 7 8Cid. 1 Cid. 2 Cid. 320 18 23Res. 1Res. 2Res. Artif.Demanda 40 40 40Capacidade505020Prof. Fogliatto PO - Graduao 10Prtica:Prof. Fogliatto PO - Graduao 11Mtodo do Extremo Noroeste para Determinao da Soluo Vivel Inicial de um problema de TransporteInicie o mtodo considerando a clula (1,1) do tableau. Faa com quex11 seja o maior valor possvel.Obviamente, x11 = Min (d1, s1).Se x11 = s1, desconsidere as demais clulas na primeira linha do tableau,j que nenhuma outra varivel bsica vir desta linha. Atualize o valorde d1 para d1 - s1.Se x11 = d1, desconsidere as demais clulas na primeira coluna do tableau,j que nenhuma outra varivel bsica vir desta coluna. Atualize o valorde s1 para s1 - d1.Prof. Fogliatto PO - Graduao 12Mtodo do Extremo Noroeste para Determinao da Soluo Vivel Inicial de um problema de TransporteSe x11 = s1 = d1, desconsidere as demais clulas na primeira linha ouna primeira coluna do tableau (mas no ambas). Se voc escolher descon-siderar a linha 1, mude d1 para 0. Se voc escolher desconsiderar acoluna 1, mude s1 para 0.Repita o procedimento, sempre escolhendo a clula posicionada noextremo noroeste do tableau (desde que ela no esteja em uma linhaou coluna eliminada anteriormente).Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicialpara o problema.Prof. Fogliatto PO - Graduao 13ExemploO mtodo do extremo noroeste no utiliza os custos, omitidos nos tableausabaixo:6510154812x11 = Min {12, 5} = 5570Prof. Fogliatto PO - Graduao 14Exemplo601015487x21 = Min {10, 7} = 75073Prof. Fogliatto PO - Graduao 15Exemplo60315487x22 = Min {8, 3} = 350053Prof. Fogliatto PO - Graduao 16Exemplo60015457x32 = Min {15, 5} = 55010035Prof. Fogliatto PO - Graduao 17Exemplo60010407x33 = Min {10, 4} = 4506035 4Prof. Fogliatto PO - Graduao 18Exemplo6006407x34 = Min {6, 6} = 650035 4 06BaseInicialVivelProf. Fogliatto PO - Graduao 19Prtica:Determine uma base inicial para o problema anterior.Prof. Fogliatto PO - Graduao 20O Mtodo Simplex para problemas de transporte Precisamos calcular os valores correspondentes a linha z do tableau do simplex.Decidindo qual varivel no-bsica deve entrar na base O clculo desses valores envolve determinar um menor circuito ou loopcontendo algumas variveis bsicas e a varivel no-bsica em questo. Existe um loop nico possvel para cada varivel no-bsica.Prof. Fogliatto PO - Graduao 21Exemplo2 3 414 12 512 15 910 100 20 1091310 10 20 5020304040CapaciddDemandaBase inicial determinada pelo mtodo do extremo noroeste.Prof. Fogliatto PO - Graduao 22Determine a varivel no-bsica a entrar na baseCalcule os valores correspondentes linha z para cada varivel no-bsica: 2 3 414 12 512 15 910 100 20 10913401. Determine um loopde var. bsicas quecontenha a var. no-bsica.Iniciando com x14:2. Alterne sinais pos. e neg. nas var. bs.extremas.+-+3. Some os cij de acordo com os sinais.(+1-12+3) = -84. Subtraia o coef. de custo da var. no-bs. em questo do resultado(-8) - 9 = -17-17Prof. Fogliatto PO - Graduao 23Clculo para x132 3 414 12 512 15 910 100 20 1091340+-+(+5-12+3) = -4 (-4) - 4 = -8-17-8Prof. Fogliatto PO - Graduao 24Repetindo o clculo p/ as demais var. no-bsicas2 3 414 12 512 15 910 100 20 1091340-17-8-2-1+1-3Num problema de minimizao a varivel mais positiva entra na base.Prof. Fogliatto PO - Graduao 25Para verificar qual varivel deve sair da base, determine um loop contendo a var. entrante e algumas variveis bsicas2 3 414 12 512 15 910 100 20 1091340-17-8-2-1+1-3Prof. Fogliatto PO - Graduao 26A primeira clula bsica do loop recebe um sinal positivo, a segunda um sinal negativo, e assim por diante...Dentre as clulaspositivas, selecioneaquela de menorvalor: esta a var.que sair da base. 2 3 414 12 512 15 910 100 20 1091340-17-8-2-1+1-3+ -+-+A varivel entranteassumir o valorda varivel que saida base.Prof. Fogliatto PO - Graduao 27Atualize o valor das demais clulas do loop: clulas com sinal + tm seu valor decrescido em ; clulas com sinal -, tm seu valor acrescido de . A varivel entrante entra na base com valor .2 3 414 12 512 15 910 1020 1091340+ -+-+0Prof. Fogliatto PO - Graduao 28Novo tableau2 3 414 12 512 15 910 1020 10913400-4-7 -16-1-2 -2Nenhuma var. no-bs. com zij - cij > 0 tableau timo!Prof. Fogliatto PO - Graduao 29Prtica: Resolva o problema proposto no Slide 9. Resolva o problema do ao.Prof. Fogliatto PO - Graduao 30O Problema do Transbordo Ponto de fornecimento - pode remeter insumos para outros pontosmas no pode receber. Ponto de demanda - pode receber insumos de outros pontosmas no pode remeter. Ponto de transbordo - remete e recebe insumos de outros pontos.Prof. Fogliatto PO - Graduao 31ExemploA BITCO monta PCs em Manaus (150 PCs/dia) e Assuncin do Paraguai (200 PCs/dia) e remete para suas lojas em So Paulo e Recife, totalizando 130 PCs por loja.Os PCs so remetidos via area. A BITCO suspeita que devido promoes e uso de outras empresas areas, seja mais econmico usar Braslia e Curitiba como pontos de transbordo.Os custos de transporte por PC vm dados a seguir.Prof. Fogliatto PO - Graduao 32CustosProf. Fogliatto PO - Graduao 33ExemploDeseja-se minimizar o custo do frete:ManausAssuncinBrasliaCuritibaSPauloRecifeProf. Fogliatto PO - Graduao 34O problema do transbordo resolvido como um problema balanceado de transportesPASSO 1 - Balanceie o problema, se necessrio.Por exemplo:Capacidade > DemandaAcrescente pto de demanda artificialCapacidade = 0Demanda = excedente capacidd.Cargas so remetidas p/ ponto artificial a custo zero.Prof. Fogliatto PO - Graduao 35Passo 2 - 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 - Graduao 36Passo 2 - Cont. Seja s = capacidade total de fornecimento. Cada ponto de transbordo ter:; capacidade = (capacidade do ponto original) + s; demanda = (demanda do ponto original) + sProf. Fogliatto PO - Graduao 37Passo 3 - Resolva o problema resultante como um problema de transporteAo interpretar a soluo tima:; ignore remessas aos pontos artificiais;; ignore remessas de um ponto para ele mesmo.Prof. Fogliatto PO - Graduao 38No exemplo81501361260 14 16 016 1700252625 28 0ManausAssuncionBrasliaCuritibaBraslia Curitiba SPaulo Recife Artificial Capacidade150200350350350 350 130 130 90DemandaProf. Fogliatto PO - Graduao 39ResultadoManausAssuncinBrasliaCuritibaSPauloRecife130 130130Prof. Fogliatto PO - Graduao 40Prtica A GM produz carros em SP e POA e tem um depsito (transbordo) em Foz do Iguau; a companhia fornece carros para Assuncin e Buenos Aires. O custo do frete de um carro entre os pontos de fabricao e venda vem dado abaixo:Minimize os custos de transporte. 1100 2900 2400 1500CapacidadeDemandaProf. Fogliatto PO - Graduao 41O Problema da AlocaoSo problemas balanceados de transporte nos quais todas as demandas e todas as capacidades so iguais a 1.As variveis do problema so booleanas:xij = 1; se o ponto de abastecimento i for utilizado para suprir a demandano ponto de demanda j.xij = 0; caso contrrio.Prof. Fogliatto PO - Graduao 42Exemplo: Aloque trabalhos nas mquinas tal que tempo de setup seja mnimoTrab. 1Trab. 2Trab. 3Trab. 4Maq. 1Maq. 2Maq. 3Maq. 414 min5 min8 min7 minProf. Fogliatto PO - Graduao 43FormulaoVariveis de deciso:xij = mquina i executando trabalho j; i = 1,...,4 e j = 1,...,4.Funo objetivo:Min z = 14 x11 + 5 x12 + 8 x13 + 7 x14 + 2 x21 + 12 x22 + 6 x23 + 5 x24 +7 x31 + 8 x32 + 3 x33 + 9 x34 + 2 x41 + 4 x42 + 6 x43 + 10 x44 Restries de mquina:x11+x12+x13+x14 = 1x21+x22+x23+x24 = 1x31+x32+x33+x34 = 1x41+x42+x43+x44 = 1Restries de trabalho:x11+x21+x31+x41 = 1x12+x22+x32+x42 = 1x13+x23+x33+x43 = 1x14+x24+x34+x44 = 1xij = 1 ou 0Prof. Fogliatto PO - Graduao 44Para resolver problemas de alocao, usaremos o Algoritmo HngaroPasso 1 - determine o elemento de custo mnimo em cada linha do tableau dos transportes. Construa um novo tableau subtraindo de cada custo o custo mnimo da linha correspondente. Determine ento o custo mnimo em cada coluna. Construa um novo tableau subtraindo de cada custo o custo mnimo da coluna correspondente. Passo 2 - determine o no mnimo de linhas (horizontais e/ou verticais) necessrias para cobrir todos os zeros no tableau de custos reduzidos. Se forem necessrias m linhas, a resposta tima dada pelos zeros cobertos por linhas no tableau. Se menos de m linhas forem necessrias, siga para o passo 3.Prof. Fogliatto PO - Graduao 45Algoritmo HngaroPasso 3 - determine o menor elemento 0 dentre os elementos no cobertos por linhas no tableau; seja k o valor deste elemento. Subtraia kde cada elemento no-coberto do tableau e adicione k a cada elemento coberto por duas linhas no tableau. Volte ao passo 2.Nota - somente problemas balanceados podem ser resolvidos pelo algoritmo hngaro. Se um problema for no balanceado, adicione pontos artificiais de demanda ou capacidade.Exemplo...Prof. Fogliatto PO - Graduao 46Exemplo2148472512 683657910Mnimo da linha5232Prof. Fogliatto PO - Graduao 47Novo tableau aps subtrao dos mnimos de linha095240010 43043268Mn. da coluna 0 0 0 2Prof. Fogliatto PO - Graduao 48Novo tableau aps subtrao dos mn. das colunas095240010 430410463 linhas. m = 4, logo proce-demos c/ passo 3.k = 1Prof. Fogliatto PO - Graduao 49Subtraindo e somando k nas devidas clulas...010515009 33030045Note que o mnimodas linhas e colunas 0!4 linhas. Como m = 4,temos uma soluo tima.Prof. Fogliatto PO - Graduao 50Como identificar a soluo tima010515009 33030045O nico zero coberto na col. 3 x33. Logo, x33 = 1, e a col. 3e linha 3 no podem mais ser usadas.O nico zero coberto na col. 2 x12. Logo, x12 = 1, e a col. 2e linha 1 no podem mais ser usadas.Sendo assim, x24 = 1, e alinha 2 no pode mais ser usada. Logo, x41 = 1.Prof. Fogliatto PO - Graduao 51PrticaUm treinador necessita formar um time de nadadoras para competir em uma prova olmpica de 400 metros medley. As nadadoras apresentam as seguintes mdias de tempo em cada estilo:Qual nadadora deve nadar qual estilo?Prof. Fogliatto PO - Graduao 52O PROBLEMA DUAL Todo o problema de programao linear possui um problemadual correspondente. Chamaremos o problema original de primal e o problema dual de dual. Variveis do problema primal z, x1, x2,,xn. Variveis do problema dual w, y1, y2,,ym.Prof. Fogliatto PO - Graduao 53Escrevendo o dual de um problema de progr. linearMax z = c1x1 + c2x2 + + cnxns.a: a11x1 + a12x2 + + a1nxn b1a21x1 + a22x2 + + a2nxn b2am1x1 + am2x2 + + amnxn bmMin w = b1y1 + b2y2 + + bmyms.a: a11y1 + a21y2 + + am1ym c1a12y1 + a22x2 + + am2ym c2a1ny1 + a2ny2 + + amnym cnProf. Fogliatto PO - Graduao 54EXEMPLOMax z = 60x1 + 30x2 + 20x3s.a: 8x1 + 6x2 + 1x3 484x1 + 2x2 + 1.5x3 202x1 + 1.5x2 + 0.5x3 8x1, x2, x3 0P r i ma lDu a lMin w = 48y1 + 20y2 + 8y3s.a: 8y1 + 4y2 + 2y3 606y1 + 2y2 + 1.5y3 301y1 + 1.5y2 + 0.5y3 20y1, y2, y3 0Prof. Fogliatto PO - Graduao 55A isima restrio do dual corresponde isima varivel do primalUsando a tabela abaixo, pode-se achar o dual de qualquer primal: VariveisVariveisRestriesRestriesProf. Fogliatto PO - Graduao 56OUTRO EXEMPLOMax z = 2x1 + x2s.a: 2x1 + x2 = 22x1 - x2 3x1 - x2 1x1 0, x2 irrestr.P r i ma lMin w = 2y1 + 3y2 + 1y3s.a: 2y1 + 2y2 + y3 2y1 - y2 - y3 = 1y1 irrestr., y2 0, y3 0Du a lProf. Fogliatto PO - Graduao 57INTERPRETAO ECONMICA DO PROBLEMA DUALMax z = 60x1 + 30x2 + 20x3s.a: 8x1 + 6x2 + 1x3 484x1 + 2x2 + 1.5x3 202x1 + 1.5x2 + 0.5x3 8x1, x2, x3 0Considere o exemplo:Correspondente modelagem matemtica do seguinte problema:Prof. Fogliatto PO - Graduao 58O DUAL DESTE PROBLEMA :Min w = 48y1 + 20y2 + 8y3s.a: 8y1 + 4y2 + 2y3 606y1 + 2y2 + 1.5y3 301y1 + 1.5y2 + 0.5y3 20y1, y2, y3 0EscrivaninhaMesaCadeira Restries associadas com escrivaninhas, mesas e cadeiras, respectiv. y1 associado com tbuas; y2 com acabamto; y3 com carpintaria. Suponha uma situao onde exista escassez de insumos. Um outro fabricante de mveis deseja comprar os insumos disponveis na fbrica de escrivaninhas, mesas e cadeiras.A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?Prof. Fogliatto PO - Graduao 59Definindo as variveis do problema dual y1 = gio mximo cobrado por uma tbua de madeira; y2 = gio mximo cobrado por 1 hora de acabamento; y3 = gio mximo cobrado por 1 hora de carpintariaO gio total a ser cobrado por estes insumos corresponder funo objetivo:Min w = 48y1 + 20y2 + 8y3 Note que a funo objetivo busca minimizar o custo de compra:este o ponto de vista do comprador. Prof. Fogliatto PO - Graduao 60O comprador deseja o menor preo, mas o preo deve ser atraente o suficiente para induzir o fabricante de escrivaninhas a vender seus insumosAssim:8y1 + 4y2 + 2y3 60Ou seja, se comprarmos todos os insumos nas quantidades necessrias para produzir uma escrivaninha, o gio a ser pago deve ser, no mnimo, o que o fabricante lucraria com a venda daquele produto.Restrio dasescrivaninhasO mesmo ocorre com as outros produtos:6y1 + 2y2 + 1.5y3 301y1 + 1.5y2 + 0.5y3 20Restr. das mesasRestr. das cadeirasProf. Fogliatto PO - Graduao 61Para determinarmos o menor gio de compra dos insumos que mantenha a venda desses insumos interessantes para o fabricante, devemos resolver o problema dual As variveis y1, y2, y3 so normalmente denominadas preos-sombra dos insumos. Por definio, o preo-sombra da isima restrio corresponde melhoria no valor z da funo objetivo ocasionada peloincremento de uma unidade no lado direito da restrio [ouseja, de bi para (bi + 1)].Prof. Fogliatto PO - Graduao 62PRTICA:Prof. Fogliatto PO - Graduao 63Como ler a soluo tima do dual a partir da linha 0 (ou linha z) do tableau timo do primalCaso 1 - Primal = MaxPara resolver o problema abaixo:Max z = 3x1 + 2x2 + 5x3s.a: 1x1 + 3x2 + 2x3 152x2 - x3 52x1 + x2 - 5x3 = 10x1, x2, x3 0Adicionar var. folga f1Adicionar var. excesso e2 e art. a2Adicionar var. artificial a3 A base inicial ser formada por B = { f1, a2, a3}. Usaremos o Mtodo do M-Grande para solucionar este problema. O tableau timo vem dado a seguir...Prof. Fogliatto PO - Graduao 64Tableau timoProf. Fogliatto PO - Graduao 65Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Max)Valor timo da var. dual yiqdo restrio i do tipo Valor timo da var. dual yiqdo restrio i do tipo Valor timo da var. dual yiqdo restrio i do tipo =Coeficiente de fi na linha 0 do tableau timo-(Coeficiente de ei) na linha 0 do tableau timo(Coeficiente de ai na linha 0 do tableau timo) - MProf. Fogliatto PO - Graduao 66No tableau timo do exemplo anterior:y1 -y2 y3-MOu seja, o problema dual possui a seguinte soluo tima:y1 = 51/23; y2 = -58/23; y3 = 9/23Prof. Fogliatto PO - Graduao 67Conferindo o resultado na funo objetivo do problema dualMin w = 15y1 + 5y2 + 10y3w = 565/23y1 = 51/23; y2 = -58/23; y3 = 9/23Prof. Fogliatto PO - Graduao 68Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Min)Valor timo da var. dual yiqdo restrio i do tipo Valor timo da var. dual yiqdo restrio i do tipo Valor timo da var. dual yiqdo restrio i do tipo =Coeficiente de fi na linha 0 do tableau timo-(Coeficiente de ei) na linha 0 do tableau timo(Coeficiente de ai na linha 0 do tableau timo) + MProf. Fogliatto PO - Graduao 69PRTICA:Prof. Fogliatto PO - Graduao 70Modelos de RedesDefinies bsicas:Grafos ou RedesDefnido por Ns (ou vrtices)ArcosArco - par ordenado de vrtices; representa uma possvel direode movimento entre vrtices(j, k) = arco representando o movimento do n j (n inicial) para o nk (n final).Prof. Fogliatto PO - Graduao 71Exemplo de Rede12 34Ns = {1, 2, 3, 4}Arcos = {(1,2), (2,3), (3,4)(4,3), (4,1)}Prof. Fogliatto PO - Graduao 72Correntes, Trilhas e CircuitosCORRENTE = sequncia de arcos tal que cada arco apresenta exatamente um vrtice em comum com o arco anterior.TRILHA = sequncia de arcos tal que o n terminal de cada arco idntico ao n inicial do arco seguinte.CIRCUITO = trilha finita em que o n terminal coincide com o n inicial.Prof. Fogliatto PO - Graduao 73No exemplo...12 34Ex. de corrente = (1,2) - (2,3) - (4,3)Ex. de trilha = (1,2) - (2,3) - (3,4)Ex. de circuito = (1,2) - (2,3) - (3,4) - (4,1)Prof. Fogliatto PO - Graduao 74Problemas de determinao da trilha mais curta entre dois ns Exemplo 1 Desejamos remeter energia eltrica da planta 1 cidade 1. A rede abaixo apresenta as distncias entre pares de pontos conectados (incluindo subestaes). Desejamos determinar a trilha mais curta entre a planta e a cidade.1234534322362Planta 1 Cidade 1Prof. Fogliatto PO - Graduao 75Problemas de determinao da trilha mais curta entre dois nsExemplo 2Eu comprei um carro novo por $12000. Os custos de manuteno e ovalor na troca do carro em um determinado ano dependem da idade docarro no comeo daquele ano.Prof. Fogliatto PO - Graduao 76Exemplo 2 O preo do carro novo em qualquer instante no tempo ser $12000. Meu objetivo minimizar o custo lquido:(custo de compra) + (custos manuteno) - (valor recebido na troca)durante os prximos cinco anos. Formule este problema como um problema de determinao da trilhamais curta. Prof. Fogliatto PO - Graduao 77Soluo O problema ter 6 ns (i = 1, 2, , 6). Arco (i, j) = comprar o carro novo no incio do ano i e mant-lo at o incio do ano j. Custo cij = (custo de manuteno incorrido durante os anos i, i+1,,j-1)+(custo de compra do carro no incio do ano i)-(valor do carro na troca no incio do ano j)Prof. Fogliatto PO - Graduao 78Soluoc12 = 2 + 12 - 7 = 7c13 = 2 + 4 + 12 - 6 = 12c14 = 2 + 4 + 5 + 12 - 2 = 21c15 = 2 + 4 + 5 + 9 + 12 - 1 = 31c16 = 2 + 4 + 5 + 9 + 12 + 12 - 0 = 44e assim por diante...Prof. Fogliatto PO - Graduao 79Rede1 2 3 4 5 67 7 7 7 712213144 312112211212Prof. Fogliatto PO - Graduao 80Algoritmo de Dijkstra Todas as distncias diretas entre dois ns da rede so conhecidas eno-negativas. Todos os ns da rede recebem um rtulo permanente outemporrio. Um rtulo temporrio representa o limite superior da menordistncia entre o n 1 e aquele n. Um rtulo permanente corresponde menor distncia entre o n 1e aquele n.Prof. Fogliatto PO - Graduao 81Passos do AlgoritmoPasso Inicial: O n inicial recebe um rtulo permanente com valor zero. Todos os demais ns tm rtulos temporrios com valor igual distncia direta entre o n inicial e o n em questo. Ns com rtulos temporrios e no conectados diretamente com o n inicial recebem valor . Selecione, dentre os ns c/ rtulo temporrio, aquele que apresentar o menor valor; esse n passar a ter rtulo permanente. Em caso de empate, escolha aleatoriamente um dos ns de menor valor. Prof. Fogliatto PO - Graduao 82Passo 1 Seja k o n mais recente cujo rtulo foi transformado em permanente. Considere os demais ns (com rtulos temporrios). Compare o valor de cada n temporrio com a soma (valor do n + distncia direta entre o n k e o n em questo). O mnimo entre esses valores ser o novo valor do n em questo.Prof. Fogliatto PO - Graduao 83Passo 2Selecione o n com menor valor dentre aqueles com rtulo temporrio; transforme seu rtulo em permanente. Se o n escolhido acima for o n final, pare. Caso contrrio, retorne ao passo 1.Prof. Fogliatto PO - Graduao 84Exemplo1234653742136339 Todos os arcos so Deseja-se encontrar a trilhamais curta entre os ns 1 e 6.Prof. Fogliatto PO - Graduao 85Comece fazendo com que o n 1 tenha um rtulo permanente = 0Todos os demais ns recebem rtulos provisrios iguais a distnciadireta entre o n em questo e o n 1.Assim:L (0) = [0*, 3, 7, 4, , ]* indica rtulo permanente.Prof. Fogliatto PO - Graduao 86O menor dos rtulos temporrios vira permanente (n 2). A menor distncia entre ns 1 e 2 = 3. Os novos rtulos so:L (0) = [0*, 3*, 7, 4, , ]Prof. Fogliatto PO - Graduao 87Para todos os demais ns (j = 3,4,5,6), calcule o nmero dado pela soma do valor no n 2 (=3) e a distncia direta entre o n 2 e o n j em questo Compare o nmero obtido com o rtulo temporrio do n j; o menordentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 3 min (3+2, 7) = 5 Para j = 4 min (3+, 4) = 4 Para j = 5 min (3+, ) = Para j = 6 min (3+9, ) = 12 Os novos rtulos so:L (2) = [0*, 3*, 5, 4, , 12]Prof. Fogliatto PO - Graduao 88O menor dos rtulos temporrios vira permanente (n 4). Os novos rtulos so:L (2) = [0*, 3*, 5, 4*, , 12] A menor distncia entre ns 1 e 4 = 4. Prof. Fogliatto PO - Graduao 89Para todos os demais ns (j = 3,5,6), calcule o nmero dado pela soma do valor no n 4 (=4) e a distncia direta entre o n 4 e o n j em questo Compare o nmero obtido com o rtulo temporrio do n j; o menordentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 3 min (4+1, 5) = 5 Para j = 5 min (4+3, ) = 7 Para j = 6 min (4+, 12) = 12 Os novos rtulos so:L (3) = [0*, 3*, 5, 4*, 7, 12]Prof. Fogliatto PO - Graduao 90O menor dos rtulos temporrios vira permanente (n 3). Os novos rtulos so:L (3) = [0*, 3*, 5*, 4*, 7, 12] A menor distncia entre ns 1 e 3 = 5. Prof. Fogliatto PO - Graduao 91Para todos os demais ns (j = 5,6), calcule o nmero dado pela soma do valor no n 3 (=5) e a distncia direta entre o n 3 e o n j em questo Compare o nmero obtido com o rtulo temporrio do n j; o menordentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 5 min (5+3, 7) = 7 Para j = 6 min (5+6, 12) = 11 Os novos rtulos so:L (4) = [0*, 3*, 5*, 4*, 7, 11]Prof. Fogliatto PO - Graduao 92O menor dos rtulos temporrios vira permanente (n 5). Os novos rtulos so:L (4) = [0*, 3*, 5*, 4*, 7*, 11] A menor distncia entre ns 1 e 5 = 7. Prof. Fogliatto PO - Graduao 93Para todos os demais ns (j =6), calcule o nmero dado pela soma do valor no n 5 (=7) e a distncia direta entre o n 5 e o n j em questo Compare o nmero obtido com o rtulo temporrio do n j; o menordentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 6 min (7+3, 11) = 10 Os novos rtulos so:L (4) = [0*, 3*, 5*, 4*, 7*, 10]Prof. Fogliatto PO - Graduao 94O menor dos rtulos temporrios vira permanente (n 6). Os novos rtulos so:L (5) = [0*, 3*, 5*, 4*, 7*, 10*] A menor distncia entre ns 1 e 6 = 10. O algoritmo termina e a menor trilha entre 1 e 6 pode ser determinada.Prof. Fogliatto PO - Graduao 95Determinando a trilha mais curta Comece do n de destino (6). Calcule a diferena entre o rtulo permanente do n 6 e os demais ns diretamente ligados a ele.1234653742136339 L (5) = [0*, 3*, 5*, 4*, 7*, 10*]Ns 2,3 e 5 esto diretamente ligados a 6.Assim: (65): 10 - 7 = 3 (63): 10 - 5 = 4 (62): 10 - 3 = 7Prof. Fogliatto PO - Graduao 96Se a diferena (6j) for igual ao comprimento real do arco (j, 6), escolha j como ponto intermedirio1234653742136339Diferenas / Arcos: (65) = 3 / (5,6) = 3 (63) = 4 / (3,6) = 6 (62) = 7 / (2,6) = 9Assim, o primeiro n intermediriono caminho entre 6 e 1 o n 5.Prof. Fogliatto PO - Graduao 97Repita o procedimento para o n 5Ns 3 e 4 esto diretamente ligados a 5.1234653742136339L (5) = [0*, 3*, 5*, 4*, 7*, 10*]Diferenas: (54): 7 - 4 = 3 (53): 7 - 5 = 3Prof. Fogliatto PO - Graduao 98Se a diferena (5j) for igual ao comprimento real do arco (j, 5), escolha j como ponto intermedirio1234653742136339Diferenas / Arcos: (54) = 3 / (4,5) = 3 (53) = 2 / (3,5) = 3Assim, o segundo n intermediriono caminho entre 6 e 1 o n 4.Caminho parcial: 6 5 4Prof. Fogliatto PO - Graduao 99Repita o procedimento para o n 4Ns 3 e 1 esto diretamente ligados a 4.1234653742136339L (5) = [0*, 3*, 5*, 4*, 7*, 10*]Diferenas: (43): 4 - 5 = -1 (41): 4 - 0 = 4Prof. Fogliatto PO - Graduao 100Se a diferena (4j) for igual ao comprimento real do arco (j, 4), escolha jcomo ponto intermedirio1234653742136339Diferenas / Arcos: (43) = -1 / (3,4) = 1 (41) = 4 / (1,4) = 4Como o n 1 o n de destino, determinamos a trilha mais curtaentre os ns 1 e 6.Trilha Mais Curta: 6 5 4 1Prof. Fogliatto PO - Graduao 101PrticaUse o algoritmo de Dijkstra para resolver os problemas nosslides 79 e 84.