Você está na página 1de 5

GAMS

Guia de utilizao

O GAMS (General Algebraic Modeling System) um ambiente para otimizao que fornece
interface para vrios algoritmos. Os modelos so fornecidos pelo usurio em um arquivo de entrada na forma
de equaes algbricas usando uma linguagem de alto nvel. O GAMS compila este modelo e faz a intervace
com um solver (ou seja, um algoritmo de otimizao). O modelo compilado e a soluo obtida so
mostrados ao usurio atravs de um arquivo de resultados. A extenso do arquivo do modelo *.GMS,
enquanto que a extenso do arquivo de resultados *.LST.

O arquivo do modelo, em geral, organizado nas seguintes sees:


1. Especificao de ndices e dados.
2. Lista dos nomes e tipos das variveis e lista das equaes.
3. Definio das equaes (funo objetivo e restries).
4. Especificao de limites, valores iniciais e opes especiais.
5. Chamada do solver de otimizao.

O formato dos arquivos de entrada no rgido, embora a sintaxe seja. Existe um nmero muito
grande de opes de modo a fornecer a flexibilidade para manusear modelos simples e complexos.

Exemplo de utilizao:
min Z = 1,5.Y1 + 2,5.Y2 + 0,5.Y3 + X1 2 + X2 2
sujeito a (X1 2,3)2 X2
X1 2.Y1 0
X1 X2 + 4,1.(1 Y2 ) 0
Y1 + Y2 1
X1 + X2 + 3.Y3 1,3.X3 = 0
X3 ln(X1 )
X1 5
X2 5
com X1 , X2 , X3 0 reais
Y1 , Y2 = {0, 1} binrias
Y3 0 inteira

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


Formulao no GAMS:

* Problema de Otimizacao

$TITLE Problema Teste


$OFFSYMXREF OFFSYMLIST
OPTION LIMROW = 0, LIMCOL = 0;

FREE VARIABLES Z;
POSITIVE VARIABLES X1, X2, X3;
BINARY VARIABLES Y1, Y2;
INTEGER VARIABLES Y3;

EQUATIONS OBJ, R1, R2, R3, R4, R5, R6;

* equacoes e restricoes
OBJ.. Z =E= 1.5*Y1 +2.5*Y2 +0.5*Y3 +X1**2 +X2**2 ;
R1.. SQR(X1 -2.3) =L= X2 ;
R2.. X1 -2*Y1 =G= 0 ;
R3.. X1 -X2 +4.1*(1 -Y2) =L= 0 ;
R4.. Y1 +Y2 =G= 1 ;
R5.. X1 +X2 +3*Y3 -1.3*X3 =E= 0 ;
R6.. X3 =G= LOG(X1) ;

* limites superiores
X1.UP = 5 ;
X2.UP = 5 ;

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

MODEL TESTE / ALL / ;

SOLVE TESTE USING MINLP MINIMIZING Z;

- Comentrios comeam com um asterisco.


- $TITLE define um ttulo para o problema.

- As linhas $OFFSYMXREF OFFSYMLIST e OPTION LIMROW = 0, LIMCOL = 0; definem as


opes padres do GAMS para reportar resultados.
- Qualquer nome pode ser atribudo s variveis na formulao do problema. No h diferenciao entre
maisculas e minsculas. O GAMS no reconhece caracteres especiais como ou .
- Todas as variveis devem ser declaradas, incluindo a funo objetivo que deve ser uma varivel
irrestrita. So estes os tipos de declaraes de variveis:
FREE VARIABLES para variveis contnuas irrestritas
POSITIVE VARIABLES para variveis contnuas no-negativas
NEGATIVE VARIABLES para variveis contnuas no-positivas
BINARY VARIABLES para variveis binrias tipo 0-1
INTEGRER VARIABLES para variveis inteiras no-negativas
- Os nomes das equaes e inequaes devem ser declaradas em EQUATIONS, separadas por vrgulas e
terminado em ponto-e-vrgula.

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


- Cada equao representada algebricamente, iniciando com o seu nome seguido de dois pontos, e
encerrando com ponto-e-vrgula.
- 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, use-se os seguintes sufixos:
.LO limite inferior (lower bound)
.UP limite superior (upper bound)
.L chute inicial (level)
Exemplo:
1X7 X.LO = 1 ;
X.UP = 7 ;

Iniciar em X = 3 X.L = 3 ;

- Ao final, especifica-se um nome para o modelo (no exemplo: TESTE) e informa-se quais equaes
devem ser usadas (ALL para todas). 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 da funo objetivo)
- Estes so os tipos 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 de otimizao comerciais esto disponveis no GAMS, entre eles podemos citar : ZOOM,
MINOS, OSL, CONOPT, DICOPT, BARON e CPLEX.

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


Resultado do GAMS (apenas MODEL STATISTICS e SOLVE SUMMARY):

GAMS Rev 118 Windows NT/95/98 08/11/03 09:21:20 PAGE 3


Problema Teste
Model Statistics SOLVE TESTE USING MINLP FROM LINE 33

MODEL STATISTICS

BLOCKS OF EQUATIONS 7 SINGLE EQUATIONS 7


BLOCKS OF VARIABLES 7 SINGLE VARIABLES 7
NON ZERO ELEMENTS 21 NON LINEAR N-Z 4
DERIVATIVE POOL 5 CONSTANT POOL 9
CODE LENGTH 41 DISCRETE VARIABLES 3

GENERATION TIME = 0.110 SECONDS 1.9 Mb WIN196-118

EXECUTION TIME = 0.170 SECONDS 1.9 Mb WIN196-118

GAMS Rev 118 Windows NT/95/98 08/11/03 09:21:20 PAGE 4


Problema Teste

S O L V E S U M M A R Y

MODEL TESTE OBJECTIVE Z


TYPE MINLP DIRECTION MINIMIZE
SOLVER DICOPT FROM LINE 33

**** SOLVER STATUS 1 NORMAL COMPLETION


**** MODEL STATUS 2 LOCALLY OPTIMAL
**** OBJECTIVE VALUE 5.3950

RESOURCE USAGE, LIMIT 0.660 1000.000


ITERATION COUNT, LIMIT 9 10000
EVALUATION ERRORS 0 0

--- DICOPT: Relaxed NLP gives integer solution

The Relaxed NLP gave a solution where all the integer


variables have integral values. There is no need to
to continue the search.

------------------------------------------------------------------
Dicopt2x-C Nov 19, 2000 WIN.DI.NA 19.6 021.016.039.WAT
------------------------------------------------------------------
Aldo Vecchietti and Ignacio E. Grossmann
Engineering Design Research Center
Carnegie Mellon University
Pittsburgh, Pennsylvania 15213

Erwin Kalvelagen
GAMS Development Corp.
1217 Potomac Street, N.W.
Washington DC 20007

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


------------------------------------------------------------------
DICOPT Log File
------------------------------------------------------------------
Major Major Objective CPU time Itera- Evaluation Solver
Step Iter Function (Sec) tions Errors
NLP 1 5.39503< 0.66 9 0 conopt
------------------------------------------------------------------
Total solver times : NLP = 0.66 MIP = 0.00
Perc. of total : NLP = 100.00 MIP = 0.00
------------------------------------------------------------------

LOWER LEVEL UPPER MARGINAL

---- EQU OBJ . . . 1.000


---- EQU R1 -INF . . -1.507
---- EQU R2 . 1.203 +INF .
---- EQU R3 -INF -4.100 -4.100 -0.899
---- EQU R4 1.000 1.000 +INF 1.500
---- EQU R5 . . . EPS
---- EQU R6 . 1.666 +INF .

GAMS Rev 118 Windows NT/95/98 08/11/03 09:21:20 PAGE 5


Problema Teste

LOWER LEVEL UPPER MARGINAL

---- VAR Z -INF 5.395 +INF .


---- VAR X1 . 1.203 5.000 .
---- VAR X2 . 1.203 5.000 .
---- VAR X3 . 1.851 +INF .
---- VAR Y1 . . 1.000 EPS
---- VAR Y2 . 1.000 1.000 -2.688
---- VAR Y3 . . 100.000 0.500

**** REPORT SUMMARY : 0 NONOPT


0 INFEASIBLE
0 UNBOUNDED
0 ERRORS

EXECUTION TIME = 0.050 SECONDS 0.7 Mb WIN196-118

USER: GAMS Development Corporation, Washington, DC G871201:0000XX-XXX


Free Demo, 202-342-0180, sales@gams.com, www.gams.com DC9999

**** FILE SUMMARY


INPUT C:\WINDOWS\GAMSDIR\EXEMPLO.GMS
OUTPUT C:\WINDOWS\GAMSDIR\EXEMPLO.LST

- O arquivo de entrada impresso novamente no arquivo de sada. Na seqncia so apresentadas


informaes sobre o tamanho do modelo, como nmero e tipo de variveis e equaes. O resultado da
otimizao propriamente dita fornecido aps SOLVE SUMMARY. Finalmente so mostradas as
informaes relativas s equaes e variveis. A coluna indicada como LEVEL fornece os valores
correntes das variveis, onde variveis nulas so indicadas por ..

Na internet:
GAMS http://www.gams.com

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