Manual Lindo v2
Manual Lindo v2
Lindo 6.1
1.
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:
Este manual tem como objetivo servir de apoio ao estudo da ferramenta, apresentando
questes bsicas inerentes ao funcionamento e modelagem de dados.
2.
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.
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
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
Observaes:
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
Menu
Comando
Funo
Compile
model
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:
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:
b)
3.
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)
c)
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.
2.
Valor atual (Current RHS): o valor da constante (que deve estar sempre isolada
no lado direito da restrio).
5.
Referncias