600 likes | 652 Views
PROGRAMAÇÃO LINEAR. 17 DE SETEMBRO DE 2008. 1. Definição 2. Aplicações 3. Problema Ilustrativo 3.1 Enunciado 3.2 Dados Físicos e Econômicos 3.3 Modelo Matemático 3.4 Balanço de Informação e Varáveis de Projeto 3.5 Critério e Função Objetivo 3.6 Restrições
E N D
PROGRAMAÇÃO LINEAR 17 DE SETEMBRO DE 2008
1. Definição 2. Aplicações 3. Problema Ilustrativo 3.1 Enunciado 3.2 Dados Físicos e Econômicos 3.3 Modelo Matemático 3.4 Balanço de Informação e Varáveis de Projeto 3.5 Critério e Função Objetivo 3.6 Restrições 3.7 Região Viável 3.8 Resolução 3.9 Algoritmo SIMPLEX (conjuntos ativos) 3.10 Algoritmo Karmarkar (ponto interior)
O Problema de Programação Linear é um tipo especial de problema de otimização em que a Função Objetivo é linear F(x) = c1x1+c2x2+ ... +cnxn todas as Restrições são lineares a11x1+a12x2+ ... +a1nxn b1 a21x1+a22x2+ ... +a2nxn b2 ... am1x1+am2x2+ ... +amnxn bm
2. APLICAÇÕES planejamento de produção industrial transportes: rodoviário, ferroviário, fluvial, marítimo, aéreo logística produção e distribuição de energia militar etc...
3. PROBLEMA ILUSTRATIVO Planejamento da Produção de uma Refinaria(adaptado de Edgar & Himmelblau, pg. 254)
Determinar - quantos barris/dia (b/d) a refinaria deve adquirir de cada óleo cru (x1, x2). - a partir de cada óleo, quanto a refinaria deve produzir de - gasolina (x31, x32) - querosene (x41, x42) - óleo combustível (x51, x52) - óleo residual (x61, x62) 3.1 ENUNCIADO Uma refinaria pode receber dois tipos de óleo cru: O1 e O2. A partir de cada um deles, pode-se produzir:- gasolina (G)- querosene (Q)- óleo combustível (C)- óleo residual (R).
Para se resolver este problema, é preciso conhecer: Preço de cada óleo cru Custo do processamento Perfil de produção: quanto se pode produzir de gasolina, querosene, óleo combustível e óleo residual a partir de cada óleo cru. Preços de venda dos produtos Limites de produção
3.2 DADOS FÍSICOS E ECONÔMICOS Processamento do Óleo O1:- preço do óleo: p1 = 24 $/b- custo de processamento: c1 = 0,50 $/b- perfil de produção: gasolina 80%, querosene 5%, óleo combustível 10% e óleo residual 5%. Processamento do Óleo O2:- preço do óleo: p2 = 15 $/b- custo de processamento: c2 = 1,0 $/b- perfil de produção: gasolina 44%, querosene 10%, óleo combustível 35% e óleo residual 10%. Preço de venda dos produtosp3 = 36 $/b (gasolina)p4 = 24 $/b (querosene)p5 = 21 $/b (óleo combustível)p6 = 10 $/b (óleo residual) Produção máxima de cada produtox3max = 24.000 b/d (x3 = x31 + x32)x4max = 2.000 b/d (x4 = x41 + x42)x5max = 6.000 b/d (x5 = x51 + x52)
C1 = 0,50 $/b x31 0,80 b3/b1 O1 x41 0,05 b4/b1 p1 = 24 ($/b) x51 x1 (b/d) 0,10 b5/b1 x61 0,05 b6/b1 PRODUTOS CRÚS C2 = 1 $/b G x32 x3(b/d) p3 = 36($/b); x3max= 24.000(b/d) O2 0,44 b3/b2 Q x42 x4(b/d) p4 = 24($/b); x4max= 2.000(b/d) p2 = 15 ($/b) 0,10 b4/b2 C x52 x5(b/d) p5 = 21($/d); x5max= 6.000(b/d) 0,36 b5/b2 x2 (b/d) R x62 x6(b/d) p6=10($/b) 0,10 b6/b2 Dados resumidos em Fluxograma
Como em qualquer problema de Análise de Processos Modelo Matemático ?Balanço de Informação ?Variáveis de Projeto ?Critério ?Função Objetivo ?Restrições ?Região Viável ?
3.3 MODELO MATEMÁTICO C1 = 0,50 $/b x31 0,80 b3/b1 O1 x41 0,05 b4/b1 p1 = 24 ($/b) x51 x1 (b/d) 0,10 b5/b1 x61 0,05 b6/b1 PRODUTOS CRÚS C2 = 1 $/b G x32 x3(b/d) p3 = 36($/b); x3max= 24.000(b/d) O2 0,44 b3/b2 Q x42 x4(b/d) p4 = 24($/b); x4max= 2.000(b/d) p2 = 15 ($/b) 0,10 b4/b2 C x52 x5(b/d) p5 = 21($/d); x5max= 6.000(b/d) 0,36 b5/b2 x2 (b/d) R x62 x6(b/d) p6=10($/b) 0,10 b6/b2 Balanços de Massa Gasolina : 0,80 x1 + 0,44 x2 = x3Querosene : 0,05 x1 + 0,10 x2 = x4Combustível: 0,10 x1 + 0,36 x2 = x5Residual : 0,05 x1 + 0,10 x2 = x6
3.4 BALANÇO DE INFORMAÇÃO E VARIÁVEIS DE PROJETO C1 = 0,50 $/b x31 0,80 b3/b1 O1 x41 0,05 b4/b1 p1 = 24 ($/b) x51 x1 (b/d) 0,10 b5/b1 x61 0,05 b6/b1 PRODUTOS CRÚS C2 = 1 $/b G x32 x3(b/d) p3 = 36($/b); x3max= 24.000(b/d) O2 0,44 b3/b2 Q x42 x4(b/d) p4 = 24($/b); x4max= 2.000(b/d) p2 = 15 ($/b) 0,10 b4/b2 C x52 x5(b/d) p5 = 21($/d); x5max= 6.000(b/d) 0,36 b5/b2 x2 (b/d) R x62 x6(b/d) p6=10($/b) 0,10 b6/b2 Balanço de InformaçãoG = V – N = 6 – 4 G = 2 Variáveis de Projeto: x1 e x2 Balanços de Massa Gasolina : 0,80 x1 + 0,44 x2 = x3Querosene : 0,05 x1 + 0,10 x2 = x4Combustível: 0,10 x1 + 0,36 x2 = x5Residual : 0,05 x1 + 0,10 x2 = x6
3.5 CRITÉRIO E FUNÇÃO OBJETIVO C1 = 0,50 $/b x31 0,80 b3/b1 O1 x41 0,05 b4/b1 p1 = 24 ($/b) x51 x1 (b/d) 0,10 b5/b1 x61 0,05 b6/b1 PRODUTOS CRÚS C2 = 1 $/b G x32 x3(b/d) p3 = 36($/b); x3max= 24.000(b/d) O2 0,44 b3/b2 Q x42 x4(b/d) p4 = 24($/b); x4max= 2.000(b/d) p2 = 15 ($/b) 0,10 b4/b2 C x52 x5(b/d) p5 = 21($/d); x5max= 6.000(b/d) 0,36 b5/b2 x2 (b/d) R x62 x6(b/d) p6=10($/b) 0,10 b6/b2 Critério Maximização do Lucro Receita (R): 36 x3 + 24 x4 + 21 x5 + 10 x6Custos de MatPrim (CMP) : 24 x1 + 15 x2Custos Processamento (CP): 0,50 x1 + x2 Função Objetivo L = R – CMP - CP L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2-0,50 x1 - x2
3.6 RESTRIÇÕES C1 = 0,50 $/b x31 0,80 b3/b1 O1 x41 0,05 b4/b1 p1 = 24 ($/b) x51 x1 (b/d) 0,10 b5/b1 x61 0,05 b6/b1 PRODUTOS CRÚS C2 = 1 $/b G x32 x3(b/d) p3 = 36($/b); x3max= 24.000(b/d) O2 0,44 b3/b2 Q x42 x4(b/d) p4 = 24($/b); x4max= 2.000(b/d) p2 = 15 ($/b) 0,10 b4/b2 C x52 x5(b/d) p5 = 21($/d); x5max= 6.000(b/d) 0,36 b5/b2 x2 (b/d) R x62 x6(b/d) p6=10($/b) 0,10 b6/b2 Min f(x) Função Objetivo x Variáveis de Projeto s.a.: g(x) 0 Restr. desigualdade h(x) = 0 Restr. igualdade Restrições de DesigualdadeGasolina : x3 24.000Querosene : x4 2.000 Combustível : x5 6.000Óleos crus : x1 0 e x2 0 Restrições de Igualdade (modelo)Gasolina : 0,80 x1 + 0,44 x2 = x3Querosene : 0,05 x1 + 0,10 x2 = x4Combustível : 0,10 x1 + 0,36 x2 = x5Residual : 0,05 x1 + 0,10 x2 = x6
Resulta L(x) = 8,1 x1 + 10,8 x2 Incorporando as Restrições de Igualdade à Função Objetivo Gasolina : 0,80 x1 + 0,44 x2 = x3Querosene : 0,05 x1 + 0,10 x2 = x4Combustível : 0,10 x1 + 0,36 x2 = x5Residual : 0,05 x1 + 0,10 x2 = x6 L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2-0,50 x1 - x2
Enunciado Formal do Problema max L(x) = 8,1 x1 + 10,8 x2{x1, x2}s.a.: 0,80 x1 + 0,44 x2 24.0000,05 x1 + 0,10 x2 2.0000,10 x1 + 0,36 x2 6.000x1 0 x2 0
Função Objetivo L(x) = 8,1 x1 + 10,8 x2 (linear) 20 x2 10 (1.000 b/d) 0 0 10 20 30 40 x1 (1.000 b/d) x2= L/10,8 – (8,1/10,8) x1 (família de retas) L=648.000 L=324.000 L=243.000 L=162.000 L=81.000
3.7 REGIÃO VIÁVEL 20 B C óleo x2 10 querosene D (1.000 b/d) gasolina 0 E A 0 10 20 30 40 x1 (1.000 b/d) 0,80 x1 + 0,44 x2 24.000 (gasolina)0,05 x1 + 0,10 x2 2.000 (querosene) 0,10 x1 + 0,36 x2 6.000 (combustível) x1 0x2 0 Qualquer ponto no interior ou sobre a fronteira da Região Viável é uma Solução Viável região convexa !
Solução Ótima 20 B 243.000 324.000 C 162.000 óleo x2 10 querosene D 81.000 (1.000 b/d) gasolina 0 E A 0 10 20 30 40 x1 (1.000 b/d) É a solução viável correspondente ao valor máximo do Lucro Em duas dimensões, a identificação visual da Solução Ótima é imediata. Solução (D):(26.207, 6.897)(L=286.764)
Com outros valores dos parâmetros físicos e econômicos, a inclinação da Função Objetivo seria outra e a solução seria outra. 20 B C óleo x2 10 querosene D (1.000 b/d) gasolina 0 E A 0 10 20 30 40 x1 (1.000 b/d) A Solução Ótima se localiza em pelo menos um dos Vértices da Região Viável Solução (C):(14.000, 13.000)(L = 637.000)
Busca Exaustiva Método do Ponto Interior Método dos Conjuntos Ativos Como automatizar a busca pelo o vértice ótimo?
Métodos da busca exaustiva e dos conjuntos ativos 20 B C óleo x2 10 querosene D (1.000 b/d) gasolina 0 E A 0 10 20 30 40 x1 (1.000 b/d) Ignorando os pontos interiores, restringindo a busca à fronteira da região viável e, na fronteira, restringindo a busca aos vértices. 243.000 324.000 Solução:(26.207, 6.897)(L=286.764) 162.000 81.000 0 (como???)
Busca exaustiva: examinar todos os vértices das restrições Conjuntos Ativos: examinar os vértices da região viável explosão combinatória método Simplex Para tanto, os passos são os seguintes: 1. Restringir a busca à fronteira da região viável Transformando as restrições de desigualdade em restrições de igualdade 2. Restringir a busca, na fronteira, aos vértices
Transformando as restrições de desigualdade em restrições de igualdade No método dos conjuntos ativos, pode ser operada com o auxílio do conceito de Variável de Folga
Folga I F 20 B C óleo G x2 10 querosene D (1.000 b/d) gasolina 0 E H A 0 10 20 30 40 x1 (1.000 b/d) Qualquer ponto (x1, x2) no interior da Região Viável corresponde a uma produção inferior à máxima de cada produto (folga, fi). Exemplo: ponto I (folgas na produção de gasolina, querosene e óleo) Gasolina : 0,80 x1 + 0,44 x2 = x3=12.400 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.500 (2.000)Combustível: 0,10 x1 + 0,36 x2 = x5 = 4.600 (6.000) f1 = 11.600 b/df2 = 500 b/df3 = 1.400 b/d
Folga J Qualquer ponto (x1, x2) localizado sobre um restrição corresponde à produção máxima do produto respectivo. Exemplo: ponto J (produção máxima de óleo = 6.000 b/d: f3 = 0) Gasolina : 0,80 x1 + 0,44 x2 = x3=14.111 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.889 (2.000)Combustível : 0,10 x1 + 0,36 x2 = x5 = 6.000 (6.000) F 20 B C óleo 13,9 G f1 = 9.889 b/df2 = 111 b/df3 = 0 b/d x2 10 querosene D (1.000 b/d) gasolina 0 E H A 0 10 20 30 40 x1 (1.000 b/d)
Folga F 20 B C óleo G x2 10 querosene D (1.000 b/d) gasolina 0 E H A 0 10 20 30 40 x1 (1.000 b/d) Qualquer ponto (x1, x2) localizado sobre um vértice corresponde à produção máxima dos 2 produtos respectivos. Exemplo: ponto D (produção máxima de gasolina e de querosene: f1 = 0, f2 = 0) Gasolina : 0,80 x1 + 0,44 x2 = x3=24.000 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 2.000 (2.000)Combustível : 0,10 x1 + 0,36 x2 = x5 = 3.459 (6.000) f1 = 0 b/df2 = 0 b/d f3 = 2.541 b/d
A desejada transformação das restrições de desigualdade em restrições de igualdade é obtida incorporando as folgas às restrições de desigualdade
Incorporando as folgas fi às restrições de desigualdade Max L(x) = 8,1 x1 + 10,8 x2{x1, x2}s.a.: 0,80 x1 + 0,44 x2 24.000 (gasolina)0,05 x1 + 0,10 x2 2.000 (querosene) 0,10 x1 + 0,36 x2 6.000 (combustível) x1 0x2 0 Max L(x) = 8,1 x1 + 10,8 x2{x1, x2}s.a.: 0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 + x1 0x2 0 f1 = 24.000 (gasolina)= 2.000 (querosene)= 6.000(combustível) f2 f3
As restrições de igualdade formam agora um sistema de equações lineares. 0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 + f1 = 24.000 (gasolina)= 2.000 (querosene)= 6.000(combustível) f2 f3 V = 5 : N = 3 : G = 2 !!! A qualquer par de valores das variáveis de projeto, corresponde uma solução. Logo, o problema exibe uma infinidade de soluções viáveis. Mas, agora, todas localizadas na fronteira da região viável
20 B 243.000 C 324.000 óleo 10 Solução:(26.207, 6.897)(L=286.764) querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A 0 10 20 30 40 x1 (1.000 b/d) Uma solução trivial é: x1 = 0, x2 = 0 Corresponde a uma vértice especial: a origem, onde L = 0
Parte-se do fato de que o sistema de restrições de igualdade pode ser re-escrito sob diversas formas. 0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 + f1 = 24.000 (gasolina)= 2.000 (querosene)= 6.000(combustível) f2 f3 0,68 x1 – 1,22 f3 + 0,02 x1 – 0,78 f3 + 0,28 x1 + 2,78 f3 + f1 = 16.667 (gasolina)= 333 (querosene)= 16.667(combustível) f2 x2 Forma Original Com x1 = 0 e x2 = 0 vértice A (origem) Uma das formas alternativas Com x1 = 0 e f3 = 0 vértice B
Portanto... Uma forma de examinar apenas os vértices da região viável consiste em reescrever o sistema sob formas diferentes e atribuir o valor zero às variáveis de projeto correspondentes
Examinando os valores de x1, x2, f1, f2 e f3 em cada vértice 20 B 243.000 C 324.000 óleo 10 Solução:(26.207, 6.897)(L=286.764) querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A x1 0 10 20 30 40 (1.000 b/d) Ax1 = 0x2 = 0f1 = 24.000f2 = 2.000f3 = 6.000 Bx1 = 0x2 = 16.667f1 = 16.667f2 = 333f3 = 0 Cx1 = 15.000x2 = 12.500f1 = 6.500f2 = 0f3 = 0 Dx1 = 26.207x2 = 6.897f1 = 0f2 = 0f3 = 897 Ex1 = 30.000x2 = 0f1 = 0f2 = 500f3 = 3.000
Ax1 = 0x2 = 0f1 = 24.000f2 = 2.000f3 = 6.000 3.9 Algoritmo SIMPLEX (Dantzig, 1947) Bx1 = 0x2 = 16.667f1 = 16.667f2 = 333f3 = 0 Cx1 = 15.000x2 = 12.500f1 = 6.500f2 = 0f3 = 0 Dx1 = 26.207x2 = 6.897f1 = 0f2 = 0f3 = 897 Ex1 = 30.000x2 = 0f1 = 0f2 = 500f3 = 3.000 O SIMPLEX parte da origem e visita vértices adjacentes na busca da solução ótima, invertendo sucessivamente o papel de 2 variáveis: uma do problema (básica) e uma de projeto (não-básica). Inverter os papéis de duas variáveis, consiste em reescrever o sistema de equações em termos de uma outra base.
A mudança de base é executada aplicando o Algoritmo de Gauss-Jordan à Matriz Aumentada (Tableau) do sistema de equações lineares. f1 = 24.000 (gasolina)= 2.000 (querosene)= 6.000(combustível) 0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 + L(x) = 8,1 x1 + 10,8 x2 f2 f3 O Lucro é incluído na matriz para que os seus coeficientes sofram as mesmas transformações e fique expresso automaticamente na nova base.
Critério para a troca de papéis (PIVOTAMENTO) Projeto Problema Identifica-se a variávelde projeto de maior coeficiente positivo na expressão do Lucro (a que mais contribui para o aumento do Lucro). OBS: coeficiente mais negativo no caso de minimização. L(x) = 8,1 x1 + 10,8 x2: x1 = x2 = 0 L = 0 aumento em x2 contribui mais para o aumento de L Problema Projeto Identifica-se o menor valor positivo de b/a, sendo b o vetor dos termos independentes (coluna da direita) e a o vetor dos coeficientes na coluna da variável de projeto escolhida acima. (corresponde a restrição mais próxima ao aumentar a variável de projeto)
b/ai2 54.545 20.000 16.667 0,36 f3 f3 x2 x2 Pivô = a32 = 0,36 Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai2a3j Ex.: a11=0,80 – 0,44 x 0,28 = 0,68 0,68 0,00 1,00 0,00 -1,22 16.667 0,28 1 0 0 2,78 16.667
f3 f3 x2 x2 Resultado da eliminação Gaussiana: Ponto B Com x1 = f3 = 0 L = 180.000
Ponto B Com x1 = f3 = 0L = 180.000 20 B 243.000 C 324.000 óleo 10 querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A 0 10 20 30 40 x1 (1.000 b/d)
b/ai1 24.510 16.650 59.525 0,02 f2 f2 Pivô = a21 = 0,02 x1 x1 Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai1a2j Com f2 = f3 = 0 L = 256.500
Ponto C Com f2 = f3 = 0 L = 256.500 20 B 243.000 C 324.000 óleo 10 querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A 0 10 20 30 40 x1 (1.000 b/d)
b/ai5 896,55 -1.200 2.000 7,25 f1 f1 Pivô = a15 = 7,25 f3 f3 Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai5a1j Com f1 = f2 = 0 L = 286.765
Ponto D Com f1 = f2 = 0 L = 286.765 20 B 243.000 C 324.000 óleo 10 querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A 0 10 20 30 40 x1 (1.000 b/d)
Ponto D Com f1 = f2 = 0 L = 286.765 Projeto Problema Identifica-se a variávelde projeto de maior coeficiente POSITIVO na expressão do Lucro (a que mais contribui para o aumento do Lucro) Nenhuma para entrar FIM
Ponto D Com f1 = f2 = 0 x1= 26.207x2 = 6.897f3 = 897 L = 286.764
20 B 243.000 C 324.000 óleo 10 querosene x2 162.000 D (1.000 b/d) 81.000 gasolina 0 E 0 A 0 10 20 30 40 x1 (1.000 b/d) Solução: Ponto Dx1= 26.207x2 = 6.897gasolina = 24.000 (f1 = 0)querosene = 2.000 (f2 = 0)óleo = 5.103 (f3 = 897) L = 286.764