1 / 60

PROGRAMAÇÃO LINEAR

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

ryan-torres
Download Presentation

PROGRAMAÇÃO LINEAR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROGRAMAÇÃO LINEAR 17 DE SETEMBRO DE 2008

  2. 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)

  3. 1. DEFINIÇÃO

  4. 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

  5. 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...

  6. 3. PROBLEMA ILUSTRATIVO Planejamento da Produção de uma Refinaria(adaptado de Edgar & Himmelblau, pg. 254)

  7. 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).

  8. 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

  9. 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)

  10. 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

  11. 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 ?

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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 !

  20. 3.8 RESOLUÇÃO

  21. 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)

  22. 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)

  23. Busca Exaustiva Método do Ponto Interior Método dos Conjuntos Ativos Como automatizar a busca pelo o vértice ótimo?

  24. 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???)

  25. 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

  26. 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

  27. 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

  28. 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)

  29. 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

  30. A desejada transformação das restrições de desigualdade em restrições de igualdade é obtida incorporando as folgas às restrições de desigualdade

  31. 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

  32. 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

  33. 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

  34. 2. Na fronteira, restringir a busca aos vértices.

  35. 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

  36. 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

  37. 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

  38. 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.

  39. 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.

  40. 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)

  41. 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

  42. f3 f3 x2 x2 Resultado da eliminação Gaussiana: Ponto B Com x1 = f3 = 0 L = 180.000

  43. 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)

  44. 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

  45. 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)

  46. 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

  47. 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)

  48. 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

  49. Ponto D Com f1 = f2 = 0 x1= 26.207x2 = 6.897f3 = 897 L = 286.764

  50. 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

More Related