62
1 LINGO – Começando com o LINGO Prof. André Marcato Livro Texto : LINGO – The Modeling Language and Optimizer

LINGO – Começando com o LINGO

Embed Size (px)

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

Page 1: LINGO – Começando com o LINGO

1

LINGO – Começando com o LINGO

Prof. André Marcato

Livro Texto: LINGO – The Modeling Language and Optimizer

Page 2: LINGO – Começando com o LINGO

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

Page 3: LINGO – Começando com o LINGO

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

Page 4: LINGO – Começando com o LINGO

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.

Page 5: LINGO – Começando com o LINGO

Aula 1 5

Instalação

Trivial...

SETUP.EXE

Page 6: LINGO – Começando com o LINGO

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

Page 7: LINGO – Começando com o LINGO

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).

Page 8: LINGO – Começando com o LINGO

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.

Page 9: LINGO – Começando com o LINGO

Aula 1 9

Inserindo o Modelo

O ponto e vírgula é

necessário.

Page 10: LINGO – Começando com o LINGO

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

Page 11: LINGO – Começando com o LINGO

Aula 1 11

Comentários no Programa

Page 12: LINGO – Começando com o LINGO

Aula 1 12

Resolvendo o Modelo

Page 13: LINGO – Começando com o LINGO

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

Page 14: LINGO – Começando com o LINGO

Aula 1 14

Caixa de Variáveis (1)

Page 15: LINGO – Começando com o LINGO

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:

Page 16: LINGO – Começando com o LINGO

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

Page 17: LINGO – Começando com o LINGO

Aula 1 17

Caixa Status do Solver

Page 18: LINGO – Começando com o LINGO

Aula 1 18

Campo Classe do Modelo(1)

Page 19: LINGO – Começando com o LINGO

Aula 1 19

Campo Classe do Modelo(2)

Page 20: LINGO – Começando com o LINGO

Aula 1 20

Campo Classe do Modelo(3)

Page 21: LINGO – Começando com o LINGO

Aula 1 21

Campo Estado (state)

Page 22: LINGO – Começando com o LINGO

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

Page 23: LINGO – Começando com o LINGO

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.

Page 24: LINGO – Começando com o LINGO

Aula 1 24

Caixa de Status Extendido

Page 25: LINGO – Começando com o LINGO

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.

Page 26: LINGO – Começando com o LINGO

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.

Page 27: LINGO – Começando com o LINGO

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.

Page 28: LINGO – Começando com o LINGO

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.

Page 29: LINGO – Começando com o LINGO

Aula 1 29

Modelos Exemplo (1)

Page 30: LINGO – Começando com o LINGO

Aula 1 30

Modelos Exemplo (2)

Page 31: LINGO – Começando com o LINGO

Aula 1 31

Modelos Exemplo (3) - Tran

Page 32: LINGO – Começando com o LINGO

Aula 1 32

Modelos Exemplo (4) - Tran

Page 33: LINGO – Começando com o LINGO

Aula 1 33

Modelos Exemplo (5) - Tran

Page 34: LINGO – Começando com o LINGO

Aula 1 34

Modelando Através da Linha de Comando

Plataformas não windows.

Page 35: LINGO – Começando com o LINGO

Aula 1 35

Modelando Através da Linha de Comando – Entrando com o Modelo

Page 36: LINGO – Começando com o LINGO

Aula 1 36

Modelando Através da Linha de Comando – Comando GO

Page 37: LINGO – Começando com o LINGO

Aula 1 37

Modelando Através da Linha de Comando – Imprimindo e Salvando

Page 38: LINGO – Começando com o LINGO

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

Page 39: LINGO – Começando com o LINGO

Aula 1 39

Implementando o Modelo de Transporte “Set Based”

Page 40: LINGO – Começando com o LINGO

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.

Page 41: LINGO – Começando com o LINGO

Aula 1 41

Capacidade dos Armazéns

Page 42: LINGO – Começando com o LINGO

Aula 1 42

Demanda dos Vendedores

Page 43: LINGO – Começando com o LINGO

Aula 1 43

Custo de Transporte por Peça

Page 44: LINGO – Começando com o LINGO

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.

Page 45: LINGO – Começando com o LINGO

Aula 1 45

Função Objetivo (2)

Page 46: LINGO – Começando com o LINGO

Aula 1 46

As Restrições (1)

Restrição de demanda de cada vendedor. Vendedor 1:

Page 47: LINGO – Começando com o LINGO

Aula 1 47

As Restrições (2)

Page 48: LINGO – Começando com o LINGO

Aula 1 48

As Restrições (3)

Restrição de Capacidade dos Armazéns

Page 49: LINGO – Começando com o LINGO

Aula 1 49

Modelo Completo

Page 50: LINGO – Começando com o LINGO

Aula 1 50

Definindo os Conjuntos (1)

Armazéns Vendedores Arcos de transporte entre cada armazém e cada

vendedor.

Page 51: LINGO – Começando com o LINGO

Aula 1 51

Definindo os Conjuntos (2)

Page 52: LINGO – Começando com o LINGO

Aula 1 52

Entrando com os Dados

Page 53: LINGO – Começando com o LINGO

Aula 1 53

Model Widgets

Page 54: LINGO – Começando com o LINGO

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.

Page 55: LINGO – Começando com o LINGO

Aula 1 55

Resolvendo o modelo (2)

Page 56: LINGO – Começando com o LINGO

Aula 1 56

Resolvendo o modelo (3)

Page 57: LINGO – Começando com o LINGO

Aula 1 57

Resolvendo o modelo (4)

Page 58: LINGO – Começando com o LINGO

Aula 1 58

Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (1)

Page 59: LINGO – Começando com o LINGO

Aula 1 59

Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (2)

Page 60: LINGO – Começando com o LINGO

Aula 1 60

Características Adicionais da Linguagem de Modelagem – Nomes para as Restrições (3)

Page 61: LINGO – Começando com o LINGO

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).

Page 62: LINGO – Começando com o LINGO

Aula 1 62

Dimensões Máximas do Problema