Você está na página 1de 4

GAMS - Guia rpido de utilizao Parte 1

GAMS (General Algebraic Modeling System - http://www.gams.com) um ambiente para otimizao. Os


modelos so elaborados na forma de equaes algbricas usando uma linguagem de alto nvel. O GAMS
compila o modelo e faz a interface com o solver selecionado. A extenso do arquivo do modelo *.GMS,
enquanto que a extenso do arquivo de resultados *.LST. No menu File/Options/Solvers os solvers
comerciais so atribudos s diversas classes de problemas (LP, NLP, MILP...).
O arquivo do modelo, em geral, organizado nas seguintes sees:
1. Especificao de ndices e conjuntos.
2. Declarao e especificao de parmetros.
3. Declarao das variveis.
4. Declarao e listagem das equaes.
5. Especificao de limites e valores iniciais.
6. Especificao do modelo e chamada do solver.
- Comentrios podem ser usados para separar melhor as sees e deixar o arquivo organizado. Comentrios
so permitidos em linhas exclusivas comeando com *.
- No necessrio especificar qual a funo objetivo dentre as equaes do problema. O GAMS maximiza
ou minimiza variveis e no funes. Portanto lance uma equao do tipo Z = f(x) e otimize a varivel Z. A
varivel a ser otimizada deve ser declarada como contnua e irrestrita (free variable).

Exemplo de utilizao:
min

Z = 1,5.Y1 + 2,5.Y2 + 0,5.Y3 + X12 + X22

sujeito a

(X1 2,4)2 X2 0
X1 X2 + 4,1.(1 Y2) 0
X1 + X2 + 3.Y3 1,3.X3 = 0
ln(X1) X3 0
X1 5
X2 5
X1 - 10.Y1 0
Y1 + Y2 1

com

X1, X2, X3 0 reais


Y1, Y2 = {0, 1} binrias
Y3 0 inteira

Jos M. Pinto, Jorge A. W. Gut, EPUSP 2015

Formulao no GAMS:
*************** Problema de Otimizacao ***************
******** Declarao de Variveis e Equaes **********
FREE VARIABLES
POSITIVE VARIABLES
BINARY VARIABLES
INTEGER VARIABLES
EQUATIONS

Z;
X1, X2, X3;
Y1, Y2;
Y3;

OBJ, R1, R2, R3, R4, R5, R6, R7, R8;

******************** Equaes ************************


OBJ..
R1..
R2..
R3..
R4..
R5..
R6..
R7..
R8..

Z =E= 1.5*Y1 +2.5*Y2 +0.5*Y3 +X1**2 +X2**2 ;


SQR(X1 -2.4) - X2 =L= 0 ;
X1 -X2 +4.1*(1 -Y2) =L= 0 ;
X1 +X2 +3*Y3 -1.3*X3 =E= 0 ;
LOG(X1) - X3 =L= 0 ;
X1 =L= 5 ;
X2 =L= 5 ;
X1 -10*Y1 =L= 0 ;
Y1 +Y2 =G= 1 ;

************ Limites e Valores Iniciais **************


X1.L = 1 ;
X2.L = 2 ;
*******************

Soluo

************************

MODEL Problema / ALL / ;


SOLVE Problema USING MINLP MINIMIZING Z;
******************************************************

Todas os comandos so encerrados em ponto-e-vrgula, exceto comentrios.

Qualquer nome pode ser atribudo s variveis e equaes na formulao do problema, evitando o uso de
caracteres especiais como ou . No h diferenciao entre maisculas e minsculas. Nas listas de
declarao os nomes devem ser separados por vrgula. possvel inserir um comentrio logo aps o nome
declarado (texto fica azul):
BINARY VARIABLES

Y1 deciso de produo, Y2 varivel lgica;

Todas as variveis do problema devem ser declaradas. Opes:


FREE VARIABLES

variveis contnuas irrestritas

POSITIVE VARIABLES

variveis contnuas no-negativas

NEGATIVE VARIABLES

variveis contnuas no-positivas

BINARY VARIABLES

variveis binrias tipo 0-1

INTEGRER VARIABLES

variveis inteiras de 0 a 100

Cada equao representada algebricamente, iniciando com o seu nome seguido de dois pontos, e
encerrando com ponto-e-vrgula.

Jos M. Pinto, Jorge A. W. Gut, EPUSP 2015

Equaes e inequaes so representadas atravs destes operadores:


=E=

(equality)

=L=

(less than or equal to)

=G=

(greater than or equal to)

GAMS possui vrias funes matemticas inclusas, como por exemplo:


ABS( ): valor absoluto.
COS( ), SIN( ): coseno e seno.
SQR( ): elevado ao quadrado.
SQRT( ): raiz quadrada.
LOG( ), EXP( ): logaritmo natural e exponencial.
MIN( ), MAX( ): mnimo e mximo de uma lista de variveis.

Para definir limites inferiores e superiores das variveis e os chutes iniciais, usam-se os seguintes sufixos:
.LO

limite inferior (lower bound)

.UP

limite superior (upper bound)

.L

chute inicial

Exemplos:

(level)

1 X1 7

X1.LO = 1 ;
X1.UP = 7 ;

Iniciar em X1 = 3
-

X1.L

= 3 ;

Ao final do arquivo, especifica-se um nome para o modelo (no exemplo: Problema) e informa-se quais
equaes compem o modelo (use ALL para todas ou crie uma lista separando por vrgula). Podem ser
definidos vrios modelos em um mesmo arquivo, usando combinaes diferentes de equaes.

A chamada do otimizador feita da seguinte forma:


SOLVE (nome do modelo) USING (solver) MINIMIZING ou MAXIMIZING (varivel objetivo)

Estas so algumas das classes de solvers disponveis no GAMS:


LP

programao linear

MIP

programao mista-inteira linear

RMIP

programao mista-inteira linear relaxada

NLP

programao no-linear com funes suaves

MINLP

programao mista-inteira no linear

RMINLP

programao mista-inteira no linear relaxada

Vrios solvers comerciais de otimizao esto disponveis no GAMS, tais como CPLEX, CONOPT,
DICOPT, BARON, ANTIGONE, MINOS, SCIP etc. Ao usar um solver, recomenda-se ler a sua
documentao. Testar diferentes solvers para resolver um problema uma boa estratgia.

Aps compilao e resoluo, o resultado da otimizao fornecido ao fim de SOLVE SUMMARY.


Primeiramente so listadas as equaes e depois as variveis. As colunas LOWER e UPPER indicam os
limites viveis enquanto que a coluna LEVEL mostra o valor corrente. Variveis nulas so indicadas por
um ponto. A coluna MARGINAL traz os multiplicadores referentes s restries (sinais esto trocados).
Jos M. Pinto, Jorge A. W. Gut, EPUSP 2015

Resultado do GAMS:
MODEL STATISTICS
BLOCKS OF EQUATIONS
BLOCKS OF VARIABLES
NON ZERO ELEMENTS
DERIVATIVE POOL
CODE LENGTH
GENERATION TIME

9
7
23
10
19
=

SINGLE EQUATIONS
SINGLE VARIABLES
NON LINEAR N-Z
CONSTANT POOL
DISCRETE VARIABLES

0.000 SECONDS

3 MB

9
7
4
17
3
24.2.1 r43572 WEX-WEI

EXECUTION TIME
=
0.000 SECONDS
3 MB 24.2.1 r43572 WEX-WEI
GAMS 24.2.1
r43572 Released Dec
9, 2013 WEX-WEI x86_64/MS Windows 07/03/15
09:45:15 Page 5
G e n e r a l
A l g e b r a i c
M o d e l i n g
S y s t e m
Solution Report
SOLVE Problema Using MINLP From line 33
S O L V E
MODEL
TYPE
SOLVER

S U M M A R Y

Problema
MINLP
LINDOGLOBAL

**** SOLVER STATUS


**** MODEL STATUS
**** OBJECTIVE VALUE

OBJECTIVE
DIRECTION
FROM LINE

1 Normal Completion
1 Optimal
7.2366

RESOURCE USAGE, LIMIT


ITERATION COUNT, LIMIT
EVALUATION ERRORS

0.078
1000.000
111
2000000000
NA
0
LOWER

----------------------------

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

OBJ
R1
R2
R3
R4
R5
R6
R7
R8

.
-INF
-INF
.
-INF
-INF
-INF
-INF
1.000
LOWER

----------------------

VAR
VAR
VAR
VAR
VAR
VAR
VAR

Z
X1
X2
X3
Y1
Y2
Y3

EXECUTION TIME

Z
MINIMIZE
33

-INF
.
.
.
.
.
.
=

LEVEL

UPPER

.
.
-4.100
.
-1.716
1.272
1.272
-8.728
2.000

.
.
-4.100
.
.
5.000
5.000
.
+INF

LEVEL

UPPER

7.237
1.272
1.272
1.957
1.000
1.000
.
0.016 SECONDS

MARGINAL
1.000
-1.563
-0.981
EPS
.
.
.
.
.
MARGINAL

+INF
+INF
+INF
+INF
1.000
1.000
+INF

.
.
.
.
1.500
-1.523
0.500
2 MB

24.2.1 r43572 WEX-WEI

USER: GAMS Development Corporation, Washington, DC


G871201/0000CA-ANY
Free Demo, 202-342-0180, sales@gams.com, www.gams.com
DC0000

Jos M. Pinto, Jorge A. W. Gut, EPUSP 2015