Capítulo 3.1_Apêndice_A Pesquisa Operacional na Tomada de Decisões 2ª Edição © Gerson...
Transcript of Capítulo 3.1_Apêndice_A Pesquisa Operacional na Tomada de Decisões 2ª Edição © Gerson...
Capítulo 3.1_Apêndice_A
Pesquisa Operacional na Tomada de Decisões
2ª Edição© Gerson Lachtermacher,2005
Resolvendo Programação Linear
Em um Microcomputador
Capítulo 3.1_Apêndice_A
Conteúdos do Capítulo
Programação Linear Software Lindo
Versão Windows e comandosFormulação do problemaSolução do problema
Reduced costSintaxe modeloComandos opcionaisFile | Log output
O Caso do Vendedor de Frutas
Capítulo 3.1_Apêndice_A
Programação LinearSoftware Lindo
Lindo (Linear Interactive Discrete Optimizer) é um software interativo para resolução de problemas de programação Linear Quadrática Inteira
Utilizado para resolução de problemas reais de mais de 10.000 variáveis, dispõe de características que mostram os passos e quadros intermediários do método simplex
Capítulo 3.1_Apêndice_A
Software LindoVersão Windows
Capítulo 3.1_Apêndice_A
LindoComandos
Comandos MAX - Inicia um problema de maximização MIN - Inicia um problema de minimização END - Termina a entrada de um problema
Operadores Menor < Maior > Menor ou igual <= Maior ou igual>=
Capítulo 3.1_Apêndice_A
LindoFormulação de Problema
A seguinte entrada é uma formulação válida de uma problema
END
125y3x
103y4x
s.t.
3y2x Max
0,
1253
1034
s.t.
32
yx
yx
yx
yx Max
Capítulo 3.1_Apêndice_A
LindoFormulação de Problema
Solve
Se a sintaxe não estiver correta, a seguinte mensagem aparecerá: An error occured during compilation on line: n
Capítulo 3.1_Apêndice_A
Se nenhum erro ocorrer durante a compilação, a tela ao lado aparecerá.
Se a análise de sensibilidade for desejada responda sim
LindoSolução do Problema
Capítulo 3.1_Apêndice_A
Quando o problema estiver resolvido, uma janela denominada Reports Window ou janela de relatórios aparecerá automaticamente.
Essa janela de relatórios é o lugar onde todos os resultados serão lançados.
Se dois problemas forem resolvidos e houver espaço na janela, suas resoluções aparecerão uma seguida da outra
Para se examinar essa janela basta clicar no menu Windows|Reports Windows (ver slide a seguir)
LindoSolução do Problema
Capítulo 3.1_Apêndice_A
LindoSolução do Problema
Capítulo 3.1_Apêndice_A
LindoSolução do Problema
Valor Ótimo da Função- Objetivo
Valor das Variáveis Originais
Valor das Variáveis de Folga ou Excesso
Capítulo 3.1_Apêndice_A
Solução do ProblemaReduced Cost
Existem duas interpretações para o Reduced Cost: A quantidade que o
coeficiente da função objetiva de uma variável original deve melhorar antes desta variável se tornar básica.
A quantidade de penalização deverá ser paga se quisermos tornar uma variável básica
Capítulo 3.1_Apêndice_A
Existem duas interpretações para os Dual Prices: A quantidade pela qual a
função objetiva será melhorada dado um incremento de uma unidade na constante de uma restrição
Quanto estaríamos dispostos a pagar por uma unidade adicional de um recurso
Solução do ProblemaReduced Cost
Capítulo 3.1_Apêndice_A
LindoSintaxe Modelo
A função objetivo deve sempre aparecer no começo do modelo e deve ser iniciada pelo comando MAX ou MIN.
O fim da função objetivo é definido através de uma das seguintes expressões: SUBJECT TO S.T. ST
Capítulo 3.1_Apêndice_A
O final das restrições é determinada pelo comando END.
O Comando END só é obrigatório se após as restrições aparecerem comandos do tipo GIN ou INT discutidos mais tarde
O nome de uma variável no LINDO pode conter até 8 caracteres Começar por uma letra Não conter um dos seguintes caracteres:
! )+ - = < >
LindoSintaxe Modelo
Capítulo 3.1_Apêndice_A
Opcionalmente podemos nomear as restrições de um
modelo. O nome das restrições seguem as mesmas
convenções dos nomes das variáveis
Para nomear uma restrição, inclua o nome, um
parêntese, e a própria restrição em seguida Exemplo: NOME) 2x + 4y <= 10
LindoSintaxe Modelo
Capítulo 3.1_Apêndice_A
O LINDO não aceita parêntesis ( ) como indicadores de preferência de ordem de precedência. Todas as operações são executadas da esquerda para a direita.
Somente constantes (não variáveis) são permitidas do lado direito das restrições.
Somente variáveis e seus coeficientes (não constantes) podem ser colocados do lado esquerdo das restrições.
LindoSintaxe Modelo
Capítulo 3.1_Apêndice_A
LindoComandos Opcionais
Os comandos adicionais abaixo são colocados após o comando END ao final das restrições.
FREE <Variável> - Remove os limites de não negatividade imposta a todas as variáveis por default.
GIN <Variável> - Faz a <Variável> uma variável inteira geral.
INT <Variável> - Faz a <Variável> uma variável inteira binária.
Capítulo 3.1_Apêndice_A
LindoFile|Log Output
Esse comando serve para se criar um arquivo contendo todos os resultados colocados na tela de resultados.
O comando é do tipo liga/desliga, isto é, a primeira vez, abre um arquivo (ativa o comando) e a segunda fecha este arquivo.
Um símbolo de check é colocado ao lado do menu do comando enquanto este estiver ativado
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de Frutas
Um vendedor de frutas pode transportar 800 caixas de
frutas para sua região de vendas. Ele necessita
transportar pelo menos 200 caixas de laranja e pelo
menos 100 caixas de pêssegos e no máximo 200 caixas
de tangerinas O vendedor obtêm um lucro por caixa de
20, 10 e 30 reais para laranjas, pêssegos e tangerina,
respectivamente. De que forma ele deverá carregar o
caminhão para obter o lucro máximo?
Capítulo 3.1_Apêndice_A
Hipóteses Tudo o que o vendedor levar será vendido.
Nada estragará no caminho
Função-objetivo Maximizar o lucro
Max 20x1 + 10x2 + 30x3
O Caso do Vendedor de Frutas
Capítulo 3.1_Apêndice_A
Restrições de venda Laranjas: x1 > 200
Pêssegos: x2 > 100
Tangerinas: x3 < 200
Restrição de Transporte x1 + x2 + x3 < 800
O Caso do Vendedor de Frutas
Capítulo 3.1_Apêndice_A
0,,200100200
800s.r.
301020
321
3
2
1
321
321
xxxxxx
xxx
xxxMax
Este problema está na forma não padrão. Resolveremos usando o Lindo.
O Caso do Vendedor de Frutas
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apêndice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apêndice_A
Teorema da DualidadeExemplo
Encontrar a solução do problema abaixo com a ajuda do Lindo.
sinal de restrições sem ,,
0,,
302
20323
15
10 ..
45623
654
321
6432
5421
654
321
654321
xxx
xxx
xxxx
xxxx
xxx
xxxrs
xxxxxxZMax
Capítulo 3.1_Apêndice_A
O Problema no Lindo
As três variáveis não tem restrições de sinal
Capítulo 3.1_Apêndice_A
A Solução do Primal
Capítulo 3.1_Apêndice_A
Vamos Agora usar o Lindo paraObter a Solução do Dual
As duas primeiras restrições do Primal são igualdades
Capítulo 3.1_Apêndice_A
Solução do Dual
A função-objetivo do Dual assume na solução ótima o mesmo valor da função-objetiva do Primal