Sei sulla pagina 1di 32

GAMS

Sistema General de Modelaje Algebraico


Uso GAMS

Modelar problemas de optimización tanto lineales, no lineales o de


enteros mezclados.

El sistema es especialmente útil para problemas que sean grandes y


complejos.

Soporta 300 variables y restricciones, 2000 elementos no nulos y 50


variables discretas.
COMO SE PROGRAMA EN GAMS
→Gams no diferencia entre minúsculas y mayúsculas.

→Para colocar un título: $TITLE nombre del modelo

→Para ingresar comentarios largos se debe incluir entre los


criterios: $ONTEXT (inicio) OFFTEXT (fin)

→Para ingresar comentarios cortos coloque * al iniciar

→No permite el uso de la letra «ñ», tildes o acentos o


palabras y símbolos básicos de gams

→Tiene unas palabras características (bloques) de


Caracteres especiales

•Punto y coma (;) separan sentencias de


programa.

•Coma (,) separa elementos dentro de un


conjunto de datos.

•Slash (/) marca el comienzo o el final de


una lista de datos.
BLOQUES OBLIGATORIOS

BLOQUE NOMBRE EN GAMS


Variables VARIABLES
Ecuaciones EQUATIONS
Modelo MODEL
Solución SOLVE
ESTRUCTURA BÁSICA

$TITLE ejemplo

$ONTEXT
$OFFTEXT

VARIABLES

POSITIVE VARIABLES

EQUATIONS

MODEL

SOLVE
VARIABLES: valores a calcular

Para ingresar variables escribimos:

Variable

x1, x2, x3, z ;


TIPOS DE VARIABLES

• Positive Variable
• Binary Variable
• Integer Variable
• Negative Variable
Variables

Variable
x1, x2, x3, z ;

Positive variable

x1, x2, x3 ;
Ecuaciones

Define nombres para ecuación de la función objetivo y restricciones


del modelo.

Equations

obj, restr1, restr2 ;

obj.. Se describe la ecuación ;


restr1.. Se describe la restricción 1 ;
restr2.. Se describe la restricción 2 ;
Signos de ecuaciones y
restricciones
=E= para decir que es exactamente igual. (=)
=L= para señalar que es menor o igual que. (<=)
=G= para decir que es mayor o igual que. (>=)
=Lt= para expresar que es menor que. (<)

x1 + x2 ≥ 300 x1 + x2 = g = 300

Usa operaciones básicas:


suma (+)
Resta (-)
Multiplicación (*)
División (/)
Potencia (**)
Operaciones con Índices Operaciones con funciones

• Uso de tablas •
Cuadrado de X () se escribe
se escribe (SQR(X))

(sum(i), A(i,j))
Raíz Cuadrada de X se escribe
o SQRT (X)

(sum(j), A(i,j))
Cotas en Ecuaciones

Extensión Función
.LO (.lo ) Establece el valor mínimo
que puede tomar la ≥300 .LO=300
variable
.UP (up) Establece el valor máximo
que puede tomar la variable ≤ 300 =300

En la definición de las cotas (valores máximos y


mínimos) no se usa =e= , se usa simplemente =
EJEMPLO PROGRAMACION LINEAL

Consideremos un problema de fabricación de sillas y escritorios, cuyo


modelo sea:
max z = x1 + 1.4x2
Sujeto a
x1 + x2 ≤ 400
x1 + 2x2 ≤ 580
x1 ≤ 300
x≥0
PROGRAMACION BASICA PL
$TITLE ejemplo

$ONTEXT
Calcular la función de Mayor ingreso
$OFFTEXT max z = x1 + 1.4x2
* Función mayor ingreso
VARIABLES
x1 + x2 ≤ 400
x1, x2, z; x1 + 2x2 ≤ 580
POSITIVE VARIABLES x1 ≤ 300
x1, x2;
x≥0
EQUATIONS
obj, restr1, restr2;

obj.. z =e= x1 + 1.4*x2;


restr1.. x1 + x2 =l= 400;
restr2.. x1 + 2*x2 =l= 580;
x1.UP = 300;
MODEL
SOLVE
MODELO

Se definen el nombre del modelo y las ecuaciones que entran a


calcularse del modelo.

Tiene dos formas de escribirse

MODEL ejemplo / obj, Restr1, Restr2 /;

MODEL ejemplo /ALL/;


Solución

Se define el solver adecuado para la solución del modelo.

Solve ejemplo using LP maximizing z ;

Bloque Nombre modelo Solver a usar


TIPOS DE SOLVER

SOLVER DESCRIPCIÓN
LP LINEAR PROGRAMMING
NPL NONLINEAR PROGRAMMING
MIP MIXED INTEGER PROGRAMMING
RMIP RELAXED MIXED INTEGER PROGRAMMING
MINLP MIXED INTEGER NONLINEAR PROGRAMMING
MCP MIXED COMPLEMENTARITY PROBLEMS
CNS CONSTRAINED NONLINEAR SYSTEMS
EJEMPLO
Problema de transporte con 3
fuentes y 4 orígenes. Los costos
unitarios están en miles de
pesos.
.
MATRICES Y VECTORES
DECLARACION DE CONJUNTOS

Los conjuntos se utilizan cuando cruzamos


información en matrices.
SET
i fabricas u origenes /Macondo, Cali, Faca/
j destinos /1*4/;

SET
i fuentes /Angeles, Detroit, Orleans/;
J destinos /Denver, Miami);

SET
i /salamanca,cuenca,albacete/;
j /madrid,barcelona,valencia/;
PARÁMETROS

Hay tres tipos de parámetros en GAMS.


• Escalares: asimilables a constantes numéricas.
• Parámetros: asimilables a listas de constantes numéricas
• Tablas: que son listas de al menos dos dimensiones de constantes
numéricas.
ESCALARES

SCALARS
grav aceleracion de la gravedad /9.8/ ;
c velocidad de la luz /300000/;
hi Inventarioinicial /500/;
PARAMETROS: listas de constantes
(vector)
PARAMETERS

A(i) capacidad de produccion de las fabricas


/ f1 200
f2 80
f3 100 / ;

B(j) demanda en los destinos


/ D1 105
D2 80
D3 99
D4 135 /;
Tablas

TABLE
c(i,j) costo unitario entre una fabrica y un destino
D1 D2 D3 D4
F1 23 29 19 31
F2 12 16 20 10
F3 11 13 17 19 ;
Variables

Variable

x(i,j) cantidades del producto en la fuente i y el destino j


z costo total ;

Positive variable

X;
Ecuaciones
Define nombres para ecuación de la función objetivo y restricciones del modelo.

Equations

Cost minimo costo de z


Capacidad(i) capacidad produccion recurso i
Demanda(j) demanda periodo j ;

Cost .. z =e= sum((i,j), C(i,j)*x(i,j)) ;

Capacidad(i).. sum(j, x(i,j)) =l= A(i) ;

Demanda(j).. sum(i, x(i,j)) =l= B(j) ;


model transport /all/;

SOLVE transport using LP minimizing z;

display x.l,x.m;
EJEMPLO
Problema de transporte con 3
fuentes y 4 orígenes. Los costos
unitarios están en miles de
pesos.

Potrebbero piacerti anche