View
87
Download
0
Category
Preview:
DESCRIPTION
LINGO – Começando com o LINGO. Prof. André Marcato. Livro Texto : LINGO – The Modeling Language and Optimizer. Prefá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) - PowerPoint PPT Presentation
Citation preview
1
LINGO – Começando com o LINGO
Prof. André Marcato
Livro Texto: LINGO – The Modeling Language and Optimizer
Aula 1 2
Prefácio
Linguagem de Modelagem “Set-Based”Entrada e Saída de Dados AmigávelOpções de Uso
Modelagem InterativaCriação de Aplicações “Turnkey” (DLL e
OLE)Extensa documentação e Help
Aula 1 3
Solvers 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
Aula 1 4
O 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.
Aula 1 5
Instalação
Trivial...
SETUP.EXE
Aula 1 6
Introduzindo um Modelo no Windows
Janela Principal
Janela de um novo modelo em branco
Menu de Comandos
Barra de Ferramentas e Barra de Status
(podem ser suprimidas
LINGO|Options
Aula 1 7
Iniciando 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).
Aula 1 8
Problema 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.
Aula 1 9
Inserindo o Modelo
O ponto e vírgula é
necessário.
Aula 1 10
Janela do Programa
Uma expressão pode ser quebrada em várias linhas,
mas deve ser terminada com ponto e vírgula.
TURBO
Turbo
turbo
Comentários em verde
Palavras chave em azul
Restante em preto
Aula 1 11
Comentários no Programa
Aula 1 12
Resolvendo o Modelo
Aula 1 13
Janela de Status do Solver
Interrompe o solver na próxima
interação. Na maioria dos casos o LINGO permite
visualizar a melhor solução
encontrada até o momento
(exceção: modelos lineares sem
variáveis inteiras)
Cuidado:
1) Solução não ótima
2) Pode não atender às todas restrições
3) Pode ser errada (problema linear)
Fecha a janela Status do Solver
que pode ser reaberta através
do menu de comandos
Windows/Status Window
Aula 1 14
Caixa de Variáveis (1)
Aula 1 15
Caixa 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:
Aula 1 16
Restrições, Não Zeros, Memória e Tempo de Execução
Número total de restrições.
Número total de restrições não
lineares (se uma ou mais variáveis aparecem não linearmente na
restrição)
Se restrições com variáveis “fixas”
forem encontradas. Elas não são contabilizadas
Mostra o número de coeficientes não zero e,
destes, quantos
aparecem sobre as
variáveis não lineares.
Utilização da memória. LINGO|Options, pode ser
utilizado para alterar a alocação.
Tempo decorrido de
execução
Aula 1 17
Caixa Status do Solver
Aula 1 18
Campo Classe do Modelo(1)
Aula 1 19
Campo Classe do Modelo(2)
Aula 1 20
Campo Classe do Modelo(3)
Aula 1 21
Campo Estado (state)
Aula 1 22
Campo Estado (state)
UnboundedA 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
Aula 1 23
Campo 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.
Aula 1 24
Caixa de Status Extendido
Aula 1 25
Best 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.
Aula 1 26
Campo 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.
Aula 1 27
Relatório de Solução
Máximo Lucro atingível
Quantidade de Cada Computador a ser produzida.
Valor que o coeficiente da variável na função objetivo
deve ser incrementado para que a variável
comece a ter um impacto positivo na função objetivo.
Só é diferente de zero nas inequações. Déficit ou
superávit. O quão distante a restrição ficou da
igualdade.
Impacto na função objetivo pela alteração no lado
direito da restrição em uma unidade.
Aula 1 28
Imprimindo 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.
Aula 1 29
Modelos Exemplo (1)
Aula 1 30
Modelos Exemplo (2)
Aula 1 31
Modelos Exemplo (3) - Tran
Aula 1 32
Modelos Exemplo (4) - Tran
Aula 1 33
Modelos Exemplo (5) - Tran
Aula 1 34
Modelando Através da Linha de Comando
Plataformas não windows.
Aula 1 35
Modelando Através da Linha de Comando – Entrando com o Modelo
Aula 1 36
Modelando Através da Linha de Comando – Comando GO
Aula 1 37
Modelando Através da Linha de Comando – Imprimindo e Salvando
Aula 1 38
Usando 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
Aula 1 39
Implementando o Modelo de Transporte “Set Based”
Aula 1 40
O 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.
Aula 1 41
Capacidade dos Armazéns
Aula 1 42
Demanda dos Vendedores
Aula 1 43
Custo de Transporte por Peça
Aula 1 44
Funçã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.
Aula 1 45
Função Objetivo (2)
Aula 1 46
As Restrições (1)
Restrição de demanda de cada vendedor. Vendedor 1:
Aula 1 47
As Restrições (2)
Aula 1 48
As Restrições (3)
Restrição de Capacidade dos Armazéns
Aula 1 49
Modelo Completo
Aula 1 50
Definindo os Conjuntos (1)
Armazéns Vendedores Arcos de transporte entre cada armazém e cada
vendedor.
Aula 1 51
Definindo os Conjuntos (2)
Aula 1 52
Entrando com os Dados
Aula 1 53
Model Widgets
Aula 1 54
Resolvendo 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.
Aula 1 55
Resolvendo o modelo (2)
Aula 1 56
Resolvendo o modelo (3)
Aula 1 57
Resolvendo o modelo (4)
Aula 1 58
Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (1)
Aula 1 59
Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (2)
Aula 1 60
Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (3)
Aula 1 61
Tí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 @ODBC (Interfaceando com banco de dados).
Aula 1 62
Dimensões Máximas do Problema
Recommended