LINGO – Começando com o LINGO

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