CAPÍTULO 2 Introdução à Programação Linear 1. Definição Um problema de PL consiste em determinar valores não negativos para as variáveis de decisão, de forma que satisfaçam as restrições impostas e que optimizem (minimizem ou maximizem) uma função (real) linear dessas variáveis. 2. Formalização e modelação matemática de problemas de PL Existem 2 formas diferentes de apresentar o modelo, conforme se pretenda maximizar ou minimizar, que são as seguintes : Maximizar (Minimizar) Z = c 1 x 1 + c 2 x 2 +L+ c n x n (1.1) Sujeito a a 11 x 1 + a 12 x 2 +L+ a 1n x n { ≤, =, ≥ } b1 a 21 x 1 + a 22 x 2 +L+ a 2n x n { ≤, =, ≥ } b2 (1.2) ... a m1 x 1 + a m2 x 2 +L+ a mn x n { ≤, =, ≥ } bm x 1 , x 2 , L, x n ≥ 0 (1.3) onde, aij (i = 1, ...,m; j = 1, ...,n) → coeficientes técnicos ou tecnológicos, b1, b2, ..., bm → termos independentes (constantes de restrição ou segundos membros), c1 , c2, . . . , cn → coeficientes da função objectivo (coeficientes de custo), 14 Formalização e modelação matemática de problemas de PL x1 , x2, . . . , xn → variáveis de decisão (principais ou controláveis), (1.1) → função objectivo (económica ou critério), (1.2) → restrições (restrições funcionais), em que apenas se verifica uma das relações, (1.3) → condições de não negatividade. No entanto, o modelo é frequentemente apresentado nas seguintes formas típicas : Maximizar (Minimizar) Z = c 1 x 1 + c 2 x 2 +L+ c n x n (2.1) Sujeito a a 11 x 1 + a 12 x 2 +L+ a 1n x n ≤ ( ≥ ) b 1 a 21 x 1 + a 22 x 2 +L+ a 2n x n ≤ ( ≥ ) b 2 (2.2) ... a m1 x 1 + a m2 x 2 +L+ a mn x n ≤ ( ≥ ) b m x 1 , x 2 ,L, x n ≥ 0 (2.3) Estas duas formas são tão gerais quanto (1.1), (1.2) e (1.3), pois, mediante operações convenientes, é sempre possível dar a qualquer problema uma daquelas formas. Com efeito, qualquer problema pode ser reduzido a uma destas formas, da seguinte maneira : qualquer problema de minimização pode converter-se num de maximização, pois Minimizar Z = − Maximizar (− Z) restrições do tipo (≥) pode ser convertida em restrições do tipo (≤), mediante a multiplicação por (1) de ambos os membros, a i1 x 1 + a i2 x 2 + L + a in x n ≥ b i ⇔ − a i1 x 1 − a i2 x 2 − L − a in x n ≤ − b i restrições do tipo (=) pode ser convertida em 2 do tipo (≤) equivalentes, em conjunto, àquela, a i1 x 1 + a i2 x 2 + L + a in x n = b i ⇔ a i1 x 1 + a i2 x 2 + L + a in x n ≤ b i a i1 x 1 + a i2 x 2 + L + a in x n ≥ b i ⇔ a i1 x 1 + a i2 x 2 + L + a in x n ≤ b i − a i1 x 1 − a i2 x 2 − L − a in x n ≤ − b i ⇔ variável livre (sem restrição de sinal) pode ser substituída pela diferença de variáveis não negativas1 ( x j = x 'j − x 'j' com x 'j , x 'j' ≥ 0 ), formulando-se de novo o problema em termos destas variáveis. 1 Qualquer número pode ser obtido como a diferença de dois números não negativos. Introdução à Programação Linear Formalização e modelação de alguns problemas de PL 15 3. Formalização e modelação de alguns problemas de PL Problema 1 : Uma empresa de mobiliário de escritório pretende lançar um modelo de secretárias e estantes. Pensa-se que o mercado pode absorver toda a produção de estantes, mas aconselha-se que a produção mensal de secretárias não ultrapasse as 160 unidades. Ambos os produtos são processados nas unidades de estampagem (UE) e de montagem e acabamento (UMA). A disponibilidade mensal em cada uma destas unidades é de 720 horas−máquina (h−m) na UE e 880 horas−homem (h−h) na UMA. Cada secretária necessita de 2h−m na UE e de 4 h−h na UMA. Cada estante necessita de 4 h−m na UE e de 4 h−h na UMA. As margens de lucro unitárias estimadas são de 6 contos para as secretárias e de 3 contos para as estantes. Qual o plano de produção mensal para as secretárias e estantes que maximiza a margem de lucro. Formalização do problema : Variáveis de decisão : • quantidade de secretárias a produzir por mês (x1) • quantidade de estantes a produzir por mês (x2) Função objectivo : • maximizar a margem bruta total por mês (Z = 6 x1 + 3 x2) Restrições : • disponibilidade mensal na unidade de estampagem • disponibilidade mensal na unidade de montagem e acabamento • produção mensal de secretárias Secretárias Estantes Capacidade disponível UE 2 4 720 UMA 4 4 880 Mercado 1 0 160 Lucro 6 3 Introdução à Programação Linear 16 Formalização e modelação de alguns problemas de PL Modelação matemática : Relativamente ao Departamento de Estampagem, sabe-se que : • cada secretária necessita de 2 h−m, pelo que o nº total de h−m necessárias à produção de x1 secretárias é de 2 x1; • cada estante necessita de 4 h−m, pelo que o nº total de h−m necessárias à produção de x2 secretárias é de 4 x2; • a disponibilidade mensal é de 720 h−m. Logo, a restrição relativa a este Departamento é : Total de h−m gasto nas secretárias + Total de h−m gasto nas estantes ≤ Disponibilidade em h−m que se traduz algebricamente na desigualdade linear : 2 x1 + 4 x2 ≤ 720 Da mesma forma se determinam as restantes restrições. Resumindo, o problema consiste em determinar x1 e x2 por forma a Maximizar Z = 6 x1 + 3 x2 (lucro mensal em contos) sujeito a 2 x1 + 4 x2 ≤ 720 (UE) 4 x1 + 4 x2 ≤ 880 (UMA) ≤ 160 (mercado) x1 x1, x2 ≥ 0 (não negatividade) Problema 2 : Um criador de porcos, pretende determinar a quantidade de cada tipo de ração a dar diariamente a cada animal, para conseguir uma dada qualidade nutritiva a custo mínimo. Os dados relativos ao custo de cada tipo de ração, às quantidades mínimas diárias de ingredientes nutritivos básicos a fornecer a cada animal, bem como às quantidades destes existentes em cada tipo de ração (g/kg) constam do quadro em baixo. Granulado (gr/Kg) Farinha (gr/Kg) Quantidade mínima requerida Hidratos de carbono 20 50 200 Vitaminas 50 10 150 Proteínas 30 30 210 Custo (esc./Kg) 10 5 Introdução à Programação Linear Formalização e modelação de alguns problemas de PL 17 Formalização do problema : Variáveis de decisão : • quantidade (Kg) de granulado existente na ração diária (x1) • quantidade (Kg) de farinha existente na ração diária (x2) Função objectivo : • minimizar o custo da ração diária (Z = 10 x1 + 5 x2) Restrições : • quantidade mínima diária de hidratos de carbono • quantidade mínima diária de vitaminas • quantidade mínima diária de proteínas Modelação matemática : Pretende-se determinar x1 e x2 de modo a minimizar Z = 10 x1 + 5 x2 (custo diário) 20 x1 + 50 x2 quantidade a fornecer diariamente ≥ 50 x1 + 10 x2 ≥ 150 (vitaminas) 30 x1 + 30 x2 ≥ 210 (proteínas) sujeito a 200 (hidratos de carbono) quantidade mínima necessária por dia x1, x2 ≥ 0 (não negatividade) Problema 3 : As Caravanas Marco Polo L.da. usam dromedários (1 bossa) e camelos (2 bossas) para transportar figos secos de Bagdade para Meca. Um camelo pode levar no máximo 1000 lbs e um dromedário 500 lbs. Durante a viagem um camelo consome 3 fardos de feno e 100 galões de água. Um dromedário consome 4 fardos de feno e 80 galões de água. As estações da Marco Polo, situadas em vários oásis ao longo do caminho, apenas têm disponíveis 1600 galões de água e 60 fardos de feno. Os camelos e os dromedários são alugados a um pastor perto de Bagdade a 11 pazuzas por camelo e 5 pazuzas por dromedário. Se as Caravanas Marco Polo L.da. tiverem uma carga de 10000 lbs de figos para transportar, quantos camelos e dromedários devem ser usados para minimizar a renda a pagar ao pastor ? Formalização do problema : Variáveis de decisão : • quantidade de camelos a usar (x1) • quantidade de dromedários a usar (x2) Função objectivo : Introdução à Programação Linear 18 Representação e resolução gráfica de problemas de PL • minimizar a renda a pagar ao pastor (Z = 11 x1 + 5 x2) Restrições : • capacidade da caravana • disponibilidade de feno • disponibilidade de água Camelos Dromedários Capacidade disponível Capacidade 1 000 500 10 000 Feno 3 4 60 Água 100 80 1 600 Renda a pagar 11 5 Modelação matemática : Pretende-se determinar x1 e x2 de modo a Minimizar Z = 11 x1 + 5 x2 (renda) sujeito a 1 000 x1 + 500 x2 ≥ 10 000 3 x1 + 4 x2 ≤ 60 (feno) 100 x1 + 80 x2 ≤ 1 600 (água) x1, x2 ≥ 0 (capacidade) (não negatividade) 4. Representação e resolução gráfica de problemas de PL A representação gráfica de problemas de PL só é possível, quando os problemas têm 2 ou 3 variáveis de decisão. No entanto, aqui, apenas serão analisados os problemas com 2 variáveis, os quais são representados através de um gráfico a 2D. Para representar graficamente um problema de PL, começa-se por construir um sistema de eixos cartesianos x1 e x2. O passo seguinte consiste em identificar os valores de x1 e x2 que satisfaçam todas as restrições construção do espaço das soluções. Por último, procuram-se os pontos situados nesta região que maximizem (minimizem) o valor de Z. Esta fase vai proceder-se por tentativas (mais adiante será enunciada uma regra prática que permite resolver esta questão de uma forma quase automática). O processo baseia-se na representação gráfica da recta Z = F (x1, x2) = constante para um conjunto de valores. A ideia é traçar rectas Z = constante, até que contenha pelo menos um ponto da Introdução à Programação Linear Representação e resolução gráfica de problemas de PL 19 região admissível e esteja o mais distante possível da recta Z = 0 (maximizar) ou o mais perto possível (minimizar). Resolução gráfica do Problema 1 : Solução óptima do problema : xopt = (160, 60) ⇔ Zopt = 1140. Introdução à Programação Linear 20 Representação e resolução gráfica de problemas de PL Resolução gráfica do Problema 2 : Solução óptima do problema : xopt = (2, 5) ⇔ Zopt = 45 Introdução à Programação Linear Forma padrão ou “standard” de um problema de PL 21 Resolução gráfica do Problema 3 : Solução óptima do problema : xopt = (4, 12) ⇔ Zopt = 104. 5. Forma padrão ou “standard” de um problema de PL Um PL diz-se estar na forma padrão, se todas as restrições propriamente ditas (não incluindo as de não negatividade) são equações. Todo o PL pode escrever-se na sua forma padrão, por introdução de variáveis folga (“slack”) nas restrições que são inequações, da seguinte forma : f(x) ≤ b ⇒ f(x) + x = b, x ≥ 0 (x variável “slack”) f(x) ≥ b ⇒ f(x) − x = b, x ≥ 0 (x variável “slack”) A forma padrão apresenta a seguinte estrutura : Maximizar Sujeito a Z = c 1 x 1 + c 2 x 2 +L+ c n x n (3.1) a 11 x 1 + a 12 x 2 + L + a 1n x n = b1 a 21 x 1 + a 22 x 2 + L + a 2n x n = b2 ... (3.2) a m1 x 1 + a m2 x 2 + L + a mn x n = b m x1 , x2 , L , xn ≥ 0 Introdução à Programação Linear (3.3) 22 Terminologia associada às soluções do PL A redução à forma padrão do problema de PL Maximizar Sujeito a Z = c1x1 + c2 x 2 + L + cn xn a 11 x 1 + a 12 x 2 + L + a 1n x n ≤ b 1 a 21 x 1 + a 22 x 2 + L + a 2n x n ≤ b 2 ... a m1 x 1 + a m2 x 2 + L + a mn x n ≤ b m x 1 , x 2 , L, x n ≥ 0 conduz ao seguinte problema equivalente : Maximizar Sujeito a Z = c 1 x 1 + c 2 x 2 + L + c n x n + 0 x n +1 + 0 x n + 2 + L + 0 x n +m a 11 x 1 + a 12 x 2 + L + a 1n x n + x n +1 a 21 x 1 + a 22 x 2 + L + a 2n x n = b1 + x n+2 = b2 ... a m1 x 1 + a m2 x 2 + L + a mn x n + x n +m = b m x 1 , x 2 , L , x n , x n +1 , x n + 2 , L , x n +m ≥ 0 em que, x 1 , x 2 , L , x n são as variáveis de decisão (principais) x n + 1 , x n + 2 , L , x n +m são as variáveis folga (“slack”) Também é frequente o modelo de PL ser apresentado em forma matricial : Maximizar Z=CX Sujeito a AX=b X≥0 em que, C = [ c1 c2 . . . cn ] é a matriz dos custos A = [ aij ] (m×n) é a matriz das restrições X = [ x1 x2 . . . xn ]T é a matriz das variáveis b = [ b1 b2 . . . bm ]T é a matriz dos termos independentes 0 = [ 0 0 . . . 0 ]T (1×m) é a matriz nula 6. Terminologia associada às soluções do PL Solução qualquer conjunto de valores assumidos pelas variáveis de decisão satisfazendo as restrições funcionais (3.2). Solução admissível solução que satisfaz as condições de não negatividade (3.3). Região admissível é o conjunto de todas as soluções admissíveis. Introdução à Programação Linear Tipos de soluções 23 Solução óptima é a solução admissível que tem o melhor valor da função objectivo. Solução não limitada não existe um valor máximo (mínimo) para a função objectivo. 7. Tipos de soluções óptima única : problema tem apenas uma solução (Problemas 1, 2 e 3). óptimas alternativas : o valor óptimo da função objectivo pode ser obtido através de infinitas combinações de recursos. não limitada : não existe um valor máximo finito para a função objectivo (Z → ∞). Introdução à Programação Linear 24 Tipos de soluções óptima (com região admissível não limitada) : facto do conjunto das soluções admissíveis ser não limitado, não implica necessariamente que a solução seja não limitada (Z → ∞). valor óptimo da FO finito (variáveis podem assumir valores arbitrariamente grandes) : conjunto das soluções é não limitado e o valor óptimo de Z é finito, com as variáveis de decisão a poderem assumir valores arbitrariamente grandes na solução óptima. Introdução à Programação Linear Análise convexa 25 inexistente (problema impossível) : esta situação, normalmente deriva de erros de formalização. Isto pode acontece por não existirem valores das variáveis a satisfazerem as restrições do problema ou as condições de não negatividade, ou ambas simultaneamente. 8. Análise convexa Chama-se combinação linear convexa de um nº finito de pontos x1, ..., xn ao ponto λ1 x1 + λ2 x2 + . . . + λn xn com os escalares λi ≥ 0 e λ1 + λ2 + . . . + λn = 1. O segmento de recta que une 2 pontos do espaço, é o conjunto de todas as combinações convexas desses pontos. Conjunto convexo X, é um conjunto tal que o segmento de recta que une dois quaisquer dos seus pontos, está contido no conjunto. Por outras palavras, X é um conjunto convexo, se quaisquer que sejam x1 e x2, ∈ X e 0 ≤ λ ≤ 1, se tem λ x1 + (1 - λ) x2 ∈ X Um conjunto convexo é fechado se compreende a sua fronteira. Conjunto convexo Conjunto não convexo Resultado : A intersecção finita de conjuntos convexos é um conjunto convexo. Introdução à Programação Linear 26 Propriedades fundamentais Ponto extremo de um conjunto convexo X, é um ponto que não pertence ao segmento de recta a unir dois outros pontos quaisquer de X. Por outras palavras, um ponto extremo de X não pode ser obtido por combinação linear convexa positiva de pontos de X. Algebricamente : x = λ x1 + (1-λ) x2 , com λ ∈ ]0, 1[ e x1, x2 ∈ X ⇒ x = x1 = x2 Um conjunto convexo da forma X = { x : A x = b, x ≥ 0 } (X é o conjunto de soluções admissíveis do PL) chama-se um politopo convexo. Um politopo convexo limitado, chama-se poliedro convexo. Em R2, um poliedro convexo chama-se polígono convexo. Chama-se vértice (ou ponto extremo) dum politopo ou poliedro convexo X, a um qualquer ponto x ∈ X que não possa ser expresso como combinação linear de outros pontos y ∈ X (y ≠ x). 9. Propriedades fundamentais n O conjunto convexo (politopo ou poliedro) X, tem um nº finito de vértices v(X) ( ≤ C m ). Todo o ponto dum poliedro convexo X ⊂ Rn é combinação convexa dos vértices de X. O conjunto das soluções admissíveis, X, de um problema de PL é um conjunto convexo fechado (compreende a sua fronteira). Optimalidade num vértice : • O óptimo duma função linear num poliedro convexo X ⊂ Rn é obtido em, pelo menos, um vértice de X; • Se ele for obtido em mais que um vértice, então será obtido em todo o ponto que é uma combinação linear convexa desses vértices. • Se X é um politopo convexo, então existe pelo menos um ponto extremo de X que optimiza a função objectivo. Introdução à Programação Linear