Capítulo 3.1_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear...
Transcript of Capítulo 3.1_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear...
Capítulo 3.1_Apendice_A
Pesquisa Operacional na Tomada de Decisões
Resolvendo Programação Linear
Em um Microcomputador
Capítulo 3.1_Apendice_A
Conteúdos da Seção
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_Apendice_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_Apendice_A
Software LindoVersão Windows
Capítulo 3.1_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_A
LindoSolução do Problema
Capítulo 3.1_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_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_Apendice_A
Hipóteses Tudo o que o vendedor levar será vendido.
Nada estragará no caminho
Função-Objetiva Maximizar o lucro
Max 20x1 + 10x2 + 30x3
O Caso do Vendedor de Frutas
Capítulo 3.1_Apendice_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_Apendice_A
0,,200100200
800s.r.
301020
321
3
2
1
321
321
xxxxxx
xxx
xxxMax
Este problema está visivelmente em forma não padrão. Resolveremos usando o Lindo.
O Caso do Vendedor de Frutas
Capítulo 3.1_Apendice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apendice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apendice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apendice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apendice_A
O Caso do Vendedor de FrutasResolvendo Usando o Lindo
Capítulo 3.1_Apendice_A
Vamos verificar a solução do problema abaixo com a ajuda do Lindo, como já fizemos com o Excel na seção anterior:
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_Apendice_A
O Problema no Lindo
Variáveis sem restrições de sinal
Capítulo 3.1_Apendice_A
Solução