Title: LINGO
1LINGO Começando com o LINGO
Livro Texto LINGO The Modeling Language and
Optimizer
2Prefácio
- Linguagem de Modelagem Set-Based
- Entrada e Saída de Dados Amigável
- Opções de Uso
- Modelagem Interativa
- Criação de Aplicações Turnkey (DLL e OLE)
- Extensa documentação e Help
3Solvers e Ferramentas
- Solucionadores (Solvers)
- Não Linear Geral
- Global
- Multistart
- Barrier
- Simplex
- Inteira Mista
- Ferramentas (Tools)
- Ferramentas de Modelagem e Análise de Solução
- Ferramentas de Reconhecimento Quadrático
- Ferramentas de Linearização
4O que é o LINGO
- LINGO é uma ferramenta simples para a utilização
das potencialidades das técnicas de otimização
linear e não linear para formular concisamente
problemas de grande porte, resolvê-los e analisar
sua solução.
5Instalação
Trivial... SETUP.EXE
6Introduzindo um Modelo no Windows
7Iniciando com o LINGO
- O texto das equações do modelo é independente das
plataformas e será identico para todas elas.
Existem ligeiras diferenças para plataformas
não-windows (command line).
8Problema Exemplo
- Uma indústria produz dois modelos de computadores
- Standard e Turbo. Cada Standard gera um lucro
de 100 e cada Turbo gera um lucro de 150. A
linha de produção do Standard está limitada a 100
computadores diários e a linha de produção do 120
computadores diários. Limite de horas diário é
160, cada Standard demanda 1 hora de trabalho e
cada Turbo demanda 2 horas de trabalho. Quantos
computadores de cada tipo por dia para maximizar
o lucro.
9Inserindo o Modelo
10Janela do Programa
Restante em preto
11Comentários no Programa
12Resolvendo o Modelo
13Janela de Status do Solver
14Caixa de Variáveis (1)
15Caixa de Variáveis (2)
- Mostra o número total de variáveis do modelo
- Número de variáveis não lineares (se aparece em
qualquer restrição do modelo). Exemplos - 2 Variáveis Lineares
- 2 Variáveis Não Lineares
- 1 Variável Linear e 1 Não-Linear
- Número de variáveis inteiras
- Não inclui nenhuma variável que o LINGO consegue
fixar seu valor
16Restrições, Não Zeros, Memória e Tempo de Execução
17Caixa Status do Solver
18Campo Classe do Modelo(1)
19Campo Classe do Modelo(2)
20Campo Classe do Modelo(3)
21Campo Estado (state)
Undetermined
22Campo Estado (state)
- Unbounded
- A solução pode ser melhorada indefinidamente (Ex
Lucro infinito) - Interrupted
- Se o usuário interromper a execução do solver
antes de chegar ao final
23Campo Infesiability
- Mostra a quantidade de restrições que foram
violadas. - Pode acontecer de não existir nenhuma restrição
violada, mas os limites de alguma variável estar
violado.
24Caixa de Status Extendido
25Best Obj e Obj Bound
- O campo Best Obj mostra o melhor valor da
função objetivo encontrado até o momento. O Campo
Obj Bound mostra o limite da função objetivo. - Durante o processo interativo estes valores podem
se aproximar. Dado que o Best Obj nunca pode
exceder o Obj Bound, o usuário tem a opção de
interromper o solver e utilizar a solução
corrente.
26Campo Steps e Active
- Depende do tipo de solver que está em execução.
- Active Lista o número de subproblemas que ainda
devem ser resolvidos. O solver é executado até
que este número chegue a zero.
27Relatório de Solução
28Imprimindo e Gravando
- Qualquer janela (modelo ou relatório) pode ser
impressa - Através do botão de gravação ( ), o modelo
pode ser gravado, extensão .LG4.
29Modelos Exemplo (1)
30Modelos Exemplo (2)
31Modelos Exemplo (3) - Tran
32Modelos Exemplo (4) - Tran
33Modelos Exemplo (5) - Tran
34Modelando Através da Linha de Comando
35Modelando Através da Linha de Comando Entrando
com o Modelo
36Modelando Através da Linha de Comando Comando GO
37Modelando Através da Linha de Comando
Imprimindo e Salvando
38Usando a Linguagem de Modelagem Matemática
- Notação similar a notação matemática padrão
- Ao invés de entrar cada termo de cada restrição
explicitamente, é possível expressar um conjunto
de restrições similares de forma compacta - Seção de dados permite isolar os dados do modelo
ou ler os dados de um arquivo em separado
39Implementando o Modelo de Transporte Set Based
40O problema
- A empresa Wireless Widget W W tem seis
armazéns que supre oito vendedores com suas
peças. Cada armazém tem um limite de peças que
não pode ser excedido e cada vendedor tem uma
demanda de peças que deve ser satisfeita. WW quer
determinar quantas peças deve enviar de cada
armazém para cada vendedor de forma a minimizar o
custo total de transporte. Este é um problema
clássico de otimização, denominado problema de
transporte.
41Capacidade dos Armazéns
42Demanda dos Vendedores
43Custo de Transporte por Peça
44Função Objetivo (1)
- Sendo VOLUME_I_J a variável que corresponde o
número de peças entregues do armazém I para o
vendedor J.
45Função Objetivo (2)
46As Restrições (1)
- Restrição de demanda de cada vendedor. Vendedor 1
47As Restrições (2)
48As Restrições (3)
- Restrição de Capacidade dos Armazéns
49Modelo Completo
50Definindo os Conjuntos (1)
- Armazéns
- Vendedores
- Arcos de transporte entre cada armazém e cada
vendedor.
51Definindo os Conjuntos (2)
52Entrando com os Dados
53Model Widgets
54Resolvendo o modelo (1)
- Será gerado um relatório contendo os valores de
todas as variáveis, restrições e dados do modelo. - A maioria das informações pode não ter interesse
imediato. - O interesse imediato é saber a quantidade de
peças a ser transportada de cada armazém para
cada vendedor. - Options Interface Output level option Terse
- LINGO mostrará somente o status da solução, valor
da função objetivo e número de interações - Comando Solution.
55Resolvendo o modelo (2)
56Resolvendo o modelo (3)
57Resolvendo o modelo (4)
58Características Adicionais da Linguagem de
Modelagem Nomes para as Restrições (1)
59Características Adicionais da Linguagem de
Modelagem Nomes para as Restrições (2)
60Características Adicionais da Linguagem de
Modelagem Nomes para as Restrições (3)
61Título do Modelo
- Se ele for incluído, aparecerá no cabeçalho de
todos os relatórios de solução - Será usado como argumento default na função _at_ODBC
(Interfaceando com banco de dados).
62Dimensões Máximas do Problema