Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Lindo 6.1
Manual Lindo 6.1
®
Lindo 6.1
Manual de apoio ao aluno
O Lindo (Linear Interactive and Discrete Optimizer) é um programa que pode ser usado
para resolver problemas de programação linear, inteira e quadrática.
A versão demo do sistema, a qual será utilizada em sala de aula, possui algumas
limitações:
Este manual tem como objetivo servir de apoio ao estudo da ferramenta, apresentando
questões básicas inerentes ao funcionamento e à modelagem de dados.
A sintaxe padrão para um modelo desenvolvido no Lindo deve possuir os três elementos
abaixo, na ordem em que aparecem:
• Uma mesma variável não pode ter dois ou mais nomes em um mesmo modelo.
Exemplo: se a variável para a quantidade de peças em um problema qualquer
aparecer na função objetivo como Xa, ela não poderá aparecer como Xab na
modelagem das restrições. O Lindo interpretará esta situação como duas variáveis
distintas, mesmo que tenha sido feito um pequeno erro de digitação.
• As variáveis devem possuir no máximo 8 caracteres e iniciar por uma letra. Caso seja
necessário utilizar um espaço no nome da variável, deve-se usar o underline.
• O Lindo não reconhece vírgula, e sim ponto. Logo, todo número decimal deve utilizar
ponto. Exemplos:
• Os coeficientes podem tanto estar separados quanto juntos das variáveis, não sendo
necessário digitar o sinal de multiplicação. Exemplos:
• Maior ou igual e menor ou igual devem ser escritos da seguinte maneira: >= e <=.
• A constante das restrições deve estar sempre isolada do lado direito da inequação. Já
as variáveis e os seus coeficientes devem estar no lado esquerdo. Exemplos:
! exercício 1 do apêndice F
Obs.:
ü os nomes seguem a mesma regra das variáveis (máximo de 8 caracteres, etc).
ü a vantagem dessa identificação é o fato de ela aparecer nos relatórios que o
Lindo gera, facilitando a visualização e a interpretação dos resultados.
• Quando a modelagem for uma programação inteira de números reais, deve-se utilizar
a função GIN. Exemplos:
Observações:
END
GIN Xab
GIN Xbc
• Quando a modelagem for uma programação inteira de números binários (0 ou 1),
deve-se utilizar a função INT. Exemplos:
Observações:
ü A modelagem da função INT deve ser feita ao final do modelo, após a expressão
“END”, para cada variável. 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:
! exercício 1 apêndice F
st
end
3. Rodada
As funções e os botões para acesso rápido desses comandos estão listados no quadro
abaixo:
Botão para
Menu Comando Função
acesso rápido
Compile
Verifica erros no modelo
model
Solve
Solve Roda o modelo
4. Interpretação de resultados
Após rodar, o Lindo gera as soluções e ainda oferece a opção de visualizar a análise de
sensibilidade, a qual é gerada se for clicado em “Sim” na caixa de diálogo “DO RANGE
(SENSITIVITY) ANALYSIS?”.
Relatório de solução:
1. Valor da função objetivo (objective function value): apresenta a solução ótima do modelo, ou
seja, é o resultado da função objetivo. Este valor é obtido através da aplicação dos valores das
variáveis (ver item 2) na função objetivo.
No exemplo da figura 2, os valores das variáveis gerados na otimização foram: XAV = 1.1111;
XAD = 7.5555; e XCO = 8. Já a função objetivo do problema era 0.03 XAV + 0.05 XAD + 0.02
XCO. Com isso:
2. Variáveis de decisão:
• Custo reduzido (Reduced cost): somente válido quando a variável tem valor = 0. O reduced
cost pode ser interpretado de duas formas:
3. Restrições:
• Linha (Row): indica em que posição (linha) do modelo estão cada uma das restrições. Como
no exemplo da figura 1 as restrições foram nomeadas, o que apareceu foi a própria
descrição da restrição, e não a identificação da linha do modelo.
• Folga ou excesso (slack or surplus): indica quão perto se está do limite do valor do lado
direito da inequação. No caso da figura 2, a restrição “PRODUTOC” possui folga. Se ela
fosse uma máquina, isso indicaria ociosidade do equipamento.
Para verificar se a restrição “PRODUTOC” realmente tem folga, basta substituir os valores
das variáveis na restrição.
Algumas observações:
a) Em inequações do tipo “menor ou igual a”, geralmente tem-se folga quando o número é
maior que zero.
b) Em inequações do tipo “maior ou igual a”, geralmente tem-se excesso quando o
número é maior que zero.
c) O valor pode ser negativo quando uma restrição é violada, situação em que a solução
ótima é inviável.
• Preço dual (Dual price): também chamado de preço sombra (shadow price), indica o quanto
a solução ótima melhoraria ou pioraria por meio da adição de uma unidade no lado direito
da restrição. Em outras palavras, o preço dual ajuda a responder à seguinte pergunta, por
exemplo: até que ponto se deve investir em mais recursos (máquinas, pessoas, etc)?
• Coeficiente atual (Current coef): é o valor do coeficiente de cada variável na função objetivo.
• Aumento admissível (Allowable increase): indica até que ponto o coeficiente de cada
variável poderia, um de cada vez, ser aumentado sem que o valor da variável sofra
alterações.
• Valor atual (Current RHS): é o valor da constante (que deve estar sempre isolada no lado
direito da restrição).
• Aumento admissível (Allowable increase): indica até que ponto o valor da constante de cada
restrição poderia, um de cada vez, ser aumentado sem que a folga/sobra ou preço dual
sofram alterações.
• Redução admissível (Allowable decrease): indica até que ponto o valor da constante de
cada restrição poderia, um de cada vez, ser reduzido sem que a folga/sobra ou preço dual
sofram alterações.
Obs.: uma análise pode ser feita comparando-se o preço dual com a sensibilidade das
restrições. Utilizando-se como exemplo a restrição “PRODUTOA”, verifica-se que o preço
dual indica aumento da solução ótima no caso de aumento de 1 unidade da restrição.
Porém, por meio da análise de sensibilidade verifica-se que aumentos maiores que
0.333333 nesta restrição alteram o preço dual, bem como aumentos menores que 0.333333
não influenciam o preço dual.
5. Referências