0% acharam este documento útil (0 voto)
147 visualizações8 páginas

Manual Lindo v2

O documento apresenta um manual de apoio para o uso do software Lindo para resolução de problemas de programação linear. Detalha regras de modelagem, como compilar e rodar modelos no software, e interpretar os resultados gerados.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
147 visualizações8 páginas

Manual Lindo v2

O documento apresenta um manual de apoio para o uso do software Lindo para resolução de problemas de programação linear. Detalha regras de modelagem, como compilar e rodar modelos no software, e interpretar os resultados gerados.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

Universidade do Vale do Rio dos Sinos (UNISINOS)

Disciplina de Pesquisa Operacional

Lindo 6.1

Manual de apoio ao aluno

Professor Dr Lus Henrique Rodrigues


Mestrando Eduardo Rcker

1.

Sobre o Lindo e o Manual

O Lindo (Linear Interactive and Discrete Optimizer) um programa que pode ser usado
para resolver problemas de programao linear, inteira e quadrtica.
A verso demo do sistema, a qual ser utilizada em sala de aula, possui algumas
limitaes:

Nmero mximo de restries: 150.


Nmero mximo de variveis: 300.
Nmero mximo de variveis inteiras: 50.

Em caso de dvidas sobre o funcionamento do sistema, possvel utilizar o menu Ajuda


sob duas formas de visualizao:

Menu Help, Contents.


Menu Help, Search for help on...

Este manual tem como objetivo servir de apoio ao estudo da ferramenta, apresentando
questes bsicas inerentes ao funcionamento e modelagem de dados.
2.

Sintaxe e regras de modelagem

Para se modelar problemas no Lindo, deve se obedecer sintaxe padro e respeitar


algumas regras.
A sintaxe padro para um modelo desenvolvido no Lindo deve possuir os trs elementos
abaixo, na ordem em que aparecem:

Indicar se o problema de maximizao ou de minimizao: toda modelagem no


Lindo deve iniciar por MAX ou MIN.

ST: entre o final da modelagem da funo objetivo e o incio da modelagem das


restries, deve-se digitar a expresso ST (subject to = sujeito a).

Ao final do modelo, deve-se utilizar a expresso END.

Regras e dicas importantes para a modelagem:

Uma mesma varivel no pode ter dois ou mais nomes em um mesmo modelo.
Exemplo: se a varivel para a quantidade de peas em um problema qualquer
aparecer na funo objetivo como Xa, ela no poder aparecer como Xab na
modelagem das restries. O Lindo interpretar esta situao como duas variveis
distintas, mesmo que tenha sido feito um pequeno erro de digitao.

As variveis devem possuir no mximo 8 caracteres e iniciar por uma letra. Caso
seja necessrio utilizar um espao no nome da varivel, deve-se usar o underline.

O Lindo no diferencia letras maiusculas e minsculas.


O Lindo no reconhece vrgula, e sim ponto. Logo, todo nmero decimal deve
utilizar ponto. Exemplos:

Errado: 2,5 xab + 3,33 xcd


Correto: 2.5 xab + 3.33 xcd

Os coeficientes podem tanto estar separados quanto juntos das variveis, no


sendo necessrio digitar o sinal de multiplicao. Exemplos:
2 xab + 4 xbd >= 6
3xab + 5xbd >= 8

Maior ou igual e menor ou igual devem ser escritos da seguinte maneira: >= e <=.

A constante das restries deve estar sempre isolada do lado direito da inequao.
J as variveis e os seus coeficientes devem estar no lado esquerdo. Exemplos:
O que NO pode ocorrer: 2 xab >= 6 4 xbd
O que deve ocorrer: 2 xab + 4 xbd >= 6

Para se fazer comentrios no modelo, basta utilizar um ponto de exclamao


seguido do comentrio. Exemplos:
! exerccio 1 do apndice F
! Xi = quantidade de peas do tipo i

Para se identificarem as restries do modelo, possvel indicar o nome delas,


sempre na margem esquerda da tela, seguido de parnteses. Exemplos:
Maq1) 2Xac + 4Xbd <= 20
Demanda) Xac + Xbd >= 5
Obs.:
os nomes seguem a mesma regra das variveis (mximo de 8 caracteres, etc).
a vantagem dessa identificao o fato de ela aparecer nos relatrios que o
Lindo gera, facilitando a visualizao e a interpretao dos resultados.

Quando a modelagem for uma programao inteira de nmeros reais, deve-se


utilizar a funo GIN. Exemplos:
Se for modelada a produo de cadeiras, a soluo tima no poder sugerir
quantidades decimais. Neste caso, a funo GIN torna-se obrigatria.
Se for modelada a produo de rao animal, em toneladas, os nmeros aps
a vrgula talvez necessitem ser considerados. Neste caso, o uso da funo GIN
pode no ser a melhor opo de modelagem.

Observaes:
A utilizao da funo GIN acarreta na perda da anlise de sensibilidade (ver
seo 4).
A modelagem da funo GIN deve ser feita ao final do modelo, aps a
expresso END, para cada varivel. Exemplos:

END

GIN Xab
GIN Xbc

Quando a modelagem for uma programao inteira de nmeros binrios (0 ou 1),


deve-se utilizar a funo INT. Exemplos:

Fazer ou no fazer um produto.


Convidar ou no convidar um amigo para assistir ao jogo de futebol.

Observaes:

A modelagem da funo INT deve ser feita ao final do modelo, aps a


expresso END, para cada varivel. Exemplos:
END
INT Xab
INT Xbc

Com base em algumas das regras listadas acima, a figura abaixo apresenta um exemplo
de modelagem no Lindo que respeita essas regras:
! exerccio 1 apndice F
! xi = quantidade de peas do tipo i
MAX 0.03 xav + 0.05 xad + 0.02 xco
st
produtoA) 0.2 xav + 0.5 xad + 0.75 xco <= 10
produtoB) 0.3 xav + 0.3 xad + 0.05 xco <= 3
produtoC) 0.5 xav + 0.2 xad + 0.2 xco <= 7
demanda) xco >= 8
end
Figura 1 Exemplo de modelagem no Lindo

3.

Rodada

A rodada de um modelo no Lindo depende do respeito s regras detalhadas na seo 2.


Caso existam erros relacionados s regras ou sintaxe, so geradas mensagens informando
sobre isso. Para que o modelo possa ser validado quanto a essas regras e sintaxe, sugere-se
utilizar o comando Compile model. J o processo de rodada iniciado a partir do comando
Solve.
As funes e os botes para acesso rpido desses comandos esto listados no quadro
abaixo:

Menu

Comando

Funo

Compile
model

Verifica erros no modelo

Solve

Roda o modelo

Boto para
acesso rpido

Solve

4.

Interpretao de resultados

Aps rodar, o Lindo gera as solues e ainda oferece a opo de visualizar a anlise de
sensibilidade, a qual gerada se for clicado em Sim na caixa de dilogo DO RANGE
(SENSITIVITY) ANALYSIS?.
A aparncia dos resultados de uma rodada pode ser visualizada na figura 2:

Figura 2 Exemplo dos resultados de um modelo rodado no Lindo

A seguir, descreve-se como se d o processo de anlise dos resultados gerados nos


relatrios de soluo e de anlise de sensibilidade.
Relatrio de soluo:
1.

Valor da funo objetivo (objective function value): apresenta a soluo tima do modelo,
ou seja, o resultado da funo objetivo. Este valor obtido atravs da aplicao dos valores
das variveis (ver item 2) na funo objetivo.

No exemplo da figura 2, os valores das variveis gerados na otimizao foram: XAV = 1.1111;
XAD = 7.5555; e XCO = 8. J a funo objetivo do problema era 0.03 XAV + 0.05 XAD + 0.02
XCO. Com isso:
0.03 * 1.1111 + 0.05 * 7.5555 + 0.02 * 8 = 0.5711
2.

Variveis de deciso:

Valor (Value): o valor gerado para cada varivel no processo de otimizao.


Custo reduzido (Reduced cost): somente vlido quando a varivel tem valor = 0. O
reduced cost pode ser interpretado de duas formas:
a)

O quanto o coeficiente da varivel na funo objetivo teria que aumentar


ou reduzir para que a introduo da varivel na soluo tima fosse rentvel (vivel).
Nos problemas de MINimizao, o valor que o coeficiente deveria reduzir.
Nos problemas de MAXimizao, o valor que o coeficiente deveria aumentar.

b)

3.

Qual seria a penalidade (reduo da soluo tima) ao aumentar em


uma unidade a varivel em questo para fazer com que ela fizesse parte da soluo
tima. O termo unidade aqui utilizado refere-se a um aumento qualquer, tanto de
nmeros inteiros quanto decimais. Exemplos: de 10 para 11 ou de 10 para 10.1.
Porm, se o aumento for de 0.1, o custo reduzido resultante na soluo tima ser
igual a custo reduzido * 0.1.

Restries:

Linha (Row): indica em que posio (linha) do modelo esto cada uma das
restries. Como no exemplo da figura 1 as restries foram nomeadas, o que apareceu foi
a prpria descrio da restrio, e no a identificao da linha do modelo.

Folga ou excesso (slack or surplus): indica quo perto se est do limite do valor do
lado direito da inequao. No caso da figura 2, a restrio PRODUTOC possui folga. Se
ela fosse uma mquina, isso indicaria ociosidade do equipamento.
Para verificar se a restrio PRODUTOC realmente tem folga, basta substituir os valores
das variveis na restrio.
Algumas observaes:
a)

Em inequaes do tipo menor ou igual a, geralmente tem-se folga


quando o nmero maior que zero.
b)
Em inequaes do tipo maior ou igual a, geralmente tem-se excesso
quando o nmero maior que zero.

c)

O valor pode ser negativo quando uma restrio violada, situao em


que a soluo tima invivel.

Preo dual (Dual price): tambm chamado de preo sombra (shadow price), indica
o quanto a soluo tima melhoraria ou pioraria por meio da adio de uma unidade no lado
direito da restrio. Em outras palavras, o preo dual ajuda a responder seguinte
pergunta, por exemplo: at que ponto se deve investir em mais recursos (mquinas,
pessoas, etc)?
O termo unidade aqui utilizado refere-se a um aumento qualquer, tanto de nmeros
inteiros quanto decimais. Exemplos: de 10 para 11 ou de 10 para 10.1. Porm, se o
aumento for de 0.1, o impacto sobre a soluo tima ser igual a preo dual * 0.1.
No exemplo da figura 2, se a capacidade da restrio PRODUTOA fosse aumentada de 10
para 10.1, o aumento na soluo tima seria de $ 0.006667 (0.1 * 0.066667). No entanto, o
valor de $ 0.066667 para cada unidade acrescida nem sempre acontecer, como mostrar
a anlise de sensibilidade das restries por isso, o preo dual deve ser sempre analisado
conjutamente com o Relatrio de Sensibilidade. No exemplo da figura 2, existem limites
mnimos e mximos para a variao do lado direito da restrio dentro dos quais o preo
dual ou a folga/sobra no se alteram. Isso est melhor detalhado na seo que versa sobre
o relatrio de anlise de sensibilidade.
Adiantando um pouco o tpico sobre anlise de sensibilidade: ainda no exemplo da figura 2,
caso o aumento da capacidade da restrio PRODUTOA fosse de 0.4, e no 0.1, o
aumento da funo objetivo no seria de 0.026667 (0,066667*0.4). A anlise de
sensibilidade mostrar que aumentos superiores a 0.333333 na capacidade deste recurso
no garantem o mesmo aumento de 0.066667 na funo objetivo para cada unidade do
recurso acrescida (dual price). Em outras palavras, se a capacidade da restrio
PRODUTOA fosse aumentada para um nmero maior ou igual a 10.34, o dual price
mudaria.
Obs.: em problemas de minimizao, preciso ter cuidado na anlise. Caso um problema
de minimizao de despesas com o escalonamento de mo-de-obra tenha uma restrio
para o domingo com preo dual -100, a incluso deste dia na soluo tima acarretaria em
um aumento do custo de mo-de-obra. Logo, mesmo que o preo dual seja -100, neste
problema o objetivo seria minimizar as despesas de MO, as quais incluiriam um adicional de
$ 100 em funo de disponibilizar-se 1 funcionrio no domingo.

Relatrio de anlise de sensibilidade


A anlise de sensibilidade apresenta as faixas de valores nas quais a soluo tima
(resultado das variveis sugerido pelo Lindo) ou a folga/excesso e preo dual no so afetados.
Em outras palavras, trata-se de um auxlio para a anlise do impacto dos coeficientes da funo
objetivo e do valor da constante das restries sobre a soluo tima e a folga/excesso e preo
dual, respectivamente.
1.

Sensibilidade de variaes nos coeficientes (Obj coefficient ranges):

Coeficiente atual (Current coef): o valor do coeficiente de cada varivel na funo


objetivo.

Aumento admissvel (Allowable increase): indica at que ponto o coeficiente de


cada varivel poderia, um de cada vez, ser aumentado sem que o valor da varivel sofra
alteraes.

No exemplo da figura 2, se o coeficiente da varivel XAV fosse aumentado de 0.03 para


0.04475, o valor da varivel manteria-se o mesmo em relao soluo inicial.

2.

Reduo admissvel (Allowable decrease): indica at que ponto o coeficiente de


cada varivel poderia, um de cada vez, ser reduzido sem que o valor da varivel sofra
alteraes.
Sensibilidade de variaes no lado direito das inequaes (Righthand side ranges):

Valor atual (Current RHS): o valor da constante (que deve estar sempre isolada
no lado direito da restrio).

Aumento admissvel (Allowable increase): indica at que ponto o valor da constante


de cada restrio poderia, um de cada vez, ser aumentado sem que a folga/sobra ou preo
dual sofram alteraes.
No exemplo da figura 2, se a constante da constante PRODUTOA fosse aumentada de 10
para 10.3333, a folga/sobra e o preo dual manteriam-se os mesmos em relao soluo
inicial.

Reduo admissvel (Allowable decrease): indica at que ponto o valor da


constante de cada restrio poderia, um de cada vez, ser reduzido sem que a folga/sobra
ou preo dual sofram alteraes.
Obs.: uma anlise pode ser feita comparando-se o preo dual com a sensibilidade das
restries. Utilizando-se como exemplo a restrio PRODUTOA, verifica-se que o preo
dual indica aumento da soluo tima no caso de aumento de 1 unidade da restrio.
Porm, por meio da anlise de sensibilidade verifica-se que aumentos maiores que
0.333333 nesta restrio alteram o preo dual, bem como aumentos menores que 0.333333
no influenciam o preo dual.

5.

Referncias

Lindo Systems Inc., Chicago. Users help.

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy