1 Introduo Software LINDO Microsoft Excel Solver Exemplos e exerccios Usando Softwares em Programao Linear Prof. Ricardo Caetano Rezende, D.S. Captulo 6 Curso de Graduao em Engenharia Agrcola 2 1 Introduo A utilizao da programao linear recomendada para problemas de maior porte, em que muitas variveis e restries devem ser consideradas Problemas de grande porte requerem sistemas computacionais potentes e, portanto, sistemas paralelos tem sido utilizados nos ltimos anos Entretanto, problemas menores podem ser resolvidos em um computador pessoal, utilizando um dos softwares desenvolvidos para a resoluo de problemas de programao linear Captulo 6 Curso de Graduao em Engenharia Agrcola 3 2 Software LINDO O mtodo grfico, apresentado anteriormente, uma excelente ferramenta de ensino, mas no tem nenhuma pretenso alm desta Problemas reais so desenvolvidos no computador utilizando softwares que se baseiam no algoritmo Mtodo Simplex ou Mtodo Simplex Revisado, desenvolvido por George Dantzig em 1947, nos quais cada linha relaciona-se com uma restrio e cada coluna com uma varivel Existem atualmente centenas de pacotes para a soluo de problemas de programao linear Captulo 6 Curso de Graduao em Engenharia Agrcola 4 2 Software LINDO Para problemas considerados mdios, recomendvel a utilizao de planilhas eletrnicas, como o Whats Best?, o Microsoft Excel e o Borland Quattro; todos so ferramentas poderosas, apesar de sua aparncia simples; um programa interessante o LINDO O LINDO Linear, INteractive and Discrete Optmizer um software desenvolvido pela Lindo Systems Inc., de Chicago, Illinois, EUA, para a resoluo de modelos de programao linear, quadrtica ou inteira Foi desenvolvido por Linus Schrage, em 1986 Captulo 6 Curso de Graduao em Engenharia Agrcola 5 2 Software LINDO Os problemas resolvidos pelo software so comuns s reas de negcios, indstrias, pesquisas, entre outros Especificamente, LINDO pode ser de grande utilidade em setores como distribuio de produtos, mistura de ingredientes, planejamento da produo e de pessoal, administrao de inventrio, ... A filosofia projetada no LINDO designa que, se o usurio deseja algo simples, ento ele no dever gastar muito tempo para aprender a usar o software Captulo 6 Curso de Graduao em Engenharia Agrcola 6 2 Software LINDO Se, por exemplo, o usurio procura: Maximizar 2x 1 + 3x 2 Sujeito a: 4x 1 + 3x 2 10 3x 1 + 5x 2 12 ento exatamente isto que ele dever digitar no LINDO imediatamente aps a inicializao do programa Por outro lado, LINDO tem sido utilizado para resolver problemas reais de considervel tamanho, s vezes com mais de 50.000 restries e 200.000 variveis! Captulo 6 Curso de Graduao em Engenharia Agrcola Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 2 7 2 Software LINDO Informaes sobre o software podem ser verificadas diretamente pelo site www.lindo.com, bem como o download de sua verso demonstrativa (trial version) As diferentes verses, preos e capacidades, podem ser observadas na tabela abaixo: Verso Preo, US$ comum educacional Restries Variveis Variveis Inteiras Trial $0 $0 150 300 30 Super $395 $195 1.000 2.000 200 Hyper $795 $395 4.000 8.000 800 Industrial $2,395 $695 16.000 32.000 3.200 Extended $3,995 $995 ilimitadas ilimitadas Ilimitadas Fonte: www.lindo.com, setembro de 2010 Captulo 6 Curso de Graduao em Engenharia Agrcola 8 Ser ilustrado agora como adicionar e resolver pequenos problemas no LINDO Todas as demonstraes utilizaro a verso trial que, ao ser acionada (seja por meio do cone do software no desktop ou pelo Iniciar Programas do Windows) apresentar a seguinte tela de abertura Observe que a pequena janela central prpria desta verso, designando sua capacidade, em termos de variveis e restries; em pouco tempo ela desaparece e a imagem seguinte apresentada Temos a janela principal do LINDO, com seu menu de comandos e sua barra de atalhos Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola Curso de Graduao em Engenharia de Produo 9 Curso de Graduao em Engenharia de Produo 10 nesta janela menor, vazia, que um novo modelo ser digitado Entretanto, antes de iniciarmos, importante destacar que qualquer modelo no LINDO necessita de 3 requisitos bsicos: 1. Declarao das variveis (opcional) 2. Funo objetivo 3. Restries Menu principal Barra de atalhos 11 Temos 2 opes para o objetivo: MAX ou MIN J sabemos que a expresso matemtica adicionada depois de MAX ou MIN chamada de funo objetivo As variveis que compem a funo objetivo so x 1 , x 2 , ..., x n , de forma que o LINDO dever obter os valores das mesmas buscando o mximo proveito, segundo o objetivo proposto Quanto s restries, em alguns casos, elas constituem a parte mais importante do modelo O programa assume que todas as variveis so no negativas: no so necessrias as restries de no negatividade Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 12 Vamos inserir o seguinte exemplo no LINDO: Maximizar 2x 1 + 3x 2 Sujeito a: 4x 1 + 3x 2 10 3x 1 + 5x 2 12 Executando um Exemplo Basta digitar os dados conforme o estabelecido abaixo: MAX 2X1 + 3X2 ST 4X1 + 3X2 < 10 3X1 + 5X2 < 12 END No LINDO, podemos iniciar a digitao de cada linha em qualquer coluna; utilizamos o sinal < para A tela a seguir mostra o resultado deste procedimento no software Captulo 6 Curso de Graduao em Engenharia Agrcola Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 3 13 Observe que: ! Inicia uma linha de comentrio MAX o comando que solicita maximizar uma funo ST = subject to = sujeito a; informa que a seguir temos o conjunto de restries END informa o fim dos dados Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 14 O modelo agora est pronto para ser resolvido O LINDO tem 3 opes para executar o exemplo: a) Clique em solve no menu principal e novamente em solve b) Tecle Crtl+S c) Pressione o cone na barra de atalhos Inicialmente, o modelo ser compilado, isto , um teste para verificao de erros de sintaxe Aps isto, no havendo erros, aparece uma tela perguntando se se deseja efetuar uma anlise de sensitividade; tecle No Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 15 A seguir, aparece a tela abaixo, que contm um resumo do resultado alcanado ou informaes de alerta caso o modelo apresente algum problema Status pode incluir as solues: optimal = tima feasible = possvel infeasible = impossvel unbounded = ilimitada Iterations interaes para soluo Infeasibility restries violadas Objective valor da funo objetiva Best IP, IP Bound e Branches referem-se Programao Inteira Elapsed Time tempo decorrido, s Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 16 Aps analisar a tela anterior, clique em Close; a tela pode retornar com Window / Open Status Window Observe agora que por trs da janela <untitled> aparece uma janela maior: Report Window; esta a tela de resultados Clique em qualquer ponto desta tela Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 17 Com o objetivo de visualizarmos melhor tanto a tela de entrada como a tela de resultados, faamos o seguinte: Clique em Window, no menu principal, e retorne a tela de entrada (sobre a tela de resultados) Clique novamente em Window e acione Tile A janela ao lado vai aparecer Pressione OK e veja o que vai acontecer Verticalmente, as 2 telas estaro lado a lado, facilitando a visualizao e modificaes Clique na janela desejada para acion-la Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola Curso de Graduao em Engenharia de Produo 18 Vamos agora interpretar as informaes contidas na janela Reports Window, que nossa tela de resultados Entretanto, importante saber que, nesta tela: 1) refere-se funo objetivo 2) refere-se 1 restrio 3) refere-se 2 restrio Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 4 19 LP OPTIMUM FOUND STEP 0 significa que o algoritmo simplex utilizado pelo programa encontrou a soluo tima no passo 0 (um passo corresponde a 1 vrtice do mtodo simplex) OBJECTIVE FUNCTION VALUE 1) 7.454545 Indica o valor timo encontrado para a funo objetivo VARIABLE VALUE X1 1.272727 X2 1.636364 apresenta os valores timos das variveis bsicas Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 20 Quanto coluna REDUCED COST: Representa a quantidade pela qual o coeficiente da funo objetivo da varivel deveria ser aumentado de modo que sua soluo seja diferente de 0; assim, todas as variveis cujas solues j so diferentes de 0 possuem um valor 0 para o Custo Reduzido (como o caso deste exemplo) Ou pode ser a penalidade que se deve pagar, ou seja, reduo no lucro, para introduzir 1 unidade daquela varivel na soluo Estas observaes ficaro mais claras quando tratarmos, a seguir, da Anlise de Sensitividade Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 21 Quanto coluna SLACK OR SURPLUS: Significa folga ou excesso Folga = 0 diz que se atingiu o limite da restrio; como 4X1 + 3X2 10, ento 4(1,27) + 3(1,64) = 10 Verifique que isto tambm vlido para a 2 restrio; foi usado todo o disponibilizado DUAL PRICE relaciona-se coluna anterior: Se 0,091 para a 1 restrio, representa o aumento na funo objetivo se se aumentar de 1 o limite da restrio; portanto, se a restrio passar de 10 para 11, o valor da funo objetivo subir de 7,46 para 7,55 (verifique) Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 22 Para salvar os dados em um arquivo: Clique em File no menu principal e depois em Save as Selecione o diretrio e escolha um nome adequado Clique em OK Para imprimir os resultados, ative esta tela e clique em File no menu principal e depois em Print; pode- se acrescentar tambm, ao final dos resultados, antes da impresso, data e horrio, bastando para isso teclar Shift+F4 Para imprimir o modelo junto com resultados, cole- os na mesma janela e, alternativamente, tecle F8 Executando um Exemplo Captulo 6 Curso de Graduao em Engenharia Agrcola 23 1. Max Lucro = 3ST + 4LX Restries: Corte) 4ST + 2LX 80 Polim) 2ST + 5LX 120 Lucro = ; ST = ; LX = 2. Max Lucro = 110a + 65b Restries: Peas) 2a + b 7 Horas) 5a + 7b 30 Lucro = ; a = ; b = 3. Max Lucro = 180A + 300B Restries: Gab.Peq) A 60 Gab.Grd) B 50 Disco) A + 2B 120 Lucro = ; A = ; B = 4. Min Custo = 2a + 3b Restries: Protenas) 3a + 6b 15 Carboidratos) 10a + 5b 20 Custo = ; a = ; b = Exerccios no LINDO Bloco 01 Captulo 6 Curso de Graduao em Engenharia Agrcola 24 Exerccios no LINDO Bloco 02 1) Uma pequena fbrica de papel-toalha manufatura 3 tipos de produto: A, B e C. A fbrica recebe o papel em grandes rolos. cortado, dobrado e empacotado. Dada a pequena escala da fbrica, o mercado absorver qualquer produo a um preo constante. O lucro unitrio de cada produto , respectivamente, R$ 1,00, R$ 1,50 e R$ 2,00. O quadro a seguir identifica o tempo requerido para operao (em horas) em cada seo da fbrica, bem como a quantidade de mquinas disponveis. Captulo 6 Curso de Graduao em Engenharia Agrcola Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 5 25 Exerccios no LINDO Bloco 02 1) Cont. Pergunta-se: a) qual o esquema timo de produo semanal (40h)? b) que equipamentos ficaro ociosos e em que nvel? Seo Produto A Produto B Produto C Qtd. mquinas Corte 8,0 5,0 2,0 3 Dobra 5,0 10,0 4,0 10 Empacotamento 0,7 1,0 2,0 2 Captulo 6 Curso de Graduao em Engenharia Agrcola 26 Exerccios no LINDO Bloco 02 2) A tabela abaixo fornece as necessidades alimentares semanais de um certo animal. Que mistura destas raes satisfaz os requisitos alimentares a um custo mnimo para o proprietrio? Rao Protenas, unidades/kg Carboidratos, unidades/kg Custo, R$/kg A 25 55 3,00 B 25 20 2,00 C 45 10 4,00 D 35 35 3,00 E 25 20 3,00 Mnimo, unidades 200 250 Captulo 6 Curso de Graduao em Engenharia Agrcola 27 Exerccios no LINDO Bloco 02 3) Um fazendeiro possui 200 ha cultivveis para milho e, ou, soja. Os dados so os seguintes: Qual deve ser a alocao da terra para os vrios tipos de cultura de maneira a maximizar os lucros? Atividade Milho Soja Disponvel Espao, h 1 1 200 Preparo do terreno, R$ 500 700 200.000 MDO, homens/dia 15 18 20.000 Lucro, R$ 900 1.300 Captulo 6 Curso de Graduao em Engenharia Agrcola Curso de Graduao em Engenharia Agrcola 28 4. Considere, como exemplo, o caso de um fundo de investimentos que tem as seguintes opes de compra de aes ao lado As restries do governo estabelecem que nenhum investimento isolado pode ultrapassar 15% do capital total do fundo; alm disso, o total de investimento por categoria no pode ultrapassar 40% Empresa Categoria Lucro Esperado E1 A 10% E2 A 15% E3 B 5% E4 C 20% E5 A 12% E6 B 15% E7 A 10% E8 C 5% E9 B 5% E10 C 10% Exerccios no LINDO Bloco 02 Captulo 6 O programa Microsoft Excel possui a funo Solver, que tem se revelado muito conveniente para a soluo de pequenos e mdios problemas de programao linear Normalmente esta funo no instalada automaticamente quando se instala o Microsoft Office na modalidade Instalao Tpica; para ativar esta funo v em Suplementos e ative o Solver 29 Captulo 6 3 Microsoft Excel Solver Curso de Graduao em Engenharia Agrcola Seja o exemplo da fbrica de rdios que possui 2 linhas de produo: standard e luxo A linha de produo standard comporta 24 pessoas, consume 1 homem/dia/rdio e cada rdio fornece um lucro de R$ 30,00 A linha de produo luxo comporta 32 pessoas, consume 2 homens/dia/rdio e cada rdio fornece um lucro de R$ 40,00 A fbrica possui um total de 40 empregados e o desafio alocar os empregados nas 2 linhas 30 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 6 O modelo de programao linear : ST = produo de rdios standard por dia LX = produo de rdios luxo por dia MAX 30ST + 40LX SUJEITO A MAX_ST) ST <= 24 MAX_LX) LX <= 16 MDO) ST + 2LX <= 40 31 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Para se criar um modelo no Microsoft Excel Solver, necessrio: a. Fornecer nomes de funo objetivo, variveis e restries b. Fornecer frmulas e dados c. Fornecer informaes adicionais (parmetros) ao Solver 32 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola a. Inicialmente, preocupe-se em registrar no Excel os nomes em seus respectivos campos: 33 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola b. Digite agora as frmulas e dados iniciais correspondentes, conforme indicado abaixo: 34 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola c. As informaes adicionais so fornecidas na tela Parmetros do Solver (v em Ferramentas + Solver ou em Dados + Solver): 35 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola c. Como trata-se de uma programao linear, clique em Opes e ative Presumir modelo linear e depois em OK (isto far com que os resultados sejam mais completos): 36 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Engenharia de Sistemas Agrcolas Prof. Ricardo Caetano Rezende, D.S. 7 Para obter a soluo do problema, clique no boto Resolver; observe na tela abaixo que o resultado timo substituiu os valores originais (clulas que continham frmulas): 37 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Na janela Relatrios, clique em Resposta e depois em OK; uma nova planilha ser adicionada antes daquela que contm o modelo, com o nome de Relatrio de resposta 1: 38 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Uma nova planilha ser adicionada antes daquela que contm o modelo, com o nome de Relatrio de sensibilidade 1: Voltando planilha do modelo, resolva-o novamente e na janela Relatrios, clique em Sensibilidade e depois em OK 39 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola Uma nova planilha ser adicionada antes daquela que contm o modelo, com o nome de Relatrio de limites 1: Finalmente, voltando planilha do modelo, resolva-o novamente e na janela Relatrios, clique em Limites e depois em OK 40 Captulo 6 Executando um Exemplo Curso de Graduao em Engenharia Agrcola 1. Resolva o problema abaixo usando o Excel Solver: ! Problema do criador de coelhos que deseja produzir rao ! X1 = rao A utilizada na mistura, em kg ! X2 = rao B utilizada na mistura, em kg ! X3 = rao C utilizada na mistura, em kg ! X4 = rao D utilizada na mistura, em kg ! X5 = rao E utilizada na mistura, em kg MIN 0.2X1 + 0.3X2 + 0.4X3 + 0.5X4 + 0.25X5 st prot) 30X1 + 20X2 + 15X3 + 80X4 + 20X5 > 80 carboi) 60X1 + 20X2 + 60X3 + 20X4 + 20X5 > 120 gord) 5X1 + 10X2 + 5X3 + 3X4 + 2X5 > 30 end 41 Captulo 6 Exerccios no Excel Solver Curso de Graduao em Engenharia Agrcola 2. Uma oficina mecnica deseja alocar o tempo ocioso disponvel em suas mquinas para a produo de 3 produtos. A tabela abaixo d as informaes sobre as necessidades de horas de mquina para produzir uma unidade de cada produto, assim como a disponibilidade das mquinas, o lucro dos produtos e a demanda mxima existente no mercado. Pede-se o esquema de produo de lucro mximo. Use o Solver. 42 Captulo 6 Exerccios no Excel Solver Curso de Graduao em Engenharia Agrcola
Um General Conservador: Manuel Felizardo de Souza e Mello e A Modernização Do Exército Nos Debates No Senado e No Conselho de Estado em 1850 - Carlos Eduardo de Medeiros Gama