capítulo 3.1_apêndice_a pesquisa operacional na tomada de decisões 2ª edição © gerson...

33
apí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

Upload: internet

Post on 17-Apr-2015

127 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: 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

Pesquisa Operacional na Tomada de Decisões

2ª Edição© Gerson Lachtermacher,2005

Resolvendo Programação Linear

Em um Microcomputador

Page 2: 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

Page 3: 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

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

Page 4: 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

Software LindoVersão Windows

Page 5: 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

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>=

Page 6: 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

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

Page 7: 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

LindoFormulação de Problema

Solve

Se a sintaxe não estiver correta, a seguinte mensagem aparecerá: An error occured during compilation on line: n

Page 8: 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

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

Page 9: 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

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

Page 10: 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

LindoSolução do Problema

Page 11: 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

LindoSolução do Problema

Valor Ótimo da Função- Objetivo

Valor das Variáveis Originais

Valor das Variáveis de Folga ou Excesso

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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.

Page 19: 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

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

Page 20: 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

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?

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

Page 25: 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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

Page 26: 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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

Page 27: 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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

Page 28: 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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

Page 29: 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

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

Page 30: 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

O Problema no Lindo

As três variáveis não tem restrições de sinal

Page 31: 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

A Solução do Primal

Page 32: 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

Vamos Agora usar o Lindo paraObter a Solução do Dual

As duas primeiras restrições do Primal são igualdades

Page 33: 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

Solução do Dual

A função-objetivo do Dual assume na solução ótima o mesmo valor da função-objetiva do Primal