CENTRO DE CIÊNCIAS EXATAS – CCE DEPARTAMENTO DE ESTATÍSTICA Curso de Especialização “Lato Sensu” em Engenharia de Produção com enfoque em Pesquisa Operacional PESQUISA OPERACIONAL NA TOMADA DE DECISÃO Professores: Dr. Waldir Medri [email protected] Ms. Ana Satie Yotsumoto [email protected] Londrina/Pr Setembro 2009 ii ÍNDICE PESQUISA OPERACIONAL NA TOMADA DE DECISÃO........................................................................... 1 1 PESQUISA OPERACIONAL ........................................................................................................................... 1 1.1 INTRODUÇÃO .................................................................................................................................................. 1 2 PROGRAMAÇÃO LINEAR............................................................................................................................. 2 2.1 MODELO MATEMÁTICO DE PROGRAMAÇÃO LINEAR ...................................................................................... 2 2.2 FORMULAÇÃO DO PROBLEMA......................................................................................................................... 4 2.3 MONTAGEM DO MODELO ............................................................................................................................... 4 2.4 MODELO COMPLETO ...................................................................................................................................... 5 2.4.1 RESOLUÇÃO GRÁFICA DO PROBLEMA DE MAXIMIZAÇÃO DE PROGRAMAÇÃO LINEAR....... 5 2.4.2RESOLUÇÃO GRÁFICA DO PROBLEMA DE MINIMIZAÇÃO DE PROGRAMAÇÃO LINEAR......... 8 2.4.3 APLICAÇÕES EM SISTEMAS PRODUTIVOS ...................................................................................... 9 2.5 MÉTODO SIMPLEX ........................................................................................................................................ 11 2.5.1 INTRODUÇÃO DAS VARIÁVEIS DE FOLGA .................................................................................... 11 2.5.2 MÉTODO SIMPLEX EM DUAS FASES .............................................................................................. 14 2.5.2.1 OBTENÇÃO DA SOLUÇÃO BÁSICA INICIAL ................................................................................................................ 14 2.5.2.2 MÉTODO DAS DUAS FASES ............................................................................................................................................ 15 2.5.3 APLICAÇÕES EM SISTEMAS PRODUTIVOS .................................................................................... 19 2. 6 ANÁLISE DE SENSIBILIDADE ........................................................................................................................ 21 2.6.1 MUDANÇAS PARAMÉTRICAS EM UM COEFICIENTE CJ DA FUNÇÃO OBJETIVO.................... 22 2.6.1.1 MUDANÇA NO COEFICIENTE DE UMA VARIÁVEL NÃO-BÁSICA .......................................................................... 22 2.6.1.2 MUDANÇA NO COEFICIENTE DE UMA VARIÁVEL BÁSICA .................................................................................... 24 2.6.1.2.1 Intervalo de Estabilidade para o Coeficiente de x1 (c1)..................................................................................................... 24 2.6.1.2.2 Intervalo de Estabilidade para o Coeficiente de x2 (c2)..................................................................................................... 25 2.6.2 ENTRADA DE UMA NOVA VARIÁVEL .............................................................................................. 27 2.6.3 MUDANÇAS NOS VALORES DOS RECURSOS BJ............................................................................. 27 2.6.4 APLICAÇÕES EM SISTEMAS PRODUTIVOS .................................................................................... 31 2.7 DUALIDADE EM PROGRAMAÇÃO LINEAR ..................................................................................................... 32 3 PROGRAMAÇÃO INTEIRA ......................................................................................................................... 39 3.1 INTRODUÇÃO ................................................................................................................................................ 39 3.2 MÉTODOS DE RESOLUÇÃO ............................................................................................................................ 39 3.3 MÉTODO DE PARTIÇÃO E AVALIAÇÃO SUCESSIVAS ..................................................................................... 39 3.4 APLICAÇÃO .................................................................................................................................................. 40 3.5 APLICAÇÕES EM SISTEMAS PRODUTIVOS ..................................................................................................... 45 BIBLIOGRAFIA............................................................................................................................................... 46 1 PESQUISA OPERACIONAL NA TOMADA DE DECISÃO 1 PESQUISA OPERACIONAL 1.1 INTRODUÇÃO A Pesquisa Operacional apareceu pela primeira vez durante a 2a. Guerra Mundial, quando equipes de pesquisadores procuraram desenvolver métodos para resolver problemas de operações militares. Neste período observouse uma atividade global de planejamento a nível mundial. Este planejamento envolvia instrumentos e sistemas econômicos, políticos e sociais diferentes entre si, mas com objetivos e funções perfeitamente determinados pela guerra, ligada de alguma forma, ao próprio desenvolvimento da pesquisa operacional. Desde seu nascimento, esse novo campo de análise de decisão caracterizou-se pelo uso de técnicas e métodos científicos qualitativos por equipes interdisciplinares, com a finalidade de determinar a melhor utilização de recursos limitados e para a programação otimizada das observações de uma empresa. Essa característica multidisciplinar das aplicações de pesquisa operacional deu origem a um novo enfoque. A pesquisa operacional é uma metodologia administrativa que agrega, em sua teoria, quatro ciências fundamentais para o processo de preparação, análise e tomada de decisão: economia, matemática, estatística e informática. Uma característica importante que a pesquisa operacional possui e que facilita muito processo de análise de decisão é a utilização de modelos, uma vez que, a P.O. consiste, basicamente, em construir um modelo de um sistema real existente como meio de analisar e compreender o comportamento dessa situação, com o objetivo de levá-lo a apresentar o desempenho que se deseja. Este sistema pode existir atualmente ou pode ainda estar em concepção. No primeiro caso, o objetivo do estudo é analisar o desempenho do sistema para escolher uma ação no sentido de aprimorá-lo. No segundo, o objetivo é identificar a melhor estrutura do sistema futuro. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 2 A pesquisa operacional tem sido vista pelos gerentes e praticantes sob dois enfoques diferentes quanto à abordagem, mas coerentes e complementares na aplicação prática no campo da gestão empresarial: • Enfoque clássico – busca da solução ótima. • Enfoque atual – uso do modelo para identificação do problema correto. O enfoque clássico ou tradicional é derivado do conceito quantitativo da pesquisa operacional. Aqui a P.O. é definida como a arte de aplicar técnicas de modelagem a problemas de decisão e resolver os modelos obtidos através da utilização de métodos matemáticos e estatísticos, visando à obtenção de uma solução ótima, sob uma abordagem sistêmica. A outra visão decorre de um conceito qualitativo da pesquisa operacional. O esforço despendido para a modelagem de um problema leva a uma compreensão mais profunda do próprio problema, identificando melhor seus elementos internos, suas interações com o ambiente externo, as informações necessárias e os resultados possíveis de obter. Nessa abordagem qualitativa, o enfoque central é deslocado do método de solução para a formulação e para a modelagem, ou seja, para o diagnóstico de problema. 2 PROGRAMAÇÃO LINEAR A Programação Linear é hoje o instrumento de Pesquisa Operacional mais comumente empregado na resolução prática de problemas decisórios objetivos e de certa complexidade. Em linhas gerais, a programação linear consiste na descrição de um sistema organizado com auxílio de um modelo matemático, e através da resolução deste modelo, encontrar a melhor solução. 2.1 MODELO MATEMÁTICO DE PROGRAMAÇÃO LINEAR Usa-se programação matemática para a determinação da solução ótima de problemas que exigem que se decida sobre a utilização eficaz de uma quantidade limitada de recursos, para a obtenção de um determinado objetivo. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 3 A programação linear é uma técnica de programação matemática e, consiste na otimização (maximização ou minimização) de uma função linear, denominada de Função Objetivo, respeitando-se um sistema linear de igualdades ou desigualdades que recebem o nome de Restrições do modelo. Matematicamente, a função objetiva a ser maximizada pode ser escrita da seguinte maneira: Max Z = c1 x1 + c2 x2 + ... + cn xn s.a.: a11 x1 + a12 x2 + ... + a1n xn ≤ b1 a21 x1 + a22 x2 + ... + a2n xn ≤ b2 .................................................. am1 x1 + am2 x2 + ... + amn xn ≤ bm x1, x2, …, xn ≥ 0 onde: xj = número de unidades do produto j produzidas num certo período de tempo (variáveis de decisão); Z = função a ser otimizada (maximizada ou minimizada); cj = aumento no lucro Z pelo acréscimo de uma unidade xj (coeficiente de lucro); aij = quantidade do recurso i consumida na produção de uma unidade de atividade j (coeficiente de restrições); bj = quantidade de recurso i disponível no período para as n atividades (limitação de capacidade da restrição). Pode-se apresentar esse modelo de forma mais compacta: n Max Z = ∑ c j x j j =1 n s.a. : ∑a j =1 ij xj ≥ 0 x j ≤ bi para i = 1, 2, ..., m para j = 1, 2, ..., n Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 4 2.2 FORMULAÇÃO DO PROBLEMA Definindo o problema através de um exemplo de programação linear. Uma marcenaria deseja estabelecer uma programação diária de produção. Atualmente, a oficina fabrica apenas dois produtos: mesa e armário, ambos de um só modelo. Para efeito de simplificação, considere que a mercearia tem limitações em somente dois recursos: madeira e mão-de-obra, cujas disponibilidades diárias são mostradas no quadro 1. Quadro 1 Recurso Disponibilidade Madeira 12 m2 Mão-de-obra 8 H.h. O processo de produção é tal que, para fazer uma mesa a fábrica gasta 2 2 m de madeira e 2 H.h. de mão-de-obra. Para fazer um armário, a fábrica gasta 3 m2 de madeira e 1 H.h. de mão-de-obra. Além disso, o fabricante sabe que cada mesa dá uma margem de contribuição para o lucro de R$ 4,00, e cada armário, de R$ 1,00. O problema do fabricante é encontrar o programa de produção que maximize a margem de contribuição para o lucro. 2.3 MONTAGEM DO MODELO Como variáveis de decisão, considera-se: • quantidade a produzir de mesa: x1 • quantidade a produzir de armário: x2 Com essa definição de variáveis, pode-se escrever as relações matemáticas que formam o modelo. Assim, para função objetivo tem-se: Margem de Contribuição Total: Z = 4x1 + x2 Para as restrições, a relação lógica existente é: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 5 Utilização de recursos ≤ Disponibilidade de recurso Para a madeira: 2x1 + 3x2 ≤ Utilização de madeira para os dois produtos Para a mão-de-obra: 2x1 + 1x2 Utilização de mão-de-obra para os dois produtos 12 Disponibilidade de madeira ≤ 8 Disponibilidade de mão-de-obra 2.4 MODELO COMPLETO Maximizar Z = 4x1 + x2 s.a.: 2x1 + 3x2 ≤ 12 2x1 + 1x2 ≤ 8 x1, x2 ≥ 0 Observa-se que o conjunto de restrições forma um sistema de desigualdades lineares. Assim existem infinitas combinações de valores de x1 e x2 que satisfazem as restrições. 2.4.1 RESOLUÇÃO GRÁFICA DO PROBLEMA DE MAXIMIZAÇÃO DE PROGRAMAÇÃO LINEAR Mesmo na era do computador, o método de solução gráfica de programação linear é ainda útil para pequenos problemas envolvendo duas variáveis de decisão, bem como para mostrar como é que se pode resolver, sistematicamente, problemas de programação linear. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 6 gradiente de Z, representado por ∇ (nabla) Z = 4x1 + x2 ∇Z = ( ∂Z ∂Z , ) ∂x1 ∂x2 ∇Z = (4, 1) a função objetiva sempre é perpendicular ao ∇ e sobe no sentido que está apontado o ∇. 2x1 + 3x2 ≤ 12 A: 2x1 + 3x2 = 12 X2 A 12 − 3 x 2 x1 = 2 8 2x1 + 1x2 ≤ 8 4 X1 6 0 X2 0 4 B: x2 = 8 - 2x1 B X1 0 4 1 0 4 6 X2 8 0 X1 Solução ótima (x1 = 4; x2 = 0 e Z = 16) A área hachurada representa a região onde estão todas as soluções possíveis para o problema. Cada ponto dessa região, definido por um par de coordenadas (x1, x2) é uma solução viável, pois satisfaz o conjunto de restrições. Portanto, o problema admite infinitas soluções, porém o que se quer é encontrar o ponto que dá a solução ótima, ou seja, que maximize o lucro total. Importante: o ponto (solução ótima) sempre se encontra em um dos vértices da região exeqüível. Deslocando-se uma reta que representa a função objetiva, paralelamente a si mesma para cima, implica em fazer crescer o valor de Z. O Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 7 nosso problema consiste, portanto, em procurar o último ponto pertencente ao conjunto viável, tal que por ele passe a reta que maximize Z. Outra forma de garantir que a função objetiva cresce sempre num sentido determinado é nos apoiar num teorema de cálculo diferencial e integral que diz que se uma função f: !Rn → !R é diferenciável, então o vetor gradiente, representado por (∇), fica: ∇f (x) = ( ∂f ∂f ∂f , , L, ) ∂ x1 ∂ x2 ∂ xn em cada x ∈ !Rn aponta no sentido do máximo crescimento da função. Quando for linear, ∇f(x) (gradiente) é constante e aponta sempre no mesmo sentido. No problema em questão ∇Z = (4, 1) que é o vetor que dá o sentido de máximo crescimento de Z. Nota-se também que ele é perpendicular á reta da função objetiva. Em se tratando de Problema de Minimização, a função objetiva é expressa como, Minimizar z = b1 y1 + b2 y2 + ... + bn yn e as restrições, geralmente, são apresentadas da seguinte maneira: a11 y1 + a21 y2 + ... + an1 yn ≥ c1 a12 y1 + a22 y2 + ... + an2 xn ≥ c2 .................................................. a1m y1 + a2m y2 + ... + amn yn ≥ bm y1, y2, …, ym ≥ 0 Pode-se apresentar esse modelo de forma mais compacta: m Min z = ∑ci yi i =1 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 8 m s.a. : ∑a i =1 ij yi ≥ cj para j = 1, 2, ..., n yi j ≥ 0 Exemplo: para i = 1, 2, ..., m Min z = 2x1 + 3x2 s.a.: x1 + x2 ≥ 5 5x1 + x2 ≥ 10 x1, x2 ≥ 0 Observa-se que o conjunto de restrições forma um sistema de desigualdades lineares. Assim existem infinitas combinações de valores de x1 e x2 que satisfazem as restrições. 2.4.2RESOLUÇÃO GRÁFICA DO PROBLEMA DE MINIMIZAÇÃO DE PROGRAMAÇÃO LINEAR Z = 2x1 + 3x2 ∇z = ( ∂Z ∂Z , ) ∂x1 ∂x 2 gradiente de z, representado por ∇ (nabla) ∇z = (2, 3) a função objetiva sempre é perpendicular ao ∇ e sobe no sentido que está apontado o ∇. X2 10 x1 + x2 ≥ 5 A: x1 + x2 = 5 A x2 = 5 – x1 X1 5 0 X2 0 5 5 5x1 + 1x2 ≥ 10 B: x2 = 10 - 5x1 3 B X1 0 2 0 2 5 X2 10 0 X1 Solução ótima (x1 = 5; x2 = 0 e z = 10) Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 9 2.4.3 APLICAÇÕES EM SISTEMAS PRODUTIVOS 1. Resolver graficamente o modelo de programação linear 1.1. Maximizar RECEITA = 0,3x1 + 0,5x2 Sujeito a: 2x1 + x2 ≤ 2 x1 + 3x2 ≤ 3 x1, x2 ≥ 0 1.2. Minimizar CUSTO = 10x1 + 12x2 Sujeito a: x1 + x2 ≤ 20 x1 + x2 ≥ 10 5x1 + 6x2 ≥ 54 x1, x2 ≥ 0 1.3. Certa empresa fabrica 2 produtos P1 e P2. O lucro por unidade de P1 é de 100 u.m. e o lucro unitário de P2 é de 150 u.m. A empresa necessita de 2 horas para fabricar uma unidade de P1 e 3 horas para fabricar uma unidade de P2. O tempo mensal disponível para essas atividades é de 120 horas. As demandas esperadas para os dois produtos levaram a empresa a decidir que os montantes produzidos de P1 e P2 não devem ultrapassar 40 unidades de P1 e 30 unidades de P2 por mês. Construa o modelo do sistema de produção mensal com o objetivo de maximizar o lucro da empresa. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 10 1.4. Duas fábricas produzem 3 diferentes tipos de papel. A companhia que controla as fábricas tem um contrato para produzir 16 toneladas de papel fino, 6 toneladas de papel médio e 28 toneladas de papel grosso. Existe uma demanda para cada tipo de espessura. O custo de produção na primeira fábrica é de 1.000 u.m. e o da segunda fábrica é de 2.000 u.m., por dia. A primeira fábrica produz 8 toneladas de papel fino, 1 tonelada de papel médio e 2 toneladas de papel grosso por dia, enquanto a segunda fábrica produz 2 toneladas de papel fino, 1 tonelada de papel médio e 7 toneladas de papel grosso. Quantos dias cada fábrica deverá operar para suprir os pedidos mais economicamente? 1.5. Uma companhia de transporte tem dois tipos de caminhões: O tipo “A” tem 2m3 de espaço refrigerado e 3m3 de espaço não refrigerado; O tipo “B” tem 2m3 de espaço refrigerado e 1m3 de espaço não refrigerado. O cliente quer transportar um produto que necessitará 16 m3 de área refrigerada e 12 m3 de área não refrigerada. A companhia calcula em 1.100 litros o combustível para uma viagem com o caminhão “A” e 750 litros para o caminhão “B”.Quantos caminhões de cada tipo deverão ser usados no transporte do produto, com o menor consumo de combustível. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 11 2.5 MÉTODO SIMPLEX O algoritmo Simplex de resolução de problema de programação linear foi desenvolvido pelo matemático norte americano George B. Dantzig em 1947. O Método Simplex de programação linear utiliza os conceitos básicos da álgebra matricial para achar a intersecção de duas ou mais retas ou planos. Ele começa em alguma solução viável, isto é aquela que satisfaça todas as restrições, e sucessivamente obtém soluções em intersecções que fornecem valores cada vez melhores para a função objetiva. Além disso, esse método fornece um indicador que determina quando a solução ótima é atingida. Dentro da matriz, tem-se uma coluna para cada variável real positiva, uma coluna para cada variável auxiliar ou de folga e uma última coluna é para cada constante indicando a limitação do recurso. 2.5.1 INTRODUÇÃO DAS VARIÁVEIS DE FOLGA Se as restrições são expressas em inequações, é preciso modificá-las em equações. Isto é feito pela introdução de um termo adicional em cada restrição. Este termo recebe o nome de variável de folga (si). Conforme já visto anteriormente, que as restrições do problema têm a seguinte estrutura lógica: Utilização de recursos ≤ disponibilidade Se introduzir o conceito de folga de recurso pode-se escrever a relação acima da seguinte forma: Utilização mais folga = disponibilidade Isto significa que: • utilização < disponibilidade folga > 0 • utilização = disponibilidade folga = 0 Assim, a folga de cada recurso pode se representada por uma variável de forma exatamente igual à produção de cada produto. Desse modo, Chamando-se de: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 12 • s1 = folga da madeira • s2 = folga de mão-de-obra Introduzindo a variável s1 para a primeira desigualdade e s2 para a segunda, tem-se o sistema anterior transformado. É óbvio que ao introduzir duas variáveis de folga (auxiliares) nesse sistema de inequações lineares terá o sistema de equações lineares: Max Z = 4x1 + 1x2 + 0s1 + 0s2 s.a.: 2x1 + 3x2 + 1s1 + 0s2 = 12 2x1 + 1x2 + 0s1 + 1s2 = 8 x1, x2, s1, s2 ≥ 0 onde s1, s2 são as variáveis de folga. Estas variáveis representam a parte não utilizada dos recursos a que se referem às inequações de restrição. O objetivo agora é encontrar valores não negativos de x1, x2, s1 e s2 que satisfaçam as duas novas condições de restrição e maximizem o valor da função objetivo (Z). Inicialmente monta-se a Tabela 1 Base x1 x2 s1 s2 constantes (b) S1 2 3 1 0 12 S2 2 1 0 1 8 Z 4 1 0 0 0 A última coluna corresponde aos termos independentes das equações, e a última linha contém os coeficientes da função objetiva. Nesta última linha, sempre tem a contribuição que cada variável dá para o lucro total L, por unidade, em cada iteração do processo de solução. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 13 Solução inicial: A solução inicial para o problema será sempre obtida fazendo as variáveis originais do modelo (no caso x1, x2) iguais a zero e achando o valor das demais. Assim temos x1 = x2 = 0 (variáveis não básicas) e s1 = 12 e s2 = 8 (variáveis básicas) e Z = 0. Como a primeira solução não é a melhor, procura-se outra que dê um valor maior para Z. O problema é descobrir: • Das duas variáveis não básicas (nulas) na primeira solução, qual deverá ser básica, isto é, se tornar positiva? • Das duas variáveis básicas (positivas) qual deverá ser anulada? Observando a tabela 1, nota-se que a contribuição unitária para o lucro da variável x1, é maior que a contribuição de x2. Logo, a variável que deverá se tornar positiva é x1. Por outro lado, examinando as duas equações, o maior valor possível para x1 na primeira equação, será 6, quando s1 for igual a zero, e o maior valor possível para x1 na segunda equação, será 4, quando s2 for igual a zero. Observe que essa análise pode ser feita diretamente no tabela 1, através da divisão dos elementos da coluna b pelos correspondentes elementos da coluna x1. O menor quociente indica, pela linha em que ocorreu, qual a variável básica que deve ser anulada, isto é, sair da base. Como 12/2 = 6 e 8/2 = 4, a variável básica a ser anulada é s2 e, em seu lugar entra a variável x1. 1a. operação: Dividir a segunda linha por 2. Tabela 2 Base x1 x2 s1 s2 b s1 2 3 1 0 12 x1 1 0,5 0 0,5 4 Z 4 1 0 0 0 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 14 2a. operação: a) Multiplicar a 2a linha por (-2) e somar com a 1a linha, colocando o resultado na linha 1. b) Multiplicar a 2a linha por (-4) e somar com a 3a linha, colocando o resultado na linha 3. Tabela 3 Base x1 x2 s1 s2 b S1 0 2 1 -1 4 X1 1 0,5 0 0,5 4 Z 0 -1 0 -2 -16 -2L2 + L1 -4L2 + L3 Como a última linha mostra as contribuições líquidas para o Z, e como estas contribuições têm seus valores com sinais (-) trocados com relação à tabela original, concluímos que a solução encontrada, x1 = 4; x2 = 0; s1 = 4; s2 = 0 e Z=16 é a solução ótima. O valor positivo de s1 representa uma quantidade não usada de madeira, isto é, 4m2. 2.5.2 MÉTODO SIMPLEX EM DUAS FASES O processo iterativo do Método Simplex sempre exige uma solução básica para iniciar a busca da solução ótima. 2.5.2.1 OBTENÇÃO DA SOLUÇÃO BÁSICA INICIAL Essa solução básica inicial vista até o presente momento era formada pelas variáveis de folga, já que as restrições eram do tipo (≤). Quando as restrições são do tipo (=) ou (≥), não existe essa solução básica inicial natural. Veja o exemplo: Min z = 16x1 + 12x2 + 5x3 s.a.: 8x1 + 4x2 + 4x3 ≥ 16 4x1 + 6x2 ≥ 12 x1, x2, x3 ≥ 0 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 15 Como as restrições são tipo (≥), as variáveis de folga (variáveis auxiliares) a serem acrescentadas devem ter coeficientes negativos, tendo o significado de variáveis de excesso. Assim o problema fica: Min z = 16x1 + 12x2 + 5x3 – 0s1 – 0s2 s.a.: 8x1 + 4x2 + 4x3 – 1s1 4x1 + 6x2 = 16 – 1s2 = 12 x1, x2, x3, s1, s2 ≥ 0 Ressalta-se que quando o problema original não assume a forma canônica, após a introdução de variáveis auxiliares, deve-se acrescentar variáveis artificiais (ai) ao mesmo, formando um novo problema de programação linear. A introdução de variáveis artificiais, que não tem significado algum para o problema real, mas que permitem a inicialização do processo usando o mesmo algoritmo simplex descrito anteriormente. Com a introdução de variáveis artificiais, o método simplex deverá desdobrar-se em duas fases, conforme será visto a seguir. 2.5.2.2 MÉTODO DAS DUAS FASES Passo 1: Introduzidas as variáveis de folga ou de excesso, para as restrições do tipo (≤) ou (≥) respectivamente, devem ser adicionadas as variáveis artificiais para todas as restrições do tipo (=) ou (≥), tal como: 8x1 + 4x2 + 4x3 – 1s1 4x1 + 6x2 + 1a1 – 1s2 = 16 + 1a2 = 12 Passo 2: Cria-se uma Função Objetiva Artificial da seguinte maneira. Para todas as variáveis reais e de folga, o coeficiente da função artificial será a soma dos coeficientes destas variáveis, e zero para as variáveis artificiais. Em nosso Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 16 exemplo, com as restrições do problema, tem-se a seguinte função objetiva artificial: F.O. artificial: 12x1 + 10x2 + 4x3 – 1s1 – 1s2 + 0a1 + 0a2 = 28 Passo 3: Monta-se a tabela de solução de forma exatamente igual à sistemática anterior, colocando-se a função objetiva artificial na última linha. Tabela 4 Base x1 x2 x3 s1 s2 a1 a2 B A1 8 4 4 -1 0 1 0 16 a2 4 6 0 0 -1 0 1 12 Z 16 12 5 0 0 0 0 0 za 12 10 4 -1 -1 0 0 28 Passo 4: Aplica-se o Método Simplex normalmente, usando como função objetiva a última linha. Quando a solução for atingida, dois casos podem ocorrer: 1) Za = 0: Neste caso foi obtida uma solução básica do problema original e o processo de solução deve continuar, desprezando-se as variáveis artificiais e os elementos da última linha. É o início da fase 2 do processo. 2) Za ≠ 0: Neste caso o problema original não tem solução viável, o que significa que as restrições devem ser inconsistentes. Fase 1: Resolver o problema de forma completa Tabela 5 Base x1 x2 x3 s1 s2 a1 a2 b a1 8 4 4 -1 0 1 0 16 a2 4 6 0 0 -1 0 1 12 Z 16 12 5 0 0 0 0 0 za 12 10 4 -1 -1 0 0 28 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 17 1a. iteração: entra a variável x1 e sai a variável a1 Tabela 6 Base x1 x2 x3 s1 s2 a1 a2 B x1 1 0,5 0,5 -0,125 0 0,125 0 2 a2 0 4 -2 0,5 -1 -0,5 1 12 Z 0 4 -3 2 0 -2 0 -32 za 0 4 -2 0,5 -1 -1,5 0 4 2a. iteração: entra a variável x2 e sai a variável a2 Tabela 7 Base x1 x2 x3 s1 s2 a1 a2 b X1 1 0 0,75 -0,1875 0,125 0,1875 -0,125 1,5 X2 0 1 -0,5 0,125 -0,25 -0,125 0,25 1 Z 0 0 -1 1,5 1 -1,5 -1 -36 za 0 0 0 0 0 -1 -1 0 Como na última linha o valor da função objetiva artificial é zero, a fase 1 termina e a solução encontrada é a solução básica inicial para a fase 2. Fase 2: Resolver o problema para minimização da função Tabela 8 inicial Base x1 x2 x3 s1 s2 B x1 1 0 0,75 -0,1875 0,125 1,5 x2 0 1 -0,5 0,125 -0,25 1 Z 0 0 -1 1,5 1 -36 Como o problema é de minimização, então entra a variável de menor contribuição. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 18 1a. iteração: entra a variável x3 e sai a variável x1 Tabela 9 final Base x1 x2 x3 s1 s2 b x3 1,333 0 1 -0,25 0,1667 2 x2 0,667 1 0 0 -0,1667 2 Z 1,333 0 0 1,25 1,1667 -34 Como os coeficientes da última linha são todos nulos ou positivos, a solução obtida é ótima. No caso, x2 = 2, x3 = 2 e z = 34 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 19 2.5.3 APLICAÇÕES EM SISTEMAS PRODUTIVOS 1. Resolver os modelos de programação linear, usando o método simplex. 1.1. Max LUCRO = 2x1 + 3x2 + 4x3 Sujeito a .: x1 + x2 + x3 ≤ 100 2x1 + x2 x1 ≤ 210 ≤ 80 x1, x2, x3 ≥ 0 1.2. Min CUSTO = 2x1 + 3x2 Sujeito a .: x1 + x2 ≥ 5 5x1 + x2 ≥ 10 x1, x2 ≥ 0 1.3. Uma companhia fabrica dois produtos P1 e P2 que utilizam os mesmos recursos produtivos: matéria-prima, forja e polimento. Cada unidade de P1 exige 4 horas de forjaria, 2 horas de polimento e utiliza 100 u. de matériaprima. Cada unidade de P2 requer 2 horas de forjaria, 3 horas de polimento e 200 u. de matéria-prima. O preço de venda de P1 é 1.900 u.m. e de P2, 2.100 u.m. Toda produção tem mercado garantido. As disponibilidades são de: 20 horas de forja; 10 horas de polimento e 500 unidades de matéria-prima, por dia. Determinar as quantidades de P1 e P2 que otimizem a receita diária dos produtos. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 20 1.4. Um fabricante de fantasias tem em estoque 32 m de brim, 22 m de seda e 30 m de cetim e pretende fabricar dois modelos de fantasias. O primeiro modelo (M1) consome 4 m de brim, 2 m de seda e 2 de cetim. O segundo modelo (M2) consome 2 m de brim, 4 m de seda e 6 de cetim. Se M1 é vendida a 6.000 u.m e M2 a 10.000 u.m., quantas peças de cada tipo o fabricante deve fazer para obter a receita máxima? 1.5. Uma fábrica de calçados pode produzir sapatos femininos, infantis e masculinos. A produção de uma dezena de pares de calçados femininos requer 2 horas de serviço do setor de montagem e 8 horas de serviço do setor de acabamento. A produção de uma dezena de pares de calçados infantis requer 1 hora de serviço do setor de montagem e 6 horas de serviço do setor de acabamento. A produção de uma dezena de pares de calçados masculinos requer 2 horas de serviço do setor de montagem e 4 horas de serviço do setor de acabamento. Os ganhos líquidos unitários na produção de sapatos femininos, infantis e masculinos, em unidades monetárias por dezenas de pares, são respectivamente 10, 8 e 10. Em cada turno de trabalho a fábrica dispõe de 300 horas de serviço no setor de montagem e de 720 horas de serviço no setor de acabamento. Determine o plano de produção que maximiza ganhos líquidos totais. 2. Resolver os modelos de programação linear (1.3, 1.4 e 1.5), usando o Excel, ou Simplex e Lindo. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 21 2. 6 ANÁLISE DE SENSIBILIDADE A análise de sensibilidade refere-se ao estudo de certas questões de pós-otimização. Freqüentemente, o agente econômico tem interesse em saber até que ponto a solução encontrada para o seu problema de programação linear seria alterada se um ou mais parâmetros do problema original fossem modificados. Dessa forma, deve-se examinar o efeito de mudanças paramétricas nos coeficientes da função objetiva e nos coeficientes do lado direito das restrições. A análise será totalmente desenvolvida a partir do problema numérico a seguir descrito. Uma fábrica pode produzir três produtos: 1, 2 e 3. Definimos xj (j=1, 2, 3) como a quantidade mensal produzida do j-ésimo produto. Os preços de mercado dos três produtos são P1 = 10,00, P2 = 6,00 e P3 = 4,00. Para produzir uma unidade do produto 1 são necessárias 1 hora de serviços técnicos, 10 horas de mão-de-obra e 2 horas de administração. Para produzir uma unidade do produto 2 são necessárias 1 hora de serviços técnicos, 4 horas de mão-de-obra e 2 horas de administração. Para produzir uma unidade do produto 3 são necessárias 1 hora de serviços técnicos, 5 horas de mão-de-obra e 6 horas de administração. Existe uma disponibilidade de 100 horas de serviços técnicos, 600 horas de mão-de-obra e 300 horas de administração. O objetivo da fábrica é maximizar os lucros. Formalmente o problema é representado como: Max L = 10x1 + 6x2 + 4x3 S.a .: x1 + x2 + x3 ≤ 100 (serviços técnicos) 10x1 + 4x2 + 5x3 ≤ 600 (mão-de-obra) 2x1 + 2x2 + 6x3 ≤ 300 (administração) x1, x2, x3 ≥ 0 onde: x1, x2 e x3 são as quantidades dos produtos 1, 2 e 3 produzidos. Introduzindo as variáveis de folga, tem-se: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 22 Max L = 10x1 + 6x2 + 4x3 + 0s1 + 0s2 + 0s3 x1 + x2 + x3 + 1s1 + 0s2 + 0s3 = 100 S.a .: 10x1 + 4x2 + 5x3 + 0s1 + 1s2 + 0s3 = 600 2x1 + 2x2 + 6x3 + 0s1 + 0s2 + 1s3 = 300 x1, x2, x3, s1, s2, s3 ≥ 0 As tabelas do problema ficam: Tabela 10: Inicial Base X1 x2 x3 s1 s2 s3 b s1 1 1 1 1 0 0 100 s2 10 4 5 0 1 0 600 s3 2 2 6 0 0 1 300 Z 10 6 4 0 0 0 0 x3 Tabela 11: Final Base x1 x2 s3 b x2 0 1 0,8333 1,6667 -0,1667 0 66,6667 x1 1 0 0,1667 -0,6667 0 33,3333 s3 0 0 1 100 Z 0 0 -2,6667 -3,3333 0 -733,333 4 s1 -2 s2 0,1667 0 -0,6667 Solução: x1 = 33,33; x2 = 66,67; x3 = 0; s1 = 0; s2 = 0; s3 = 100 e Z = 733,33. 2.6.1 MUDANÇAS PARAMÉTRICAS EM UM COEFICIENTE CJ DA FUNÇÃO OBJETIVO 2.6.1.1 MUDANÇA NO COEFICIENTE DE UMA VARIÁVEL NÃO-BÁSICA Nota-se, em primeiro lugar, que a coluna associada à atividade x3 não faz parte da base ótima (exemplo anterior), isto é, a atividade x3 é não-básica. Dada a própria natureza do problema, de imediato pode-se concluir que, se o produto 3 não é produzido quando c3 = 4,00, também não irá entrar no plano ótimo para c3 < 4,00. Portanto, a solução ótima dada na tabela 11 é completamente Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 23 estável com relação à diminuição de c3. O que pode acontecer se c3 > 4,00? Neste caso é de se esperar que para um valor de c3 suficientemente alto a atividade x3 acabe entrando no plano ótimo. Então, a solução da tabela 11 não deve ser completamente estável com relação a aumentos de c3. Supondo que c3 = 4,00 + ∆. Neste caso, a solução da tabela 11 deveria ser modificada para incorporar esta mudança. Assim, para a solução básica apresentada na tabela 11 continuar sendo uma solução ótima, o valor de ∆≤2,6667, pois ainda, o valor do coeficiente relativo de lucro permaneceria negativo ou nulo. Entretanto, nota-se também que para ∆ > 2,6667 tem-se o valor do coeficiente relativo de lucro maior que 0 (zero) e a solução básica apresentada na tabela 11 deixará de ser ótima. Concluí-se então que a solução da tabela 11 é estável com relação a aumentos de c3 até o acréscimo máximo de 2,6667 unidades ao valor utilizado inicialmente. Para c3 > 4 + 2,6667 > 6,6667 a atividade x3 passa a ser candidata à entrada na base. Outra maneira de calcular é como segue: quando uma variável é nãobásica, o que se deseja saber é qual seu coeficiente crítico para a estabilidade da solução, isto é, qual o valor a partir do qual a variável entra na base, mudando a solução. No exemplo, a entrada de x3 com valor 1 provoca um aumento no lucro de 4,00 (1x4) e a diminuição devido às outras variáveis de: 0,8333 x 6 + 0,1667 x 10 + 4 x 0 = 6,6667 O resultado é um decréscimo do lucro de 6,6667 – 4 = 2,6667, exatamente o valor de seu coeficiente em módulo na tabela final. Para que a entrada de x3 não diminua o lucro, é necessário que seu lucro unitário seja de: 4 + 2,6667 = 6,6667. Isto é, o lucro corrente mais seu valor de oportunidade. Portanto, a solução é estável para c3 ≤ 6,6667, e para c3 > 6,6667 a atividade x3 passa a ser candidata à entrada na base. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 24 2.6.1.2 MUDANÇA NO COEFICIENTE DE UMA VARIÁVEL BÁSICA Estando interessado agora em saber que tipo de variação podem sofrer os coeficientes de x1 e x2 sem alterar a solução ótima da tabela 11. 2.6.1.2.1 Intervalo de Estabilidade para o Coeficiente de x1 (c1) É intuitivamente claro que quando c1 fica abaixo de um certo nível, pode não ser lucrativo incluir o produto 1 na composição ótima de produtos. Quando c1 cresce, é possível que isto traga uma mudança da composição ótima de produtos em algum nível. Isto ocorre porque o produto 1 pode tornar-se tão lucrativo que a mistura ótima pode incluir apenas o produto 1. Portanto, existe um limite superior e um inferior na variação de c1 dentro da qual a solução ótima dada na tabela 11 não é influenciada. Para determinar a amplitude de variação sobre c1, deve-se observar que uma mudança em c1 muda o lucro das variáveis básicas. Entrada de x3 na base (passa de x3 = 0 para x3 = 1) Na tabela final 11, a coluna dos coeficientes de x3 nos mostra que, quando x3 passa de x3 = 0 para x3 =1 • x2 diminui em 0,8333 • x1 diminui em 0,1667 • s3 diminui em 4 O coeficiente de x1 que permite a entrada de x3 é um coeficiente que iguala o aumento de lucro com a entrada de x3 com a diminuição do lucro devido às outras variáveis x2, x1 e s3. Conhecidos os lucros unitários da tabela inicial 10, e chamando o lucro de x1 de c1, teremos: Aumento devido a x3: 1x4=4 Diminuição devido às outras variáveis e compensação: 0,8333x6 + 0,1667xc1 + 4x0 = 4 c1 = -6 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 25 Entrada de s1 na base (passa de s1 = 0 para s1= 1) Tem-se que • x2 diminui em 1,6667 • x1 diminui em –0,6667 • s3 diminui em -2 Aumento devido a s1: 1x0=0 Diminuição devido às outras variáveis e compensação: 1,6667x6 – 0,6667xc1 - 2x0 = 0 c1 = 15 Entrada de s2 na base (passa de s2 = 0 para s2= 1) Tem-se que • x2 diminui em –0,1667 • x1 diminui em 0,1667 • s3 diminui em 0 Aumento devido a s2: 1x0=0 Diminuição devido às outras variáveis e compensação: -0,1667x6 + 0,1667xc1 + 0x0 = 0 c1 = 6 Ordenando os valores críticos de c1: -6≤ 6≤ 10≤ 15 A solução é 6≤ c1 ≤ 15 estável para: 2.6.1.2.2 Intervalo de Estabilidade para o Coeficiente de x2 (c2) Entrada de x3 na base (passa de x3 = 0 para x3 = 1) • x2 diminui em 0,8333 • x1 diminui em 0,1667 • s3 diminui em 4 Aumento devido a x3: 1x4=4 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 26 Diminuição devido às outras variáveis e compensação: 0,8333xc2+ 0,1667x10+ 4x0 = 4 c2 = 2,8 Entrada de s1 na base (passa de s1 = 0 para s1= 1) Tem-se que • x2 diminui em 1,6667 • x1 diminui em –0,6667 • s3 diminui em -2 Aumento devido a s1: 1x0=0 Diminuição devido às outras variáveis e compensação: 1,6667xc2- 0,6667x10 - 2x0 = 0 c2 = 4 Entrada de s2 na base (passa de s2 = 0 para s2= 1) Tem-se que • x2 diminui em –0,1667 • x1 diminui em 0,1667 • s3 diminui em 0 Aumento devido a s2: 1x0=0 Diminuição devido às outras variáveis e compensação: -0,1667xc2+ 0,1667x10 + 0x0 = 0 c2 = 10 Ordenando os valores críticos de c1: 2,8 ≤ 4 ≤ 10 ≤ 10 A solução é estável para 4 ≤ c2 ≤ 10 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 27 2.6.2 ENTRADA DE UMA NOVA VARIÁVEL Suponha que tenha sido desenvolvido um quarto produto P4, que usa os mesmos insumos de P1, P2 e P3, e que não seja possível aumentar a capacidade gerada por esses insumos. Isto significa que se colocar P4 em produção, ele concorrerá com P1, P2 e P3 em termos de insumos. A pergunta é qual deveria ser o lucro mínimo de P4 para que sua fabricação fosse interessante? Um levantamento de dados mostra que a produção de P4 exige uma unidade de R1, duas unidades de R2 e uma unidade de R3. Portanto, para fabricálo terá que forçar essas folgas nos recursos, o que implicará uma perda de: 3,33 x 1 + 0,67 x 2 + 0 x 1 = 4,67 onde: 3,33; 0,67 e 0 são os preços sombra ou preço de oportunidade dos recursos. Portanto, o produto P4 poderia ser fabricado se seu lucro por unidade fosse no mínimo 4,67. 2.6.3 MUDANÇAS NOS VALORES DOS RECURSOS BJ Considerando-se a tabela inicial do problema de programação linear anterior Tabela 12: Representando novamente a Tabela 10 Base x1 x2 x3 s1 s2 s3 B s1 1 1 1 1 0 0 100 s2 10 4 5 0 1 0 600 s3 2 2 6 0 0 1 300 Z 10 6 4 0 0 0 0 A tabela final (solução ótima) resolvida pelo método simplex nos dá uma série de informações com relação aos recursos usados. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 28 Tabela 13: Tomando novamente a Tabela 11 Base x1 x2 x3 s1 s3 b x2 0 1 0,8333 1,6667 -0,1667 0 66,6667 x1 1 0 0,1667 -0,6667 0 33,3333 s3 0 0 1 100 Z 0 0 -2,6667 -3,3333 0 -733,333 4 s2 0,1667 -2 0 -0,6667 a) O recurso R1 cuja folga é s1 é um recurso escasso no programa. Seu coeficiente na função objetivo, 3,33 indica que se s1 entrar na base com valor 1, a nova solução terá o lucro diminuído em 3,33. Por outro lado, se conseguir mais uma unidade desse recurso aos custos correntes, a nova solução que incorpora essa unidade adicional tem lucro aumentado em 3,33. O problema agora é saber até quando isso pode ser feito, isto é, quantas unidades adicionais do recurso R1 alocadas aos custos correntes podem ser incorporadas na produção com aumento no lucro de 3,33 por unidade. Da mesma forma, quantas unidades podem retirar ocasionando uma diminuição de 3,33 no objetivo, por unidade retirada. Chamando essa variação de ∆1. O que se sabe sobre ∆1 é que ela não poderá torna os valores de b negativos na tabela final. Da tabela inicial, os valores de b ficariam: 100+∆1 600 100 ou 300 600 1 + 0 300 ∆1 0 Na tabela final, esses vetores se transformam em: 66,6667 33,3333 100 1,6667 + -0,6667 ∆1 -2 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 29 Os valores limites para ∆1 são dados por: 66,67 + 1,67∆1 = 0 ∆1 = -40 33,33 - 0,67∆1 = 0 ∆1 = 50 100 - 2∆1 =0 ∆1 = 50 Ordenando os valores críticos de b1: -40 ≤ ∆1 ≤ 50. Estes valores limites (inferior e superior) devem ser somados a 100. Logo, a variação do coeficiente b1 será: 60 ≤ b1 ≤ 150. b) O recurso R2 cuja folga é s2 é um recurso escasso no programa. Seu coeficiente na função objetivo, 0,67 indica que se s2 entrar na base com valor 1, a nova solução terá o lucro diminuído em 0,67. Por outro lado, se conseguir mais uma unidade desse recurso aos custos correntes, a nova solução que incorpora essa unidade adicional tem lucro aumentado em 0,67. Chamando de ∆2 a variação em R2, que mantém a informação do coeficiente de s2. Como argumentado anteriormente, da tabela inicial tem-se: 100 600+∆2 100 ou 300 0 600 + 300 1 ∆2 0 Na tabela final, esses dois vetores se transformam em: 66,6667 33,3333 100 -0,1667 + 0,1667 ∆2 0 Os valores limites para ∆2 são dados por: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 30 66,667 - 0,1667∆2 = 0 ∆2 = 400 33,333 + 0,1667∆2 = 0 ∆2 = -200 100 impossível + 0∆2 =0 Ordenando os valores críticos de b2: -200 ≤ ∆2 ≤ 400. Estes valores limites (inferior e superior) devem ser somados a 600. Logo, a variação do coeficiente b1 será: 400 ≤ b2 ≤ 1000. c) O recurso R3 cuja folga é representada por s3 é um recurso não escasso. Isto significa que uma redução de até 100 horas no recurso não afeta a solução. Chamando ∆3 a variação em R3, a tabela inicial ficará: 100 100 600 ou 600 300 300+∆3 0 + 0 ∆3 1 Na tabela final, esses dois vetores se transformam em: 66,6667 33,3333 100 0 + 0 ∆3 1 Os valores limites para ∆3 são dados por: 66,6667 + 0∆3 = 0 impossível 33,3333 + 0∆3 = 0 impossível 100 + 1∆3 = 0 ∆3 = -100 Somando este valor (-100 + 300), o coeficiente b3 será: b3 ≥ 200. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 31 2.6.4 APLICAÇÕES EM SISTEMAS PRODUTIVOS Dado o modelo de programação linear: Max. L = 2.100x1 + 1.200x2 + 600x3 s. a.: 6x1 + 4x2 + 6x3 ≤ 4.800 12x1 + 16x2 + 2x3 ≤ 7.200 (horas de máquina para produção de bens) (horas de mão-de-obra para produção) ≤ 800 (demanda de P1) ≤ 600 (demanda de P2) x3 ≤ 600 (demanda de P3) x1 x2 onde: xj são as decisões de produção dos bens Pj. O objetivo é maximizar o lucro pela venda desses produtos. O quadro final pelo método simplex é o seguinte: base X1 x2 X3 s1 S2 s3 s4 s5 b x3 0 -0,8 1 0,20 -0,10 0 0 0 240 x1 1 1,467 0 -0,033 0,10 0 0 0 560 s3 0 -1,467 0 0,033 -0,10 1 0 0 240 s4 0 1 0 0 0 0 1 0 600 s5 0 0,8 0 -0,20 0,10 0 0 1 360 L 0 -1.400 0 -50 -150 0 0 0 1.320.000 Pede-se: 1.1. Qual o intervalo de estabilidade para o coeficiente de x1? O que isto significa? 1.2. Qual o intervalo de estabilidade para o coeficiente de x3? O que isto significa? 1.3. Qual deveria ser o lucro no produto (2) para que valesse a pena fabricá-lo? 1.4. Qual o limite para aquisição do recurso R1, sem alterar a solução. 1.5. Um novo produto que use 3 horas máquina, 5 horas de mão-de-obra e com demanda garantida de 200 unidades para um lucro máximo de 800 u.m., teria interesse no programa? Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 32 2.7 DUALIDADE EM PROGRAMAÇÃO LINEAR Em determinadas situações, a quantidade de cálculos necessária para resolver um modelo linear pelo método simplex pode ser reduzida. O modelo inicial, chamado PRIMAL, pode ser substituído por outro chamado DUAL, cuja solução é mais rápido. Portanto, todo problema de programação linear Maximizar Z = c1 x1 + c2 x2 + ... + cn xn s.a.: a11 x1 + a12 x2 + ... + a1n xn ≤ b1 a21 x1 + a22 x2 + ... + a2n xn ≤ b2 .................................................. am1 x1 + am2 x2 + ... + amn xn ≤ bm x1, x2, …, xn ≥ 0 que se chama de PRIMAL pode ser associado um outro problema, chamado de DUAL. Minimizar z = b1 y1 + b2 y2 + ... + bn yn s.a.: a11 y1 + a21 y2 + ... + an1 yn ≥ c1 a12 y1 + a22 y2 + ... + an2 xn ≥ c2 .................................................. a1m y1 + a2m y2 + ... + amn yn ≥ bm y1, y2, …, ym ≥ 0 Genericamente, pode-se representar os modelos da seguinte forma: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 33 • Problema Primal: n Max Z = ∑ c j x j j =1 n s.a. : ∑a j =1 ij x j ≤ bi xj ≥ 0 para i = 1, 2, ..., m para j = 1, 2, ..., n • Problema Dual: m Min z = ∑ ci yi i =1 m s.a. : ∑a i =1 ij yi ≥ c j yi ≥ 0 para j = 1, 2, ..., n para i = 1, 2, ..., m Analisando-se os problemas Primal e Dual, pode-se concluir que: a) Se a função objetiva do dual é de minimização a do primal é de maximização, e vice-versa. b) Os termos constantes das restrições do dual são os coeficientes da função objetiva do primal. c) Os coeficientes da função objetiva do dual são os termos constantes das restrições do primal. d) Se as restrições do dual são do tipo (≥), as do primal são do tipo (≤). e) O número de incógnitas do dual (m valores de yi) é igual ao número de restrições do primal. f) O número de restrições do dual é igual ao número de incógnitas do primal (n valores de xj). g) A matriz dos coeficientes do dual é a transposta da matriz dos coeficientes do primal. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 34 Exemplo: Uma indústria dispõe de três recursos A, B e C, em quantidades limitadas, com os quais pretende produzir dois produtos (Prod.1) e (Prod.2). O quadro abaixo dá a utilização unitária de cada recurso em cada um dos produtos e a disponibilidade de cada recurso. A indústria sabe que cada unidade produzida do Prod.1 dá uma margem unitária de lucro de R$ 5,00, e cada unidade produzida do Prod.2 dá uma margem unitária de lucro de R$ 6,00. O problema de programação da produção da indústria é determinar a quantidade a ser feita de Prod.1 e Prod.2 de forma a maximizar a margem de lucro total. Recurso Disponibilidade A B C 14 9 56 Recurso gasto para fazer 1 unidade do prod.1 prod.2 1 1 7 2 1 4 Problema 1 - PRIMAL: Em forma matemática, o problema de programação pode ser: Max Z = 5x1 + 6x2 s. a .: x1 + 2x2 ≤ 14 x1 + x2 ≤ 9 7x1 + 4x2 ≤ 56 x1, x2 ≥ 0 Acrescentando as variáveis de folga (auxiliares), tem-se: Max Z = 5x1 + 6x2 + 0s1 + 0s2 + 0s3 s. a .: x1 + 2x2 + 1s1 + 0s2 + 0s3 = 14 x1 + x2 + 0s1 + 1s2 + 0s3 = 9 7x1 + 4x2 + 0s1 + 0s2 + 1s3 = 56 x1, x2, s1, s2, s3 ≥ 0 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 35 Tabela 14 Base X1 x2 s1 s2 s3 B S1 1 2 1 0 0 14 s2 1 1 0 1 0 9 s3 7 4 0 0 1 56 Z 5 6 0 0 0 0 Base x1 x2 s1 s2 s3 b x2 0,5 1 0,5 0 0 7 s2 0,5 0 -0,5 1 0 2 s3 5 0 -2 0 1 28 Z 2 0 -3 0 0 -42 Base x1 x2 s1 s2 s3 b x2 0 1 1 -1 0 5 x1 1 0 -1 2 0 4 s3 0 0 3 -10 1 8 Z 0 0 -1 -4 0 -50 Tabela 15 Tabela 16 Para análise da tabela acima, a solução obtida é ótima, tendo os seguintes valores: x1 = 4; x2 = 5; s1 = 0; s2 = 0; s3 = 8 e Z = 50. Por outro lado, supondo que a indústria tenha a alternativa de vender os recursos A, B e C, em vez de empregá-los na produção dos dois produtos. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 36 O problema que se coloca agora é encontrar o valor da unidade de cada recurso. É evidente que a venda dos recursos deve fornecer um ganho pelo menos igual ao obtido com a utilização deles na produção. Chamando: y1 : valor do recurso A Por unidade; y2 : valor do recurso B Por unidade; y3 : valor do recurso C Por unidade. Em termos de avaliação dos recursos, cada um dos produtos pode também ser avaliado, levando em conta a utilização dos recursos por unidade fabricada. Assim, Prod.1 gasta 1 unidade do recurso A, 1 unidade do recurso B e 7 unidades do recurso C. O Prod.2 gasta 2 unidades do recurso A, 1 unidade do recurso B e 4 unidades do recurso C. É claro que essas avaliações dos produtos não podem ser inferiores às margens unitárias de lucro fornecidas por cada um. Além disso, o gerente tem interesse em determinar o valor mínimo do estoque total, respeitando as restrições de que as avaliações dos produtos sejam pelo menos iguais aos lucros unitários fornecidos. Problema 2 - DUAL: Em forma matemática, o problema de programação pode ser: Min z = 14y1 + 9y2 + 56y3 s. a .: 1y1 + 1y2 + 7y3 ≥ 5 2y1 + 1y2 + 4y3 ≥ 6 y1, y2, y3 ≥ 0 Acrescentando as variáveis de excesso (auxiliares) e as variáveis artificiais, temos: Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 37 Min z = 14y1 + 9y2 + 56y3 – 1s1 + 0s2 + 0a1 + 0a2 s. a .: 1y1 + 1y2 + 7y3 – 1s1 + 0s2 + 1a1 + 0a2 = 5 2y1 + 1y2 + 4y3 + 0s1 – 1s2 + 0a1 + 1a2 = 6 y1, y2, y3, s1, s2, a1, a2 ≥ 0 Tabela 17 Base y1 y2 y3 s1 s2 a1 a2 b a1 1 1 7 -1 0 1 0 5 a2 2 1 4 0 -1 0 1 6 Z 14 9 56 0 0 0 0 0 za 3 2 11 -1 -1 0 0 11 1ª. Iteração Tabela 18 Base y1 Y3 0,14285 a2 1,42857 Z 6 za 1,42857 y2 y3 s1 s2 0,14285 1 -0,14286 0 0,42857 0 0,57143 0 8 1 0,42857 0 a2 b 0,14286 0 0,71428 -1 -0,57143 1 3,14285 0 -8 0 -40 -1,57143 0 3,14285 0,57143 -1 a1 2ª. Iteração Tabela 19 Base y1 y2 y3 0 0,1 y1 1 Z za y3 s1 s2 a1 a2 b 1 -0,2 0,1 0,2 -0,1 0,4 0,3 0 0,4 -0,7 -0,4 0,7 2,2 0 -0,8 0 6 4,2 -5,6 -4,2 -53,2 0 0 0 0 0 -1 -1 0 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 38 3ª. Iteração Tabela 20 Base y1 y2 y3 s1 s2 b y2 0 1 10 -2 1 4 y1 1 0 -3 1 -1 1 Z 0 0 8 4 5 -50 Para análise da tabela acima, a solução obtida é ótima, tendo os seguintes valores: y1 = 1; y2 = 4; y3 = 0; s1 = 0; s2 = 0 e z = 50. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 39 3 PROGRAMAÇÃO INTEIRA 3.1 INTRODUÇÃO Um problema de Programação Linear Inteira (PLI) é um problema de Programação linear (PL) em que todas as variáveis de decisão são discretas, isto é, têm que assumir valores inteiros. Embora na Programação Inteira (PI) inclua também a Programação Não-Linear Inteira, em praticamente todos os modelos da vida real se preserva a estrutura linear das funções. Assim, neste trabalho serão apresentados apenas os modelos de Programação Linear Inteira. 3.2 MÉTODOS DE RESOLUÇÃO Poderia aparecer à primeira vista que os problemas de PLI são relativamente fáceis de resolver: os problemas de PL são resolvidos de forma extremamente eficiente e, entre os problemas de PL e de PLI, a única diferença é haver, no caos da PLI, muito menos soluções a serem consideradas (soluções inteiras e não reais). 3.3 MÉTODO DE PARTIÇÃO E AVALIAÇÃO SUCESSIVAS O método “Branch and Bound” consiste na partição (ramificação) sucessiva do conjunto de soluções possíveis do problema de PLI em subconjuntos e na limitação (avaliação) do vetor ótimo da função objetiva (limite inferior se tratar de maximização, ou limite superior se tratar de minimização), de modo a excluir os subconjuntos que não contenham a solução ótima. Partindo da constatação de que “se, na solução ótima da relaxação linear de um problema de PLI, as variáveis tomam valores inteiros, então essa solução é a solução ótima do PLI”. Começa-se por resolver a relaxação linear do PLI inicial: se as variáveis que no problema de PLI são inteiras tomam, na solução ótima de PL, valores inteiros, então foi encontrada a solução ótima do PLI; caso contrário, divide-se o problema de PL em dois, através da introdução de restrições adicionais que fazem Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 40 a partição do conjunto das soluções possíveis. Vão então resolvendo sucessivos problemas de PL, estabelecendo-se limites para o valor ótimo da função objetiva e, assim, eliminando diversos subconjuntos, até alcançar a solução ótima do PLI. 3.4 APLICAÇÃO Considere-se o seguinte exemplo: Pedro, proprietário de uma empresa moveleira “Mulher Feliz”, decidiu criar uma secção para fabricar móveis de madeira, começando por apenas dois tipos de móveis: armários (lucro unitário de R$ 240,00) e escrivaninhas (lucro unitário de R$ 150,00). Cada armário requer uma hora de trabalho e 9 m2 de madeira, enquanto que cada escrivaninha requer uma hora de trabalho e 5 m2 de madeira. Supondo que estão disponíveis 6 horas de trabalho e 45 m2 de madeira, que quantidades de forma a maximizar o lucro? Variáveis de decisão: • x1 = quantidade a produzir de armário • x2 = quantidade a produzir de escrivaninha Com essa definição de variáveis, pode-se escrever as relações que formam o modelo matemático. Assim, o problema de Programação Inteira será: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) x1, x2 ≥ 0 e inteiros O primeiro passo consiste na resolução da relaxação linear do PLI, que corresponde no método simplex. Por outro lado, já que envolve apenas duas variáveis de decisão, a solução pode ser obtida graficamente. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 41 Resolvendo o modelo acima, a solução ótima do problema de PL é: x1 = 3,75 e x2 = 2,25 e Lucro = 1.237,50 Desde já se sabe que o valor ótimo da função objetiva não pode exceder 1.237,50. Como na solução ótima deste problema, as variáveis de decisão x1 e x2 não são inteiras, há necessidade de efetuar a sua partição, dando origem a dois novos problemas (A e B), pela introdução de novas restrições de eliminação de soluções não inteiras: x1 ≤ 3 e x1 ≥ 4. Poderia ter escolhido a variável x2 para fazer a partição. Neste caso, o problema de PI, fica: A: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x1 x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) ≤ 3 x1, x2 ≥ 0 e inteiros Solução ótima do subproblema A: x1 = 3 e x2 = 3 e L = 1.170,00 B: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x1 x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) ≥4 x1, x2 ≥ 0 e inteiros Solução ótima do subproblema B: x1 = 4 e x2 = 1,8 e L = 1.230,00 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 42 Primeira partição: Introduzindo, no problema de PL inicial, a restrição x1 ≤ 3 obtém-se o subproblema A, cuja solução ótima é inteira, e introduzindo a restrição x1 ≥ 4 obtém-se o subproblema B cuja solução ótima ainda não é inteira, pelo que se tem de continuar a partição. A solução ótima do subproblema A é inteira, o que significa que se encontrou uma solução inteira cujo valor da função objetiva é 1.170,00. O valor ótimo da função objetiva estará compreendido entre estes dois limites, 1.170,00 ≤ L ≤1.237,50. Como a solução ótima do subproblema B não é inteira e o valor da função objetiva é 1.230,00 (> 1.170,00) este problema pode conter uma solução inteira melhor que a do subproblema A; logo, é necessário efetuar a sua partição, dando origem aos subproblemas B1 e B2, pela introdução das restrições x2 ≥ 2 e x2≤ 1. Assim, os subproblemas são da forma: B1: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) ≥4 x1 x2 ≥ 2 x1, x2 ≥ 0 e inteiros Resolvendo-se o subproblema B1 notou-se que o mesmo não tem soluções possíveis, sendo por isso excluído. B2: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x1 x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) ≥4 x2 ≤ 1 x1, x2 ≥ 0 e inteiros Solução ótima do subproblema B2: x1 = 4,44 e x2 = 1 e L = 1.216,67 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 43 Segunda partição: Introduzindo, no subproblema B, a restrição x2 ≥ 2 obtém-se o subproblema B1 (solução impossível) e introduzindo a restrição x2 ≤ 1 obtém-se o subproblema B2 cuja solução ainda não é inteira, pelo que se tem de continuar a partição. O subproblema B1 não tem soluções possíveis, sendo por isso excluído. O subproblema B2, pelas mesmas razões do subproblema B, é objeto de partição e dá origem aos subproblemas B21 e B22, pela introdução das restrições x1 ≤ 4 e x1≥ 5 e. Assim, os subproblemas são da forma: B21: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) ≥4 x1 x2 ≤ 1 x1 =4 ≤4 x1 x1, x2 ≥ 0 e inteiros Solução ótima do subproblema B21: x1 = 4 e x2 = 1 e L = 1.110,00 B22: Max L = 240x1 + 150x2 s.a.: x1 + 9x1 + x2 ≤ 6 (horas de trabalho) 5x2 ≤ 45 (quantidade de madeira) x2 ≤ 1 x1 ≥5 x1, x2 ≥ 0 e inteiros Solução ótima do subproblema B22: x1 = 5 e x2 = 0 e L = 1.200,00 Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 44 Terceira partição: Introduzindo, no subproblema B2, a restrição x1 ≥ 5 obtém-se o subproblema B21 e introduzindo a restrição x1 ≤ 4 obtém-se o subproblema B22. Como todas as soluções são inteiras não há necessidade de efetuar mais nenhuma partição. Portanto a solução ótima do problema de PLI foi encontrada, cujos valores são: x1 = 5, x2 = 0 e L = 1.200,00. Dessa forma, tanto o subproblema B21 quanto o subproblema B22 têm soluções inteiras. O valor ótimo da função objetiva do subproblema B21 é menor que 1.170,00, ou seja, pior do que a solução de que já se dispunha. O valor ótimo da função objetiva do subproblema B22 é 1.200,00. A seqüência total de partições é particularmente apresentada abaixo no seguinte diagrama, estruturado em forma de árvore, isto é, método “Branch and Bound”. (x1 = 3,75; x2 = 2,25) L = 1.237,50 x1 ≤ 3 x1 ≥ 4 A (x1 = 3; x2 = 3) L = 1.170,00 B x2 ≥ 2 x2 ≤ 1 B1 Solução Impossível (x1 = 4; x2 = 1,8) L = 1.230,00 B2 x1 ≤ 4 B21 (x1 = 4; x2 = 1) L = 1.110,00 (x1 = 4,44; x2 = 1) L = 1.216,67 x1 ≥ 5 B22 (x1 = 5; x2 = 0) L = 1.200,00 Diagrama estruturado em forma de árvore - método “Branch and Bound”. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 45 3.5 APLICAÇÕES EM SISTEMAS PRODUTIVOS Uma fábrica pode produzir três produtos: 1, 2 e 3. Definimos xj (j=1, 2, 3) como a quantidade mensal produzida do j-ésimo produto. Os preços de mercado dos três produtos são P1 = 10,00, P2 = 6,00 e P3 = 4,00. Para produzir uma unidade do produto 1 são necessárias 1 hora de serviços técnicos, 10 horas de mão-de-obra e 2 horas de administração. Para produzir uma unidade do produto 2 são necessárias 1 hora de serviços técnicos, 4 horas de mão-de-obra e 2 horas de administração. Para produzir uma unidade do produto 3 são necessárias 1 hora de serviços técnicos, 5 horas de mão-de-obra e 6 horas de administração. Existe uma disponibilidade de 100 horas de serviços técnicos, 600 horas de mão-de-obra e 300 horas de administração. O objetivo da fábrica é maximizar os lucros. Max L = 10x1 + 6x2 + 4x3 S.a .: x1 + x2 + x3 ≤ 100 (serviços técnicos) 10x1 + 4x2 + 5x3 ≤ 600 (mão-de-obra) 2x1 + 2x2 + 6x3 ≤ 300 (administração) x1, x2, x3 ≥ 0 e inteiros onde: x1, x2 e x3 são as quantidades dos produtos 1, 2 e 3 produzidos. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto 46 BIBLIOGRAFIA ANDRADE, E. L. Introdução à Pesquisa Operacional – Métodos e Modelos para Análise de Decisão. 2. ed. Rio de Janeiro: LTC , 1998. BREGALGA, P. F.; OLIVEIRA, A. F.; BORNSTEIN, C. T. Introdução a Programação Linear. 3. ed. Rio de Janeiro: Campus, 1988. CHAPRA, S. C.; CANALE, R. P. Numerical Methods for Engineers whit Programming Software Applications. Tird Edition McGraw-Hill, New York, 1998. EHRLICH, P. J. Pesquisa Operacional. São Paulo: Atlas, 1991. LANZER, E. A. Programação Linear: Conceitos e Aplicações. 2. ed. Rio de Janeiro, IPEA/INPES, 1988. LACHTERMACHER, G. Pesquisa Operacional na Tomada de decisão. Modelagem em Excel. 3. ed. Rio de Janeiro: Campus, 2007. SILVA, E. M.; SILVA, E.M.; GONÇALVES, V.; MUROLO, A C. Pesquisa Operacional para os Cursos de: Economia, Administração e Ciências Contábeis. 3. ed. São Paulo: Atlas, 1998. Pesquisa Operacional na Tomada de Decisão – Professores: Dr. Waldir Medri e Ana Satie Yotsumoto