Pesquisa Operacional - Apostila completa + livro 167pg

Download Pesquisa Operacional - Apostila completa + livro 167pg

Post on 01-Jul-2015

2.034 views

Category:

Documents

4 download

TRANSCRIPT

Pesquisa OperacionalEngenharia de Produo DEPROT / UFRGS Profs. Flavio Fogliatto, Ph.D.1. INTRODUO PESQUISA OPERACIONAL A Pesquisa Operacional (PO) trata da modelagem matemtica de fenmenos estticos ou dinmicos. Os problemas estticos so denominados por determinsticos. Nestes problemas, todos os componentes so conhecidos a priori e nenhuma aleatoriedade em sua ocorrncia admitida. Os problemas dinmicos so denominados estocsticos, e seus elementos apresentam uma probabilidade de ocorrncia em uma determinada forma. Este material aborda problemas determinsticos de Pesquisa Operacional. Os problemas de PO existem desde longa data. Somente a partir da 2a Grande Guerra, todavia, passaram a ser tratados a partir de uma abordagem organizada, sendo organizados na forma de uma disciplina ou rea do conhecimento (Ravindran et al., 1987). Os primeiros casos reportados de aplicao da PO foram, em virtude de sua origem, de carter militar. Somente aps o final da Segunda Grande Guerra, problemas civis passaram a ser estudados pela PO. Os primrdios da PO encontram-se descritos no trabalho de Trefethen (1954). Ravindran, A., Phillips, D.T. & Solberg, J.J. (1987). Operations Research, Principles and Practice, 2nd Ed.. New York: John Wiley. Trefethen, F.N. (1954). A History of Operations Research, in Operations Research for Management, J.F. McCloskey & F.N. Trefethen (Eds.). Baltimore: Johns Hopkins Press.1EmentaINTRODUO 1. Programao Matemtica 2. Reviso de lgebra Linear 3. Uso de pacotes computacionais na soluo de problemas PROGRAMAO LINEAR 1. Introduo Programao Linear 2. O algoritmo SimplexProf. FogliattoPesquisa Operacional2Dois eventos motivaram o rpido desenvolvimento da PO. O primeiro foi o desenvolvimento de um algoritmo simples para solucionar problemas de programao linear (isto , problemas determinsticos de PO), denominado algoritmo simplex e proposto por George Dantzig em 1947. Tal algoritmo permitiu a resoluo manual de diversos problemas de PO, especialmente aqueles de baixa complexidade. O segundo foi a proliferao dos microcomputadores e o rpido aumento em sua velocidade de processamento. Problemas de PO so usualmente modelados na forma de uma funo objetivo (por exemplo, maximizar o lucro da empresa) e diversas restries (associadas, por exemplo, disponibilidade de matrias-primas, mo-de-obra, etc.). A chave do algoritmo simplex est no formato da regio limitada pelas restries, comum a todos os problemas de PO, conforme verificado por Dantzig; tal regio denominada simplex. Quaisquer dois pontos selecionados no contorno de um simplex, quando unidos por uma linha, resultam em uma linha interiamente contida dentro do simplex. A partir dessa constatao, a busca pela soluo tima em problemas de PO passou a ser limitada a pontos extremos da regio simplex, o que permitiu o desenvolvimento de um algoritmo de baixa complexidade computacional por Dantzig.2EmentaMODELOS DE REDES 1. O problema do transporte 2. O problema da designao 3. O problema do transbordo 4. Modelos de Redes TPICOS AVANADOS 1. Programao InteiraProf. FogliattoPesquisa Operacional3Os problemas determinsticos de PO podem ser classificados em duas categorias genricas: problemas de programao (i) linear e (ii) no-linear. Somente os problemas de programao linear podem ser resolvidos pelo algoritmo simplex. Um problema qualquer de programao linear um problema de otimizao (isto , busca pela melhor dentre vrias situaes, utilizando um critrio prestabelecido de otimalidade), com as seguintes caractersticas (Bronson & Naadimuthu, 1997): o problema possui um conjunto de variveis manipulveis no procedimento de busca pelo timo; essas so as variveis de deciso do problema. uma funo objetivo compe o critrio de otimalidade, sendo escrita em termos das variveis de deciso do problema. A funo objetivo uma funo linear das variveis de deciso, devendo ser maximizada ou minimizada. os valores assumidos pelas variveis de deciso devem satisfazer um conjunto de restries, que compem a regio de solues viveis do problema. as variveis de deciso podem assumir valores pr-estabelcidos no domnio dos nmeros reais (isto , valores positivos, negativos ou ambos).3Referncias BibliogrficasLIVRO-TEXTO: Operations Research, Applications and Algorithms, de Wayne L. Winston, 3a. Ed., Duxburry Press. Adicionais (no mesmo nvel): 1. Pesquisa Operacional, de Harvey Wagner, 2a. Ed., Prentice-Hall do Brasil. 2. Pesquisa Operacional, de Pierre J. Ehrlich, Ed. Atlas.Prof. FogliattoPesquisa Operacional4A soluo de problemas atravs da Pesquisa Operacional pode ser implementada atravs de um procedimento em sete etapas, conforme apresentado na Figura 1.1. As etapas so auto-explicativas para uma descrio completa das etapas, ver Winston, 1994.Figura 1.1. A metodologia de Pesquisa Operacional (Winston, 1994).Bronson, R. & Naadimuthu, G. (1997). Operations Research, 2nd Ed.. New York: McGraw-Hill. Winston, W.L. (1994). Operations Research, Applications and Algorithm, 3rd Ed.. Belmont (CA): Duxburry Press.4INTRODUO PROGRAMAO LINEAR Programao Linear uma ferramenta para soluo de problemas de otimizao. Em 1947, George Dantzig desenvolveu o algoritmo SIMPLEX, extremamente eficiente na soluo de problemas de PL. A partir de ento, PL passou a ser utilizada em diversos segmentos da atividade produtiva: Bancos Instituies Financeiras Empresas de Transportes, etc. Vamos introduzir a PL a partir de um exemplo.Prof. Fogliatto Pesquisa Operacional 52. PROGRAMAO LINEAR Problemas de programao so modelados tal que o melhor uso de recursos escassos possa ser determinado, conhecidos os objetivos e necessidades do analista. Problemas de programao linear compem uma sub-classe de problemas nos quais a modelagem interiamente expressa em termos de equaes lineares. Parece intuitivo que para ser possvel a soluo de um dado problema atravs da programao linear, o problema deve ser, incialmente, formulado em termos matemticos. A construo de um modelo de programao linear seguetrs passos bsicos (Ravindran et al., 1987): Passo I. Identifique as variveis desconhecidas a serem determinadas (elas so denominadas variveis de deciso) e represente-as atravs de smbolos algbricos (por exemplo, x e y ou x1 e x2). Passo II. Liste todas as restries do problema e expresse-as como equaes (=) ou inequaes (, ) lineares em termos das variveis de deciso definidas no passo anterior. Passo III. Identifique o objetivo ou critrio de otimizao do problema, representando-o como uma funo linear das variveis de deciso. O objetivo pode ser do tipo maximizar ou minimizar.5EXEMPLO: O caso PolitoyA Politoy S/A fabrica soldados e trens de madeira. Cada soldado vendido por $27 e utiliza $10 de matria-prima e $14 de mo-de-obra. Duas horas de acabamento e 1 hora de carpintaria so demandadas para produo de um soldado. Cada trem vendido por $21 e utiliza $9 de matria-prima e $10 de mo-de-obra. Uma hora de acabamento e 1 h de carpintaria so demandadas para produo de um trem.Prof. FogliattoPesquisa Operacional6Na sequncia, os passos acima so ilustrados atravs de dois exemplos. Os exemplos foram adaptados de Ravindran et al. (1987). Exemplo 1 - O problema do mix de produo A empresa Dalai-Lama deseja planejar a produo de incensos. Os incensos requerem dois tipos de recursos: mo-de-obra e materiais. A empresa fabrica trs tipos de incenso, cada qual com diferentes necessidades de mo-de-obra e materiais, conforme tabela abaixo:Modelo B 3 4 2Mo-de-obra (horas por unidade) Materiais (g / unidade produzida) Lucro ($ / unidade)A 7 4 4C 6 5 3A disponibilidade de materiais de 200 g/dia. A mo-de-obra disponvel por dia de 150 horas. Formule um problema de programao linear para determinar quanto deve ser produzido de cada tipo de incenso, tal que o lucro total seja maximizado. Para resolver o problema acima, aplicam-se os passos para a construo de um modelo de programao linear. Passo I - Identifique as variveis de deciso. As atividades a serem determinadas dizem respeito s quantidades de produo dos trs tipos de incenso. Representando essas quantidades em termos algbricos, tem-se:6EXEMPLO: O caso PolitoyA Politoy no tem problemas no fornecimento de matria-primas, mas s pode contar com 100 h de acabamento e 80 h de carpintaria. A demanda semanal de trens ilimitada, mas no mximo 40 soldados so comprados a cada semana. A Politoy deseja maximizar seus ganhos semanais. Formule um modelo matemtico a ser utilizado nessa otimizao.Prof. FogliattoPesquisa Operacional7xA = produo diria do incenso tipo A xB = produo diria do incenso tipo B xC = produo diria do incenso tipo C Passo II - Identifique as restries. Neste problema, as restries dizem respeito disponibilidade limitada dos recursos de mo-de-obra e materiais. O tipo A requer 7 horas de mo-de-obra por unidade, e sua quantidade produzida xA. Assim, a demanda por mo-de-obra para o incenso tipo A ser 7xA horas (se considerarmos uma relao linear). Analogamente, os tipos B e C vo requerer 3xB e 6xC horas, respectivamente. Assim, a quantidade total de horas de trabalho demandadas na produo dos trs tipos de incenso ser 7xA + 3xB + 6xC. Sabese que esta quantidade no deve axceder o total de horas disponveis na empresa, isto , 150 horas. Assim, a restrio relacionada a mo-de-obra ser: 7xA + 3xB + 6xC 150 Para obter a restrio relacionada aos materiais, utiliza-se raciocnio similar. A restrio resultante ser: 4xA + 4xB + 5xC 200 Para finalizar, deseja-se restringir as variveis de deciso no domnio dos reais no-negativos (isto , x 0). Essas restries, uma para cada varivel de deciso, so denominadas restries de no-negatividade. Apesar de serem comuns em muitas aplicaes de programao linear, no so necessrias para a utilizao da metodologia.7Ao desenvolver um modelo para a Politoy, investigaremos caractersticas comuns a todos os problemas de PL VARIVEIS DE DECISO O primeiro passo na formulao de um problema de PL a definio das variveis de deciso relevantes. Estas variveis devem descrever completamente as decises a serem tomadas. A Politoy deve decidir sobre: x1 = nm. de soldados produzidos a cada semana x2 = nm. de trens produzidos a cada semanaProf. Fogliatto Pesquisa Operacional 8Passo III - Identifique o objetivo. O objetivo maximizar o lucro total oriundo das vendas dos produtos. Supondo que tudo o que for produzido encontre mercado consumidor, o lucro total resultante das vendas ser: z = 4xA + 2xB + 3xC Assim, o problema de mix de produo apresentado acima pode ser escrito como um modelo de programao matemtica atravs das seguintes expresses: Determine os valores de xA, xB e xC que maximizem: z = 4xA + 2xB + 3xC sujeito s restries: 7xA + 3xB + 6xC 150 4xA + 4xB + 5xC 200 xA 0 xB 0 xC 0.8 FUNO OBJETIVO Em qualquer problema de PL, o analista sempre vai desejar maximizar (ex., lucro) ou minimizar (ex., custo) alguma funo das variveis de deciso. A funo a ser maximizada (ou minimizada) a funo objetivo. A Politoy deseja maximizar seus ganhos semanais. Ou seja: ganho semanal = ganho semanal oriundo da venda de soldados + ganho semanal oriundo da venda de trens. = ($/soldado).(soldados/sem) + ($/trem).(trem/sem) = 27x1 + 21x2 Tambm devemos considerar: custo semanal com matria-prima: 10x1 + 9x2 custo semanal com mo-de-obra: 14x1 + 10x2Prof. FogliattoPesquisa Operacional9Exemplo 2 - O problema do treinamento Uma empresa de componentes automotivos conduz um programa de treinamentos para seus operadores. Operadores treinados so utilizados como instrutores no programa, na proporo de um para cada dez trainees. O programa de treinamento conduzido durante um ms. Sabe-se que de cada dez trainees contratados, somente sete completam o programa (aqueles que no completam o programa de treinamento so dispensados). Os operadores treinados tambm devem cumprir suas funes usuais de operador. O nmero de operadores treinados necessrios para atender produo nos prximos trs meses vem apresentado abaixo: Janeiro: 100 Fevereiro: 150 Maro: 200 Alm disso, a empresa necessita de 250 operadores treinados para Abril. Existem 130 operadores treinados no incio do ano. As despesas mensais com salrios so as seguintes: Cada trainee: $400 Cada operador treinado (trabalhando nas mquinas ou realizando treinamento): $700 Cada operador treinado ocioso (por fora de acordo sindical, maquinistas ociosos recebem uma frao do seu salrio normal, no podendo, entretanto, ser demitidos): $5009 FUNO OBJETIVO O que a Politoy deseja maximizar : (27x1 + 21x2) - (10x1 + 9x2) - (14x1 + 10x2) = 3x1 + 2x2 Usaremos a varivel z para designar o valor assumido pela funo objetivo. Assim: Max z = 3x1 + 2x2 Os nmeros 3 e 2 so chamados coeficientes da funo objetivo. Eles indicam a contribuio de cada varivel nos ganhos da empresa.Prof. FogliattoPesquisa Operacional10Deseja-se modelar o problema acima. O objetivo minimizar os custos com pessoal, atendendo demanda de pessoal da empresa. Formulao: Observe, inicialmente, que operadores treinados podem executar, em umdeterminado ms, um das seguinte atividades: (1) trabalhar nas mquinas, (2) realizar treinamento, ou (3) permanecer ocioso. J que o nmero de operadores trabalhando nas mquinas em cada ms fixo, as nicas variveis de deciso desconhecidas so o nmero de operadores realizando treinamento e o nmero de operadores ociosos em cada ms. Assim, as variveis de deciso do problema so: x1 = operadores treinados realizando treinamento em Janeiro x2 = operadores treinados ociosos em Janeiro x3 = operadores treinados realizando treinamento em Fevereiro x4 = operadores treinados ociosos em Fevereiro x5 = operadores treinados realizando treinamento em Maro x6 = operadores treinados ociosos em Maro Segundo as restries de demanda, um nmero suficiente de operadores treinados deve estar disponvel em cada ms para trabalhar nas mquinas. Para garantir esses operadores, deve-se escrever a seguinte equao para cada ms: Nmero nas mquinas + Nmero treinando + Nmero ocioso = Total de operadores disponveis no incio do ms10 RESTRIES A medida que x1 e x2 crescem, o valor da funo objetivo aumenta. Mas x1 e x2 no podem crescer indefinidamente. Trs restries limitam seu crescimento: Restrio 1 - 100 h de acabamento / semana. Restrio 2 - 80 h de carpintaria / semana Restrio 3 - no mais que 40 soldados / semana, devido a limitaes na prpria demanda. Restries 1 3 devem ser expressas em termos das variveis de deciso x1 e x2.Prof. FogliattoPesquisa Operacional11A restrio para o ms de Janeiro, por exemplo, ser: 100 + x1 + x2 = 130 Em Fevereiro, o nmero total de operadores treinados disponvel ser dado pela soma dos operadores treinados disponveis em Janeiro e aqueles que completaram seu treinamento em Janeiro. Em Janeiro, 10x1 trainees esto em treinamento, mas somente 7x1 deles completam o programa, passando a ser considerados operadores treinados. Assim, a restrio para Fevereiro : 150 + x3 + x4 = 130 + 7x1 Analogamente, para o ms de Maro: 200 + x5 + x6 = 130 + 7x1 + 7x3 Como a empresa necessita de 250 operadores treinados para Abril, mais uma restrio necessria: 130 + 7x1 + 7x3 + 7x5 = 250 Todas as variveis de deciso so no-negativas. Na composio da funo objetivo, os nicos custos relevantes a serem considerados dizem respeito ao programa de treinamento (custo dos trainees e dos operadores realizando o treinamento) e o custo dos operadores ociosos. A funo objetivo : Min z = 400(10x1 + 10x3 + 10x5) + 700(x1 + x3 + x5) + 500(x2 + x4 + x6)11 RESTRIES Restrio 1: (total hs acabamento/sem.) = (hs.acab./sold.).(sold. produzidos/sem.) + (hs.acab./trem).(trens produzidos/sem.) (total hs acabamento/sem.) = 2(x1) + 1(x2) = 2x1 + x2 A restrio 1 ser dada por: 2x1 + x2 100Observe que todos os termos de uma restrio devem ter a mesma unidade de medida. Os valores 2 e 1 na restrio so denominados coeficientes tecnolgicos.Prof. Fogliatto Pesquisa Operacional 12Reunindo funo objetivo e restries (as quais so reorganizadas tal que variveis de deciso so posicionadas esquerda da igualdade), chega-se ao seguinte modelo de programao linear: Min z = 400(10x1 + 10x3 + 10x5) + 700(x1 + x3 + x5) + 500(x2 + x4 + x6) sujeito a: x1 + x2 = 30 7x1 - x3 - x4 = 20 7x1 + 7x3 - x5 - x6 = 70 7x1 + 7x3 + 7x5 = 120 Todas as variveis so no-negativas.12Restrio 2 (determinada de maneira similar): (total hs carpintaria/sem.) = (hs.carp./sold.).(sold. produzidos/sem.) + (hs.carp./trem).(trens produzidos/sem.) (total hs carpintaria/sem.) = 1(x1) + 1(x2) = x1 + x2 A restrio 2 ser dada por: x1 + x2 Restrio 3: A restrio 3 definida pela limitao do nmero de soldados produzidos por semana (devido a limitaes na demanda): x1Prof. Fogliatto 80 4013Pesquisa Operacional2.1. Modelos de Programao Linear em Formato Padro O formato padro de um problema de programao linear com m restries e n variveis dado por (Bazaraa et al., 1990): Maximizar (ou minimizar): z = c1x1 + c2x2 + ... + cnxn sujeito a: a11x1 + a12x2 + ... + a1nxn = b1 a21x1 + a22x2 + ... + a2nxn = b2M M am1x1 + am2x2 + ... + amnxn = bmx1 0, x2 0, , xn 0 b1 0, b2 0, , bm 0Bazaraa, M.S., Jarvis, J.J. & Sherali, H.D. (1990). Linear Programming and Network Flows, 2nd Ed.. New York: John Wiley.13 RESTRIES DE SINAL Identificam os tipos de valores que as variveis podem assumir. Podem ser de trs tipos: 0 0 irrestritaCombinando a funo objetivo e as restries, chega-se a formulao matemtica do problema da Politoy: max z = 3x1 + 2x2 Sujeito a: 2x1 + x2 x1 + x2 100 80 x1 40 x1, x2 0Restrio de horas de acabamento Restrio de horas de carpintaria Restrio de demandaPesquisa Operacional 14Prof. FogliattoAlgumas caractersticas importantes do formato padro so: (i) a funo objetivo do tipo maximizar ou minimizar; (ii) todas as restries so expressas como equaes; (iii) todas as variveis so no-negativas; e (iv) a constante no lado direito das restries no-negativa. O formato padro de um problema de programao linear pode ser escrito, tambm, em formato matricial, resultando em uma apresentao mais compacta: Maximizar (ou minimizar): sujeito a: Ax = b x 0 b 0 onde A uma matriz de dimenso (m n), x um vetor (n 1), b um vetor (m 1) e c um vetor transposto (1 n). A matriz A normalmente denominada matriz das restries ou matriz de coeficientes; ela contm os coeficientes tecnolgicos que compem as restries. O vetor x o vetor de deciso, j que contm a lista das variveis de deciso consideradas no problema. O vetor b conhecido como lado direito das restries ou vetor das necessidades; ele indica a disponibilidade de recursos associados cada restrio. Por fim, o vetor c conhecido como vetor de custos do problema; ele contm os coeficientes de custo que compem a funo objetivo. z = cx14PRTICA 1:Um fazendeiro deseja determinar quantos acres de milho e trigo ele deve plantar esse ano. Um acre de trigo rende 25 sacas e requer 10 horas de trabalho/semana. A saca vale $4 no mercado. Um acre de milho rende 10 sacas e requer 4 horas de trabalho/semana. A saca vale $3 no mercado. O governo garante a compra de pelo menos 30 sacas de milho/ano. O fazendeiro dispe de 7 acres de terra e pode trabalhar 40 horas/semana. Formule o problema tal que os ganhos do fazendeiro sejam maximizados.Prof. FogliattoPesquisa Operacional15Um problema qualquer de programao linear pode ser facilmente reescrito em formato matricial, facilitando, posteriormente, a operacionalizao do algoritmo simplex. Considere o exemplo ilustrativo abaixo: Maximizar (ou minimizar): z = 5x1 + 2x2 + 3x3 - x4 + x5 sujeito a: x1 + 2x2 + 2x3 + x4 3x1 + 4x2 + x3 x1 0, , x5 0 Em notao matricial, tem-se: = 8 + x5 = 71 2 2 1 0 A = ( 25 ) 3 4 1 0 18 b = ( 21) 7 x1 x 2 x = x3 ( 51) x4 x5 (15 )c = (5 2 3 1 1)15Soluo - Prtica 1 Variveis de Deciso: Deciso x1 = no de acres de milho a serem plantados x2 = no de acres de trigo a serem plantadosProf. FogliattoPesquisa Operacional16Nem todos os problemas de programao linear so formulados em formato padro. No geral, as restries tendem a aparecer no formato de inequaes (, ). O algoritmo simplex, utilizado na soluo dos problemas de programao linear s pode ser rodado se o problema estiver escrito em formato padro. Assim, na maioria das aplicaes, ser necessrio converter inequaes em equaes. Para converter uma inequao em equao, dois tipos de variveis podero ser utilizadas: as variveis de folga e as variveis de excesso. Variveis de folga so utilizadas para converter inequaes do tipo em =; variveis de excesso so utilizadas para converter inequaes do tipo em =. A denominao folga e excesso pode ser facilmente compreendida atravs de exemplos. Considere a restrio x1 10 que indica o nmero mximo de operadores disponveis para executar tarefas no ms 1. Se x1 assumir o valor 10 no ponto timo (ou seja, no alor de x1 que melhor satisfaz funo objetivo do problema), a inequao assume o formato de uma igualdade. Se x1 assumir valores inferiores a 10, o nmero de operadores utilizados ser menor que o nmero disponvel; neste contexto, tem-se uma folga entre o nmero de operadores efetivamente utilizados no ms 1 e o nmero de operadores disponveis. Assim, para transformar a inequao x1 10 em equao, insere-se uma varivel de folga, f1, que poder assumir qualquer valor no-negativo.16ESPAO DE SOLUES E SOLUO TIMA O espao de solues formado por todos os pontos que satisfazem as restries do problema. A soluo tima em um problema de maximizao corresponde ao ponto no espao de solues onde o valor da funo objetivo mximo.Prof. FogliattoPesquisa Operacional17Para reescrever o problema em formato padro, as seguintes modificaes so necessrias: (a) A varivel x3 deve ser substituda por x4 x5, sendo x4 0 e x5 0. (b) Os dois lados da ltima restrio devem ser multiplicados por 1; lembre que as restries no formato padro no admitem constantes negativas no lado direito. (c) Introduza uma varivel de folga f1 na primeira restrio e uma varivel de excesso e2 na segunda restrio. Os ndices nessas variveis indicam a restrio onde cada varivel foi introduzida. (d) Aloque coeficientes de custo iguais a 0 nas variveis de folga e excesso. Elas no fazem parte do problema em sua forma original e no devem, assim, alterar a funo objetivo. Seguindo os passos acima, chega-se ao seguinte problema em formato padro: Minimizar: z = 5x1 2x2 + 3x4 3x5 sujeito a: = 7 x1 + x2 + x4 x5 + f1 e2 = 2 x1 x2 + x4 x5 = 5 3x1 + x2 + 2x4 2x5 x1 0, x2 0, x4 0, x5 0, f1 0, e2 017Representao grfica Representao da restrio 2x1 + 3x2 = 6:x24 3 22x1 + 3x2 6 x12 3 4(0,0)2x1 + 3x2 6Prof. Fogliatto Pesquisa Operacional2x1 + 3x2 = 618Na sequncia, alguns conceitos bsicos de programao linear so introduzidos a partir da representao matricial de um problema genrico de programao, em formato padro. Considere o problema: Maximizar (ou minimizar): sujeito a: Ax = b x 0 1. Uma soluo vivel para o problema acima dada por um vetor no-negativo x que satisfaa as restries Ax = b. 2. O espao de solues viveis do problema acima composto pelo conjunto S de todas as suas solues viveis. Em termos matemticos, z = cxS = {x Ax = b, x 0}3. Uma soluo tima dada por um vetor xo correspondente a uma soluo vivel que resulta num valor de funo objetivo zo = cxo maior do que os valores de z obtidos para as demais solues viveis do problema. Em tremos matemticos, xo timo se e somente se xo S e cxo cx para todo x S (nesta definio, o smbolo denota pertinncia).18Representao grfica do problema Politoyx2100 (2) 80 (4) 60 Ponto timo: (20,60) O espao de solues encontra-se hachurado. (2) - (4) denotam as restries. As restries de sinal restringem o problema ao primeiro quadrante do espao bi-dimens.Soluo tima: (1) Desenhe o vetor z. (2) Desenhe linhas ortogonais ao vetor z. Essas so as linhas de isocusto. (3) Calcule o valor de z no ponto timo.4020z(3)z = 3(20) + 2(60) = 180Prof. Fogliatto2040Pesquisa Operacional6080100x1194. Quando um problema de programao linear apresentar mais de uma soluo tima, diz-se que tal problema possui solues timas alternativas. Neste contexto, existe mais de uma soluo vivel para o problema apresentando o mesmo valor timo zo. 5. A soluo tima em um problema de programao linear dita nica quando no existir nenhuma outra soluo tima alternativa. 6. Quando um problema de programao linear no possuir um soluo finita (ou seja, zo + ou zo ), diz-se que o problema apresenta uma soluo ilimitada.19Restries crticas (binding) e no-crticasUma restrio crtica (binding) se, substituindo os valores correspondentes ao ponto timo na restrio, a igualdade de verifica. Ex.: restries (2) e (3) no grfico anterior.Todas as demais restries so consideradas no-crticas. Ex.: restrio (4) e restries de sinal no grfico anterior.Prof. FogliattoPesquisa Operacional202.2. Problemas tpicos de programao linear Alguns modelos de programao linear so adaptveis a uma gama de situaes prticas. Esses modelos so considerados como tpicos, por serem aplicados em diversos setores produtivos. Nesta seo, cinco famlias de problemas tpicos sero consideradas: A. Escolha do mix de produo B. Escolha da mistura para raes C. Planejamento dinmico da produo D. Distribuio de produtos atravs de uma rede de transportes Outras famlias de problemas tpicos podem ser encontradas nos slides 31 a 60 desta apostila. Os exemplos que se seguem foram adaptados de Wagner (1985).Wagner, H.M. (1985). Pesquisa Operacional, 2a Ed.. So Paulo: Prentice-Hall do Brasil.20Outro exemplo: exemploSolucione graficamente o problema e identifique o tipo de conjunto de solues resultante. Um empresa de eletrodomsticos planeja veicular seus produtos em comerciais de TV durante a novela das 8 e os jogos da seleo na Copa. Comerciais na novela so vistos por 7 milhes de mulheres e 2 milhes de homens e custam $50000. Comerciais nos jogos so vistos por 2 milhes de mulheres e 12 milhes de homens, e custam $100000. Qual a distribuio ideal de comerciais se a empresa deseja que eles sejam vistos por 28 milhes de mulheres e 24 milhes de homens a um menor custo possvel?Prof. FogliattoPesquisa Operacional21A. Escolha do Mix de Produo Neste tipo de problema, o analista deseja determinar nveis para atividades de produo. Os problemas consideram um horizonte de programao finito. Os nveis (ou intensidade de produo) de cada atividade sofrem restries de carter tecnolgico e prtico. As restries so expressas em termos matemticos, a partir das variveis de deciso selecionadas para o problema. Suponha uma empresa com quatro tipos distintos de processos e dois produtos, manufaturados a partir destes processos. Os insumos considerados para cada processo/produto so as horas disponveis de produo e as quantidades disponveis das matrias-primas. A empresa deseja uma programao da produo para a semana seguinte. Os dados do problema vm resumidos na tabela abaixo.21Variveis de deciso: x1 = num. de comerciais veiculados durante a novela. x2 = num. de comerciais veiculados durante os jogos Funo objetivo: Min z = 50x1 + 100x2 A soluo grfica ... Restries: Pblico feminino: 7x1 + 2x2 28 Pblico masculino: 2x1 + 12x2 24 x1, x2 0 Soluo tima: (3.6, 1.4) com z = $320. A soluo nica.Prof. Fogliatto Pesquisa Operacional 22A formulao do problema do mix de produo, utilizando as variveis de deciso identificadas na tabela, dada por: Max z = 4xA1 + 5xB1 + 9xA2 + 11xB2 sujeito : 1xA1 + 1xB1 + 1xA2 + 1xB2 7xA1 + 5xB1 + 3xA2 + 2xB2 15 (mo-de-obra) 120 (material Y)3xA1 + 5xB1 + 10xA2 + 15xB2 100 (material Z) xA1, xB1, xA2, xB2 0 (no-negatividade) A funo objetivo busca maximizar os lucros oriundos da produo (e conseqente venda) de cada produto. As restries dizerm respeito aos insumos, tendo sido formuladas diretamente da Tabela na pgina anterior. Uma vez tendo suas informaes organizadas em uma tabela, a maioria dos problemas de programao linear so de fcil formulao.22x2 10Ponto timo no inteiro: Testar pontos (4,1), (3,2), (4,2), checando restries e z. Usar programao inteira.86Ponto timo: (3.6, 1.4)42zProf. Fogliatto246810x123Pesquisa OperacionalB. Escolha da mistura para raes Neste tipo de problema, o analista deseja determinar nveis de utilizao de matrias-primas na composio de uma rao alimentar. As restries normalmente dizem respeito a caractersticas nutircionais desejadas para o produto acabado, quantidades de matrias-primas e insumos disponveis e demanda a ser atendida. Suponha um problema no qual uma rao deva ser elaborada a partir da mistura de quatro tipos de gros. Quatro nutrientes so considerados no produto final. As informaes que compem as restries e funo objetivo do problema vm apresentadas na tabela abaixo.23CASOS ESPECIAIS:(1) Problemas com solues alternativas (vrias solues so simultaneamente timas). Nestes casos, a linha de isocusto, ao abandonar o espao de solues viveis, intersecciona com uma linha inteira (e no somente um ponto) desse conjunto.Prof. FogliattoPesquisa Operacional24A formulao do problema da mistura para raes, utilizando as variveis de deciso identificadas na tabela, dada por: Min z = 41x1 + 35x2 + 96x3 sujeito : 2x1 + 3x2 1x1 + 1x2 5x1 + 3x2 + 7x3 1250 (nutriente A) 250 (nutriente B) 900 (nutriente C)0,6x1 + 0,25x2 + 1x3 232,5 (nutriente D) Todas as variveis de deciso na formulao acima so restritas a valores nonegativos. Um segundo conjunto de restries poderia ser acrescentado formulao acima: restries relacionadas s quantidades disponveis de cada tipo de gro. Da mesma forma que as restries acima foram escritas diretamente das linhas da tabela na pgina anterior, as restries de disponibilidade de gros seriam obtidas das colunas da Tabela.24CASOS ESPECIAIS:(2) Problemas com soluo tendendo ao infinito.Nestes casos, as restries formam um espao aberto de solues viveis. Se a funo objetivo for do tipo max, z e a formulao do problema pode estar incorreta. Se for do tipo Min, uma ou mais solues sero encontradas.Prof. FogliattoPesquisa Operacional25C. Planejamento dinmico da produo Os exempos vistos anteriormente contemplavam formulaes em um nico perodo de tempo. Em situaes reais, pode-se desejar formular o problema para gerar solues especficas para diferentes perodos de tempo. Neste caso, sero necessrias as formulaes do tipo multiperodo. Considere um problema onde as disponibilidades de matria-prima, mo de obra, alm dos lucros unitrios com a venda de produtos variem com o tempo. A estocagem de produtos de um perodo at perodos futuros admitida, apesar de um custo de estocagem ser praticado. Esse um exemplo de programao dinmica. A diviso deste tipo de problema em sub-problemas que contemplem um nico perodo no oferece bons resultados, j que aspectos como a estocagem de produtos acabados para atender demanda futura no so considerados.25CASOS ESPECIAIS:(3) Problemas sem soluoNestes casos, as restries no formam nenhum espao de solues viveis.Prof. FogliattoPesquisa Operacional26Suponha uma empresa fabricante de dois tipos de eletrodomsticos, mquinas de lavar loua e mquinas de lavar roupas. A demanda esperada (em unidades) para os prximos quatro trimestres vem dada no quadro abaixo.Produto Lava-louas Lava-roupasDesignao Et MtVendas esperadas (unidd/trimestre) 1 2 3 4 2000 1300 3000 1000 1200 1500 1000 1400Durante este horizonte de planejamento, deseja-se utilizar a mo-de-obra disponvel da melhor maneira possvel e produzir as quantidades necessrias de cada tipo de mquina. Estoques so admitidos (ou seja, pode-se estocar mquinas montadas em um trimestre para atender a demanda em trimestres subsequentes). Alm disso, a fora-de-trabalho malevel, sendo admitidas demisses e contrataes. Os custos de produo (matrias-primas), mo-de-obra e estocagem de mquinas vem apresentados na tabela abaixo.26Resolva graficamente o problema formulado na Prtica 1Prof. FogliattoPesquisa Operacional27Tipo de custo Designao ct Lava-louas (matrias-primas) vt Lava-roupas (matrias-primas) jt Estocagem lava-louas kt Estocagem lava-roupas pt Hora de trabalhoSoluo grfica do problema:Custos unitrios por trimestre 1 2 3 4 125 130 125 126 90 100 95 95 5 4,5 4,5 4 4,3 3,8 3,8 3,3 6 6 6,8 6,8Observe que todas as variveis de deciso so dependentes do tempo. Em outras palavras, a medida que os trimestres passam, os custos de manufatura e estocagem mudam. Cada lava-louas demanda 1,5 horas de trabalho e cada lava-roupas demanda 2 horas de trabalho. No incio do 1o trimestre, 5000 horas de trabalho esto disponveis. Por fora de acordo sindical, a variao mxima permitida na forade-trabalho em um determinado trimestre no deve ultrapassar 10% (ou seja, de um trimestre para o outro, no permitido demitir ou contratar mais de 10% dos funcionrios em atividade no trimestre de origem). As variveis de deciso do problema so: dt = no de lava-louas produzidas durante o trimestre t. wt = no de lava-roupas produzidas durante o trimestre t. rt = estoque de lava-louas disponvel no final do trimestre t, descontadas as mquinas utilizadas para suprir a demanda naquele trimestre.27Outro exerccio Um fabricante deseja maximizar a receita. A tabela mostra as composies das ligas, seus preos e as limitaes na disponibilidade de matria-prima:Itens / Atividades Liga tipo A Liga tipo B Disponibilidade 2 1 16 Cobre 1 2 11 Zinco 1 3 15 Chumbo $30 $50 Preo de Venda Formule o problema e encontre a soluo tima graficamente.Prof. FogliattoPesquisa Operacional28Soluo do exerccio:28Problemas Tpicos de FormulaoEscolha da dieta Scheduling de pessoal Deciso Financeira Problema da Mistura Programao da ProduoProf. FogliattoPesquisa Operacional29Para garantir que a variao no nvel da fora-de-trabalho no exceda 10% no primeiro trimestre, so escritas as restries: h1 0,9 (5000) o que resulta em h1 4500 e h1 5500 As restries para o primeiro trimestre podem ser reescritas para os trimestres t = 2,,4 conforme apresentado abaixo: dt + rt-1 - rt = Et wt + st-1 - st = Mt 1,5dt + 2wt - ht 0 ht 0,9ht-1 e ht 1,1ht-1 A funo objetivo deve considerar a minimizao de todos os custos incidentes da fabricao, mo-de-obra e estocagem das mquinas nos quatro trimestres. Matematicamente, ela dada por: Minimizar [(c1d1 + v1w1 + j1r1 + k1s1 + p1h1) + (c2d2 + v2w2 + j2r2 + k2s2 + p2h2) + (c3d3 + v3w3 + j3r3 + k3s3 + p3h3) + (c4d4 + v4w4 + j4r4 + k4s4 + p4h4)]. e h1 1,1(5000)29FORMULAO 1: Escolha de dietaQuatro tipos de alimentos esto disponveis na elaborao da merenda de um grupo de crianas: biscoito de chocolate, sorvete, refrigerante e torta de queijo. A composio desses alimentos e seus preos so:Alimento (poro) Biscoito Sorvete Refrig. Torta queijo Calorias Chocolate (g) 3 2 0 0 Aucar (g) 2 2 4 4 Gordura (g) 2 4 1 5 Preo (poro) 0.5 0.2 0.3 0.8400 200 150 500As crianas devem ingerir pelo menos 500 calorias, 6 g de chocolate, 10 g de acar, e 8 g de gordura. Formule o problema tal que o custo seja minimizado.Prof. Fogliatto Pesquisa Operacional 30D. Distribuio de produtos atravs de uma rede de transportes Os modelos de rede possuem, na maioria dos casos, uma estrutura com m pontos de fornecimento e n pontos de destino. O problema de programao linear consiste na definio do melhor caminho (ou rota) a ser utilizada para fazer com que uma determinada quantidade de produtos de um ponto de fornecimento chegue um ponto de destino. Problemas de planejamento dinmico da produo tambm podem ser tratados atravs de modelos de redes. Neste caso, a deciso passa a ser quanto produzir num determinado ms para consumo naquele ms e quanto deve ser produzido para estoque, para consumo nos meses subseqentes. Suponha uma empresa com m plantas distribudas em um determinado pas. A produo mxima de cada planta designada por Si, onde o ndice i designa a planta em questo (i = 1,, m). Existem n pontos de demanda a serem abastecidos pela empresa. Cada ponto de demanda requer Dj unidades do produto em questo. O ndice j denota os pontos de demanda, tal que j = 1,, n. Associado a cada par (i, j) existe um custo cij, que o custo de fornecer o produto ao ponto de demanda j a partir da planta i. O problema acima pode ser organizado em uma tabela, conhecida como tableau dos transportes. Essa tabela vem apresentada a seguir.30 Variveis de deciso: x1 = pores de biscoitos; x2 = pores de sorvete; x3 = pores de refrigerante; x4 = pores de torta de queijo; Funo objetivo: (custo total) = (custo dos biscoitos) + (custo do sorvete) + (custo do refrigerante) + (custo da torta de queijo) Min z = 50 x1 + 20 x2 + 30 x3 + 80 x4Prof. FogliattoPesquisa Operacional31Figura 2.2.1. Tableau dos transportes (Fonte: Wagner, 1986).A formulao de um problema de transportes pode ser obtida diretamente das linhas e colunas do table na Figura 2.2.1. As restries de fornecimento (capacidade) so obtidas das linhas da tabela; as restries de demanda, das colunas da tabela.31 Restries: (1) Ingesto mnima de 500 calorias; (2) Ingesto mnima de 6 g de chocolate; (3) Ingesto mnima de 10 g de acar; (4) Ingesto mnima de 8 g de gordura. (1) 400 x1 + 200 x2 + 150 x3 + 500 x4 500 (2) 3 x1 + 2 x2 3 (3) 2 x1 + 2 x2 + 4 x3 + 4 x4 10 (4) 2 x1 + 4 x2 + x3 + 5 x4 8 Variveis 0.Prof. FogliattoPesquisa Operacional32Seja xij o nmero de unidades remetidas da planta i ao ponto de fornecimento j. O custo associado remessa de uma unidade do produto de i para j cij. O modelo matemtico do problema descrito acima dado por: Minimizar sujeito a: c xi =1 j =1mnij ijxj =1nij Si , para i = 1,, m (capacidade)xi =1mij Dj, para j = 1,, n (demanda)xij 0Observe que uma soluo tima para o problema pode indicar uma mesma planta fornecendo para vrios pontos de demanda, ou um ponto de demanda recebendo os produtos demandados de diversas plantas.32FORMULAO 2: Otimizao da Fora de TrabalhoUma agncia de correios necessita de um nmero diferente de funcionrios, de acordo com o dia da semana:Dia Empr. Dia Empr. Seg. 17 Quarta 15 Tera 13 Quinta 19 Dia Sexta Sb. Empr. 14 16 Dia Dom. Empr. 11Por exigncia sindical, cada trabalhador trabalha cinco dias consecutivos e descansa dois. Formule o problema tal que o nmero de empregados contratados seja o mnimo necessrio para atender s necessidades de mo-deobra.Prof. FogliattoPesquisa Operacional333. ALGORITMO SIMPLEX Um simplex uma forma geomtrica com uma propriedade especial, a saber. Uma linha que passe por quaisquer dois pontos pertencentes um simplex deve estar contida inteiramente dentro do simplex. Por exemplo, A Figura 3.1(a) traz um exemplo de uma figura geomtrica que no apresenta a propriedade acima. Em contrapartida, a Figura 3.1(b) apresenta a propriedade que caracteriza uma simplex. De forma geral, a rea formada pela interseco das restries de um problema de programao linear (PL) uma forma geomtrica do tipo simplex. Conforme visto anteriormente, a regio formada pela interseco das restries de um problema de PL denominada espao de solues viveis.33 Variveis de deciso: xi = nm. de empregados trabalhando no dia i; Funo objetivo: Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7 Restries: x1 x2 x3 x4 x5 x6Prof. FogliattoPesquisa Operacional 17 13 15 19 14 16 x7 11 xi 0Qual o problema com essa formulao?34Num espao bi-dimensional, a regio formada pelo espao de solues viveis um plano. A equao que representa a funo-objetivo pode ser representada na forma de um vetor, digamos c. Desta forma, seguindo a direo de melhoria da funo objetivo determinada pelo vetor c dentro do espao de solues viveis, possvel encontrar o ponto timo. A busca garante que (a) o ponto timo maximiza ou minimiza a funo objetivo, sendo seu valor mximo ou mnimo, respectivamente; e (b) o ponto timo satisfaz o conjunto das restries que compem o problema de programao linear, j que a busca pelo timo se restringiu ao espao de solues viveis do problema em estudo. O mesmo raciocnio pode ser estendido a problemas de maior dimensionalidade. Considere o conjunto formado por todos os problemas de programao linear para os quais existe um espao de solues viveis. Pode-se demonstrar que tais espaos so formas geomtricas do tipo simplex (ver Bazaraa et al., 1990; p. 94). Ao rastrear-se o espao de solues viveis de um problema de PL em busca do ponto timo, este dever corresponder a um dos pontos extremos do simplex, o que, na prtica, poder corresponder a um ponto, uma reta, um plano ou outra forma de maior dimenso. O algoritmo simplex pode ser descrito de maneira bastante simplificada, conforme apresentado a seguir. Considere um espao de solues viveis bidimensional e um vetor c formado pelos coeficientes de custo da funo objetivo e posicionado na origem do plano bidimensional. Considere um ponto extremo p qualquer do espao de solues viveis e um vetor que passe34PROBLEMAS(1) A funo-objetivo no o nmero de funcionrios, como se imagina. Cada funcionrio est sendo computado 5 vezes. Por ex.: um funcionrio que comea a trabalhar na segunda, trabalha de segunda a sexta e est includo nas variveis x1, x2, x3, x4, x5. (2) A inter-relao entre as variveis x1, x2, ..., x5 no est capturada na formulao. Por ex.: alguns funcionrios que trabalham na segunda estaro trabalhando na tera. Ou seja x1 e x2 esto inter-relacionadas mas isso no aparece na formulao.Prof. Fogliatto Pesquisa Operacional 35pela origem e pelo referido ponto, digamos p. Se a busca pelo timo iniciar, por exemplo, no ponto de origem do espao bidimensional, a funo objetivo tender a apresentar melhoria sempre que o ngulo formado pelos vetores c e p for inferior a 90. Quando esse no for o caso, o avano ir na direo contrria do vetor c (que indica a direo de melhoria da funo objetivo) e qualquer movimento naquela direo ser desinteressante. Por analogia, considere o conjunto de todos os pontos extremos do espao de solues viveis e os vetores que partem da origem at estes pontos. A partir de um ponto inicial qualquer no espao de solues viveis (por exemplo, o ponto correspondente origem do espao bi-dimensional), possvel determinar a direo de maior melhoria investigando os ngulos formados entre o vetor c e os demais vetores, formados a partir da unio da origem aos pontos extremos do simplex; o menor ngulo cp corresponde melhor direo para movimento. O mesmo mecanismo de busca pode ser descrito em termos algbricos. Para tanto, algumas definies prvias so necessrias. A primeira delas diz respeito a variveis bsicas e no-bsicas. Um exemplo deve auxiliar a introduzir esses conceitos. Considere o seguinte exemplo: Max x1 + 3x2 s.a x1 + 2x2 4 x2 1 x1 , x2 035FORMULAO CORRETA Variveis de deciso: xi = nm. de empregados comeando a trabalhar no dia i; Cada empregado comea a trabalhar em um nico dia, no sendo assim contados mais de uma vez. Funo objetivo: Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7Prof. FogliattoPesquisa Operacional36Aps introduzir as variveis de folga f1 e f2, o problema passa a ser escrito como: Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1Geometricamente, o problema pode ser representado da seguinte forma:Figura 3.2. Representao de um problema de PL em um espao bidimensional.36 17 funcionrios devem estar trabalhando na segunda. Quem estar trabalhando segunda? xi = trabalham nos dias i, i+1, i+2, i+3, i+4; i = 1 (segunda). Assim, estaro trabalhando na segunda os empregados x1 + x4 + x5 + x6 + x7. Assim, a restrio referente ao nmero de empregados trabalhando na segunda ser: x1 + x4 + x5 + x6 + x7 17 Os demais dias sero formulados de maneira similar.Prof. FogliattoPesquisa Operacional37Observe que para traar as retas correspondentes s restries, basta equacionlas para determinar os pontos de interseco com os eixos x1 e x2. Por exemplo, a primeira restrio intercepta o eixo x1 quando x2 = 0. Ignorando a varivel de folga associada primeira restrio (f1) e transformando a inequao em equao, tem-se: x1 + 2x2 = 4 x1 + 2(0) = 4 x1 = 4 Repetindo o procedimento, para o caso em que x1 = 0, determina-se o ponto onde a primeira restrio intersecciona o eixo x2; isto : x1 + 2x2 = 4 0 + 2x2 = 4 x2 = 2 Sendo assim, para representar a primeira restrio no espao bidimensional (x1, x2), basta identificar os pontos (x1, x2) = (4, 0) e (x1, x2) = (0, 2) e traar uma reta que passe pelos dois pontos. Na Figura 3.2, a reta correspondente primeira restrio vem identificada como f1 = 0. Tal identificao procedente, j que exatamente sobre a reta, a varivel de folga assume um valor igual a 0 e a inequao correspondente restrio assume o formato de uma equao.37 Restries: x1 x1 x1 x1 x1 x2 x3 + + + + + + + x4 x2 x2 x2 x2 x3 x4 + + + + + + + x5 x5 x3 x3 x3 x4 x5 + + + + + + + x6 x6 x6 x4 x4 x5 x6 + + + + + + + x7 x7 x7 x7 x5 x6 x7 xi 17 13 15 19 14 16 11 0A soluo tima x1 = 4/3; x2 = 10/3; x3 = 2; x4 = 22/3 x5 = 0; x6 = 10/3; x7 = 5. xi fracionrio no faz sentido. Arredondando-se chegamos a uma soluo que, quando checada via otimizao inteira, resulta completamente sub-tima. Para esses problemas precisamos de programao inteira.Prof. Fogliatto Pesquisa Operacional 38Para representar-se graficamente a segunda restrio, adota-se procedimento idntico aquele descrito nos pargrafos anteriores. A segunda restrio vem representada na Figura 3.2 como f2 = 0. Considere o ponto A, correspondente origem do espao (x1, x2). Para representar-se o ponto A em termos das coordenadas (x1, x2), escreve-se (x1, x2) = (0, 0). Todavia, o nmero total de variveis do problema exemplo quatro: x1, x2, f1 e f2. J que (x1, x2) = (0, 0), pode-se perguntar quais os valores assumidos por f1 e f2. Como na origem est-se distante das retas correspondentes s restries, natural imaginar-se que alguma folga exista nas restries. Sendo assim, alm de saber-se com certeza que (x1, x2) = (0, 0), sabe-se tambm que f1 > 0 e f2 > 0. Num espao bidimensional a representao de qualquer ponto dever ser feita atravs de dois valores 0. Tais valores podem ser atribudos s variveis x1, x2, f1 e f2. Na prtica, em qualquer ponto do espao representado na Figura 3.2, todas as variveis assumiro um valor. Todavia, como a dimenso do problema igual a 2 (j que temos somente duas restries), sabe-se que apenas duas das quatro variveis podero assumir valores >0. Na origem, essas variveis sero f1 e f2. Assim, diz-se que as variveis f1 e f2 formam (ou compem) a base no ponto A. As variveis x1 e x2 so variveis no-bsicas, j que no dispe-se de espao para mais do que duas variveis na base. Variveis bsicas podem assumir valores 0. Variveis no-bsicas s podem assumir valor = 0.38FORMULAO: Deciso Financeira O conceito de valor lquido presente: Considere que $1 investido hoje valer mais de $1 daqui h um ano. O novo valor depender da taxa anual de juros, r. Assim: $1 hoje = $(1 + r)k em k anos ou $ 1 recebidos em k anos = $ (1 + r)-k hoje $ x recebidos em k anos = $x / (1 + r)k hoje O valor lquido presente (VLP) de um investimento determinado descontando o fluxo de caixa de um investimento at o tempo atual, ou tempo 0.Prof. Fogliatto Pesquisa Operacional 39Considere o ponto B na Figura 3.2, correspondente interseco da segunda restrio (f2 = 0) e do eixo x2. Neste ponto, as variveis bsicas so x2 e f1. Se x2 fosse uma varivel no-bsica, por exemplo, jamais seria possvel representar o ponto B, j que naquele ponto x2 = 1. O mesmo raciocnio se aplica varivel de folga f1. Se essa varivel estivesse for a da base, o ponto B deveria localizar-se, necessariamente, sobre a primeira restrio (onde f1 = 0, como a prrpia identificao da restrio indica). No ponto B, as variveis no-bsicas so x1 e f2. Continuando, no ponto C (interseco das duas restries), as variveis bsicas so x1 e x2. As variveis de folga so no-bsicas. Finalmente, no ponto D (interseco da primeira restrio com o eixo x1), as variveis bsicas so x1 e f2 e as variveis no bsicas so x2 e f1. Considere a representao matricial de um problema de PL introduzida na seo 2.1. Os vetores c, x e b e a matriz A devem ser expressos em termos das variveis bsicas e no-bsicas que compem o problema. A representao do problema na Figura 3.2, no ponto A, por exemplo, ser:x1 x2 f1 f 21 2 1 0 A= 0 1 0 1 a1 a2 a3 a4x1 x2 f1 f 2 c = [1, 3, 0, 0]tx t = [x1 , x2 , f1 , f 2 ]b=f1 0 f 2 0 39EXEMPLO:Investim. 1 = requer um investimento de $10,000 no tempo 0 e de $14,000 em 2 anos e tem um retorno de $24,000 em 1 ano. Investim. 2 = requer um investimento de $6,000 no tempo 0 e de $1,000 em 2 anos e tem um retorno de $8,000 em 1 ano. Qual o melhor investimento (r = 0.2)? VLP (Inv. 1) = = VLP (Inv. 2) = = -10,000 + (24,000/1+0.2) - [14,000/(1+0.2)2] $277.78 -6,000 + (8,000/1+0.2) - [1,000/(1+0.2)2] - $27.78 O investimento 1 bem melhor!Prof. Fogliatto Pesquisa Operacional 40Como no ponto A as variveis f1 e f2 compem a base, as matrizes e vetores apresentados acima podem ser divididos simplesmente em termos de seus componentes bsicos e no-bsicos. Para padronizar a apresentao, as variveis bsicas sempre vm apresentadas antes das no-bsicas. No exemplo anterior, os vetores e matrizes seriam reescritos como:B NB A = [ f1 f 2 x1 x2 ]f b = 1 f2 Bc = [ f1 ,tBf2x1 , x2 ]NBx t = [ f1 , f 2 x1 , x2 ]NBAs colunas na matriz A so numeradas de a1 at an (no exemplo, n = 4), conforme apresentado no exemplo. De uma maneira genrica, qualquer problema de PL poder ser representada em termos dos vetores c, x e b e da matriz A particionados em suas pores bsicas e no-bsicas. Cada poro dever compor as variveis de deciso atualmente na base e fora-da-base, respectivamente. Por exemplo:40EXEMPLO DE FORMULAO: FORMULAO: Formulao 3 Uma empresa est considerando 5 oportunidades de investimento, com caractersticas dadas a seguir:Gasto t =0 Gasto t =1 VLP Inv. 1 $11 $3 $13 Inv. 2 $53 $6 $16 Inv. 3 $5 $5 $16 Inv. 4 $5 $1 $14 Inv. 5 $29 $34 $39A empresa tem $40 disponveis para investimento no tempo t = 0 e estima dispor de $20 no tempo t = 1. Capital no investido em t=0 no estar disponvel em t = 1. Fraes de cada investimento podem ser compradas. Formule o problema tal que o VLP da companhia seja maximizado.Prof. FogliattoPesquisa Operacional41ct = [c B c N ]A = [B N ]b t = [b1 , b2 , K , bn ]x t = [x B x N ]O algoritmo simplex pode ser derivado atravs da seguinte equao, que compe o sistema de restries de um problema de PL: Ax = b A soluo do sistema de equaes acima pode ser obtida resolvendo o sistema para x. Para tanto, basta multiplicar os dois lados da igualdade por A-1 (lembre que A A-1 = I, onde I designa uma matriz identidade; ver reviso de lgebra Linear a partir do slide 90): A-1 Ax = A-1b Ix = A-1b x = A-1b Reescrevendo a primeira equao utilizando matrizes e vetores particionados em variveis bsicas e no-bsicas resulta em:[B N] x =b xN B41 Varivel de deciso: A empresa deseja determinar qual frao de cada investimento deve ser comprada: xi = frao do investimento i comprada pela empresa. Funo objetivo: Consiste em maximizar os VLP dados na tabela: Max z = 13x1 + 16x2 + 16x3 + 14x4 + 39x5Prof. FogliattoPesquisa Operacional42Procedendo com a multiplicao entre os vetores no lado esquerdo da igualdade, obtemos:Bx B + Nx N = be ento:Bx B = b Nx Nresolvendo a equao acima para xB, isto , multiplicando-se ambos os lados da equao por B-1, obtm-se:x B = B 1b B 1Nx NA matriz N, derivada de A e correspondendo s colunas no-bsicas de A, pode ser escrita em termos de suas colunas no-bsicas aj. O mesmo pode ser feito para o vetor xN, que contm as variveis de deciso no-bsicas; o vetor xN pode ser escrito em termos de suas variveis de deciso no-bsicas xj. Para reescrever N e xN conforme sugerido acima, necessrio observar a equivalncia de duas representaes algbricas, descritas a seguir. Sejam N e xN dados por:42 Restries: (1) A empresa no pode investir mais de $40 no tempo 0: 11x1 + 53x2 + 5x3 + 5x4 + 29x5 40 (2) A empresa no pode investir mais de $20 no tempo 1: 3x1 + 6x2 + 5x3 + x4 + 34x5 20 Falta alguma restrio? (3) A empresa no pode comprar mais que 100% de nenhum investimento: xi 1 (4) Todas as variveis devem ser positivas.Prof. Fogliatto Pesquisa Operacional 43N = [a1x tN = [x1a2 L aP ]x2 L x P ]Observe que N uma matriz; assim, suas partes componentes so vetores, designados por aj. Tal designao pertinente, j que a matriz N uma partio da matriz de restries A. Consequentemente, as colunas de N devem constituir um subconjunto das colunas de A. Tal subconjunto de variveis no-bsicas ser designado, doravante, por R. Existe um total de N colunas em A, uma associada a cada varivel de deciso do problema. Das N colunas de A, P correspondem a variveis no-bsicas. Assim, os ndices em N e xN variam de j = 1,, P. Note que as variveis xj no-bsicas compem o conjunto R. Deseja-se reescrever N e xN tornando explicitas as suas colunas e variveis nobsicas, respectivamente. Para tanto, utiliza-se a seguinte equivalncia:Nx N = a j x jjRA validade da equivalncia acima demonstrada a seguir atravs de um exemplo.43PRTICA 2:A empresa X deseja determinar quanto dinheiro investir e quanto dinheiro tomar emprestado no prximo ano. Cada real investido pela empresa reduz o VLP em 10 centavos e cada real tomado em emprstimo aumenta o VLP em 50 centavos (vale mais a pena tomar emprestado do que investir). X pode investir no mximo $1000000. O dbito pode somar at 40% do que for investido. X dispe de $800000 em caixa. Todo o investimento deve ser pago com o dinheiro em caixa ou com dinheiro emprestado. Formule o problema tal que o VLP de X seja maximizado. Resolva o problema graficamente.Prof. FogliattoPesquisa Operacional44Seja N uma matriz (2 3) constituda dos seguintes elementos:3 6 8 N= 1 2 7 a1 a 2 a 3Por convenincia e para manter a consistncia notacional, as trs colunas da matriz N acima so denominadas aj, j = 1,2,3. Associada a cada coluna de N existe uma varivel de deciso xj. Essas variveis vm apresentadas no vetor xN, abaixo:x tN = [x1x2x3 ]O produto NxN, utilizando a matriz e vetor acima, resulta em: x1 3 6 8 3x1 + 6 x2 + 8 x3 Nx = x2 = 1 2 7 x 1x1 + 2 x2 + 7 x3 3t N44FORMULAO: Problema da MisturaSituaes onde vrias matrias-primas devem ser misturadas em propores ideais so modelveis via programao linear. Alguns exemplos: (1) Mistura de vrios tipos de leos para produzir diferentes tipos de gasolina. (2) Mistura de compostos qumicos para gerar outros compostos. (3) Mistura de ingredientes para produo de raes. (4) Mistura de diferentes tipos de papis para produzir um papel reciclado.Prof. FogliattoPesquisa Operacional45A representao alternativa desse produto utiliza o somatrio:Nx N = a j x jjRNo exemplo, j = 1, 2, 3. Ento:a xjR jj= a1 x1 + a 2 x2 + a 3 x3 =3 6 8 1 x1 + 2 x2 + 7 x3 = 3x1 + 6 x2 + 8 x3 1x + 2 x + 7 x 2 3 1Comparando o resultado acima com aquele obtido a partir do produto NxN, possvel verificar a validade da equivalncia proposta. De maneira anloga, possvel demonstrar que o produto entre dois vetores, por exemplo,ctN x Npode ser representado, alternativamente, como:cjRj xj45EXEMPLO (Formulao 4): O caso TexacoA Texaco produz at 14000 barris/dia de 3 tipos de gasolina misturando 3 tipos de leos. Dados a respeito das gasolinas e leos so:Preo Deman Preo Preo DisponiVenda da/dia produo compra bilidade Gas 1 $70 3000 $4 leo 1 $45 5000 Gas 2 $60 2000 $4 leo 2 $35 5000 Gas 3 $50 1000 $4 leo 3 $25 5000Prof. FogliattoPesquisa Operacional46Agora possvel representar as matrizes e vetores da equao:x B = B 1b B 1Nx Nutilizando somatrios. Assim, explicitam-se as variveis no-bsicas na equao. A representao dada por:x B = B 1b BjR1a jxj(1)lembrando que j o ndice que designa as variveis no-bsicas e R denota o conjunto de todas as variveis no-bsicas. Por convenincia, algumas pores da equao (1) acima so assim renomeadas:B 1b = b B 1a j = y j Reescrevendo a equao (1) em termos das substituies, tem-se:xB = b yjRjxj46EXEMPLO (Formulao 4): O caso TexacoAs gasolinas tm especificaes de octanagem e contedo de enxofre dadas abaixo. A mistura de leos para produo de gasolina deve satisfazer essas especificaes.Oleo 1 Oleo 2 Oleo 3 12 6 8 0.5 2.0 3.0 Gas 1 10 1.0 Gas 2 8 2.0 Gas 3 6 1.0Ocatanagem Enxofre (%)Cada $/dia gasto em publicidade c/ qualquer tipo de gasolina, aumenta em 10 barris a venda daquele tipo de gasolina. Formule este problema tal que a Texaco maximize seus lucros dirios (= receita-despesa).Prof. FogliattoPesquisa Operacional47A funo objetivo de um problema genrico de PL pode ser escrita em termos dos vetores de custos e das variveis de deciso do problema. Em termos matemticos:z = ct xMais uma vez particionando os vetores em termos de variveis bsicas e nobsicas, obtm-se:x z = [c B c N ] B = c tB x B + c tN x N xN O vetor xB acima pode ser reescrito conforme apresentado na equao (1). Aps substituio, obtm-se: z = c tB B 1b B 1a j x j + c tN x N jR Efetuando-se a primeira multiplicao no somatrio acima, obtm-se:z = c tB B 1b cjRt BB 1a j x j + c tN x N47 Variveis de deciso: A Texaco deve decidir sobre (i) quanto dinheiro gastar na publicidade de cada tipo de gasolina e (ii) qual a mistura apropriada de leos. ai = $/dia gasto na publicidade da gasolina i. xij = barris de leo i gastos/dia para produzir gasolina j. Funo objetivo: Primeiro, note que: x11 +x12 + x13 = bar.leo 1 consum./dia. x21 +x22 + x23 = bar.leo 2 consum./dia. x31 +x32 + x33 = bar.leo 3 consum./dia.x11 +x21 + x31 = bar.gas.1 prod./dia. x12 +x22 + x32 = bar.gas.2 prod./dia. x13 +x23 + x33 = bar.gas.3 prod./dia.48Prof. FogliattoPesquisa OperacionalO ltimo termo na expresso acima deve ser explicitado em funo das variveis no-bsicas; ou seja,z = c tB B 1b cjRt BB 1a j x j +c xjR jjPor convenincia, renomeia-se o primeiro termo da equao acima:z 0 = c tB B 1bObserve que o valor z0 na equao acima corresponde ao valor atual da funo objetivo. Como as variveis no-bsicas assumem valor igual a 0 por definio (ou seja, xN = 0), o segundo termo direita da expressox B = B 1b B 1Nx Ndesaparece. Logo,z 0 = c tB B 1b = c tB x Bo que efetivamente corresponde ao valor atual da funo objetivo, considerando a base atual representada por xB.48 Funo objetivo: (1) Ganhos/dia com vendas de gasolina: 70(x11 +x21 + x31) + 60(x12 +x22 + x32) + 50(x13 +x23 + x33) (2) Custo/dia da compra de leo: 45(x11 +x12 + x13) + 35(x21 +x22 + x23) + 25(x31 +x32 + x33) (3) Custo/dia com propaganda: a1 + a2 + a3 (4) Custo/dia produo: 4(x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33) Lucro dirio: (1) - (2) - (3) - (4)Prof. Fogliatto Pesquisa Operacional 49Assim, a expresso:z = c tB B 1b pode ser reescrita como:cjRt Bt BB 1a j x j +c xjR jjz = z0 cjRB 1a j x j +c xjR jjComo os dois somatrios consideram o mesmo domnio (ou seja, as variveis no-bsicas pertencentes ao conjunto R), pode-se agrupar os dois termos de somatrio num nico termo:z = z0 Como B-1aj = yj, tem-se: (cjRt BB 1a j c j x j)z = z0 (cjRt By j cj xj)Para finalizar esta primeira etapa do desenvolvimento do algoritmo simplex e obter-se o primeiro resultado, uma ltima substituio necessria; a saber:z j = c tB y j49 Funo objetivo: Max z = 21x11 +11x12 + x13 + 31x21 + 21x22 + 11x23 + 41x31 + 31x32 + 21x33 - a1 - a2 - a3 Restries: (1-3) Gas 1-3 produzida diariamente deve ser igual a demanda (no queremos estocar gasolina). Demanda diria gas 1: 3000 + demanda gas 1 gerada por publicidade = 3000 + 10a1 Demanda gas 2: 2000 + 10a2 Demanda gas 3: 1000 + 10a3 Assim: x11 + x21 + x31 - 10a1 = 3000 x12 + x22 + x32 - 10a2 = 2000 x13 + x23 + x33 - 10a3 = 1000Prof. Fogliatto Pesquisa Operacional 50Assim, a expresso para z passa a ser escrita como:z = z0 1o resultado: (zjRj c j )x jz0 representa o valor atual (ou presente) da funo objetivo. Num problema de maximizao, o valor de z pode ser melhorado se zj cj < 0, para qualquer j R. Num problema de minimizao, o valor de z pode ser melhorado sempre que zj cj > 0, para qualquer j R. Parece claro que o resultado apresentado acima estabelece o critrio utilizado pelo algoritmo simplex para mudana de base. Assim, num problema de maximizao, a base atual (que gera o valor atual z0 da funo objetivo) s ser substituda por uma outra base se, para alguma varivel no-bsica j R, o valor zj cj < 0. Quando este for o caso, o segundo termo direita da igualdade na expresso para z acima ser positivo e o valor de z sofrer um incremento, exatamente o que se deseja em um problema de maximizao.50 Restries: (4-6) Compra diria de leo 1-3 no deve exceder 5000 barris. x11 + x12 + x13 5000 x21 + x22 + x23 5000 x31 + x32 + x33 5000 (7) Produo/dia de gas no deve exceder 14000 barris. x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33 14000 (8) Mistura de leos p/produzir gas 1 deve ter uma octanagem mdia de pelo menos 10 graus.Oc tan. total gas. 1 12 x11 + 6x 21 + 8x 31 = 10 o x11 + x 21 + x 31 N barris na misturaPara linealizar essa inequao, multiplica-se os dois lados pelo denominador: 2x11 - 4x21 - 2x31 0Prof. Fogliatto Pesquisa Operacional 51Num problema de PL, o nmero de variveis que compem a base limitado. Assim, sempre que na busca pelo ponto timo a base atual for substituda por outra, uma das variveis bsicas que compem a base atual dever dar lugar varivel no-bsica para a qual zj cj < 0. Se mais de uma varivel no-bsica atender ao requisito zj cj < 0, seleciona-se aquela para a qual o mdulo de zj cj seja maior. Como a cada mudana de base uma varivel no-bsica assume o lugar de uma varivel bsica na base, necessrio adotar-se um critrio para retirada de variveis da base. Tal critrio compe o 2o resultado do algoritmo simplex, sendo ilustrado utilizando o exemplo na pgina 38. Relembrando a descrio do problema: Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1As bases possveis para este problema so (x1, x2), (x1, f1), (x1, f2), (x2, f1), (x2, f2) e (f1, f2). Tente identificar os pontos correspondentes a essas bases na Figura 3.2. Quatro bases j haviam sido identificadas previamente, correspondendo aos pontos A D da figura; essas so as bases viveis do problema. Outras duas bases no-viveis podem ser identificadas. Bases no-viveis no so consideradas no algoritmo simplex, j que no satisfazem o conjunto de restries que compem o problema.51(9) Mistura de leos p/produzir gas 2 deve ter uma octanagem mdia de pelo menos 8 graus. 4x12 - 2x22 0 (10) Mistura de leos p/produzir gas 3 deve ter uma octanagem mdia de pelo menos 6 graus. 6x13 + 2x33 0 A restrio (10) redundante e no precisa ser includa no modelo. Por qu? Porque x13 e x33 0 por definio. Verifique a octanagem dos leos crus para entender o porqu desta redundncia.Prof. Fogliatto Pesquisa Operacional 52Suponha que uma primeira base selecionada para dar incio ao algoritmo. Independente das variveis selecionadas para compor a primeira base, para determinar o seu valor e verificar a viabilidade da base selecionada, deve-se resolver o seguinte sistema de equaes:Bx B = b x B = B 1bUma escolha razovel para a primeira base dada por (f1, f2), o ponto de origem no espao bidimensional (x1, x2). Particionando a matriz A do exemplo entre variveis bsicas e no-bsicas e rearranjando, tal que variveis bsicas passam a ser as primeiras colunas de A, obtm-se:a3 a4 a1 a21 0 1 2 A = [B N ] = 0 1 0 1 f1 f 2 x1 x2Escolhendo as variveis de folga como primeira base para o problema, a matriz B assume a conformao de uma matriz identidade. Como para resolver o sistema xB = B-1b ser necessrio obter a matriz inversa B-1, a base selecionada bastante conveniente, j que se B = I, B-1 = B. Assim,52(11) Mistura de leos p/produzir gas 1 deve ter um teor de enxofre menor ou igual a 1%. -0.005x11 + 0.01x21 + 0.02x13 0 (12) Mistura de leos p/produzir gas 2 deve ter um teor de enxofre menor ou igual a 2%. -0.015x12 + 0.01x32 0 (13) Mistura de leos p/produzir gas 3 deve ter um teor de enxofre menor ou igual a 1%. -0.005x13 + 0.01x23 + 0.02x33 0Prof. Fogliatto Pesquisa Operacional 531 0 B= 0 1 1 0 B 1 = 0 1 Os vetores x, c e b obtidos do exemplo vm dados abaixo:x t = [x B x N ] = [ f1 , f 2x1 , x2 ]c t = [c B c N ] = [0, 0 1, 3] 4 b= 1 Conforme descrito anteriormente, o vetor c contm os coeficientes associados a cada varivel de deciso na funo objetivo; estes foram rearranjados em coeficientes associados s variveis bsicas e no-bsicas, respectivamente. O vetor b corresponde ao lado direito das restries do problema. Deseja-se testar se algumas das variveis no-bsicas deve entrar na base, de forma a melhorar o valor z da funo objetivo. O problema exemplo de Maximizao, logo somente variveis no-bsicas para as quais zj cj < 0 sero candidatas a entrar na base. O conjunto R de variveis no bsicas contm duas variveis, j = 1 (x1) e j = 2 (x2). O teste realizado utilizando o formulrio que precede o 1o resultado:53FORMULAES MULTIPERODO (Formulao 5) O problema do estoque - O caso da empresa RegataA Regata S/A quer decidir quantos barcos produzir nos prximos 4 trimestres, de modo a satisfazer sua demanda a um menor custo:DemandaTrim. 1 40Trim. 2 60Trim. 3 75Trim. 4 25Prof. FogliattoPesquisa Operacional54Para j = 1:1 0 1 ( z1 c1 ) = ctB B 1a1 c1 = [0, 0] 1 = 1 0 1 0 Para j = 2:1 0 2 ( z 2 c2 ) = c tB B 1a 2 c2 = [0, 0] 3 = 3 0 1 1 Introduzindo qualquer das duas variveis no-bsicas na base, observaria-se uma melhoria no valor z da funo objetivo. Todavia, x2 deve entrar na base, j que apresenta o maior valor absoluto de zj - cj. Uma das variveis atualmente na base deve sair, para dar lugar a x2. Para determinar qual varivel sai da base, utiliza-se a equao (1); isto :x B = B 1b BjR1a jxjA varivel entrante x2 (j = 2). Assim, a equao (1) pode ser reescrita para conter as variveis bsicas e a varivel entrante x2:x B = B 1b B 1a j x j54FORMULAES MULTIPERODO (Formulao 5) O problema do estoque - O caso da empresa RegataA Regata deve atender seus pedidos em dia. No incio do 1o trimestre, 10 barcos esto em estoque. No incio de cada trimestre, a Regata deve decidir quantos barcos sero produzidos naquele trimestre. Barcos produzidos num trimestre podem ser usados para atender pedidos naquele mesmo trimestre (pedidos so atendidos no final do trimestre). A Regata por produzir at 40 barcos/trim, a um custo de $400/barco. Para aumentar a produo, pode usar horas-extra, a um custo de $450/barco. Estocar um barco de um trim. para outro custa $20/barco. Formule o problema tal que a demanda seja atendida um mnimo custo.Prof. Fogliatto Pesquisa Operacional 55Fazendo as devidas substituies, obtm-se:1 0 4 1 0 2 xB = x2 0 1 1 0 1 1 As variveis que compem a base atual so (f1, f2). Explicitando o vetor xB e executando as multiplicaes entre matrizes e vetores na expresso acima, obtm-se: f1 4 2 f = 1 1 x2 2 Todas as variveis do problema exemplo esto condicionadas a assumirem valores no-negativos. Analisando a equao acima, fcil observar que x2 no pode assumir valores maiores que 1 ou a varivel bsica f2 assumiria valores negativos. Assim, o valor mximo de x2 1 e, neste caso, f2 assume o valor 0, saindo da base. Logo, x2 entra na base e f2 sai da base para dar lugar a x2, j que no permitido mais do que 2 variveis na base. Alm disso, sabe-se que x2 entra na base com valor 1 e que f1 permanece na base, mas com valor 2 (e no 4, como na base inicial).55 Variveis de deciso: A Regata deve determinar quantos barcos produzir usando mo-de-obra normal e horas-extra a cada trimestre: xt = barcos produzidos por m.o. normal durante trim. t. yt = barcos produzidos por horas-extra durante trim. t. Variveis de estoque tambm devem ser definidas: it = barcos em estoque no final do trimestre t. Assim: Custo total = custo produo normal + custo produo hora-extra + custo estocagem = 400 (x1 + x2 + x3 + x4) + 450(y1 + y2 + y3 + y4) + 20 (i1 + i2 + i3 + i4)Prof. Fogliatto Pesquisa Operacional 56A partir do exemplo, estabeleceu-se o critrio de sada de variveis da base. Tal critrio est fundamentado no princpio de no-negatividade das variveis de deciso de um problema de PL. O 2o resultado formaliza esse critrio. 2o resultado: A varivel bsica xk que sai da base dando lugar a xj determinada pela seguinte expresso: b xk = Min i , onde yij > 0. i y ij Os vetores e yj foram definidos na pgina 48. Os elementos que compem esses vetores so identificados por e y, sendo utilizados no resultado acima. bA operacionalizao da expresso nob o resultado bastante simples. Considere 2 o exemplo anterior, com os vetores e y2 devidamente identificados:b f1 4 2 f = 1 1 x2 2 by256 Funo objetivo: Min z = 400x1 + 400x2 + 400x3 + 400x4 + 450y1 + 450y2 + 450y3 + 450y4 + 20i1 + 20i2 + 20i3 + 20i4 Estoque no final de cada trimestre: it = it-1 + (xt + yt) - dt , t = 1,,4 onde dt = demanda no trimestre t. Para satisfazer a demanda ao final de cada trimestre: it-1 + (xt + yt) dt ou it = it-1 + (xt + yt) dt 0Prof. Fogliatto Pesquisa Operacional 57A razo bi yij obtida dividindo os vetores:{} f1 4 f = 1 2 2 2 1 = 1 Deseja-se determinar a menor razo; no caso, este valor 1, correspondendo a f2. Logo, f2 deve sair da base dando lugar a x2, a varivel entrante. A mnima razo tambm aponta para o valor de entrada de x2 na base: x2 = 1. No momento em que determina-se uma nova base para o problema de PL, completa-se uma iterao (ou pivot) do algoritmo simplex. Na sequncia, atualiza-se a base e repete-se o procedimento apresentado acima. A nova base para o problema exemplo dada abaixo, junto com os vetores necessrios para realizar mais uma iterao do simplex:1 2 B = [ f1 , x2 ] = 0 1 ctB = [0, 3]N = [x1 , f 2 ]1 2 B 1 = 0 1 1 2 4 2 x B = B 1b = = 0 1 1 1 A base inversa B-1 foi obtida atravs do mtodo de Gauss-Jordan, no slide 96.57 Restries: (1-4) Produo normal em cada trimestre no deve exceder 40 barcos: x1 40 x2 40 x3 40 x4 40 (5-8) Demanda deve ser satisfeita a cada trimestre: i1 = 10 + x1 + y1 - 40 i3 = i2 + x3 + y3 - 75 i2 = i1 + x2 + y2 - 60 i4 = i3 + x4 + y4 - 25Todas as variveis so do tipo 0.Prof. Fogliatto Pesquisa Operacional 58Antes de dar prosseguimento ao algoritmo, interessante interpretar geometricamente os resultados obtidos at agora. A base inicial selecionada para o problema exemplo continha as variveis de folga (f1, f2). Na figura 3.2, esta base corresponde ao ponto A. A partir daquele ponto, existem dois caminhos possveis de movimento: na direo de B ou na direo de D. No ponto B, a base constituda das variveis (f1, x2); no ponto D, a base constituda das variveis (x1, f2). Analisando o ngulo formado entre o vetor c e os vetores OB e OD [onde O denota o ponto de origem (x1, x2) = (0,0)], fcil constatar que o ngulo mais agudo (< 90o) aquele entre c e OB. Essa a direo de maior melhoria no valor z da funo objetivo. Observe, todavia, que o ngulo entre c e OD tambm agudo, caracterizando uma direo de melhoria no valor z. O algoritmo selecionou a melhor direo de movimento, introduzindo, assim, a varivel x2 na base e removendo f2 para fora da base. A nova base contendo as variveis (f1, x2) corresponde ao ponto B na Figura 3.2. Dando sequncia ao algoritmo simplex, testam-se as variveis no-bsicas em busca de uma direo de melhoria no valor z da funo objetivo: Para j = 1:1 2 1 ( z1 c1 ) = c tB B 1a1 c1 = [0, 3] 1 = 1 0 1 0 58PRTICA 3: Modelos Financeiros com mltiplos perodos.Uma empresa precisa definir sua estratgia financeira para os prximos trs anos. No tempo t = 0, $100000 esto disponveis para investimento. Planos A, B, C, D e E esto disponveis. Investir $1 em cada um desses planos gera o fluxo de caixa abaixo:A B C D E 0 -1 0 -1 -1 0 1 0.5 -1 1.2 0 0 2 1 0.5 0 0 -1 3 0 1 0 1.9 1.5No mximo $75000 podem ser investidos num mesmo plano. A empresa pode ganhar 8% de juros se investir no mercado financeiro ao invs dos planos. Lucros gerados em qualquer perodo podem ser imediatamente reinvestidos (no mesmo perodo). A empresa no pode tomar dinheiro emprestado. Formule o problema tal que $ no ltimo priodo seja mximo.Prof. Fogliatto Pesquisa Operacional 59Para j = 4:1 2 0 ( z 4 c4 ) = ctB B 1a 4 c4 = [0, 3] 0 = 3 0 1 1 A nica varivel candidata a entrar na base x1. Para verificar qual varivel deve sair da base, utiliza-se a equao 1:x B = B 1b B 1a1 x11 2 4 1 2 1 2 1 xB = x1 = x1 x1 = 2 0 1 1 0 1 0 1 0 A varivel de folga f1 deve sair da base. A varivel x1 entra na base com valor 2. A nova base formada por (x1, x2). O mesmo resultado pode ser obtido utilizando-se a expresso no 2o Resultado. Analisando-se a Figura 3.2, identificase o movimento do ponto B para o ponto C no grfico. Atualizando-se a base, obtm-se as seguintes matrizes e vetores:1 2 B = [x1 , x2 ] = 0 1 1 2 B 1 = 0 1 c tB = [1, 3]N = [ f1 , f 2 ]1 2 4 2 x B = B 1b = = 0 1 1 1 59Utilizao do Whats Best na soluo de problemas de PL Whats Best um programa da famlia Lindo para otimizao linear, no-linear e inteira. Vantagens: implementado na planilha Excel; vrias funes algbricas do Excel so aceitas na formulao do problema: ABS, ACOS, AND, ASIN, ATAN, ATAN2, AVERAGE, COS, EXP, FALSE, IF, INT, LN, LOG, MAX, MIN, MOD, NOT, NPV, OR, PI, SIN, SQRT, SUM, SUMPRODUCT, TAN, TRUE, TRUNC, NORMINV, TRIAINV, EXPOINV, UNIFINV, MULTINV.Prof. Fogliatto Pesquisa Operacional 60Na sequncia, testam-se as variveis no-bsicas em busca de uma direo de melhoria no valor z da funo objetivo. Para j = 3:1 2 1 ( z3 c3 ) = c tB B 1a 3 c3 = [1, 3] 0 = 1 0 1 0 Para j = 4:1 2 1 ( z 4 c4 ) = ctB B 1a 4 c4 = [1, 3] 0 = 1 0 1 0 Nenhuma varivel no-bsica apresenta valor de zj - cj < 0. Assim, a base atual (x1, x2) tima e o algoritmo simplex terminado. Geometricamente, possvel identificar o ponto C como ponto tima na Figura 3.2. Avanando na direo do vetor c, o ponto C o ponto de mximo avano antes de abandonar-se o espao de solues viveis. O algoritmo simplex pode ser compreendido como uma alternativa algbrica para o procedimento de soluo grfica. Tal recurso algbrico torna-se particularmente til em problemas de maior dimenso (tridimensionais, quadridimensionais, etc.).60Outras vantagens do Whats Best Programa permite alterar coeficientes da formulao facilmente: formulao fica explicita na planilha. Facilidade de uso: princpio de programao o uso mesmo do Excel. Gratuito para download da rede:www.lindo.com Opo: Whats BestProf. Fogliatto Pesquisa Operacional 613.1. O tableau do simplex Problemas de PL podem ser arranjados em uma tabela, conhecida como o tableau do simplex. O tableau contm todas as frmulas utilizadas no algoritmo, apresentadas na seo anterior. A grande vantagem da utilizao do tableau est na operacionalizao do algoritmo simplex: o tableau facilita a lgebra necessria para completar as iteraes do algoritmo, levando mais rapidamente a uma soluo tima. O formato padro do tableau do simplex vem apresentado abaixo:zxBzj cjc tB B 1bB 1by j = B 1a jFigura 3.3 - Tableau do simplex. O algoritmo simplex , via de regra, inicializado utilizando variveis de folga como base inicial. Quando variveis de folga no encontram-se disponveis, variveis de folga artificiais so utilizadas, conforme apresentado mais adiante.61Como utilizar o programa Abra o Excel. O Whats Best deve carregar-se como uma Macro daquela planilha. Abra o arquivo XYZPort, que contm o exemplo.Este o arquivo.Prof. FogliattoPesquisa Operacional62Sempre que as variveis de folga formarem a primeira base em um problema de PL, a montagem do tableau do simplex extremamente facilitada. Considere o exemplo na pgina 38. Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1As variveis de folga (f1, f2) formam a primeira base. Como as variveis de folga no participam orginalmente da funo objetico, seus coeficientes de custo cj sero sempre 0 e o primeiro vetor cB utilizado no algoritmo simplex ser um vetor de zeros. Desta forma, a quantidade zj - cj dada pela expresso:( z j c j ) = c tB B 1a j c jse reduzir a:(z j c j ) = c jPara compor o primeiro tableau do simplex, quando variveis de folga constituem a primeira base, basta escrever o negativo dos coeficientes de custo das variveis no-bsicas na primeira linha do tableau. As variveis bsicas recebem valor 0, por definio. Como zj - cj representa a potencial62Os comandos do programa esto na barra de ferramentas e no menuProf. FogliattoPesquisa Operacional63melhoria no valor z da funo objetivo representada pela jsima varivel, variveis atualmente bsicas devem receber valor igual a 0 simplesmente por j se encontrarem na base. Assim, para os dados do exemplo, a primeira linha do tableau dada por:x1 -1 x2 -3 f1 0 f2 0 RHS z0zObserve que, por convenincia, as variveis que compem o problema de PL vm devidamente identificadas no tableau. A sigla RHS direita das variveis denota right hand side e contm o valor atual de z (denominado z0) e o valor assumido pelas variveis atualmente na base. O valor atual de z, z0, dado pela equao:z 0 = c tB B 1bComo cB um vetor de zeros, z0 = 0 sempre que as variveis de folga formarem a primeira base. Atualizando o tableau, tem-se:x1 -1 x2 -3 f1 0 f2 0zRHS 063O Problema do Mix de Produo A XYZ Corporation monta dois modelos de computador. O modelo Padro gera um lucro por unidade produzida de $300, enquanto o modelo Luxo gera um lucro por unidade de $500. Os dois modelos utilizam trs componentes para sua montagem: o chassis Padro (60), o chassis de Luxo (50) e o drive de disquete (120). Disponveis em estoqueProf. Fogliatto Pesquisa Operacional 64Na sequncia, deseja-se escrever as linhas que compem as restries no tableau. Elas vm dadas por:y j = B 1a jPara cada varivel do problema, determina-se uma coluna yj. Sempre que as variveis de folga formarem a primeira base, B = I e B-1 = B = I. Assim, a expresso acima reduz-se a:y j = Ia j = a je as linhas que compem as restries no tableau so copiadas diretamente do problema de PL em estudo. Utilizando os dados do exemplo: Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1z f1 f2x1 -1 1 0x2 -3 2 1f1 0 1 0f2 0 0 1RHS 064Necessidades de componentes em cada modelo O modelo Padro utiliza um chassis Padro e um drive de disquete. O modelo Luxo utiliza um chassis Luxo e dois drives de disquete. Problema: qual combinao de modelos Problema Padro e Luxo maximiza os lucros da XYZ, considerando os componentes atualmente em estoque?Prof. Fogliatto Pesquisa Operacional 65As variveis atualmente na base so identificadas esquerda do tableau (f1 e f2). O nico elemento faltante no tableau do exemplo corresponde frmula:b = B 1b no lado direito do tableau. Mais uma vez, quando as variveis de folga formam a primeira base, B-1 = I e a expresso acima reduz-se a: b = Ib = b Desta forma, para completar o tableau, basta escrever os valores do lado direito das restries do problema para o lado direito do tableau. Isto :Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1z f1 f2x1 -1 1 0x2 -3 2 1f1 0 1 0f2 0 0 1RHS 0 4 165Determinar as variveis de deciso (adjustable cells) Variveis de deciso: Padro = quantidd de computadores padro a serem produzidos. Luxo = quantidd de computadores luxo a serem produzidos.Prof. FogliattoPesquisa Operacional66Uma vez preenchido o tableau inicial do simplex, as iteraes seguem a seguinte sequncia de passos (equivalente utilizao das expresses matemticas apresentadas na seo anterior): a. Identifique as variveis candidatas a entrar na base na primeira linha (linha z ou linha zero) do tableau. Se o problema for de maximizao, a varivel mais negativa entra na base; se o problema for de maximizao, a varivel mais positiva entra na base. Sempre que houver empate (duas variveis candidatas com o mesmo valor de zj - cj, escolha aleatoriamente a varivel a ser introduzida na base). A varivel entrante na base ser designada por xj. No caso em que nenhuma varivel satisfizer o critrio de entrada na base, uma soluo tima foi encontrada para o problema. b. Inspecione a coluna yj correspondente varivel xj em busca de valores positivos. Se no houver nenhum valor positivo na coluna, a soluo para o problema de PL tende ao infinito e uma soluo tima foi encontrada. Caso contrrio, o teste da mnima razo identificar a varivel bsica que deve dar lugar a xj na base.66Determinar as variveis de deciso (adjustable cells)Identificao das variveis de decisoValor inicial das variveis de deciso (pode ser qualquer valor). Na busca pelo timo, o programa permitir que essas clulas assumam qualquer valor nonegativo.Prof. Fogliatto Pesquisa Operacional 67c. Para realizar o teste da mnima razo, utilize a frmula:b xk = Min i , onde yij > 0. i y ij ou seja, divida o lado direito do tableau pelos valores positivos em yj: a menor razo identifica a varivel xk a sair da base. O valor positivo em yj correspondente mnima razo o elemento de pivot da iterao. d. Atravs de operaes elementares com a linha que contm o elemento pivot, faa com que a coluna correspondente a xj assuma os valores na coluna correspondente a xk. As operaes elementares com a linha pivot sero apresentadas atravs do exemplo a seguir. e. Volte para o passo a e execute mais uma iterao do algoritmo. Os passos acima so agora aplicados ao exemplo na pgina 38. O tableau inicial para o problema exemplo foi obtido anteriormente, sendo reproduzido a seguir.67Identifique as clulas como variveis de deciso (adjustable cells)Tela resultante Selecione as clulas onde foram escritos os zeros.Prof. FogliattoNa opo WB! do menu, selecione adjustable.Pesquisa Operacional 68z f1 f2x1 -1 1 0x2 -3 2 1f1 0 1 0f2 0 0 1RHS 0 4 1a. O problema exemplo de maximizao. Assim, variveis com valores de zj cj na linha z do tableau so candidatas a entrar na base. Duas variveis, x1 e x2 satisfazem o critrio de entrada na base. A mais negativa delas, x2, entra na base. Assim, xj = x2 e ytj = yt2 = [2, 1]. b. O vetor y2 apresenta dois valores positivos (2 e 1), com os quais ser feito o teste da mnima razo. c. O teste da mnima razo vem apresentado no tableau abaixo.xjx1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1xkz f1 f24/2 = 2 1/1 = 1elemento de pivotmnima razo68Caso as variveis de deciso sejam no-negativas, clique OK. OK Opo caso as variveis de deciso sejam irrestritas no sinal. sinalIdentificao das clulas selecionadas como ajustveis. Nomeie as variveis irrestritas no sinal (qualquer nome serve).Caso as variveis sejam irrestritas no sinal, siga os passos abaixo.Clique em OK. OKClique em Add. AddWBFree identifica variveis irrestritasProf. FogliattoPesquisa Operacional69d. Para completar a iterao do simplex, necessrio proceder com operaes elementares que utilizam a linha que contm o elemento de pivot. As operaes tm por objetivo fazer com que a coluna x2 (da varivel entrante) assuma a configurao da coluna f2 (varivel que sai da base). A sequncia de operaes vem descrita a seguir.x1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1z f1 f2Os dois valores coincidem, logo nenhuma operao necessria. Identificao das linhas do tableau (0) (1) (2)x1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1z f1 f2Valores no coincidem: executa-se uma operao elementar. Seja (1) a linha (1) aps a operao. A operao que transformar 2 em 0 : (1) = (1) 2 (2)69Variveis de deciso so identificadas em azul pelo WB. WBExiste um cone de atalho p/ identificao de variveis de deciso no-negativas, conforme apresentado abaixo. Selecione as variveis de deciso. Clique no cone . Clulas passam a ser apresentadas em azul.Prof. FogliattoPesquisa Operacional70Explicitando a operao:x1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1z f1 f2(1)' = (1) - 2 x (2)z f1 x2x1 -1 1 0x2 -3 0 1f1 0 1 0f2 0 -2 1RHS 0 2 1Na sequncia, trabalham-se os valores na linha z:x1 -1 1 0 x2 -3 0 1 f1 0 1 0 f2 0 -2 1 RHS 0 2 1(0) (1) (2)z f1 x2Valores no coincidem. Seja (0) a linha (0) aps a operao elementar. A operao que transformar -3 em 0 : (0) = (0) + 3 (2)70Escreva a funo objetivo (best) Funo objetivo: Lucro Total = (Lucro por unidade do Modelo Padro) (Qtdd de Modelos Padro produzidos) + (Lucro por unidade do Modelo Luxo) (Qtdd de Modelos Luxo produzidos) Lucro Total = 300 Padro + 500 LuxoProf. Fogliatto Pesquisa Operacional 71Explicitando a operao:x1 -1 1 0 x2 -3 0 1 f1 0 1 0 f2 0 -2 1 RHS 0 2 1z f1 x2(0)' = (0) + 3 x (2)z f1 x2x1 -1 1 0x2 0 0 1f1 0 1 0f2 3 -2 1RHS 3 2 1Observe que a coluna x2 assumiu a configurao anterior da coluna f2. Isso foi obtido atravs de operaes elementares com a linha que contm o elemento pivot. As operaes elementares sempre devem utilizar a linha pivot, ocorrendo da forma exemplificada acima e generalizada a seguir (na expresso abaixo, w um nmero real qualquer, positivo ou negativo): (linha nova) = (linha antiga) + [w (linha pivot)] e. Concluda a iterao, retorna-se ao passo a. As demais iteraes sero apresentadas diretamente no tableau.71Coeficientes de custo da funo objetivo.Frmula da funo objetivo.Prof. FogliattoPesquisa Operacional722a Iterao:xjx1 -1 1 0 x2 0 0 1 f1 0 1 0 f2 3 -2 1 RHS 3 2 1xkz f1 x22/1 = 2mnima razo elemento de pivotx1 -1 1 0 x2 0 0 1 f1 0 1 0 f2 3 -2 1z f1 x2RHS 3 2 1Nenhuma operao necessriaz f1 x2x1 -1 1 0x2 0 0 1f1 0 1 0f2 3 -2 1RHS 3 2 1Nenhuma operao necessria72Identifique a clula que contm a frmula como funo objetivo (best)Clique na clula onde a frmula da funo objetivo foi escrita.Selecione WB! no menu e a opo Best. Best Este a tela correspondente opo Best. BestProf. Fogliatto Pesquisa Operacional 73Finalizando a iterao:x1 -1 1 0 x2 0 0 1 f1 0 1 0 f2 3 -2 1 RHS 3 2 1z f1 x2(0)' = (0) + (1)z f1 x2x1 0 1 0x2 0 0 1f1 1 1 0f2 1 -2 1RHS 5 2 1Observe que nenhuma varivel no-bsica apresenta valor negativo na linha z. Esse o critrio de finalizao do algoritmo simplex.73Identifique se o problema de Minimizao ou Maximizao (default Minimizao).Identificao das clulas selecionadas como ajustveis.Confirme clicando OK. OKClula contendo funo objetivo passar a ser identificada como clula a ser maximizada (WBMAX WBMAX).Prof. FogliattoPesquisa Operacional743.1.1. Casos Especiais Dois casos especiais merecem nota: (i) problemas com solues timas alternativas e (ii) problemas com soluo ilimitada (tendendo ao infinito). Esses dois casos especiais podem ser identificados no tableau do simplex, conforme apresentado a seguir. (i) Problemas com solues timas alternativas Considere um problema de minimizao que, aps um certo nmero de iteraes, apresenta o seguinte tableau:x1 0 1 0 x2 0 0 1 f1 -2 1/3 1/3 f2 0 -2/3 1/3 RHS -8 2/3 5/3z x1 x2Como todas as variveis no-bsicas so no-positivas (critrio para entrada de variveis na base em problemas de minimizao), nenhuma varivel deve entrar na base. Observe, todavia, que uma varivel no-bsica, f2, apresenta valor 0 na linha z. Como os valores na linha z representam a melhoria na funo objetivo decorrente da entrada de cada varivel no-bsica na base, isso significa que introduzindo f2 na base no alteraria o valor z da funo objetivo. Desta forma, pode-se acrescentar f2 na base, obtendo-se uma base tima alternativa, com o mesmo valor z de funo objetivo (neste caso, x2 daria lugar a f2 na base).74Selecione a clula contendo a frmula da funo objetivo.Confira se clula passou a ser identificada por WBMAX. WBMAXClique no cone.Prof. FogliattoPesquisa Operacional75Ao introduzir-se f2 na base, x2 passaria a apresentar um valor 0 na linha z. Assim, poderia-se indefinidamente substituir uma base por outra, sem com isso alterar o valor da funo objetivo. Geometricamente (em duas dimenses), a situao acima corresponderia ao caso em que o ponto timo no espao de solues viveis no um ponto, e sim uma reta. Assim, qualquer ponto sobre a reta resulta no mesmo valor z de funo objetivo e inmeras solues timas alternativas so possveis. O algoritmo simplex captura os pontos extremos da reta, apresentado-os como solues timas alternativas para o problema. (ii) Problemas com soluo ilimitada (tendendo ao infinito). Considere um problema de minimizao que, aps um certo nmero de iteraes, apresenta o seguinte tableau:x1 4 -1 -1 x2 0 0 1 f1 0 1 0 f2 -3 2 1 RHS -9 10 3z f1 x2A varivel no-bsica x1 deve entrar na base, j que z1 - c1 > 0 (trata-se de um problema de minimizao). Porm, ao inspecionar-se a coluna y1 em busca de um elemento pivot, no possvel encontrar nenhum elemento no-negativo. Neste caso, uma soluo tima foi encontrada para o problema: esta soluo75Especifique as restries (constraints) Restries informam que total de componentes utilizados deve ser quantidade disponvel em estoque. Restrio p/ componente chassis padro:(Qtdd de Modelos Padro produzidos) (No de chassis padro por modelo) + (Qtdd de Modelos Luxo produzidos) (No de chassis padro por modelo) Qtdd de chassis padro em estoque Padro 1 + Luxo 0 60Prof. Fogliatto Pesquisa Operacional 76tende ao infinito (z ). Esse resultado pode ser melhor compreendido aplicando-se a equao (1) aos dados do exemplo: f1 10 1 x = 3 1 x1 2 Quando x1 entra na base, seu valor aumenta at o ponto em que uma das variveis bsicas tem seu valor reduzido a 0, saindo da base e dando lugar a x1. No caso acima, nenhum valor no-negativa causa a sada de uma varivel da base. Assim, x1 pode aumentar de valor indefinidamente; o mesmo ocorre com o valor z da funo objetivo. Nessas circunstncias, parece evidente que a soluo do problema tende ao infinito.76Demais restries (constraints) Restrio p/ componente chassis luxo:Padro 0 + Luxo 1 50 Restrio p/ componente drive de disquete:Padro 1 + Luxo 2 120 Restrio de no-negatividade: o default do WB.Prof. FogliattoPesquisa Operacional773.1.2. Ausncia de uma base inicial Alguns problemas no possuem variveis de folga em nmero suficiente para compor uma base inicial para o problema. Na prtica, quaisquer variveis podem compor a base inicial, mas impossvel saber se a base resultante ser vivel ou no, a menos que se resolva o sistema de equaes que formam as restries do problema. Na maioria das aplicaes, testar combinaes de variveis em busca de uma primeira base vivel pode tomar muito tempo. Assim, o procedimento padro adotado nesses casos utiliza variveis de folga artificiais (ou simplesmente variveis artificiais) na busca de uma primeira base vivel. s variveis artificiais, como o prprio nome indica, no pertencem ao problema. Tais variveis somente so acrescidas para facilitar a determinao de uma primeira base vivel, que d partida ao algoritmo simplex. Assim, a partir do momento em que variveis artificiais so utilizadas na composio da base inicial, deseja-se retir-las da base, chegando, assim, a uma base vivel legtima (isto , pertencente ao problema). O procedimento para remoo das variveis aritificiais da base inicial conhecido como Mtodo do M-Grande, sendo descrito a seguir atravs de um exemplo.77Organizao das restries na planilha do WBFrmula da 1a restrio. Coeficientes tecnolgicos das restries.Lado direito das restries.Prof. FogliattoPesquisa OperacionalClulas c/ as frmulas das restries. 78Considere o seguinte exemplo: Min z = s.a: x1 - 2x2 - x1 + x1 , x2 1 x2 4 x2 0Aps acrescentar variveis de excesso e folga, obtm-se o seguinte resultado: Min z = x1 - 2x2 s.a: x1 + x2 - e1 x2 x1, x2, e1, f1 = 1 + f1 = 4 0Observe que somente uma varivel de folga pode ser utilizada na composio da base inicial (variveis de excesso no resultam em bases iniciais viveis, no podendo ser utilizadas). Assim, para que seja possvel uma base inicial formada exclusivamente por variveis de folga, utiliza-se uma varivel de folga artificial, acrescida primeira restrio do problema. O resultado vem apresentado abaixo:78Restries devem ser identificadas no WB Restries podem ser de trs tipos: , , =. Ao escrever-se o sentido da restrio numa clula da planilha: a clula adjacente esquerda passa a ser identificada como aquela que contm a frmula da restrio; a clula adjacente direita passa a ser identificada como aquela que contm a disponibilidade do recurso.Prof. FogliattoPesquisa Operacional79Min z = x1 - 2x2 s.a: x1 + x2 - e1 x2 + f1+ Ma1 + a1 = 1 = 4x1, x2, e1, f1, a1 0 No mtodo do M-Grande, cada vez que uma varivel artificial adicionada ao problema, ela tambm adicionada na funo objetivo, multiplicada por um coeficiente de custo M, onde M representa um nmero positivo maior do que qualquer outro que venha a ocorrer no problema. No caso de problemas de maximizao, a varivel artificial tambm acrescida funo objetivo, mas multiplicada por um coeficiente de custo -M. A lgica por trs do mtodo do M-Grande simples. Se num problema de Minimizao uma das variveis apresenta um coeficiente de custo positivo e muito grande, certamente ser interessante manter tal varivel fora da base, a nvel zero. O mesmo ocorre em um problema de Maximizao. Se uma das variveis apresenta um coeficiente de custo negativo e muito grande, certamente ser interessante manter tal varivel fora da base, a nvel zero. Assim, o mtodo do M-Grande induz o algoritmo simplex a remover variveis artificiais da base, j que elas no melhoram a funo objetivo em quaisquer circunstncias. No momento em que todas as variveis artificiais so removidas da base, chega-se a uma base vivel e legtima para o problema. A partir desse ponto, as variveis artificiais podem passar a ser79Identifique restriesSelecione a clula onde ser escrito o sentido da 1a restrio.Prof. FogliattoNa opo WB! do menu, selecione constraints.Tela resultantePesquisa Operacional80desconsideradas do tableau. O mtodo do M-Grande ser ilustrado atravs do exemplo acima.x1 -1 1 0 x2 2 1 1 e1 0 -1 0 f1 0 0 1 a1 -M 1 0 RHS 0 1 4z a1 f1Observe que no tableau acima, a1 e f1 compem a base inicial (a varivel de folga artificial vem designada por a1). Como a1 bsica, o valor z5 - c5 correspondente a esta varivel na linha z do tableau deve ser zerado (atualmente, este valor igual a M). A primeira operao elementar realizada no tableau visa zerar o valor de z5 - c5.x1 -1 1 0 x2 2 1 1 e1 0 -1 0 f1 0 0 1 a1 -M 1 0 RHS 0 1 4(0) (1) (2)z a1 f1(0)' = (0) + M x (1)(0) (1) (2)z a1 f1x1 -1 + M 1 0x2 2+M 1 1e1 -M -1 0f1 0 0 1a1 0 1 0RHS M 1 480Confirme clicando OK. OKIdentificao da clula que deve conter a frmula da restrio.Identificao da clula que deve conter o lado direito da restrio.Identificao do tipo de restrio (default ).Prof. FogliattoPesquisa Operacional81Uma vez corrigida a linha z do tableau, executam-se os passos do algoritmo simplex normalmente. Os passos vm apresentados a seguir.xjx1 -1 + M 1 0 x2 2+M 1 1 e1 -M -1 0 f1 0 0 1 a1 0 1 0 RHS M 1 4mnima razoxkz a1 f11/1=1 4/1=4elemento de pivotx1 -1 + M 1 0 x2 2+M 1 1 e1 -M -1 0 f1 0 0 1 a1 0 1 0 RHS M 1 4(0) (1) (2)z a1 f1Nenhuma operao81Identificao do tipo da restrio e clulas consideradas.Identificao do tipo da restrio.Repita o procedimento para as demais restries.Prof. Fogliatto Pesquisa Operacional 82(0) (1) (2)z a1 f1x1 -1 + M 1 0x2 2+M 1 1e1 -M -1 0f1 0 0 1a1 0 1 0RHS M 1 4(0)' = (0) + (-M-2) x (1)(0) (1) (2)z a1 f1x1 -3 1 0x2 0 1 1e1 2 -1 0f1 0 0 1a1 -M-2 1 0RHS -2 1 4(0) (1) (2)z a1 f1x1 -3 1 0x2 0 1 1e1 2 -1 0f1 0 0 1a1 -M-2 1 0RHS -2 1 4(2)' = (2) - (1)(0) (1) (2)z a1 f1x1 -3 1 -1x2 0 1 0e1 2 -1 1f1 0 0 1a1 -M-2 1 -1RHS -2 1 382Selecione a clula onde o tipo da restrio deve ser escrito.Confira se clula passou a ser identificada como restrio.Clique no cone apropriado.Prof. FogliattoPesquisa Operacional83Na primeira iterao, a varivel artificial removida da base. Para verificar se as operaes elementares com as linhas do tableau foram executadas corretamente, verifique quais colunas contm Ms aps o pivot. Uma vez removidas as variveis artificiais da base, somente as colunas correspondentes a estas variveis devem conter Ms. Nas demais iteraes do simplex, a coluna a1 pode ser eliminada do tableau. A prxima iterao resulta em:xj(0) (1) (2) z a1 f1 x1 -3 1 -1 x2 0 1 0 e1 2 -1 1 f1 0 0 1 RHS -2 1 3xkelemento de pivot83Clique empara rodar a otimizaoValor das variveis de deciso no ponto timo.Valor da funo objetivo no ponto timo.Situao das restries no ponto timo.Prof. Fogliatto Pesquisa Operacional 84Aps iterao:x1 -3 1 -1 x2 0 1 0 e1 2 -1 1 f1 0 0 1 RHS -2 1 3(0) (1) (2)z a1 f1(0)' = (0) - 2 x (2) (1)' = (1) + (2) Nenhuma operao(0) (1) (2)z a1 f1x1 -1 0 -1x2 0 1 0e1 0 0 1f1 -2 1 1RHS -8 4 3Este o tableau timo. Observe que nas iteraes finais do mtodo, aps remoo da varivel artificial da base, a coluna correspondente varivel artificial deixou de ser utilizada no tableau do simplex.84Situao especial: Variveis de deciso devem ser inteirasTela resultanteSelecione as clulas onde foram escritos os zeros.Prof. FogliattoNa opo WB! do menu, selecione integer.Pesquisa Operacional 853.1.3. O algoritmo simplex em pacotes computacionais Diversos pacotes computacionais executam o algoritmo simplex. Os mais conhecidos so da famlia Lindo (www.lindo.com). Alm do prprio Lindo, disponvel na maioria dos livros-texto de Pesquisa Operacional, o programa Whats Best, implementado na planilha MSExcel, bastante popular. A prpria planilha Excel possui uma rotina de otimizao linear, designada por Solver e disponvel como add-in do programa. Todavia, o Solver no to amigvel como o Whats Best. Na sequncia, so apresentados dois tutorais para utilizao dos pacotes Whats Best e Lindo na soluo de problemas de Programao Linear. Esses dois pacotes computacionais podem ser obtidos da Internet gratuitamente atravs do site www.lindo.com. A. Tutorial do Whats Best O objetivo deste tutorial introduzir o usurio ao Whats Best (WB) atravs da soluo de um problema usando a planinha Excel. O nome do problema em questo XYZ; ele encontra-se descrito a seguir:85Escolha um nome para as variveis inteiras (qualquer nome serve).Clique em OK p/ confirmar. Identificao das clulas selecionadas como ajustveis e inteiras. Identifique se variveis de deciso so inteiras binrias (0 ou 1) ou qualquer nmero inteiro no-negativo (opo General). Ateno: default do programa binrioProf. FogliattoPesquisa Operacional86O problema de Produo XYZ A XYZ Corporation monta dois modelos de computador. O modelo Padro gera um lucro por unidade produzida de $300, enquanto o modelo Luxo gera um lucro por unidade de $500. Os dois modelos utilizam trs componentes para sua montagem: o chassis Padro, o chassis de Luxo e o drive de disquete. O modelo Padro utiliza um chassis Padro e um drive de disquete. O modelo Luxo utiliza um chassis Luxo e dois drives de disquete. Problema: qual combinao de modelos Padro e Luxo maximiza os lucros da XYZ, considerando os componentes atualmente em estoque? O problema XYZ encontra-se no arquivo XYZ.xls. Vamos na sequncia examinar suas caractersticas.86Outros programas de otimizao Solver do Excel Vantagem: suporta todas as funes matemticas do Excel. Desvantagem: esconde a formulao. Lindo Vantagem: executa anlise de sensibilidade e pode ser baixado gratuitamente da rede. Desvantagem: formulao deve ser escrita como texto.Tutorial do Lindo disponvel na apostilaProf. Fogliatto Pesquisa Operacional 87Examine o layout e a lgica do modelo. Teste vrias projees do tipo What If?. Por exemplo, tente ajustar a Quantidade a ser Produzida em ambas as clulas (C5 e D5) de modo a maximizar o Lucro (G6) sem que o Total de Componentes (E15:E17) exceda o nmero de componentes em estoque (G15:G17). Por exemplo, um possvel plano de produo consistiria em produzir o maior nmero possvel de modelos Luxo (j que eles apresentam o maior retorno por unidade produzida). Ento, com o que sobrar de componentes, produzir tantos modelos Padro quantos forem possveis. Este plano de produo usaria 50 chassis Luxo (E16), 20 chassis Padro (E15), e todos os 120 drives de disquete (E17) em estoque. Este plano resultaria num lucro total de $31000 (G6). Esta soluo, no entanto, pode ser melhorada utilizando o WB.87I. REVISO DE LGEBRA LINEARI.1. MATRIZES E VETORES Uma matriz qualquer arranjo retangular de nmeros. Uma matriz A com m linhas e n colunas uma matriz m x n. m x n a ordem de A. Forma geral: a11 a12 a a A = 21 22 M M a m1 am2L a1n L a2n O M L amn O nmero na isima linha e jsima coluna da matriz denominado aij.Prof. FogliattoPesquisa Operacional88Passos para utilizao do Whats Best A. Determinar as Adjustable Cells (se voc estiver lidando com um problema de programao inteira, v direto para o item B). Neste exemplo, desejamos determinar as quantidades a serem produzidas de ambos os modelos de computador (C5:D5). Para que o WB identifique essas clulas como numricas, voc deve digitar algum nmero nelas (zero, por exemplo). Na sequncia, especifique que as clulas C5 e D5 so ajustveis (adjustable) selecionando ambas as clulas e escolhendo a opo Adjustable no menu do WB (clique OK no dialog box). O WB vai apresentar as clulas ajustveis em azul. O default do WB restringe as clulas ajustveis a serem 0. Caso voc deseje permitir que uma clula ajustvel (correspondendo uma varivel de deciso do problema) assuma valores negativos, selecione a clula, escolha Adjustable no menu WB! e, em seguida, a opo Free. Verifique no Refers to: se a clula selecionada est correta e escreva um nome para aquela clula em Free names in Workbook (por exemplo, livre). Para concluir a operao, clique Add e OK. A partir deste ponto, o WB vai admitir valores negativos para a clula selecionada.88I.1 Matrizes e Vetores Uma matriz com uma nica coluna um vetor de coluna. Uma matriz com uma nica linha um vetor de linha. Vetores, por definio, so de coluna; um vetor de linha um vetor de coluna transposto. Um vetor de zeros designado por 0. Produto Escalar de Vetores: Sejam u = [ u1,,un ] um vetor (transposto) de linha e v = [ v1,,vn ] um vetor de coluna de igual dimenso. Seu produto escalar ser o nmero: u . v = u1v1 + u2v2 ++ unvnProf. Fogliatto Pesquisa Operacional 89B. Programao Inteira (se o problema no for de programao inteira, v direto para para o item C). Algumas solues para problemas de otimizao s podem ser interpretadas se forem expressas em termos de nmeros inteiros. Para que o WB! limite as solues de um problema quelas que resultarem em valores inteiros para as variveis de deciso, voc ter que programar as clulas ajustveis para este fim. No exemplo XYZ, as clulas C5:D5 devem ser programadas para aceitar somente nmeros inteiros. Marque essas clulas e selecione a opo Integer no menu WB! No box de dilogo, confira se as clulas marcadas so as desejadas (elas esto apresentadas abaixo do Refers to:). A seguir, escolha um nome para as clulas (por exemplo, modelos) e escreva em Integer names in workbook, clicando Add e OK para finalizar a operao.89I.1 Matrizes e Vetores O produto escalar: v1 v.u = M [u1 L un ] vn no definido.Prof. FogliattoPesquisa Operacional90C. Determine o Objetivo (Best) O objetivo da XYZ maximizar o lucro, o que pode ser expresso em termos matemticos pela expresso: Lucro Total = (Qtdd de Modelos Padro produzidos) (Lucro por unidade do Modelo Padro) + (Qtdd de Modelos Luxo produzidos) (Lucro por unidade do Modelo Luxo) Esta frmula aparece na clula G6 como =C5*C8+D5*D8. Para fazer com que a frmula em G6 seja tratada como funo objetivo pelo WB, mova o cursor para aquela clula escolha Best no menu WB!. A seguir, seleciona Maximize e clique OK.90OPERAES COM MATRIZES a11 a Seja uma matriz qualquer de ordem (m x n) : A = 21 M a m1Transposto de uma Matriz: O transposto de A, designado por A, ser uma matriz de ordem (n x m):a12 a22 M am 2a21 a22 M a2 nL a1n L a2 n O M L amn L am1 L am 2 O M L amn 91 a11 a A = 12 M a1nProf. FogliattoPesquisa OperacionalD. Especifique as restries (constraints) As restries do problema nos informam que o total de componentes utilizados (E15:E17) deve ser menor ou igual ao nmero em estoque (G15:G17). A frmula para o total de chassis Padro utilizados =C5*C15+D5*D15. As clulas E16 e E17 apresentam frmulas similares para os componentes Chassis Luxo e Drives de Disquete. Para especificar as restries, marque com o cursor as clulas F15:F17, escolha Constrain no menu do WB! E clique OK. Observe que o dialog box da opo Contrain apresenta E15:E17 como lado esquerdo da equao (left hand side of the equation), =G15:G17 como lado direito (right hand side of the equation), $F$15:$F$17 como a localizao onde as restries esto armazenadas na planilha, e lindo 2.2. Abra um problema salvo em arquivo No Tutorial 1, o problema foi gravado nos formatos Lindo e texto. Existem dois comandos diferentes para carregar o problema, conforme o formato usado para salv-lo. Escolha um deles: 2.2.1. Carregue um problema gravado no formato Lindo : retr a:\mydata\giapetto.lnd 2.2.2. Carregue um problema gravado no formato texto : take a:\mydata\giapetto.lp Com esses comandos, voc carregou o problema na memria do Lindo.100Para resolver o problema pelo Simplex, temos que adicionar variveis de folgaMax z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + x3 + f1 4x1 + 2x2 + 1.5 x3 + f2 2x1 + 1.5x2 + 0.5 x3 + f3 x1, x2, x3, f1, f2, f3 = = = 48 20 8 0Uma vez adicionadas variveis de folga e excesso, o problema dito no formato padro, pronto para ser resolvido atravs do mtodo Simplex!Prof. Fogliatto Pesquisa Operacional 1012.3. Revisualize o problema Revisualize o problema que voc carregou usando o comando look: : look all 2.4. Execute somente uma iterao (pivot) O comando go executa mltiplas iteraes at chegar numa soluo tima (nica, infinita ou invivel). Para executar um nico pivot, use o comando piv: : piv101Conceitos-chave no mtodo Simplex Variveis de folga e excesso. Folgas introduzidas em restries do tipo . Excessos introduzidos em restries do tipo . Variveis bsicas e no-bsicas. Bsicas = var. p/ as quais o sistema de equaes resolvido. No-bsicas = var. zeradas para que o sistema de equaes apresente uma soluo (equaes=variveis).Prof. Fogliatto Pesquisa Operacional 102Anotaes:102Solucionando problemas de otimizao linear no tableau do simplex O tableau inicial tem a seguinte estrutura:Prof. FogliattoPesquisa Operacional1032.5. Apresente o tableau atual Para visualizar o tableau aps o pivot em 2.4, use o comando tabl: : tabl 2.6. Salvando o tableau atual Para salvar o tableau atual, use os comandos dive e rvrt: : dive a:\mydata\giapetto.tab : tabl : rvrt103Montagem do tableau passo a passo A montagem do tableau sempre pressupe variveis de folga formando a base inicial O no de variveis na base igual ao no de restries no problema Se no houver variveis de folga em quantidade suficiente para formar a base inicial, utilizaremos variveis de folga artificiais (vistas mais adiante)Prof. Fogliatto Pesquisa Operacional 1042.7. Visualizando a soluo atual A soluo atual ainda no tima, mas voc deseja visualiz-la (valor da funo objetivo, valores das variveis de deciso, folga e excesso). Para tanto, use o comando solu: : solu Lindo avisar o usurio de que a soluo atual pode no ser a tima. Neste caso, a soluo tima pode aparecer nos prximos pivots. 2.8. Saindo do programa Lindo : quit104Montagem do tableau passo a passoLista das variveis no cabealho das colunas Para um problema com n variveis, o tableau ter n + 2 colunas Cada varivel ser posicionada em uma coluna do tableau: Inicie pelas variveis estruturais (x1, x2, ...) Depois lista folgas, excessos e artificiais na ordem em que aparecerem nas restriesProf. Fogliatto Pesquisa Operacional 1052.9. Imprimindo o tableau atual Para imprimir o tableau que voc salvou no passo 2.6, digite: Print a:\mydata\giapetto.tab105Primeira coluna do tableau A primeira coluna a coluna z: Ali so listadas as variveis bsicas do tableau Exemplo:Base inicial formada por f1, f2 e f3Prof. FogliattoPesquisa Operacional1064. PROGRAMAO INTEIRA Existemtrs tipos de problemas de Programao Inteira (PI): A) Puros - todas as variveis de deciso so inteiras. B) Mistos - algumas variveis de deciso so inteiras. C) Booleanos - variveis de deciso s apresentam valores inteiros no intervalo [0, 1]. A todo o problema de PI existe um problema de problema de programao linear correspondente no qual as restries de no-fracionariedade so removidas (ou relaxadas). Alguns resultados se seguem: (i) Espao de solues viveis do PI Espao de solues viveis do PI relaxado. (ii) Valor timo de z do PI Valor timo do PI relaxado.106ltima coluna do tableau a coluna RHS (right hand side): Ali aparecem o valor atual da funo objetivo (no cruzamento entre coluna RHS e linha z) e o valor das variveis que esto na base No primeiro tableau (se as var. de folga forem a base inicial), o valor atual da funo objetivo zero e o valor das variveis na base correspondem ao lado direito das restriesProf. Fogliatto Pesquisa Operacional 107Uma possvel abordagem para soluo de problemas de PI resolver seus problemas correspondentes relaxados e arredondar as variveis de deciso para o maior ou menor inteiro mais prximo. Todavia, dois problemas podem resultar desta abordagem: (a) os valores arredondados podem resultar pontos inviveis no PI; (b) as solues resultantes so altamente sub-timas. 3.1. Mtodo Branch-and-Bound para soluo de problemas PIs puros Considere o problema de PI: Max z = 8x1 + 5x2 s.a x1 + x2 6 9x1 + 5x2 45 x1 , x2 0 x1 , x2 inteiros. O mtodo de soluo de problemas de PI utilizando o branch-and-bound operacionalizado em cinco passos, descritos a seguir (Winston, 1994).107ltima coluna do tableauExemploValor da f.o. para a base atualValor de f1, f2 e f3 na baseProf. Fogliatto Pesquisa Operacional 1081. Comece resolvendo o PI relaxado. Se a soluo tima for inteira, esta a soluo do PI. Quando este no for o caso, a soluo tima do IPR (problema de programao inteira relaxado) o limite superior da soluo tima do PI. A soluo tima do IPR exemplificado na pgina anterior dada por: z* = 165/4 x1 = 15/4 x2 = 9/4 2. Escolha uma varivel de deciso fracionria em z* do PIR, por exemplo, x1 = 15/4. O PI admite valores de x1 3 ou x1 4, mas no em 3 < x1 < 4. Crie dois subproblemas a partir de x1: SP2: SP1 + restrio x1 4. SP3: SP1 + Restrio x1 3. A sigla SP designa subproblema. O problema designado por SP1 o prprio problema de PI em estudo, relaxado das restries de no-fracionariedade.108Linhas do tableau O tableau do simplex constitudo de m + 1 linhas (m = no de restries do problema): A primeira linha denominada linha z: Analisando a linha z se verifica se o tableau timo ou se h melhorias possveis na funo obj. As demais linhas esto associadas s variveis que esto na base, uma por varivelProf. Fogliatto Pesquisa Operacional 1093. Escolha qualquer SP listado no passo anterior e resolva como se fosse um problema de Programao Linear. Digamos SP2, com soluo tima z* = 41, x1 = 4 e x2 = 9/5. Os resultados obtidos at agora podem ser apresentados na forma de uma rvore hierrquica.SP1: z* = 165/4, x1 = 15/4, x2 = 9/4 x1 4 SP2: z* = 41, x1 = 4, x1 3 arco SP3: z* = ?x2 = 9/5nodo109Linha z No tabelau inicial, a linha z dada pelos coeficientes de cada varivel na funo objetivo, com o sinal invertido: Variveis de folga e de escesso tm coeficientes zero, pois nunca esto na f.o. original Embaixo das variveis bsicas, na linha z do tableau, s pode-se ter o valor 0!Prof. Fogliatto Pesquisa Operacional 1104. Repita o procedimento em (3) usando o SP2 e a varivel de deciso fracionria x2 = 9/5. Os subproblemas resultantes so: SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2. SP5: SP1 + x1 4 + x2 1 ou SP2 + x2 1. Tem-se trs problemas que podem ser resolvidos: SP3, SP4 e SP5. Escolhe-se dentre eles um para resoluo; por exemplo, SP4. SP4 no apresenta solues viveis, no podendo, assim, gerar uma soluo tima para o problema de PI. Assim, diz-se que este nodo da rvore foi terminado. Dentre os SPs no resolvidos, escolhe-se o mais recente, SP5. A soluo vm apresentada na rvore do problema, a seguir.110Exemplo de montagem da linha zMax z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + x3 + f1 4x1 + 2x2 + 1.5 x3 + f2 2x1 + 1.5x2 + 0.5 x3 + f3 x2, x3, f1, f2, f3 x1, = = = 48 20 8 0Prof. FogliattoPesquisa Operacional111SP1: z* = 165/4, x1 = 15/4, x2 = 9/4 x1 4 SP2: z* = 41, x1 = 4, x1 3 SP3: z* = ?x2 = 9/5x2 2 SP4: Invivel. x2 1 SP5: z* = 365/9,x1 = 40/9, x2 = 1111Demais linhas do tableau Copia-se literalmente o sistema de restries do problema:Prof. FogliattoPesquisa Operacional1125. Repita o procedimento em (3) usando SP5 e a varivel de deciso fracionria x1. Os subproblemas resultantes so: SP6: SP5 + x1 5. SP7: SP5 + x1 4. Trs SPs podem ser resolvidos: SP3, SP6 e SP7. Escolhe-se, aleatoriamente, um dos mais recentes; SP7, por exemplo. A soluo tima para o problema SP7 vem dada na rvore a seguir. A soluo s possui valores inteiros para a varivel de deciso, podendo ser interpretada como uma soluo candidata ou um limite inferior no valor timo do problema de PI.112Prtica 5Considere o problema abaixo: Min z = 3x1 - x2 + 5x3 s.ax1 + x 3 4 4 x1 + x 2 2 x 3 0 3 x1 x 3 2 x1 , x 2 , x 3 0Transforme as inequaes em equaes introduzindo var. de folga. Monte o tableau inicial do problema.Prof. Fogliatto Pesquisa Operacional 113Soluo da Prtica 5:SP1: z* = 165/4, x1 = 15/4, x2 = 9/4 x1 4 SP2: z* = 41, x1 = 4, x1 3 SP3: z* = ?x2 = 9/5x2 2 SP4: Invivel. x2 1 SP5: z* = 365/9,x1 = 40/9, x2 = 1x1 5 SP6: z* = 40, x1 = 5, x1 4 SP7: z* = 37, x1 = 4,x2 = 0. Limite Inferior = 37 Soluo candidatax2 = 1. Soluo excluda.113ALGORITMO SIMPLEX NO TABLEAU Passo 1 Verifique se a base atual a base tima do problema: Um problema de Minimizao est na base tima se todos os valores abaixo das variveis na linha z do tableau so negativos ou zeroEx.:O algoritmo encerra aqui!Prof. Fogliatto Pesquisa Operacional 114Os problemas SP3 e SP6 ainda no foram resolvidos. Seguindo a regra de resolver o mais recente, escolhe-se SP6, com soluo dada na rvore da pgina anterior. A soluo de SP6 inteira e melhor do que aquela obtida para SP7. Assim, termina-se o nodo da rvore em SP7 (identifica-se o nodo terminado por um ou escrevendo soluo excluda no nodo) e atualiza-se o limite inferior da rvore; o novo limite LI 40. O ltimo SP a ser resolvido SP3, com soluo dada por z* = 39, x1 = x2 = 3. Esta uma soluo candidata com z* < LI. Assim, o nodo SP3 terminado e SP6 identificado como a soluo tima para o problema de PI.114ALGORITMO SIMPLEX NO TABLEAU Passo 1 Verifique se a base atual a base tima do problema: Um problema de Maximizao est na base tima se todos os valores abaixo das variveis na linha z do tableau so positivos ou zeroEx.:O algoritmo encerra aqui!Prof. Fogliatto Pesquisa Operacional 115Alguns aspectos importantes do mtodo B & B para a soluo de PIs puros devem ser salientados: a) Sempre que no for necessrio desdobrar um subproblema, ele deve ser terminado. Os critrios utilizados para terminao so: i. o SP no possui solues viveis. ii. O SP gera uma soluo tima contendo somente valores inteiros. iii. O SP apresenta um valor de z* menor (em problemas de PI do tipo Maximizao) que o limite inferior atual.115ALGORITMO SIMPLEX NO TABLEAUPasso 2 Identifique a varivel a entrar na base: Em problema de Minimizao, o valor mais positivo abaixo das variveis na linha z do tableau denota a varivel entrante Em problema de Maximizao, o valor mais negativo na linha z denota a varivel entranteProf. FogliattoPesquisa Operacional116b) Um SP eliminado (passa a ser desconsiderado do problema) sempre que: i. o SP no possui solues viveis. ii. O LI (limite inferior) atual pelo menos to grande quanto o valor z* do SP em questo.c) A regra ltimo a entrar, primeiro a sair, que indica qual SP deve ser trabalhado dentre vrios candidatos fora o analista a trabalhar um mesmo da ramo da rvore de solues at o final. Existem outras regras possveis(ver Schrage, 1997, entre outros). d) Quando um SP apresenta soluo tima com duas ou mais variveis de deciso fracionrias, trabalhe com aquela que representar maior ganho na funo objetivo (ou seja, aquela que possuir maior coeficiente de custo associado).Schrage, L. (1997). Optimization Modeling with LINDO, 5th Ed., Pacific Grove (CA): Duxbury Press.116ALGORITMO SIMPLEX NO TABLEAUPasso 3 Identifique a varivel que sai da base atravs do teste da mnima razo: Divida os nos (abaixo da linha z) no lado direito do tableau pelos nos positivos em posies correspondentes na coluna da varivel entrante (abaixo da linha z) A menor razo indica a varivel que sai da baseProf. Fogliatto Pesquisa Operacional 1173.2. Mtodo Branch-and-Bound para soluo de problemas PIs mistos Modifique o algoritmo anterior da seguinte maneira: i. desdobre somente variveis de deciso restritas a no-fracionrias. ii. Considere a soluo tima de um SO como sendo uma soluo candidata soluo tima do problema de PI quando esta atender s restries de nofracionariedade.117ALGORITMO SIMPLEX NO TABLEAUPasso 3 Exemplo (Minimizao)varivel entranteElemento de pivot Razes: 4/2=2 8/1=8 Menor razo! Varivel x1 sai da base para que x2 possa entrar No 2 na coluna do x2 o elemento de pivot!Pesquisa Operacional 118Prof. Fogliatto3.3. Mtodo Branch-and-Bound em problemas de sequenciamento de trabalhos em mquinas O mtodo B&B aplicado a problemas de sequenciamento pode ser melhor introduzido atravs de um exemplo. Suponha quatro trabalhos a serem processados numa mesma mquina. O tempo necessrio para processamento de cada trabalho e as datas de entrega vm dados abaixo:Trabalho 1 Trebalho 2 Trabalho 3 Trabalho 4Tempo necessrio (dias) Data da entrega 6 Final do dia 8 4 Final do dia 4 5 Final do dia 12 8 Final do dia 16O atraso do trabalho medido pelo nmero de dias aps a data de entrega em que o trabalho completado. Trabalhos finalizados na data de entrega ou antes, tm atraso zero. Determine a ordem de processamento dos trabalhos que minimize o atraso total.118ALGORITMO SIMPLEX NO TABLEAUPasso 3 Exemplo (Maximizao)varivel entranteRazes: 4 / -2 = No vale! 8/2=4Elemento de pivotnica razo (menor por definio!) Varivel f2 sai da base para que f1 possa entrar No 2 na coluna do f1 o elemento de pivot!Pesquisa Operacional 119Prof. FogliattoDefina as seguintes variveis de deciso:1, quando o trabalho i for processado na posio j. xij = 0, caso contrrio.Considere o ltimo trabalho a ser processado. Qualquer que seja a sequncia, ela ter x14 = 1, x24 = 1, x34 = 1 ou x44 = 1. Assim, cria-se uma rvore com quatro nodos e calcula-se o limite inferior no atraso total associado a cada nodo. O clculo do atraso para o quarto trabalho : x44 = 1, ou seja, o trabalho 4 seria completado com atraso total de 23 - 16 dias. Os 23 dias foram obtidos somando (6 + 4 + 5 + 8); ver tabela na pgina anterior. Aplica-se o mesmo racioccio para os demais trabalhos processados na posio 4. Os resultados vm mostrado na rvore na pgina seguinte. O limite inferior no atraso total D 7. Ou seja, posicionando-se o trabalho 4 na quarta posio, obtem-se o menor atraso total.119ALGORITMO SIMPLEX NO TABLEAUPasso 3 Nota importante O critrio de entrada na base depende da funo objetivo do problema (maximizao ou minimizao) O teste da mnima razo, entretanto, o mesmo, independente do tipo de funo objetivo!Prof. FogliattoPesquisa Operacional120Melhor sequenciamento x14 = 1 NODO 1: D 15x24 = 1 NODO 2: D 19x34 = 1 NODO 3: D 11x44 = 1 NODO 4: D7120ALGORITMO SIMPLEX NO TABLEAUPasso 4 Realize o pivot para a troca de base: Atravs de operaes elementares com linhas do tableau, faa com que a coluna da varivel entrante fique igual a coluna da varivel que est saindo da base Inicie as operaes pelo elemento de pivotProf. FogliattoPesquisa Operacional121Escolhe-se o nodo com menor valor de atraso D (no caso, o nodo 4) para continuar o mtodo. Qualquer sequncia associada ao nodo 4 deve ter x13 = 1, x23 = 1 ou x33 = 1. O clculo do limite inferior LI de atraso similar quele visto anteriormente: x33 = 1, ou seja, o trabalho 3 seria completado com atraso total de 15 - 12 dias. Os 15 dias foram obtidos somando (6 + 4 + 5). O atraso total ser de pelo menos 3 + 7 dias (D 10). Escolhe-se o nodo 7 (menor valor de D) para desdobrar. Qualquer sequncia associada a este nodo deve ter x12 = 1 ou x22 = 1. Os atrasos totais so: Nodo 9 - sequncia 1-2-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (6+4-4)(tr. 2) + 0(tr. 1) = 16 dias. Nodo 8 - sequncia 2-1-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (4+6-8)(tr. 1) + 0(tr. 2) = 12 dias. Qualquer soluo com D > 12 pode ser eliminada de considerao (nodos 1, 2, 5, 6, 9). Desdobra-se o nodo 3. Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43 = 1. O clculo do limite inferior de atraso :121ALGORITMO SIMPLEX NO TABLEAUPasso 4 Exemplovarivel entranteElemento de pivot Coluna da varivel f1 deve ficar igual coluna da varivel f2Prof. FogliattoPesquisa Operacional122x13 = trabalho 1 completo no final do dia (8+4+6) = 18 - 8 = 10 + 11 = 21 x23 = trabalho 2 completo no final do dia (8+4+6) = 18 - 4 = 14 + 11 = 25 x43 = trabalho 4 completo no final do dia (8+4+6) = 18 - 16 = 2 + 11 = 13 A sequncia tima 2 - 1 - 3 - 4. O atraso total de 12 dias.122ALGORITMO SIMPLEX NO TABLEAUALGORITMO SIMPLEX NO TABLEAUPasso 4 ExemploInicie pelo elemento de pivot: ele deve virar 1Passo 4 ExemploA linha de trabalho ser usada nas operaes que transformaro os demais nos da coluna da varivel entrante em zeroProf. Fogliatto Pesquisa Operacional 123Como o problema de minimizao e no h mais valores negativos na linha z do tableau abaixo das variveis, esta a base tima do problema! Prof. Fogliatto Pesquisa Operacional 124ALGORITMO SIMPLEX NO TABLEAUALGORITMO SIMPLEX NO TABLEAUPasso 5 Volte ao passo 1Alguns comentrios Cada tableau do simplex corresponde a uma base diferente do problema. Assim: O valor da funo objetivo nunca deve piorar a medida que a troca de bases ocorre As variveis bsicas no podem assumir valores negativos (ou houve erro no teste da mnima razo!)Prof. FogliattoPesquisa Operacional125Prof. FogliattoPesquisa Operacional126ALGORITMO SIMPLEX NO TABLEAUALGORITMO SIMPLEX NO TABLEAUAlguns comentrios Problemas de maximizao podem apresentar valores negativos de funo objetivo (depende da funo) e vice-versa Atualize as variveis na base: aps cada pivot, certifique-se de que o cabealho das linhas est corretoAlguns comentrios As colunas das variveis bsicas no tableau abaixo da linha z devem sempre corresponder a colunas de uma matriz identidadeProf. FogliattoPesquisa Operacional127Prof. FogliattoPesquisa Operacional128Situaes especiais:Exemplo c/ solues timas alternativasMin z = -2x1 - 4x2 s.a: x1 + 2x2 4 -x1 + x2 1 x1, x2 061. Solues timas alternativas; 2. Soluo infinita (tendendo ao infinito). 3. Base inicial no disponvel (problema c/ variveis de excesso ou restries do tipo =).4 B3 2 B2 B1Reta de solues timas alternativaszProf. Fogliatto Pesquisa Operacional 129 Prof. Fogliatto246130Pesquisa OperacionalTableauExemplo c/ soluo tendendo ao infinitoMin z = - x1 - 3x2 s.a: x1 - 2x2 4 -x1 + x2 3 x1, x2 0B2 26Soluo tima 4zProf. Fogliatto Pesquisa Operacional 131 Prof. FogliattoB1246132Pesquisa OperacionalTableauEx. c/ base inicial no disponvelMin z = x1 - 2x2 s.a: - x1 + x2 1 x2 4 x1, x2 0Adicionando excesso e folga6 B3 (Base tima) 4Min z = x1 - 2x2 s.a: x1 + x2 - e1 = 1 x2 + f1 = 4 x1, x2, e1, f1 0Adicionando artificial2 B2 B1Min z = x1 - 2x2 + Ma1 s.a: x1 + x2 - e1 + a1 = 1 x2 + f1 = 4 x1, x2, e1, f1, a1 0Prof. Fogliatto Pesquisa Operacional 133 Prof. Fogliatto246z134Pesquisa OperacionalTableauPrtica 6A Soluo tima nicaMax z = 60x1 + 30x2 s.a: 8x1 + 6x2 4x1 + 2x2 2x1 + 1.5x2 x1, x2, + 20x3 + x3 48 + 1.5 x3 20 + 0.5 x3 8 x3 0Prof. FogliattoPesquisa Operacional135Prof. FogliattoPesquisa Operacional136Prtica 6B Soluo Max z = 36x1 + 30x2 - 3x3 - 4x4 s.a: x1 + x2 - x3 5 6x1 + 5x2 - x4 10 x1, x2, x3, x4 0Prtica 6C Solues timas alternativasMax z = -3x1 + 6x2 s.a 5x1 + 7x2 35 -x1 + 2x2 2 x 1 , x2 0Prof. FogliattoPesquisa Operacional137Prof. FogliattoPesquisa Operacional138Prtica 6D Base Inicial no-disponvelPrtica 6E Base Inicial no-disponvelMax z = -x1 - 2x2 s.a 3x1 + 4x2 12 2x1 - x2 2 x1 , x 2 0Min z = -x1 s.a x1 -x1 + x1 ,x2 x2 1 x2 1 x2 0Este problema no possui solues viveis (confira graficamente). Verifique como o mtodo do M-Grande vai sinalizar a ausncia de solues viveis.Prof. Fogliatto Pesquisa Operacional 139 Prof. Fogliatto Pesquisa Operacional 140Prticas AdicionaisMax z = 2x1 + x2 - x3 s.a x 1 + x2 + 2 x 3 6 x1 + 4x2 - x3 4 x1, x2, x3 0 Min z = 3x1 - 3x2 + x1 + 2x2 -3x1 - x2 + x1, x2, x3 x3 5 x3 4 x3 0O PROBLEMA DUAL Todo o problema de programao linear possui um problema dual correspondente. Chamaremos o problema original de primal e o problema dual de dual.s.aPrimal Max MinDual Min Maxs.aMax z = 2x1 - x2 x1 + x2 3 -x1 + x2 1 x1, x2, 0Pesquisa Operacional 141 Variveis do problema primal z, x1, x2,,xn. Variveis do problema dual w, y1, y2,,ym.Prof. FogliattoProf. FogliattoPesquisa Operacional142Escrevendo o dual de um problema de progr. linearMax z = c1x1 + c2x2 + + cnxn s.a: a11x1 + a12x2 + + a1nxn b1 a21x1 + a22x2 + + a2nxn b2M M M MEXEMPLOMax z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + 1x3 48 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x1, x2, x3 0 P r i m a lam1x1 + am2x2 + + amnxn bmMin w = b1y1 + b2y2 + + bmym s.a: a11y1 + a21y2 + + am1ym c1 a12y1 + a22x2 + + am2ym c2M M M Ma1ny1 + a2ny2 + + amnym cnMin w = 48y1 + 20y2 + 8y3 s.a: 8y1 + 4y2 + 2y3 60 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20 y1, y2, y3 0D u a lProf. FogliattoPesquisa Operacional143Prof. FogliattoPesquisa Operacional144A isima restrio do dual corresponde isima varivel do primalUsando a tabela abaixo, pode-se achar o dual de qualquer primal:Min 0 0 Irrestr. = Max = 0 0 Irrestr.OUTRO EXEMPLOMax z = 2x1 + x2 s.a: 2x1 + x2 = 2 2x1 - x2 3 x1 - x2 1 x1 0, x2 irrestr. P r i m a lVariveisRestriesRestriesVariveisMin w = 2y1 + 3y2 s.a: 2y1 + 2y2 y1 - y2 y1 irrestr.,+ 1y3 + y3 2 - y3 = 1 y2 0, y3 0D u a lProf. FogliattoPesquisa Operacional145Prof. FogliattoPesquisa Operacional146INTERPRETAO ECONMICA DO PROBLEMA DUALO exemplo visto anteriormente: Max z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + 1x3 48 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x1, x2, x3 0 Corresponde modelagem matemtica do seguinte problema:Insumo Escrivaninha Tbua 8 Acabamto 4 Carpintaria 2 Lucro Venda $60Prof. FogliattoO DUAL DESTE PROBLEMA :Min w = 48y1 + 20y2 + 8y3 s.a: 8y1 + 4y2 + 2y3 60 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20 y1, y2, y3 0 Escrivaninha Mesa Cadeira 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?147 Prof. Fogliatto Pesquisa Operacional 148Produto Mesa 6 2 1.5 $30Cadeira 1 1.5 0.5 $20Qtidd de Insumo 48 20 8Pesquisa OperacionalDefinindo 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 carpintaria O gio total a ser cobrado por estes insumos corresponder funo objetivo: Min w = 48y1 + 20y2 + 8y3O 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 60Restrio das escrivaninhasOu 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. O mesmo ocorre com as outros produtos: 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20Restr. das mesas Note que a funo objetivo busca minimizar o custo de compra: este o ponto de vista do comprador.Restr. das cadeiras150Prof. FogliattoPesquisa Operacional149Prof. FogliattoPesquisa OperacionalPara determinarmos o menor gio de compra dos insumos que mantenha a venda desses insumos interessantes para o fabricante, devemos resolver o problema dualExerccioDetermine o dual do seguinte problema de programao linear: Max z = x1 + s.t.: 3x1 + 2x1 + x1,151 Prof. Fogliatto As variveis y1, y2, y3 so normalmente denominadas preossombra dos insumos.restrio corresponde Por definio, o preo-sombra da melhoria no valor z da funo objetivo ocasionada pelo incremento de uma unidade no lado direito da restrio [ou seja, de bi para (bi + 1)].isima2x2 x2 6 x2 = 5 x2 0Pesquisa Operacional 152Prof. FogliattoPesquisa OperacionalComo ler a soluo tima do dual a partir da linha 0 (ou linha z) do tableau timo do primal Caso 1 - Primal = MaxPara resolver o problema abaixo: Max z = 3x1 + 2x2 + 5x3 s.a: 1x1 + 3x2 + 2x3 15 2x2 - x3 5 2x1 + x2 - 5x3 = 10 x2, x3 0 x1,Tableau timox1 zAdicionar var. folga f1 Adicionar var. excesso e2 e art. a2 Adicionar var. artificial a3x2 0 0 1 0x3 0 1 0 0f151 4 2 9e258 5a258 -5 9a39 -2 -1 7RHS565 15 650 0 0 1/23/23 M- /23 M+ /23 /23 /23 /23/23x3 x2 x1/23 /23 /23/23 /23 /23/23 /23 /23-9/23 /2317-17/23120 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 Pesquisa Operacional 153 Prof. Fogliatto Pesquisa Operacional 154Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Max)Valor timo da var. dual yi qdo restrio i do tipo No tableau timo do exemplo anterior:y1 -y2e258 5y3-Ma2 a3 RHS565 15 65Coeficiente de fi na linha 0 do tableau timoz z 1x1 0 0 0 1x2 0 0 1 0x3 0 1 0 0f151 4 2 9/23/23 M-58/23 M+9/23-5 9/23x3 0/23 /23 /23/23 /23 /23/23-2 -1 7/23 /23/23 /23 /23Valor timo da var. dual yi qdo restrio i do tipo -(Coeficiente de ei) na linha 0 do tableau timox2 0 x1 0-9/23 /2317-17/23120Valor timo da var. dual yi qdo restrio i do tipo =(Coeficiente de ai na linha 0 do tableau timo) - MOu seja, o problema dual possui a seguinte soluo tima: y1 =51/ ; 23y2 = -58/23; y3 = 9/23Pesquisa Operacional 156Prof. FogliattoPesquisa Operacional155Prof. FogliattoConferindo o resultado na funo objetivo do problema dualMin w = 15y1 + 5y2 + 10y3 y1 =51/ ; 23Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Min)Valor timo da var. dual yi qdo restrio i do tipo Coeficiente de fi na linha 0 do tableau timoy2 = -58/23; y3 = 9/23Valor timo da var. dual yi qdo restrio i do tipo -(Coeficiente de ei) na linha 0 do tableau timow = 565/23 Valor timo da var. dual yi qdo restrio i do tipo = (Coeficiente de ai na linha 0 do tableau timo) + MProf. FogliattoPesquisa Operacional157Prof. FogliattoPesquisa Operacional158ExerccioProf. FogliattoPesquisa Operacional159Pesquisa OperacionalParte 2O Problema do TransporteDescrio Geral de um problema de transporte: 1. Um conjunto de m pontos de fornecimento a partir dos quais um insumo embarcado ou remetido. O ponto de fornecimento i pode fornecer no mximo si unidades.Graduao em Engenharia de Produo DEPROT / UFRGS Prof. Flavio Fogliatto, Ph.D.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. FogliattoPO - Graduao2Descrio 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.Formulao do ProblemaSeja xij = no de unidades despachadas do ponto de fornecimento i para o ponto de demanda j. A formulao genrica do problema do transporte ser:Min cij xiji =1 j =1 nm ns.t. xij sij =1 m i =1(i = 1,..., m) ( j = 1,..., n)Restries de fornecimento xij d jxij 0Restries de demandaProf. FogliattoPO - Graduao3Prof. FogliattoPO - Graduao4Problema BalanceadoUm problema de transporte considerado balanceado se:Como balancear um problema de transporte quando a capacidade de fornecimento excede a demandaCria-se um ponto fictcio de demanda. A demanda nesse ponto ser igual ao excedente da capacidade.i =1 si = d jj =1mnComo balancear o problema quando a demanda maior que a capacidade de fornecimento?Ou seja, o fornecimento supre toda a demanda. Neste caso, o problema no possui solues viveis. Num problema balanceado, as restries so todas igualdades. Como alternativa, pode-se adicionar um ponto fictcio de fornecimento. O custo de fornecimento daquele ponto ser igual penalizao incorrida pelo no fornecimento do insumo.Prof. Fogliatto PO - Graduao 5 Prof. Fogliatto PO - Graduao 6O Tableau de TransporteFornecimento c11 c12ExemploDois 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 vem dado ao lado... Cid.1 Cid.2 Cid.3 Reserv. 1 Reserv. 27 Prof. Fogliatto PO - GraduaoL Lc1ns1c21c22c2ns2Mcm1Mcm2OL LPO - GraduaoMcmnMsm$7 $9$8 $7$8 $88Demandad1d2dni =1Prof. Fogliatto si = d jj =1mnTableau do SimplexCid. 1 Res. 1 Res. 2 Res. Artif.Demanda 7Prtica:50 50A Aosul produz trs tipos de ao em suas trs plantas. O tempo necessrio para fabricar 1 tonelada de ao (independente do tipo) e os custos de fabricao em cada planta vem dado abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta opera 40 horas por semana. Escreva o problema (o objetivo minimizar o custo de fabricao dos aos) e organize o problema no tableau do transporte. Custo Ao 2 $40 $30 $20Cid. 28Cid. 38Capacidade97820182320 40 40 40Planta 1 Planta 2 Planta 3 Ao 1 $60 $50 $43Ao 3 $28 $30 $20Tempo (min) 20 16 15Prof. FogliattoPO - Graduao9Prof. FogliattoPO - Graduao10Mtodo 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 que x11 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 valor de 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 valor de s1 para s1 - d1.Prof. Fogliatto PO - Graduao 11Mtodo do Extremo Noroeste para Determinao da Soluo Vivel Inicial de um problema de TransporteSe x11 = s1 = d1, desconsidere as demais clulas na primeira linha ou na primeira coluna do tableau (mas no ambas). Se voc escolher desconsiderar a linha 1, mude d1 para 0. Se voc escolher desconsiderar a coluna 1, mude s1 para 0. Repita o procedimento, sempre escolhendo a clula posicionada no extremo noroeste do tableau (desde que ela no esteja em uma linha ou coluna eliminada anteriormente). Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicial para o problema.Prof. Fogliatto PO - Graduao 12ExemploO mtodo do extremo noroeste no utiliza os custos, omitidos nos tableaus abaixo: 55 0Exemplo57 010 15 12 7 8 4 610 3 157 0846x11 = Min {12, 5} = 5Prof. Fogliatto PO - Graduao 13 Prof. Fogliatto PO - Graduaox21 = Min {10, 7} = 714Exemplo57 3 0Exemplo50 7 3 03 150 15 10 4 65 0 5 008 546x22 = Min {8, 3} = 3Prof. Fogliatto PO - Graduao 15 Prof. Fogliatto PO - Graduaox32 = Min {15, 5} = 516Exemplo57 3 5 0 0 4 4 0 6 0Exemplo500 10 6Base Inicial Vivel73 5 4 4 6 6 00 6 000x33 = Min {10, 4} = 4Prof. Fogliatto PO - Graduao 17 Prof. Fogliatto PO - Graduaox34 = Min {6, 6} = 618O Mtodo Simplex para problemas de transporteDecidindo qual varivel no-bsica deve entrar na base Precisamos calcular os valores correspondentes a linha z do tableau do simplex.Prtica: Determine uma base inicial para o problema anterior.Prof. Fogliatto PO - Graduao 19 O clculo desses valores envolve determinar um menor circuito ou loop contendo algumas variveis bsicas e a varivel no-bsica em questo. Existe um loop nico possvel para cada varivel no-bsica.Prof. FogliattoPO - Graduao20ExemploCapacidd 2 3 4 9Determine a varivel no-bsica a entrar na baseIniciando com x14: Calcule os valores correspondentes linha z para cada varivel no-bsica:2 3 4 910141012 5 1201. Determine um loop de var. bsicas que contenha a var. nobsica. 2. Alterne sinais pos. e neg. nas var. bs. extremas. 3. Some os cij de acordo com os sinais. 4. Subtraia o coef. de custo da var. no-bs. em questo do resultado012 1520910330101410 0+12 5-17140Demanda40121520910 40+310102050Base inicial determinada pelo mtodo do extremo noroeste. (+1-12+3) = -8Prof. Fogliatto PO - Graduao 21 Prof. Fogliatto(-8) - 9 = -17PO - Graduao22Clculo para x132 3 4 9Repetindo o clculo p/ as demais var. no-bsicas2 3 4 9101410 012+12-85-17110141012-85-1711520+9103-31201520910340+1-1-240(+5-12+3) = -4(-4) - 4 = -8 Num problema de minimizao a varivel mais positiva entra na base.Prof. FogliattoPO - Graduao23Prof. FogliattoPO - Graduao24Para verificar qual varivel deve sair da base, determine um loop contendo a var. entrante e algumas variveis bsicas2 3 4 9A primeira clula bsica do loop recebe um sinal positivo, a segunda um sinal negativo, e assim por diante...Dentre as clulas positivas, selecione aquela de menor valor: esta a var. que sair da base.210141012-85-171+ 1010 + 0349-812 5-171-31201520910314-3 A varivel entrante assumir o valor da varivel que sai da base.122015 910 403+1-1-240+1-1-2+Prof. FogliattoPO - Graduao25Prof. FogliattoPO - Graduao26Atualize 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 .+ 102Novo tableauNenhuma var. no-bs. com zij - cij > 0 tableau timo!2 3 4 910 +3491012 5 1 141012-75-161142012 15 910 403-412-1152091030+0-2-240Prof. FogliattoPO - Graduao27Prof. FogliattoPO - Graduao28Prtica: Resolva o problema proposto no Slide 9. Resolva o problema do ao.O Problema do Transbordo Ponto de fornecimento - pode remeter insumos para outros pontos mas no pode receber. Ponto de demanda - pode receber insumos de outros pontos mas no pode remeter. Ponto de transbordo - remete e recebe insumos de outros pontos.Prof. FogliattoPO - Graduao29Prof. FogliattoPO - Graduao30ExemploA 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.CustosDe/Para Man Manaus $0 Assuncion Brasilia Curitiba SPaulo Recife Ass $0 Bra $8 $15 $0 $6 Cur $13 $12 $6 $0 SP $25 $26 $16 $14 $0 Rec $28 $25 $17 $16 $0Os 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. FogliattoPO - Graduao31Prof. FogliattoPO - Graduao32ExemploDeseja-se minimizar o custo do frete:O problema do transbordo resolvido como um problema balanceado de transportesPASSO 1 - Balanceie o problema, se necessrio.Por exemplo:Manaus Braslia SPauloAssuncinCuritibaRecifeCapacidade > Demanda Capacidade = 0 Acrescente pto de demanda artificial Demanda = excedente capacidd. Cargas so remetidas p/ ponto artificial a custo zero.Prof. FogliattoPO - Graduao33Prof. FogliattoPO - Graduao34Passo 2 - Construa o tableau do transporte Uma linha p/ cada ponto de fornecimento e transbordo.Passo 2 - Cont. Seja s = capacidade total de fornecimento. Uma coluna p/ cada ponto de demanda e transbordo. Cada ponto de transbordo ter: capacidade = (capacidade do ponto original) + s demanda = (demanda do ponto original) + s 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. FogliattoPO - Graduao35Prof. FogliattoPO - Graduao36Passo 3 - Resolva o problema resultante como um problema de transporteBrasliaNo exemploCuritiba13SPaulo25Recife28Artificial0Capacidade 150Ao interpretar a soluo tima:8Manaus Assuncion15 12 26 25 0ignore remessas aos pontos artificiais;2000 6 16 17 0ignore remessas de um ponto para ele mesmo.Braslia6 0 14 16 0350 350 350 350 130PO - GraduaoCuritiba DemandaProf. Fogliatto PO - Graduao 37 Prof. Fogliatto1309038ResultadoPrticaA 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:Manaus130Braslia130SPauloAssuncinCuritibaRecife130De/Para SP Spaulo $0 POA $145 Foz $105 Assuncion $89 Buenos $2101100CapacidadePOA $140 $0 $115 $109 $1172900Foz $100 $111 $0 $121 $82Ass $90 $110 $113 $0 2400Bue $225 $119 $78 $01500DemandaMinimize os custos de transporte.PO - Graduao 40Prof. FogliattoPO - Graduao39Prof. FogliattoO 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:Exemplo: Aloque trabalhos nas mquinas tal que tempo de setup seja mnimoTrab. 1 Trab. 28 min 14 min 5 minMaq. 1 Maq. 2 Maq. 37 minxij = 1; se o ponto de abastecimento i for utilizado para suprir a demanda no ponto de demanda j. xij = 0; caso contrrio.Trab. 3 Trab. 4Mq.1 Mq.2 Mq.3 Mq.4Tr.1 14 2 7 2Tempo (min) Tr.2 Tr.3 5 8 12 6 8 3 4 6Tr.4 7 5 9 10Maq. 4Prof. FogliattoPO - Graduao41Prof. FogliattoPO - Graduao42FormulaoVariveis 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: Restries de trabalho:Para 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 44x11+x12+x13+x14 = 1 x21+x22+x23+x24 = 1 x31+x32+x33+x34 = 1 x41+x42+x43+x44 = 1Prof. Fogliattox11+x21+x31+x41 = 1 x12+x22+x32+x42 = 1 x13+x23+x33+x43 = 1 x14+x24+x34+x44 = 1PO - Graduao 43xij = 1 ou 0Algoritmo HngaroPasso 3 - determine o menor elemento 0 dentre os elementos no cobertos por linhas no tableau; seja k o valor deste elemento. Subtraia k de 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.14 2 7 2 5ExemploMnimo da linha8 6 3 6 7 5 9 10 5 2 3 212 8 4Exemplo...Prof. FogliattoPO - Graduao45Prof. FogliattoPO - Graduao46Novo tableau aps subtrao dos mnimos de linhaNovo tableau aps subtrao dos mn. das colunas9 0 4 00 10 5 23 4 0 42 3 6 89 0 4 00 10 5 23 4 0 40 1 4 6 3 linhas. m = 4, logo procedemos c/ passo 3.k=1Mn. da colunaProf. Fogliatto000PO - Graduao247 Prof. Fogliatto PO - Graduao 48Subtraindo e somando k nas devidas clulas...Note que o mnimo das linhas e colunas 0!Como identificar a soluo tima10 0 5 0 0 9 5 1 3 3 0 3 0 0 4 5 Sendo assim, x24 = 1, e a linha 2 no pode mais ser usada. Logo, x41 = 1. O nico zero coberto na col. 3 x33. Logo, x33 = 1, e a col. 3 e linha 3 no podem mais ser usadas. O nico zero coberto na col. 2 x12. Logo, x12 = 1, e a col. 2 e linha 1 no podem mais ser usadas.10 0 5 00 9 5 13 3 0 30 0 4 54 linhas. Como m = 4, temos uma soluo tima.Prof. FogliattoPO - Graduao49Prof. FogliattoPO - Graduao50PrticaUm 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:O PROBLEMA DUAL Todo o problema de programao linear possui um problema dual correspondente. Chamaremos o problema original de primal e o problema dual de dual.Nadadora 1 2 3 4Livre 54 51 50 56Tempo (s) /100 m Peito Golfinho 54 51 57 52 53 54 54 55Costas 53 52 56 53Primal Max MinDual Min MaxQual nadadora deve nadar qual estilo? Variveis do problema primal z, x1, x2,,xn. Variveis do problema dual w, y1, y2,,ym.Prof. FogliattoPO - Graduao51Prof. FogliattoPO - Graduao52Escrevendo o dual de um problema de progr. linearMax z = c1x1 + c2x2 + + cnxn s.a: a11x1 + a12x2 + + a1nxn b1 a21x1 + a22x2 + + a2nxn b2M M M MEXEMPLOMax z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + 1x3 48 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x1, x2, x3 0am1x1 + am2x2 + + amnxn bmP r i m a lMin w = b1y1 + b2y2 + + bmym s.a: a11y1 + a21y2 + + am1ym c1 a12y1 + a22x2 + + am2ym c2M M M Ma1ny1 + a2ny2 + + amnym cnMin w = 48y1 + 20y2 + 8y3 s.a: 8y1 + 4y2 + 2y3 6y1 + 2y2 + 1.5y3 1y1 + 1.5y2 + 0.5y3 y1, y2, y3 60 30 20 0D u a lProf. FogliattoPO - Graduao53Prof. FogliattoPO - Graduao54A isima restrio do dual corresponde isima varivel do primalUsando a tabela abaixo, pode-se achar o dual de qualquer primal:Min 0 0 Irrestr. = Max = 0 0 Irrestr.OUTRO EXEMPLOMax z = 2x1 + x2 s.a: 2x1 + x2 = 2 2x1 - x2 3 x1 - x2 1 x1 0, x2 irrestr.P r i m a lVariveisRestriesRestriesVariveisMin w = 2y1 + 3y2 s.a: 2y1 + 2y2 y1 - y2 y1 irrestr.,+ 1y3 + y3 2 - y3 = 1 y2 0, y3 0D u a lProf. FogliattoPO - Graduao55Prof. FogliattoPO - Graduao56INTERPRETAO ECONMICA DO PROBLEMA DUALConsidere o exemplo:Max z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + 1x3 48 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x1, x2, x3 0O DUAL DESTE PROBLEMA :Min w = 48y1 + 20y2 + 8y3 s.a: 8y1 + 4y2 + 2y3 6y1 + 2y2 + 1.5y3 1y1 + 1.5y2 + 0.5y3 y1, y2, y3 60 30 20 0Escrivaninha Mesa Cadeira 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?57 Prof. Fogliatto PO - Graduao 58Correspondente modelagem matemtica do seguinte problema:Insumo Escrivaninha Tbua 8 Acabamto 4 Carpintaria 2 Lucro Venda $60Prof. FogliattoProduto Mesa 6 2 1.5 $30Cadeira 1 1.5 0.5 $20Qtidd de Insumo 48 20 8PO - GraduaoDefinindo 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 carpintaria O gio total a ser cobrado por estes insumos corresponder funo objetivo: Min w = 48y1 + 20y2 + 8y3O 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 60Restrio das escrivaninhasOu 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. O mesmo ocorre com as outros produtos: 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20Restr. das mesas Note que a funo objetivo busca minimizar o custo de compra: este o ponto de vista do comprador.Restr. das cadeiras60Prof. FogliattoPO - Graduao59Prof. FogliattoPO - GraduaoPara 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 preossombra dos insumos.PRTICA:Determine o dual do seguinte problema de programao linear: Max z = x1 + s.t.: 3x1 + 2x1 + x1, 2x2 x2 6 x2 = 5 x2 0 Por definio, o preo-sombra da isima restrio corresponde melhoria no valor z da funo objetivo ocasionada pelo incremento de uma unidade no lado direito da restrio [ou seja, de bi para (bi + 1)].Prof. FogliattoPO - Graduao61Prof. FogliattoPO - Graduao62Como ler a soluo tima do dual a partir da linha 0 (ou linha z) do tableau timo do primal Caso 1 - Primal = MaxPara resolver o problema abaixo:Max z = 3x1 + 2x2 + 5x3 s.a: 1x1 + 3x2 + 2x3 15 2x2 - x3 5 2x1 + x2 - 5x3 = 10 x1, x2, x3 0Tableau timox1 zAdicionar var. folga f1 Adicionar var. excesso e2 e art. a2 Adicionar var. artificial a3x2 0 0 1 0x3 0 1 0 0f151 4 2 9e258 5a258 -5 9a39 -2 -1 7RHS565 15 650 0 0 1/23/23 M- /23 M+ /23 /23 /23 /23/23x3 x2 x1/23 /23 /23/23 /23 /23/23 /23 /23-9/23 /2317-17/23120 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 63 Prof. Fogliatto PO - Graduao 64Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Max)Valor timo da var. dual yi qdo restrio i do tipo No tableau timo do exemplo anterior:y1 -y2e258 5y3-Ma2 a3 RHS565 15 65Coeficiente de fi na linha 0 do tableau timoz z 1x1 0 0 0 1x2 0 0 1 0x3 0 1 0 0f151 4 2 9/23/23 M-58/23 M+9/23-5 9/23x3 0/23 /23 /23/23 /23 /23/23-2 -1 7/23 /23/23 /23 /23Valor timo da var. dual yi qdo restrio i do tipo -(Coeficiente de ei) na linha 0 do tableau timox2 0 x1 0-9/23 /2317-17/23120Valor timo da var. dual yi qdo restrio i do tipo =(Coeficiente de ai na linha 0 do tableau timo) - MOu seja, o problema dual possui a seguinte soluo tima: y1 =51/ ; 23y2 = -58/23; y3 = 9/23PO - Graduao 66Prof. FogliattoPO - Graduao65Prof. FogliattoConferindo o resultado na funo objetivo do problema dualMin w = 15y1 + 5y2 + 10y3 y1 =51/ ; 23Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Min)Valor timo da var. dual yi qdo restrio i do tipo Coeficiente de fi na linha 0 do tableau timoy2 = -58/23; y3 = 9/23Valor timo da var. dual yi qdo restrio i do tipo -(Coeficiente de ei) na linha 0 do tableau timow = 565/23 Valor timo da var. dual yi qdo restrio i do tipo = (Coeficiente de ai na linha 0 do tableau timo) + MProf. FogliattoPO - Graduao67Prof. FogliattoPO - Graduao68PRTICA:Considere o seguinte problema: Max z = -2x1 - 1x2 + x1 + x2 + s.t.: x2 + x1 + x1, x2, x3 x3 3 x3 2 x3 = 1 x3 0Modelos de RedesDefinies bsicas:Defnido porNs (ou vrtices) Arcos(a) Determine o dual deste problema; (b) O problema, acrescido de variveis de folga, excesso e variveis artificiais resolvido via Simplex. O problema no formato padro e a linha 0 do tableau timo vm dados abaixo. Determine a soluo tima para o dual deste problema. Max z = -2x1 - 1x2 + x3 x1 + x2 + x3 + f1 s.t.: x2 + x3 - e2 + a2 x1 + x3 + a3 x1, x2, x3, f1, e2, a2, a3 Linha 0 do tableau timo x2 z x1 1 4 0 ZGrafos ou Redes= 3 =2 =1 0Arco - par ordenado de vrtices; representa uma possvel direo de movimento entre vrticesa3 M+2 RHS 0x3 0f1 0e2 1a2 M-1(j, k) = arco representando o movimento do n j (n inicial) para o n k (n final).69 Prof. Fogliatto PO - Graduao 70Prof. FogliattoPO - GraduaoExemplo de Rede1 4 Ns = {1, 2, 3, 4}Correntes, Trilhas e CircuitosCORRENTE = sequncia de arcos tal que cada arco apresenta exatamente um vrtice em comum com o arco anterior.23Arcos = {(1,2), (2,3), (3,4) (4,3), (4,1)}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. FogliattoPO - Graduao71Prof. FogliattoPO - Graduao72No exemplo...1 4 Ex. de corrente = (1,2) - (2,3) - (4,3)Problemas 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. 24 323Ex. de trilha = (1,2) - (2,3) - (3,4) 42 2Ex. de circuito = (1,2) - (2,3) - (3,4) - (4,1) Planta 1 1 6 Cidade 133Prof. Fogliatto PO - Graduao 73 Prof. Fogliatto3PO - Graduao2574Problemas de determinao da trilha mais curta entre dois nsExemplo 2Eu comprei um carro novo por $12000. Os custos de manuteno e o valor na troca do carro em um determinado ano dependem da idade do carro no comeo daquele ano.Idade do Carro (anos) 0 1 2 3 4 Custo anual de manuteno 2000 4000 5000 9000 12000Idade do Carro (anos) 1 2 3 4 5 Valor na troca 7000 6000 2000 1000 0Exemplo 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 trilha mais curta.75 Prof. Fogliatto PO - Graduao 76Prof. FogliattoPO - GraduaoSoluo O problema ter 6 ns (i = 1, 2, , 6). c12 c13 c14 c15 c16 = = = = =Soluo2 + 12 - 7 = 7 2 + 4 + 12 - 6 = 12 2 + 4 + 5 + 12 - 2 = 21 2 + 4 + 5 + 9 + 12 - 1 = 31 2 + 4 + 5 + 9 + 12 + 12 - 0 = 44 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)e assim por diante...Prof. FogliattoPO - Graduao77Prof. FogliattoPO - Graduao78Rede44 31 21 12 31 21 12 7 7 7 7Algoritmo de Dijkstra Todas as distncias diretas entre dois ns da rede so conhecidas e no-negativas.1723456 Todos os ns da rede recebem um rtulo permanente ou temporrio. Um rtulo temporrio representa o limite superior da menor distncia entre o n 1 e aquele n. Um rtulo permanente corresponde menor distncia entre o n 1 e aquele n.12 21 12Prof. FogliattoPO - Graduao79Prof. FogliattoPO - Graduao80Passos 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 81 Prof. FogliattoPasso 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.PO - Graduao82Passo 223 9 2 6Exemplo6 Todos os arcos soSelecione o n com menor valor dentre aqueles com rtulo temporrio; transforme seu rtulo em permanente.14733 13 Se o n escolhido acima for o n final, pare. Caso contrrio, retorne ao passo 1.435 Deseja-se encontrar a trilha mais curta entre os ns 1 e 6.Prof. FogliattoPO - Graduao83Prof. FogliattoPO - Graduao84Comece fazendo com que o n 1 tenha um rtulo permanente = 0Todos os demais ns recebem rtulos provisrios iguais a distncia direta entre o n em questo e o n 1.O menor dos rtulos temporrios vira permanente (n 2). A menor distncia entre ns 1 e 2 = 3. Os novos rtulos so: Assim:* indica rtulo permanente.L (0) = [0*, 3, 7, 4, , ]L (0) = [0*, 3*, 7, 4, , ]Prof. FogliattoPO - Graduao85Prof. FogliattoPO - Graduao86Para 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 menor dentre 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 L (2) = [0*, 3*, 5, 4, , 12]O menor dos rtulos temporrios vira permanente (n 4). A menor distncia entre ns 1 e 4 = 4. Os novos rtulos so: Os novos rtulos so:L (2) = [0*, 3*, 5, 4*, , 12]Prof. FogliattoPO - Graduao87Prof. FogliattoPO - Graduao88Para 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 menor dentre 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 L (3) = [0*, 3*, 5, 4*, 7, 12]O menor dos rtulos temporrios vira permanente (n 3). A menor distncia entre ns 1 e 3 = 5. Os novos rtulos so: Os novos rtulos so:L (3) = [0*, 3*, 5*, 4*, 7, 12]Prof. FogliattoPO - Graduao89Prof. FogliattoPO - Graduao90Para 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 menor dentre esses valores passa a ser o novo rtulo temporrio de j.O menor dos rtulos temporrios vira permanente (n 5). A menor distncia entre ns 1 e 5 = 7. Para j = 5 min (5+3, 7) = 7 Para j = 6 min (5+6, 12) = 11 Os novos rtulos so: Os novos rtulos so:L (4) = [0*, 3*, 5*, 4*, 7, 11]L (4) = [0*, 3*, 5*, 4*, 7*, 11]Prof. FogliattoPO - Graduao91Prof. FogliattoPO - Graduao92Para 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 menor dentre esses valores passa a ser o novo rtulo temporrio de j.O menor dos rtulos temporrios vira permanente (n 6). A menor distncia entre ns 1 e 6 = 10. Os novos rtulos so: Para j = 6 min (7+3, 11) = 10 L (4) = [0*, 3*, 5*, 4*, 7*, 10] Os novos rtulos so: L (5) = [0*, 3*, 5*, 4*, 7*, 10*] O algoritmo termina e a menor trilha entre 1 e 6 pode ser determinada.Prof. FogliattoPO - Graduao93Prof. FogliattoPO - Graduao94Determinando 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.9 2 6Se a diferena (6j) for igual ao comprimento real do arco (j, 6), escolha j como ponto intermedirio23 2 7 9 6 3Diferenas / Arcos: 6 (65) = 3 / (5,6) = 3 (63) = 4 / (3,6) = 6 (62) = 7 / (2,6) = 9323 76L (5) = [0*, 3*, 5*, 4*, 7*, 10*] Ns 2,3 e 5 esto diretamente ligados a 6. 11433 1313Assim: (65): 10 - 7 = 3 5 (63): 10 - 5 = 4 (62): 10 - 3 = 7443543Assim, o primeiro n intermedirio no caminho entre 6 e 1 o n 5.Prof. FogliattoPO - Graduao95Prof. FogliattoPO - Graduao96Repita o procedimento para o n 5Ns 3 e 4 esto diretamente ligados a 5. 23 2 7 9 6 3Se a diferena (5j) for igual ao comprimento real do arco (j, 5), escolha j como ponto intermedirio23 2 7 9 6 36Diferenas / Arcos: 6 (54) = 3 / (4,5) = 3 (53) = 2 / (3,5) = 33L (5) = [0*, 3*, 5*, 4*, 7*, 10*]1433 1Diferenas: (54): 7 - 4 = 3 (53): 7 - 5 = 31431435Assim, o segundo n intermedirio no caminho entre 6 e 1 o n 4. 5 Caminho parcial: 6 5 4PO - Graduao 9843Prof. FogliattoPO - Graduao97Prof. FogliattoRepita o procedimento para o n 4Ns 3 e 1 esto diretamente ligados a 4. 23 2 7 9 6 3Se a diferena (4j) for igual ao comprimento real do arco (j, 4), escolha j como ponto intermedirio23 2 7 9 6 36Diferenas / Arcos: 6 (43) = -1 / (3,4) = 1 (41) = 4 / (1,4) = 43L (5) = [0*, 3*, 5*, 4*, 7*, 10*]1433 1Diferenas: (43): 4 - 5 = -1 (41): 4 - 0 = 41431435435Como o n 1 o n de destino, determinamos a trilha mais curta entre os ns 1 e 6. Trilha Mais Curta: 6 5 4 1Prof. FogliattoPO - Graduao99Prof. FogliattoPO - Graduao100PrticaUse o algoritmo de Dijkstra para resolver os problemas nos slides 79 e 84.Prof. FogliattoPO - Graduao101Tipos de problemas de programao inteira (PI) Programao InteiraPesquisa Operacional I Parte III Flvio Fogliatto Puros - todas as variveis de deciso so inteiras Mistos - algumas variveis de deciso so inteiras Booleanos - variveis de deciso s apresentam valores inteiros no intervalo [0, 1]1 2Programao inteira A todo o problema de PI existe um problema de problema de PL correspondente no qual as restries de no-fracionariedade so removidas (ou relaxadas) Alguns resultados se seguem: Espao de solues viveis do PI Espao de solues viveis do PI relaxado Valor timo de z do PI no mximo to bom quanto o valor timo do PI relaxado3Abordagem para soluo de problemas de PI Resolver seus problemas correspondentes relaxados e arredondar as variveis de deciso p/ o maior ou menor inteiro mais prximo Dois problemas podem resultar: Valores arredondados podem resultar inviveis no PI Solues resultantes so altamente sub-timas4Mtodo Branch-and-Bound para soluo de problemas PIs puros Considere o problema de PI: Max z = 8x1 + 5x2 s.a x1 + x2 6 9x1 + 5x2 45 x1 , x2 0 x1 , x2 inteiros5Branch-and-bound operacionalizado em 5 passos Passo 1: Comece resolvendo o PI relaxado. Se a soluo tima for inteira, esta a soluo do PI Caso contrrio, soluo tima do IPR (problema de programao inteira relaxado) o limite superior da soluo tima do PISoluo tima do IPR dado anteriormente : z* = 165/4 x1 = 15/4 x2 = 9/46Passo 2 Escolha uma varivel de deciso fracionria em z* do PIR: por exemplo, x1 = 15/4.Crie dois subproblemas a partir de x1 SP2: SP1 + restrio x1 4 SP3: SP1 + Restrio x1 3 SP = subproblema Problema designado por SP1 o prprio problema de PI em estudo, relaxado das restries de no-fracionariedade7 8 PI admite valores de x1 3 ou x1 4, mas no em 3 < x1 < 4Passo 3 Escolha qualquer SP listado no passo anterior e resolva como se fosse um problema de PL: Por ex., SP2, com soluo tima z* = 41, x1 = 4 e x2 = 9/5Arvore hierrquica de soluo do problema Resultados obtidos at agora podem ser apresentados na forma de uma rvore hierrquica9 10Passo 4 Repita o procedimento no Passo 3 usando o SP2 e a varivel de deciso fracionria x2 = 9/5 Subproblemas resultantes: SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2 SP5: SP1 + x1 4 + x2 1 ou SP2 + x2 1Escolha um para resoluoPor exemplo: SP4 SP4 no apresenta solues viveis, no podendo, assim, gerar uma soluo tima para o problema de PI: Assim, diz-se que este nodo da rvore foi terminado Tem-se trs problemas que podem ser resolvidos: SP3, SP4 e SP511 Dentre os SPs no resolvidos, escolhe-se o mais recente, SP5: Soluo vm apresentada na rvore do problema, a seguir12Arvore hierrquica de soluo do problemaRepita procedimento em (3) usando SP5 e var. fracionria x1 Subproblemas resultantes so: SP6: SP5 + x1 5 SP7: SP5 + x1 4 Trs SPs podem ser resolvidos: SP3, SP6 e SP7. Escolhe-se, aleatoriamente, um dos mais recentes: SP7, por exemplo Soluo tima p/ SP7 vem dada na rvore a seguir1314SP7 gera a primeira soluo candidata para PI Soluo s possui valores inteiros p/ a varivel de deciso: Pode ser interpretada como soluo candidata ou um limite inferior no valor timo do problema de PIProblemas SP3 e SP6 ainda no foram resolvidos Escolhe-se SP6 (+ recente), com soluo dada na rvore a seguir: Soluo de SP6 inteira e melhor do que aquela obtida para SP7 Assim, termina-se nodo da rvore em SP7 (identificase o nodo terminado por um ou escrevendo soluo excluda) e atualiza-se o limite inferior da rvore; novo LI = 4015 16Arvore hierrquica de soluo do problemaltimo SP a ser resolvido SP3 Soluo de SP3 z* = 39, x1 = x2 = 3: Trata-se de uma soluo candidata com z* < LI Assim, nodo SP3 terminado e SP6 identificado como a soluo tima para o problema de PI17 18Aspectos importantes do Branch-and-bound p/ PIs puros Sempre que no for necessrio desdobrar um subproblema, ele deve ser terminado Critrios utilizados para terminao so: SP no possui solues viveis SP gera uma soluo tima contendo somente valores inteiros SP apresenta um valor de z* menor (em problemas de PI do tipo Maximizao) que o limite inferior atual19Mais aspectos Um SP eliminado (passa a ser desconsiderado do problema) sempre que: SP no possui solues viveis LI (limite inferior) atual pelo menos to grande quanto o valor z* do SP em questo20Mais aspectos A regra ltimo a entrar, primeiro a sair, que indica qual SP deve ser trabalhado dentre vrios candidatos fora o analista a trabalhar um mesmo da ramo da rvore de solues at o final: Existem outras regras possveis (ver Schrage, 1997, entre outros)Mtodo Branch-and-Bound para soluo de PIs mistos Modifique o algoritmo anterior da seguinte maneira: Desdobre somente variveis de deciso restritas a no-fracionrias Considere a soluo tima de um SP como sendo uma soluo candidata soluo tima do problema de PI quando esta atender s restries de nofracionariedade21 22 Quando um SP apresenta soluo tima com duas ou mais variveis de deciso fracionrias, trabalhe com aquela que representar maior ganho na funo objetivoExerccio 1 PI puro Min z = 4x1 + 5x2 s.a: x1 + 4x2 5 3x1 + 2x2 7 x1, x2 0 e inteiros s.a:Exerccio 2 PI misto Max z = 2x1 + x2 5x1 + 2x2 8 x1 + x2 3 x1, x2 0; x1 inteiro2324Branch-and-Bound em problemas de sequenciamento de trabalhos em mquinas Suponha 4 trabalhos a serem processados numa mesma mquina. Tempo necessrio p/ processamento de cada trabalho e datas de entrega:Apresentao do problema Atraso do trabalho medido pelo nmero de dias aps a data de entrega em que o trabalho completado: Trabalhos finalizados na data de entrega ou antes tm atraso zero Determine a ordem de processamento dos trabalhos que minimize o atraso total25 26Variveis de decisoAplicar mesmo racioccio p/ demais trabalhos na posio 4 Resultados na rvore de soluo a seguir: Considere o ltimo trabalho a ser processado: Qualquer que seja a sequncia, ela ter x14 = 1, x24 = 1, x34 = 1 ou x44 = 1. Assim, cria-se uma rvore com quatro nodos e calcula-se o limite inferior no atraso total associado a cada nodo Clculo do atraso para o quarto trabalho : x44 = 1, ou seja, o trabalho 4 seria completado com atraso total de 23 - 16 dias. Os 23 dias foram obtidos somando (6 + 4 + 5 + 8)27 Limite inferior no atraso total D 7: ou seja, posicionando-se o trabalho 4 na quarta posio, obtemse o menor atraso total28Escolhe-se nodo c/ menor atraso D (nodo 4) p/ continuar o mtodo Qualquer sequncia associada ao nodo 4 deve ter x13 = 1, x23 = 1 ou x33 = 1 Clculo do limite inferior LI de atraso similar quele visto anteriormente: x33 = 1, ou seja, trabalho 3 seria completado com atraso total de 15 - 12 dias. Os 15 dias foram obtidos somando (6 + 4 + 5). O atraso total ser de pelo menos 3 + 7 dias (D 10)29Continuando a desdobrar pelo mesmo ramo Escolhe-se nodo 7 (menor valor de D) para desdobrar Qualquer sequncia associada a este nodo deve ter x12 = 1 ou x22 = 1. Os atrasos totais so: Nodo 9: sequncia 1-2-3-4. Atraso total: 7(tr.4) + 3(tr.3) + (6+4-4)(tr.2) + 0(tr.1) = 16 dias Nodo 8: sequncia 2-1-3-4. Atraso total: 7(tr.4) + 3(tr.3) + (4+6-8)(tr.1) + 0(tr.2) = 12 dias30Qualquer soluo com D > 12 pode desconsiderada Com isto, termina-se os nodos 1, 2, 5, 6, e 9. Arvore de resultados parciais dada na sequnciarvore parcial de resultados3132Desdobra-se o nodo 3 Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43 = 1. Clculo do limite inferior de atraso : x13 = trabalho 1 completo no final do dia (8+4+6) = 18 - 8 = 10 + 11 = 21 x23 = trabalho 2 completo no final do dia (8+4+6) = 18 - 4 = 14 + 11 = 25 x43 = trabalho 4 completo no final do dia (8+4+6) = 18 - 16 = 2 + 11 = 13Arvore final de resultados Sequncia tima 2 - 1 - 3 - 4. Atraso total de 12 dias33 34

Recommended

View more >