Capítulo 3.1_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear...

31
apítulo 3.1_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador

Transcript of Capítulo 3.1_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear...

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

Pesquisa Operacional na Tomada de Decisões

Resolvendo Programação Linear

Em um Microcomputador

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

Capítulo 3.1_Apendice_A

Software LindoVersão Windows

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

Capítulo 3.1_Apendice_A

LindoSolução do Problema

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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.

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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?

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

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

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

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_Apendice_A Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador.

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

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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

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

O Caso do Vendedor de FrutasResolvendo Usando o Lindo

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

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

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

O Problema no Lindo

Variáveis sem restrições de sinal

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

Solução