Você está na página 1de 96

INTRODUÇÃO AO

AMBIENTE GAMS
Ambiente para modelagem
e optimização
SUMÁRIO

INTRODUÇÃO
SUMÁRIO
ESTRUTURA DO
MODELO 1) INTRODUÇÃO

ELEMENTOS DA
LINGUAGEM 2) ESTRUTURA DO MODELO EM GAMS

SOLVERS 3) ELEMENTOS DA LINGUAGEM DE MODELAGEM GAMS

ANÁLISE DOS 4) SOLVERS


RESULTADOS

EXEMPLO 1 5) ANÁLISE DOS RESULTADOS


[LP]

EXEMPLO 2 EXEMPLO 1: Linear Programming (LP)


[NLP] EXEMPLO 2: Nonlinear Programming (NLP)
EXEMPLO 3: Mixed Integer Nonlinear Programming (MINLP)
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO
MODELO O que é o GAMS?

ELEMENTOS DA
LINGUAGEM
- Ambiente para modelagem e solução de problemas de
otimização
SOLVERS
- Acrônimo: General Algebraic Modeling System
ANÁLISE DOS
RESULTADOS
- Consiste de 3 componentes:
EXEMPLO 1
[LP] - Linguagem Algébrica: permite a modelagem de sistemas
complexos
EXEMPLO 2
- Compilador: traduz as informações para o formato aceito pelo
[NLP]
solver
EXEMPLO 3 - Solvers: pacotes comerciais que resolvem o problema e
[MINLP] disponibilizam os resultados
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO
MODELO Fluxo de Informações no ambiente GAMS
(Grossmann, 1991):
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO Histórico:
MODELO

ELEMENTOS DA . 1950-60’s: desenvolvimento de algoritmos para solução


LINGUAGEM
de problemas de otimização de grande escala
SOLVERS
. 1970’s: poucas aplicações dos algoritmos devido ao alto
ANÁLISE DOS esforço de modelagem
RESULTADOS - Dificuldades: preparação dos dados, transformação para o
formato do solver, geração de relatórios e depuração dos
EXEMPLO 1 códigos
[LP]

EXEMPLO 2 . 1980’s: surgimento de sistemas de modelagem algébrica


[NLP] (linguagem de alto nível, unificação do formato do modelo
EXEMPLO 3
e fácil depuração)
[MINLP]
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO • Para que é utilizado?
MODELO
- Problemas de otimização de grande escala
ELEMENTOS DA
LINGUAGEM • Vantagens:
- Facilidade na modelagem de problemas complexos
SOLVERS (representação algébrica)
- Solvers comerciais robustos e consolidados
ANÁLISE DOS
RESULTADOS - Grande comunidade usuária (facilidade na obtenção de
informações)
EXEMPLO 1
[LP] - IDE (edição, desenvolvimento, debugging e solução)

EXEMPLO 2 • Desvantagens:
[NLP] - Solvers de código fechado
EXEMPLO 3 - Resolução de sistemas dinâmicos e distribuídos
[MINLP]
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO
MODELO
Sistemas de Modelagem Algébrica
ELEMENTOS DA Características:
LINGUAGEM

- Modelam o problema como um sistema de equações


SOLVERS algébricas, as quais são tratadas como restrições (ou
função objetivo) do problema de otimização
ANÁLISE DOS - Analisam automaticamente a estrutura do modelo e o
RESULTADOS
classificam de acordo com o tipo de otimização
EXEMPLO 1
[LP]
Sistemas Mais Utilizados para Otimização:
EXEMPLO 2 - GAMS - MPL
[NLP] - AMPL - AIMMS

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
INTRODUÇÃO
ESTRUTURA DO
MODELO
Sistemas de Modelagem Algébrica
- Edgar, Himmelblau e Lasdon (2001):
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO Principais Seções do modelo GAMS:
MODELO

ELEMENTOS DA 1. Especificação dos conjuntos e parâmetros


LINGUAGEM

SOLVERS 2. Declaração das variáveis e equações

Estruturas!
ANÁLISE DOS 3. Definição das equações
RESULTADOS

EXEMPLO 1 4. Especificação dos limites, valores iniciais, opções


[LP]
especiais
EXEMPLO 2
[NLP]
5. Espec. do modelo e chamada do solver
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO Estruturas:
ELEMENTOS DA
LINGUAGEM • Conjuntos (Sets)
• Dados (constantes e parâmetros)
SOLVERS
• Variáveis
ANÁLISE DOS
RESULTADOS • Equações
EXEMPLO 1 • Modelos
[LP]
• Solvers
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO
• Sets (Conjuntos)
- Possibilitam a indexação de variáveis
ELEMENTOS DA
LINGUAGEM - Úteis para representar sistemas complexos
- Índices equivalem ao número de linhas ou
SOLVERS
colunas de matrizes ou vetores do problema.
ANÁLISE DOS
RESULTADOS
Exemplo: conjunto [i1,i2,i3,i4,i5]
EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO • Data (3 tipos de dados):
ELEMENTOS DA Escalares: número fixo (sem índices):
LINGUAGEM
ou
SOLVERS
Parâmetros: vetor de números fixos:
ANÁLISE DOS
RESULTADOS

EXEMPLO 1 Tabelas: matriz de números fixos:


[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO
• Variables
- Declaração de variáveis: nome, domínio e
ELEMENTOS DA
LINGUAGEM descrição
- Características importantes: limites inferior e
SOLVERS
superior, chute inicial (Elementos da Ling.)
ANÁLISE DOS - Ex:
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO
• Equations
ELEMENTOS DA
- Restrições e Função Objetivo
LINGUAGEM
- Declaração:
SOLVERS

ANÁLISE DOS - Definição:


RESULTADOS

EXEMPLO 1
[LP] Nome da
Operador
Equação Símbolo
EXEMPLO 2 relacional
“..”
[NLP]
* Equações utilizam operadores e funções próprias do GAMS,
EXEMPLO 3 os quais serão apresentados na seção de Elementos da Linguagem
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO
• Model
ELEMENTOS DA
- Agrupam as equações a serem
LINGUAGEM resolvidas
SOLVERS - Útil para relaxação do problema:
- Resolve um problema simplificado ou
ANÁLISE DOS
RESULTADOS
com menos restrições e utiliza a sua
solução como ponto inicial para o
EXEMPLO 1
[LP]
problema rigoroso

EXEMPLO 2
- Exemplo:
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO
• Solve
ELEMENTOS DA
- Especificar 3 elementos:
LINGUAGEM - Modelo (conjunto de equações) a ser
SOLVERS
resolvido
- Variável a ser minimizada ou maximizada
ANÁLISE DOS - Tipo de problema (ex: LP, NLP, etc.)
RESULTADOS
- Exemplo:
EXEMPLO 1
[LP]

EXEMPLO 2
[NLP] - Selecionando o solver:
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ESTRUTURA DO MODELO
ESTRUTURA DO
MODELO Recapitulando:
ELEMENTOS DA Divisão do Modelo:
LINGUAGEM
 Conjuntos e parâmetros
SOLVERS

ANÁLISE DOS
 Declaração das variáveis e equações
RESULTADOS

EXEMPLO 1
 Definição das equações
[LP]
 Limites, valores iniciais e opções especiais
EXEMPLO 2
[NLP]
 Especificação do modelo e chamada do solver
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Características Gerais da Linguagem:
ELEMENTOS DA
LINGUAGEM - Semelhança com fortran.
- Sempre declarar um elemento antes de
SOLVERS
referenciá-lo.
ANÁLISE DOS - Toda sentença deve terminar com um
RESULTADOS
ponto e vírgula.
EXEMPLO 1
[LP]
- Compilador não diferencia letras
maiúsculas de minúsculas.
EXEMPLO 2
[NLP] - Comentários: iniciar a linha com “*”
EXEMPLO 3
- Comentários múltiplos: “$ontext” e “$offtext”
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Funções Pré-definidas:
ELEMENTOS DA
LINGUAGEM - sum(): somatório de elementos

SOLVERS

ANÁLISE DOS - prod(): produtório de elementos


RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2 - smin() e smax(): valor mínimo e máximo dentro


[NLP]
de um conjunto
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Funções Pré-definidas:
ELEMENTOS DA
LINGUAGEM - ord(): índice do elemento no conjunto

SOLVERS
- card(): número de elementos no conjunto
ANÁLISE DOS
RESULTADOS
- round(): arredondamento
EXEMPLO 1
[LP]

EXEMPLO 2 - normal(): distribuição normal


[NLP]

EXEMPLO 3
[MINLP] - outros: max(), min(), abs(), log(), log10(), etc.
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Controladores de Fluxo:
ELEMENTOS DA
- Loop:
LINGUAGEM

SOLVERS - If / Elseif / Else


ANÁLISE DOS - While
RESULTADOS
- For
EXEMPLO 1
[LP] Controladores de Fluxo são normalmente usados para:
- Controlar o statement de “solve” (resolver o problema para
EXEMPLO 2
[NLP] certas condições, ou repetidas vezes)
- Geração dinâmica de relatórios
EXEMPLO 3 - Análise de sensibilidade
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Operadores (em ordem de prioridade):
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO
Operador condicional “$”:
ELEMENTOS DA
LINGUAGEM - Executar uma operação:

SOLVERS
- Adicionar um termo no somatório:
ANÁLISE DOS
RESULTADOS

EXEMPLO 1 - Definir uma equação:


[LP]

EXEMPLO 2
[NLP]
- Incluir um termo em uma equação:
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
ELEMENTOS DA LINGUAGEM
ESTRUTURA DO
MODELO Opções Gerais dos Modelos
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]
Exemplo:
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
SOLVERS
ESTRUTURA DO
MODELO Solvers de Otimização:
ELEMENTOS DA
LINGUAGEM
• Características:
SOLVERS

- Utilizam um ou mais algoritmos para


ANÁLISE DOS
RESULTADOS resolução do problema.
EXEMPLO 1
[LP]
- Rotinas de pré e pós-tratamento:
EXEMPLO 2 - Transformação ou relaxação do problema
[NLP]
- Escalonamento das variáveis
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
SOLVERS
ESTRUTURA DO
MODELO
Tipos de Modelos/Problemas no GAMS
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
SOLVERS
ESTRUTURA DO Solvers Disponíveis no GAMS:
MODELO

ELEMENTOS DA
LINGUAGEM
• LP: BDMLP, CPLEX, SCIP, XA, XPRESS.

SOLVERS • MIP: CPLEX, OSL, SCIP, XA, XPRESS.


ANÁLISE DOS
RESULTADOS • NLP: CONOPT, KNOPT, MINOS, SNOPT, MOSEK,
EXEMPLO 1 PATHNLP, LGO.
[LP]

EXEMPLO 2 • MINLP: AlphaECP, DICOPT, LINDOGlobal, SBB,


[NLP]
BARON, LGO, OQNLP, MOSEK.
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
SOLVERS
ESTRUTURA DO Lista de Solvers e Licenças Disponíveis no GAMS:
MODELO
File  Options  Solvers Tab
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
SOLVERS
ESTRUTURA DO Outros Softwares e Solvers:
MODELO https://en.wikipedia.org/wiki/List_of_optimization_software

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Arquivo de Resultados (.lst): contém informações para
MODELO
o controle e entendimento do modelo e de sua solução
ELEMENTOS DA
LINGUAGEM
8 Seções:
SOLVERS • Echo print Resultados da
Compilação
• Error Messages
ANÁLISE DOS
RESULTADOS • Reference Maps
Equações
EXEMPLO 1
• Equation Listing
Organizadas
[LP] • Column Listing
EXEMPLO 2 • Model Statistics Resultados do
[NLP] Solver
• Status Reports
EXEMPLO 3 • Solution Reports
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA • Echo print: cópia do arquivo de inputs com marcações das


LINGUAGEM linhas à esquerda para referência futura

SOLVERS • Error Messages: lista os erros de compilação, inserindo o


símbolo “****” na linha abaixo de cada erro na seção
ANÁLISE DOS Echo Print (anterior) e o código do erro com um símbolo
RESULTADOS
de “$”.
EXEMPLO 1
[LP] Indicação do erro:

EXEMPLO 2
[NLP]
Expicação do erro:
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Reference Maps:
- Mapa 1: lista todas as entidades (sets, parâmetros,
SOLVERS variáveis e equações), relacionando seu tipo, local de
declaração e de definição
ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2 - Mapa 2: lista todas as entidades agrupadas por tipo


[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA • Equation Listing e Column Listing


LINGUAGEM
- Equation Listing: substitui os parâmetros e apresenta as
equações para cada índice
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3 - Column Listing: idem para variáveis


[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Model Statistics:
- Tamanho e Não linearidades do modelo
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Status Report:

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3 2 campos mais importantes: Solver Status e Model Status


[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Status Report:

SOLVERS
Solver Status

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Status Report:
Model Status
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO
• Solution Reports:
ELEMENTOS DA - Resultados da solução do problema:
LINGUAGEM
lo, l, up, m
SOLVERS
EPS = quase zero
ANÁLISE DOS
RESULTADOS
“.” = zero
EXEMPLO 1
[LP] Marginal: zero
para restrições
EXEMPLO 2 inativas
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
RESULTADOS
ESTRUTURA DO Seções do Arquivo de Resultados (.lst):
MODELO

ELEMENTOS DA
LINGUAGEM • Solution Reports:
- Report Summary: número de equações ou variáveis
SOLVERS não-ótimas, inviáveis, irrestritas ou com erro

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLOS
ESTRUTURA DO
MODELO
Exemplo 1:
ELEMENTOS DA
LINGUAGEM Programação Linear

SOLVERS
Exemplo 2:
ANÁLISE DOS Programaçao Não Linear
RESULTADOS

EXEMPLO 1 Exemplo 3:
[LP]
Programação Não Linear Inteira Mista
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLOS
ESTRUTURA DO Classificação dos problemas de otimização (Biegler, 2010):
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS Exemplo 3


RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2 Exemplo 2
[NLP]

EXEMPLO 3 Exemplo 1
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLOS
ESTRUTURA DO
MODELO Representações do modelo, da vida real ao solver:
(Andrei, 2013)
ELEMENTOS DA
LINGUAGEM

Modelo
SOLVERS Modelo
Vida Real Algébrico-
Linguístico
Diferencial
ANÁLISE DOS
RESULTADOS

EXEMPLO 1 Modelo no
Modelo Otimização
[LP] Formato do
Algébrico
Solver
EXEMPLO 2
[NLP] discretização
Compilador
do GAMS
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Programação Linear
MODELO

ELEMENTOS DA • Características:
LINGUAGEM - Função objetivo: Linear
- Restrições: Lineares
SOLVERS - Parâmetros que afetam o tamanho do problema:
- número de variáveis
ANÁLISE DOS - número de restrições
RESULTADOS - número de entradas não-zero da matriz de constantes

EXEMPLO 1
[LP] • Problema na forma matricial:
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Programação Linear
MODELO

ELEMENTOS DA • Algoritmos de Solvers Comerciais (Edgar, Himmelblau e


LINGUAGEM
Lasdon, 2010):
SOLVERS

- Simplex: busca o mínimo através dos vértices da


ANÁLISE DOS
RESULTADOS
região viável

EXEMPLO 1
[LP] - Métodos de Barreiras (ponto interior): não atendem
às restrições a cada iteração, avaliando pontos fora
EXEMPLO 2 dos vértices. Tomam menos iterações, porém, com
[NLP]
um maior tempo para cada iteração. São geralmente
EXEMPLO 3 melhores para problemas de grande porte.
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Solver Utilizado: CPLEX
MODELO

ELEMENTOS DA
LINGUAGEM • Tipo de problemas: programação linear, inteira
mista ou com restrições quadráticas
SOLVERS

ANÁLISE DOS
• Algoritmos para LP: dual simplex (+ usado),
RESULTADOS primal simplex, network optimizer, barrier
EXEMPLO 1
algorithm e sifiting algorithm
[LP]

EXEMPLO 2 • Problema: falta de memória para problemas


[NLP]
muito grandes
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Descrição do Problema
MODELO

ELEMENTOS DA
Produção e Mistura em Refinarias (Edgar e Himmelblau, 1988)
LINGUAGEM
- Restrições de igualdade:
SOLVERS - rendimento dos reagentes para cada produto
- custo das matérias-primas e de operação
ANÁLISE DOS - renda com a venda dos produtos
RESULTADOS

EXEMPLO 1 - Restrições de desigualdade: vazões máximas dos produtos


[LP]

EXEMPLO 2 - Função objetivo: maximização do lucro (renda - custos)


[NLP]

EXEMPLO 3 - Variáveis de decisão: vazões das matérias-primas e dos produtos


[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Descrição do Problema
MODELO

ELEMENTOS DA Correntes de alimentação e saída:


LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1 Variáveis
[LP]
de decisão :
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Descrição do Problema
MODELO

ELEMENTOS DA Rendimento volumétrico:


LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]
Restrições de igualdade:
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Descrição do Problema
MODELO

ELEMENTOS DA Função objetivo:


LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]
Restrições de Desigualdade:
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO
MODELO
CÓDIGO GAMS
ELEMENTOS DA
LINGUAGEM Conjuntos:
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO
MODELO
Dados:
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO
MODELO
Dados:
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO
MODELO
Variáveis:
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
ESTRUTURA DO Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP] Modelo e Solver:
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 1 – LP
Análise dos Resultados
ESTRUTURA DO
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO
MODELO
Programação Não Linear
ELEMENTOS DA
LINGUAGEM • Características:
- Função objetivo ou qualquer restrição não-linear
SOLVERS

ANÁLISE DOS • Problema na Forma Matricial:


RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO 3 Tipos de algoritmos em solvers comerciais
MODELO
(Biegler, 2010):
ELEMENTOS DA • SQP:
LINGUAGEM - Resolve uma série de problemas QP (função objetiva quadrática,
restrições lineares)
SOLVERS - Função Objetivo Lagrangeana é aproximada por uma função
quadrática
- Restrições de igualdade e desigualdade são linearizadas
ANÁLISE DOS
RESULTADOS - Unfeasible Path

EXEMPLO 1
[LP]
• Ponto Interior
- Feasible Path
EXEMPLO 2
[NLP]

EXEMPLO 3 • Gradiente Reduzido


[MINLP] - Feasible Path
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Comparação entre Algoritmos de NLP
MODELO
(Edgar, Himmelblau, Lasdon, 2001):
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Solver Utilizado: CONOPT
MODELO

ELEMENTOS DA
LINGUAGEM • Características: bom para problemas com fortes
não-linearidades, usa segundas derivadas, lida
SOLVERS com sistemas grandes e esparsos.
ANÁLISE DOS
RESULTADOS • Algoritmo: baseado em GRG
- Feasible Path Method
EXEMPLO 1
[LP]

EXEMPLO 2 • Solução local


[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Boas práticas para Programação Não-Linear
MODELO
(Manual CONOPT, seção 6)
ELEMENTOS DA
LINGUAGEM Reduzem o esforço p/ reduzir inviabilidade
• Ponto Inicial Reduzem o distância p/ ponto ótimo
SOLVERS Default: valor inicial = 0 (ruim em alguns casos)

Restrições do modelo
ANÁLISE DOS • Fronteiras
Restrições do algoritmo
RESULTADOS
Evitar funções ñ-lineares de
EXEMPLO 1 • Expressões Simplificadas expressões, singularidades
[LP]
Usar termos intermediários
EXEMPLO 2
[NLP] • Escalonamento Definem a magnitude das derivadas
(alteram a direção de busca)
Bom: derivadas e variáveis
EXEMPLO 3 em torno de 1 (0.01 a 100)
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Descrição do Problema:
MODELO
Condição ótima de equilíbrio para reação de
ELEMENTOS DA
LINGUAGEM
formação de amônia (Martín, 2014)

SOLVERS
• Reação:
ANÁLISE DOS
RESULTADOS • Características:
EXEMPLO 1 - Reação favorecida a altas pressões e baixas
[LP] temperaturas
EXEMPLO 2
- Custo de se operar a altas pressões (compressão) e
[NLP] altas temperaturas

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Restrições de igualdade:
MODELO

ELEMENTOS DA • Equilíbrio da Reação:


LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1 * Desconsidera a cinética da reação, usa apenas equilíbrio e balanço de massa


[LP]
• Dependência com temperatura:
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO • Função Objetivo = vazãoNH3 – 0.005.P – 0.001.T
MODELO
(Penaliza altas pressões e temperaturas)
ELEMENTOS DA
LINGUAGEM
• Conversão x Temperatura e Pressão
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Código GAMS:
MODELO

ELEMENTOS DA
LINGUAGEM Conjuntos:

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO
MODELO
Variáveis:
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO
MODELO
Dados:
ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO Modelo e Solver:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS Opcionais:


RESULTADOS Ponto Interior
EXEMPLO 1
[LP]

EXEMPLO 2 SQP
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO • Análise dos Resultados
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
Log de iterações:
ESTRUTURA DO
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 2 – NLP
ESTRUTURA DO
MODELO • Log de Iterações do CONOPT:
ELEMENTOS DA
LINGUAGEM
Fase 0 (baixo custo computacional)
- Iteração 0: ponto inicial obtido do GAMS
SOLVERS - Iterações 1 e 2: após pré-processam. e escalonam.
ANÁLISE DOS Restante das Iterações: caracterizadas pela Fase
RESULTADOS

EXEMPLO 1 - Fase 1 e 2: Pontos inviáveis, minimiza a inviabilidade


[LP]
- Fases 3 e 4: Pontos viáveis, minimiza a fn objetivo
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Programação Não Linear Inteira Mista
MODELO

ELEMENTOS DA
LINGUAGEM • Características:
- Função Objetivo ou qualquer uma das Restrições não-
SOLVERS lineares, contendo variáveis inteiras

ANÁLISE DOS
RESULTADOS • Forma Vetorial:
EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Programação Não Linear Inteira Mista
MODELO

ELEMENTOS DA • Dificuldades:
LINGUAGEM

SOLVERS - Multimodal:

ANÁLISE DOS
RESULTADOS
- Domínio discreto:
EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]
- Não-convexidade:
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Algoritmos dos Solvers Comerciais (Floudas, 1995):
MODELO

ELEMENTOS DA • Branch and Bound: relaxa/fixa toda as variáveis


LINGUAGEM
binárias (0<y<1), resolve o problema NLP e retira as
relaxações uma de cada vez, parando quando atender
SOLVERS
todas as restrições inteiras e contínuas.
ANÁLISE DOS
RESULTADOS • Decomposição em Subproblemas: relaxação do
EXEMPLO 1
problema original e obtenção de limites inferior e
[LP] superior
- Aproximação externa: NLP (upper bound, fixando as
EXEMPLO 2 variáveis inteiras) e MILP (lower bound, linearizando nos
[NLP]
pontos ótimos do NLP), adicionando mais restrições
EXEMPLO 3 lineares a cada iteração
[MINLP] - Decomposição Generalizada de Benders: NLP + Dual
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Solver Utilizado: DICOPT
MODELO

ELEMENTOS DA • Resolve problemas MINLP com variáveis inteiras ou


LINGUAGEM
binárias lineares e variáveis contínuas não-lineares
SOLVERS
• Algoritmo baseado na extensão do método de
ANÁLISE DOS Aproximação Externa (Carnegie Mellon)
RESULTADOS - Proposto por Viswanathan e Grossmann (1990): utiliza
Outer Approximation/ Equality Relaxation/ Aumented Penalty
EXEMPLO 1
[LP]
• Resolve uma série de problemas MILP e NLP com solvers
EXEMPLO 2 internos do GAMS (default: CPLEX e CONOPT)
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Algoritmo de Aproximação Externa (original):
MODELO
(ref: AIMMS Language Guide)
Solução do problema primal
ELEMENTOS DA
com solver NLP (CONOPT)
LINGUAGEM Upper
Bound * NLP tem solução local

SOLVERS
Solução do problema mestre
Lower com solver MILP (DICOPT)
ANÁLISE DOS Bound
* MILP tem solução garantida
RESULTADOS

EXEMPLO 1
Terminação: solução
[LP]
do problema primal
EXEMPLO 2
[NLP] * Solução Global só é garantida
se o problema for convexo
EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Algoritmo de Aproximação Externa (original):
MODELO

ELEMENTOS DA • Aproximações (Linearizações) Externas:


LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP] restrições
não-convexas
EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP] Loosening of Linearizations
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Descrição do Problema: Síntese de Processos
MODELO
• Síntese de Processos (Martín, 2014): seleção da melhor configuração
ELEMENTOS DA de processo utilizando superestrutura
LINGUAGEM
– Modelagem Linear dos Equipamentos
– Custos Não-lineares
SOLVERS

• Reação simples irreversível: A + B  C


ANÁLISE DOS
RESULTADOS
• 3 Reatores:
EXEMPLO 1
- conversões constantes
[LP]
- custos diferentes
EXEMPLO 2
[NLP]
• 2 Separadores:
EXEMPLO 3 - grau de separação constantes
[MINLP] - custos diferentes
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Descrição do Problema: Síntese de Processos
MODELO

ELEMENTOS DA • Síntese de Processos (Martín, 2014): seleção da melhor


LINGUAGEM configuração de processo utilizando superestrutura
3 reatores 2 separadores
SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]
Numeração
EXEMPLO 3
das correntes
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Modelagem das Dicotomias:
MODELO

ELEMENTOS DA
LINGUAGEM

Variável binária y1
SOLVERS

Variável binária y2
ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]
garante que somente
EXEMPLO 2 y1 + y2 = 1 uma variável seja = 1

[NLP]
Restrições: vazão(7) vazão(7),max . y1
EXEMPLO 3
[MINLP]
vazão(8) vazão(8),max . y2
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO • Código GAMS:
MODELO

ELEMENTOS DA
LINGUAGEM Conjuntos:

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Dados (Escalares):
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Variáveis:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Declaração das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Fixando Variáveis:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição das Equações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO Definição do modelo e chamada do Solver:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS
Opcional:
EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO • Análise dos Resultados (Solution Report):
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO • Análise dos Resultados (SolVar):
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
EXEMPLO 3 – MINLP
ESTRUTURA DO • Log de Iterações:
MODELO

ELEMENTOS DA
LINGUAGEM

SOLVERS

ANÁLISE DOS
RESULTADOS

EXEMPLO 1
[LP]

EXEMPLO 2
[NLP]

EXEMPLO 3
[MINLP]
SUMÁRIO

INTRODUÇÃO
Referências
ESTRUTURA DO
MODELO • Edgar, Himmelblau e Lasdon, Optimization of Chemical
Processes, 2001
ELEMENTOS DA
LINGUAGEM
• Biegler, Nonlinear Programming, Concepts, Algorithms and
Applications to Chemical Processes, 2010
• Floudas C. A., Nonlinear and Mixed-Integer Optimization, 1995
SOLVERS
• Andrei, Nonlinear Optimization Applications using the GAMS
Technology, 2013
ANÁLISE DOS
RESULTADOS • Grossmann, Introduction to GAMS, 1991
• Rosenthal, GAMS User Guide, 2015
EXEMPLO 1 • Martín M. M., Introduction to Software for Chemical Engineers,
[LP] 2014,
EXEMPLO 2 • Manual CPLEX
[NLP] • Manual CONOPT
• Manual DICOPT
EXEMPLO 3
[MINLP]

Você também pode gostar