Professional Documents
Culture Documents
Alejandro Marano, Jos e Luis Mart nez Ramos Departamento de Ingenier a El ectrica Universidad de Sevilla
7 de marzo de 2009
Introducci on a GAMS
7 de marzo de 2009
1 / 24
Contenidos
1
Introducci on Qu e es GAMS? C omo funciona? Tipos de problemas Principales solvers Lenguaje de modelado Notaci on algebraica Estructura de los modelos Partes de un modelo Conjuntos Entrada de datos Variables Ecuaciones Declaraci on del modelo Lectura de resultados
Introducci on a GAMS 7 de marzo de 2009 2 / 24
Qu e es GAMS?
General Algebraic Modeling System. Software comercial desarrollado por GAMS DEVELOPMENT CORPORATION. Lenguaje de alto nivel para modelar problemas de programaci on matem atica y optimizaci on. Pensado para aplicaciones complejas que comprenden un gran n umero de ecuaciones y variables. Basado en notaci on algebraica.
Introducci on a GAMS
7 de marzo de 2009
3 / 24
C omo funciona?
modelo.gms
GAMS (solver)
modelo.lst
Introducci on a GAMS
7 de marzo de 2009
4 / 24
Tipos de problemas
Soluci on exacta de un problema lineal Optimizaci on local sobre curvas suaves no lineales Optimizaci on local sobre curvas con derivadas discontinuas Soluci on exacta de un problema lineal entero Programaci on no lineal entera mixta
Introducci on a GAMS
7 de marzo de 2009
5 / 24
Principales solvers 1
Solvers para problemas tipo NLP KNITRO Basado en 3 tipos de algoritmos de punto interior (directo, CG y active set) lo cual le permite afrontar casi cualquier tipo de problema no lineal. CONOPT Especialmente ideado para problemas de gran dimensi on y con restricciones que introducen una gran no linealidad. Basado en el algoritmo del gradiente reducido. Indicado cuando existe dicultad para hallar soluciones factibles. MINOS Minimiza funciones smooth sujetas a restricciones no lineales. Tiene su principal aplicaci on en problemas con pocos grados de libertad y con pocas restricciones no lineales.
Introducci on a GAMS
7 de marzo de 2009
6 / 24
Principales solvers 2
Solvers para problemas tipo MINLP DICOPT Se basa en la divisi on del problema general en varios subproblemas de tipo NLP y MILP. Aunque el algoritmo tiene en cuenta la existencia de no convexidades, no es posible asegurar siempre que se alcanza el optimo global. BARON Basado en el algoritmo branch and bound (BB). Permite obtener optimos globales bajo ciertas condiciones formales del problema. SBB Combina algoritmos de tipo BB con solvers que resuelvan problemas tipo NLP. Divide el problema global en varios subproblemas MINLP. Garantiza que se alcanza el m nimo global de la funci on objetivo solo si los subproblemas MINLP son convexos.
(Departamento de Ingenier a El ectrica) Introducci on a GAMS 7 de marzo de 2009 7 / 24
M as informaci on
www.gams.com Modelos ejemplo de diversas aplicaciones. Manuales. Gams mailing list. Formulaci on y resoluci on de modelos de programaci on matem atica en ingenier a y ciencia A. Conejo et al. UCCM McCarl GAMS user guide B. McCarl. Texas A&M University Se descarga gratuitamente desde www.gams.com
Introducci on a GAMS
7 de marzo de 2009
8 / 24
Contenidos
1
Introducci on Qu e es GAMS? C omo funciona? Tipos de problemas Principales solvers Lenguaje de modelado Notaci on algebraica Estructura de los modelos Partes de un modelo Conjuntos Entrada de datos Variables Ecuaciones Declaraci on del modelo Lectura de resultados
Introducci on a GAMS 7 de marzo de 2009 9 / 24
Notaci on algebraica
Min Z = s.a
i I
Ci xi - Indices (i , m, n) - Par ametros (Ci , Ain , Bim ) - Variables (xi ) - Funci on objetivo (Z ) - Restricciones (gn , hm )
gn (xi ) : i I Ain xi = 0 hm (xi ) : i I Bin xi 0 xi 0; i I I = {1, 2, ...i } N = {1, 2, ...n} M = {1, 2, ...m}
Introducci on a GAMS
7 de marzo de 2009
10 / 24
Sentencias que denen la estructura de datos, valores iniciales, variables, ecuaciones, denici on del tipo de problema, listado de resultados, opciones del compilador, ... Cada sentencia debe terminar con un punto y coma (;). GAMS no diferencia entre min usculas y may usculas, pueden utilizarse indistintamente. La creaci on de cualquier entidad conlleva dos pasos: declaraci on y denici on. * Linea de comentarios. $Ontext ... $Offtext. Un modelo extenso puede separarse en varios archivos: $include modelo.gms
Introducci on a GAMS
7 de marzo de 2009
11 / 24
Contenidos
1
Introducci on Qu e es GAMS? C omo funciona? Tipos de problemas Principales solvers Lenguaje de modelado Notaci on algebraica Estructura de los modelos Partes de un modelo Conjuntos Entrada de datos Variables Ecuaciones Declaraci on del modelo Lectura de resultados
Introducci on a GAMS 7 de marzo de 2009 12 / 24
Conjuntos
Se corresponden con los ndices empleados en la notaci on algebraica. set i nudos / n1,n2,n3,n4/; sets j nudos / n1*n4/; alias(i,j);
Introducci on a GAMS
7 de marzo de 2009
13 / 24
Entrada de datos
Existen tres formas de introducir los datos del problema: Scalar, Parameter y Table. Scalar pi angulo en radianes /3.1416/; Nombre del par ametro + descripci on (op) + valor.
Introducci on a GAMS
7 de marzo de 2009
14 / 24
Entrada de datos 2
Parameter pc(i) Consumos en los nudos (activa) / n1 0.00 n2 0.00 n3 0.00 n4 17.00/;
Introducci on a GAMS
7 de marzo de 2009
15 / 24
Entrada de datos 3
Table n1 n2 n3 n4 G(i,j) n1 29.503 -27.523 0.0 -1.980 Matriz de admitancias n2 -27.523 85.786 -19.802 -38.461 (Parte real) n3 0.0 -19.802 29.703 -9.901
G(n1,n3) = G(n1,n3)*1.3; Cada asignaci on tiene efecto justo despu es de la sentencia y sobrescribe los valores anteriores. En las asignaciones pueden emplearse m ultiples funciones matem aticas (sin, cos, ...).
(Departamento de Ingenier a El ectrica) Introducci on a GAMS 7 de marzo de 2009 16 / 24
Variables
Variable costegen Coste de generaci on pg(i) potencias generadas (activa) qg(i) potencias generadas (reactiva); Nombre de la variable + dominio (op) + descripci on (op).
Introducci on a GAMS
7 de marzo de 2009
17 / 24
Variables 2
Todas las variables son tipo free por defecto. La variable a optimizar debe ser un escalar de tipo free. Positive variable pg(i) ; Binary variable e(i) ;
Introducci on a GAMS
7 de marzo de 2009
18 / 24
Variables 3
Cada variable x tiene las siguientes propiedades: x.lo (lower) x.up (upper) x.l (level) x.fx (xed) x.m (marginal) l mite inferior l mite superior valor actual valor jo valor marginal o dual
Las propiedades x.l y x.m se van modicando a medida que se ejecuta el programa y contienen la soluci on del problema una vez alcanzado el optimo. x.fx, x.lo y x.up son propiedades que permanecen sin variaci on. x.l se emplea para indicar el valor inicial de la variable x.
(Departamento de Ingenier a El ectrica) Introducci on a GAMS 7 de marzo de 2009 19 / 24
Ecuaciones
Introducci on a GAMS
7 de marzo de 2009
20 / 24
Ecuaciones 2
coste.. balancep(i)..
balanceq(i)..
costegen =e= C1+C2*pg(n1)+ C3*pg(n1)**2; pg(i)-pc(i) =e= sum(j, v(i)*v(j)*(G(i,j)*cos(f(i)-f(j))+ B(i,j)*sin(f(i)-f(j)))); qg(i)-qc(i) =e= sum(j, v(i)*v(j)*(G(i,j)*sin(f(i)-f(j))B(i,j)*cos(f(i)-f(j))));
Introducci on a GAMS
7 de marzo de 2009
21 / 24
Ecuaciones 3
Los operadores relacionales m as usuales son: exp i =l= exp d, exp i =g= exp d, exp i =e= exp d, exp i menor o igual que exp d exp i mayor o igual que exp d exp i igual que exp d
No existe una ecuaci on expl citamente declarada como objetivo. Se optimiza una variable escalar, la funci on objetivo es la que contenga a esta. Existen multitud de funciones matem aticas predenidas que facilitan la denici on de ecuaciones y la transformaci on de datos.
Introducci on a GAMS
7 de marzo de 2009
22 / 24
Model mincoste /all/; Solve mincoste using nlp minimizing costegen; o bien, Model mincoste /coste,balanceq,balanceq/; Solve mincoste using nlp maximizing (-costegen);
Introducci on a GAMS
7 de marzo de 2009
23 / 24
Lectura de resultados
Una vez compilado y ejecutado el modelo (F9), los resultados se obtienen del chero .lst Parameter pg p,cost gen; pg p(i) = pg.l(i); cost gen = costegen.l; Option pg p:6, cost gen:6; Display pg p, cost gen;
Introducci on a GAMS
7 de marzo de 2009
24 / 24