SlideShare una empresa de Scribd logo
1 de 95
Descargar para leer sin conexión
Lenguajes de modelado algebraicoLenguajes de modelado algebraico
Andrés Ramos
Universidad Pontificia Comillas
http://www.iit.upcomillas.es/aramos/
Andres.Ramos@upcomillas.es
Alternativas desarrollo modelos optimización
• Lenguajes de programación de propósito general (C, C++, Java, Visual
Basic, FORTRAN 90)
– C (CPLEX de ILOG, Gurobi from Gurobi Optimization, Xpress-Optimizer
from FICO)
– C++ (ILOG Concert de IBM, LINDO API de LINDO Systems, OptiMax
2000 de Maximal Software, FLOPC++ de Universidade de Aveiro)
– Dominio público [GNU Linear Programming Toolkit GLPK
(www.gnu.org/software/glpk), Computational Infrastructure for Operations
Lenguajes de modelado algebraico. GAMS - 2
(www.gnu.org/software/glpk), Computational Infrastructure for Operations
Research COIN-OR (www.coin-or.org), LP solver SoPlex
(http://soplex.zib.de) and MIP framework SCIP (http://scip.zib.de)]
• Lenguajes o entornos de cálculo numérico o simbólico (hojas de cálculo,
Matlab, Mathematica)
• Lenguajes de modelado algebraico [GAMS, OPL Studio, AMPL,
AIMMS, XPRESS-MP, MPL, Zimpl (http://zimpl.zib.de) (el último de
dominio público)]
• En OR/MS Today (www.orms-today.com) una vez al año hay artículos de
resumen de los diferentes entornos de optimización y sus características
Optimizadores en hojas de cálculo
• Ventajas
– Fáciles de usar
– Integración total con la hoja de cálculo
– Familiaridad con el entorno que facilita la explicación del modelo y
de sus resultados
– Facilidad de presentación de resultados en gráficos
Lenguajes de modelado algebraico. GAMS - 3
• Inconvenientes
– No inducen una buena práctica de programación
– Presentan dificultades para verificación, validación, actualización y
documentación de los modelos
– No permiten modelar problemas complejos o de gran tamaño
Biblioteca de optimización en C, C++
• Ventajas
– Tiempo de solución es crítico
– Permiten el uso de algoritmos de optimización específicos
– Posibilidad de implantación del modelo en un entorno software o
hardware especial
Lenguajes de modelado algebraico. GAMS - 4
• Inconvenientes
– Mayor dificultad y consumo de recursos para el mantenimiento del
modelo
Ventajas lenguajes algebraicos (i)
• Lenguajes de alto nivel para formulación compacta de
modelos grandes y complejos
• Facilitan desarrollo de prototipos
• Mejorar productividad de modeladores
• Estructuran buenos hábitos de modelado
Lenguajes de modelado algebraico. GAMS - 5
• Separación entre interfaz, datos, modelo matemático y
optimizador
• Formulación independiente del tamaño
• Modelo independiente de optimizadores
Ventajas lenguajes algebraicos (ii)
• Facilitan reformulación continua
• Documentación simultánea al modelo
• Permiten construir grandes modelos “mantenibles” que se
pueden adaptar rápidamente a situaciones nuevas
• Permiten implantación de algoritmos avanzados
Lenguajes de modelado algebraico. GAMS - 6
• Implantación fácil de problemas NLP, MIP, MCP
• Arquitectura abierta con interfaces a otros sistemas
• Independencia de la plataforma y portabilidad entre
plataformas y sistemas operativos (MS Windows, Linux, Sun
Solaris, HP UX, Digital True64Unix, IBM AIX, SGI IRIX,
Mac OS X)
Desventajas lenguajes algebraicos
• No son adecuados para usos esporádicos con problemas de
pequeño tamaño
• No son adecuados para resolución directa problemas de
tamaño gigantesco (1.000.000 x 1.000.000)
Lenguajes de modelado algebraico. GAMS - 7
Tendencias futuras
• Interfaz visual en formulación
• Interfaz más estrecha con hojas de cálculo y bases de datos
• Interfaz con funciones externas escritas en lenguajes de
propósito general
• Resolución directa de problemas optimización estocástica
(OSLSE, DECIS)
Lenguajes de modelado algebraico. GAMS - 8
(OSLSE, DECIS)
• Selección automática de método de optimización y del
optimizador
Aplicaciones reales
• En IIT se pasó de utilizar FORTRAN a utilizar GAMS
exclusivamente
• Problemas de hasta 500000 restricciones, 500000 variables y
2000000 elementos no nulos resueltos con facilidad en un PC
con 1 GB de memoria RAM
• Incorporación de algoritmos avanzados (descomposición
Lenguajes de modelado algebraico. GAMS - 9
• Incorporación de algoritmos avanzados (descomposición
anidada estocástica de Benders) en modelos
Modelo de transporte
Sean i fábricas de envasado y j mercados de consumo. Cada
planta de producción tiene una capacidad máxima de ai cajas y
cada mercado demanda una cantidad bj de cajas (se supone que
la capacidad de producción total de las fábricas es superior a la
demanda total para que el problema sea factible). El coste de
transporte entre cada fábrica i y cada mercado j por cada caja
es c . Se desea satisfacer la demanda de cada mercado al
Lenguajes de modelado algebraico. GAMS - 10
es cij. Se desea satisfacer la demanda de cada mercado al
mínimo coste. Las variables de decisión del problema serán las
cajas transportadas entre cada fábrica i y cada mercado j, xij.
Formulación matemática
• Función objetivo
• Límite de producción de cada
fábrica i
min ij ij
i j
c x∑∑
ij i
j
x a i≤ ∀∑
Lenguajes de modelado algebraico. GAMS - 11
• Consumo de cada mercado j
• Cantidad a enviar desde cada
fábrica i a cada mercado j
ij j
i
x b j≥ ∀∑
0ijx i j≥ ∀ →
Modelo de transporte en GAMS (i)
SETSSETSSETSSETS
I fábricas de envasado / VIGO, ALGECIRAS /
J mercados de consumo / MADRID, BARCELONA, VALENCIA /
PARAMETERSPARAMETERSPARAMETERSPARAMETERS
A(i) capacidad de producción de la fábrica i [cajas]
/ VIGO 350
ALGECIRAS 700 /
B(j) demanda del mercado j [cajas]
Lenguajes de modelado algebraico. GAMS - 12
B(j) demanda del mercado j [cajas]
/ MADRID 400
BARCELONA 450
VALENCIA 150 /
TABLETABLETABLETABLE C(i,j) coste transporte entre i y j [€ por caja]
MADRID BARCELONA VALENCIA
VIGO 0.06 0.12 0.09
ALGECIRAS 0.05 0.15 0.11
Modelo de transporte en GAMS (ii)
VARIABLESVARIABLESVARIABLESVARIABLES
X(i,j) cajas transportadas entre fábrica i y mercado j [cajas]
CT coste de transporte [€]
POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLEVARIABLEVARIABLEVARIABLE X
EQUATIONSEQUATIONSEQUATIONSEQUATIONS
COSTE coste total de transporte [€]
CAPACIDAD(i) capacidad máxima de cada fábrica i [cajas]
DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ;
Lenguajes de modelado algebraico. GAMS - 13
DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ;
COSTE .. CT =E= SUMSUMSUMSUM((i,j), C(i,j) * X(i,j)) ;
CAPACIDAD(i) .. SUMSUMSUMSUM(j, X(i,j)) =L= A(i) ;
DEMANDA(j) .. SUMSUMSUMSUM(i, X(i,j)) =G= B(j) ;
MODELMODELMODELMODEL TRANSPORTE / COSTE, CAPACIDAD, DEMANDA /
SOLVESOLVESOLVESOLVE TRANSPORTE USING LP MINIMIZING CT
Biblioteca de problemas (+ 250 modelos)
• Gestión de la producción
• Economía agraria
• Ingeniería química
• Ingeniería de montes
• Comercio internacional
• Desarrollo económico
Lenguajes de modelado algebraico. GAMS - 14
• Desarrollo económico
• Micro y macroeconomía
• Modelos de equilibrio generalizado
• Economía de la energía
• Finanzas
• Estadística, econometría
• Investigación operativa
GAMS (General Algebraic Modeling System)
• Creado en 1987. Más de 10000 usuarios en 100 países
• Entorno de desarrollo GAMSIDE
• Manual de usuario Help > GAMS Users Guide
Lenguajes de modelado algebraico. GAMS - 15
• Manuales de optimizadores Help > docs > solvers
• Modelo: nombre_fichero.gms
• Resultados: nombre_fichero.lst
• Registro del proceso: nombre_fichero.log
Depuración de modelos
• Se hace viendo las restricciones realmente formuladas por el
lenguaje (LimRow=300)
• Los errores se depuran de uno en uno ya que suele haber
muchos concatenados entre sí
• Se pincha en el primer error del fichero nombre_fichero.log
y te redirige a la posición del error
Lenguajes de modelado algebraico. GAMS - 16
y te redirige a la posición del error
• El código del error explica su causa
Formato general de las instrucciones GAMS
• Líneas con * en primera columna son de comentario
• No se distingue entre mayúsculas y minúsculas
• El paréntesis (), el corchete [] o la llave {} se pueden utilizar
para separar niveles entre sí con igual funcionamiento
• Palabras reservadas del lenguaje aparecen resaltadas
Lenguajes de modelado algebraico. GAMS - 17
• Instrucciones acaban en un ; (que puede eliminarse cuando la
siguiente palabra sea reservada)
Estructura general de un modelo
• Declaración de conjuntos. Asignación de valores.
• Inclusión y manipulación de datos de entrada y parámetros
auxiliares.
• Variables
• Ecuaciones
Lenguajes de modelado algebraico. GAMS - 18
• Modelo
• Acotamiento e inicialización de variables
• Resolución del problema de optimización
• Presentación de resultados
Bloques de un modelo en GAMS
• Obligatorios
VARIABLES
EQUATIONS
MODEL
SOLVE
Lenguajes de modelado algebraico. GAMS - 19
• Opcionales
SETS: (ALIAS) ALIAS (i,j) i y j se pueden utilizar
indistintamente
DATA: SCALARS, PARAMETERS, TABLE
• Los valores de INF, EPS son válidos como datos
VARIABLES
• Siempre debe haber una variable libre para representar el valor de la función
objetivo. Los valores de las variables son guardados siempre.
• Tipos:
FREE (por omisión) -∞ a + ∞
POSITIVE 0 a + ∞
NEGATIVE - ∞ a 0
BINARY 0 ó 1
Lenguajes de modelado algebraico. GAMS - 20
BINARY 0 ó 1
INTEGER 0 a 100 (se cambia poniendo cota superior diferente)
• Sufijos
– nombre_var.LO cota inferior
– nombre_var.UP cota superior
– nombre_var.L valor inicial antes y valor óptimo después
– nombre_var.M valor marginal (coste reducido)
– nombre_var.FX fija una variable a un valor
EQUATIONS
• Bloques:
– Declaración con comentario explicativo
– Expresiones matemáticas
• Tipos: =E= =, =L= ≤, =G= ≥
Lenguajes de modelado algebraico. GAMS - 21
• Sufijos:
– nombre_ec.LO cota inferior
– nombre_ec.UP cota superior
– nombre_ec.L valor inicial antes y valor óptimo después
– nombre_ec.M valor marginal (variable dual o precio sombra o precio
justo)
MODEL y SOLVE
• MODEL nombre_modelo / nombre_ecuaciones /
MODEL nombre_modelo / ALL /
• SOLVE nombre_modelo USING tipo_problema
MINIMIZING (MAXIMIZING) variable_f.o.
Lenguajes de modelado algebraico. GAMS - 22
Tipos de problemas y optimizadores
• LP, RMIP (programación lineal): BDMLP, CLP
• MILP (programación lineal entera mixta): CPLEX, CBC, Gurobi,
XPRESS
• NLP (programación no lineal): CONOPT, MINOS, SNOPT,
PATHNLP, LGO, MOSEK
• DNLP (programación no lineal con derivadas no continuas): CONOPT,
MINOS, SNOPT, BARON, LGO, OQNLP, MOSEK
• MINLP (programación no lineal entera mixta): DICOPT, SBB,
Lenguajes de modelado algebraico. GAMS - 23
• MINLP (programación no lineal entera mixta): DICOPT, SBB,
BARON, OQNLP
• SP (programación estocástica): DECIS, OSLSE
• MCP (problema mixto complementario): MILES, PATH, NLPEC
• MPEC (programación matemática con restricciones de equilibrio):
• CNS (sistemas no lineales restringidos): CONOPT, PATH
• MPSGE (análisis de equilibrio generalizado)
• GAMS Solvers (http://www.gams.com/solvers/index.htm)
Operador $ en asignaciones, sumatorios,
restricciones
• Establece una condición
$(VALOR > 0) $(NUMERO1 <> NUMERO2)
• A la izquierda de una asignación: Realiza la asignación
SÓLO cuando se cumple la condición
IF (condición,
REALIZA LA ASIGNACIÓN
) ;
Lenguajes de modelado algebraico. GAMS - 24
) ;
• A la derecha de una asignación: Realiza SIEMPRE la
asignación tomando ésta el valor 0 si no se cumple la
condición
IF (condición,
REALIZA LA ASIGNACIÓN
ELSE
ASIGNA VALOR 0
) ;
Operaciones relacionales
• LT <, GT >, EQ =, NE <>, LE <=, GE >=
• NOT, AND, OR, XOR
• DIAG(elemento_conjunto,elemento_conjunto)={1,0}
• SAMEAS(elemento_conjunto,elemento_conjunto)={V,F}
Lenguajes de modelado algebraico. GAMS - 25
• SAMEAS(elemento_conjunto,elemento_conjunto)={V,F}
Funciones
• Elementales: +, -, *, /, ** ó POWER(x,n)
• ORD, CARD ordinal y cardinal de un conjunto
• Con índices: SUM, PROD, SMAX, SMIN
Lenguajes de modelado algebraico. GAMS - 26
• Otras funciones: ABS, ARCTAN, SIN, COS, CEIL,
FLOOR, EXP, LOG, LOG10, MAX, MIN, MOD,
ROUND, SIGN, SQR, SQRT, TRUNC, NORMAL,
UNIFORM
• Funciones de tiempo: GYEAR, GMONTH, GDAY,
GHOUR, GMINUTE, GSECOND, GDOW, GLEAP,
JDATE, JNOW, JSTART, JTIME
Conjuntos dinámicos
• Subconjuntos de conjuntos estáticos cuyo contenido puede cambiar
mediante asignaciones
SETS M meses / 1 * 12 /
MP(m) meses pares ;
display m ;
* Selección de subconjunto mediante una condición
MP(m) $[MOD(ord(m),2) = 0] = YES ;
display mp ;
Lenguajes de modelado algebraico. GAMS - 27
display mp ;
* Selección de un elemento del conjunto
MP('3') = yes ;
display mp ;
MP(m) $(ord(m) = 3) = NO ;
display mp ;
• Elementos fundamentales en el desarrollo de modelos en GAMS
• Deben utilizarse sistemáticamente para evitar formular ecuaciones o
variables o asignaciones innecesarias.
Operaciones con conjuntos
• Intersección
D(a) = B(a) * C(a)
• Unión
D(a) = B(a) + C(a)
• Complementario
D(a) = NOT C(a)
Lenguajes de modelado algebraico. GAMS - 28
D(a) = NOT C(a)
• Diferencia
D(a) = B(a) - C(a)
Modelo de transbordo
• Sea un conjunto de nodos conectados mediante arcos. Un
nodo no tiene que estar conectado con todos los demás
nodos. Un nodo puede ser de generación, de demanda o de
transbordo según produzca, consuma o trasvase el producto.
La oferta total es mayor o igual que la demanda total. Se
supone conocida la capacidad máxima de oferta y la
Lenguajes de modelado algebraico. GAMS - 29
supone conocida la capacidad máxima de oferta y la
demanda de cada nodo. También se conoce el coste unitario
de transporte de producto para cada arco. Se trata de
minimizar el coste de transporte satisfaciendo la demanda.
• Extensión del problema anterior añadiendo arcos no
dirigidos.
Desplazamientos de índices. Adelantos y retrasos
• t=E,F,M,A,MY,J,JL,AG,S,O,N,D
RVA(t) + APOR(t) - GASTO(t) =E= RVA(t+1)
• Valores de vectores fuera del dominio son 0
RVA(’D’) + APOR(’D’) - GASTO(’D’) =E= 0
• Recorrido circular de un índice
Lenguajes de modelado algebraico. GAMS - 30
• Recorrido circular de un índice
t=1,...,12
RVA(t) + APOR(t) - GASTO(t) = RVA(t++1)
RVA(’12’) + APOR(’12’) - GASTO(’12’) = RVA(’1’)
• Recorrido en orden inverso del índice de PP aun cuando i se
recorre en sentido creciente
PP(t+[card(t)-2*ord(t)+1])
Contratación de vendedores
La sección de venta de billetes de una estación de metro necesita las
siguientes personas durante las 24 horas del día
Intervalo Vendedores
00 – 06 2
06 – 10 8
10 – 12 4
12 – 16 3
Lenguajes de modelado algebraico. GAMS - 31
16 – 18 6
18 – 22 5
22 – 24 3
Cada vendedor trabaja ocho horas en dos bloques de cuatro con una hora
de descanso al cabo del primer bloque. El turno puede empezar en
cualquier hora del día. Determinar el número mínimo de vendedores a
contratar.
Ejercicios de adelantos y retrasos
• Distancias entre cruces
– Suponer una ciudad completamente reticulada con una longitud
unitaria de cada lado de la retícula. Calcular analíticamente la
distancia entre dos cruces cualesquiera de la ciudad.
• Máximo número de caballos (reinas, torres)
– Determinar mediante un problema de optimización el máximo
Lenguajes de modelado algebraico. GAMS - 32
– Determinar mediante un problema de optimización el máximo
número de caballos (reinas, torres) que pueden estar en un tablero de
ajedrez sin comerse entre sí
Repeticiones
• LOOP (conjunto,
) ;
• WHILE (condición,
) ;
• REPEAT
UNTIL condición;
Lenguajes de modelado algebraico. GAMS - 33
UNTIL condición;
• IF (condición,
ELSE
) ;
• FOR (i=inicio TO/DOWNTO final BY incremento,
) ;
Entrada/salida de datos
• Entrada de datos por fichero
$include nombre_del_fichero
• DISPLAY nombre_identificador (muestra su valor o contenido)
• Salida de datos por fichero
Lenguajes de modelado algebraico. GAMS - 34
• Salida de datos por fichero
file nombre_interno / nombre_externo /
put nombre_interno
put nombre_identificador
putclose nombre_interno
• Existen opciones específicas de control de formato de la
salida
TABLE (i)
• Continuación de tablas con múltiples columnas
SETS i / MAD, BCN /
j / A1, A2, A3, A4, A5, A6 /
TABLE CAPACIDAD(i,j) capacidad máxima
A1 A2 A3
Lenguajes de modelado algebraico. GAMS - 35
A1 A2 A3
MAD 1 0 3
BCN 2 1 2
+
A4 A5 A6
MAD 2 1 3
BCN 3 2 2
TABLE (ii)
• Tablas con más de dos dimensiones
SETS i / MAD, BCN /
j / A1, A2, A3, A4, A5, A6 /
K / A, B, C /
TABLE CAPACIDAD(i,j,k) capacidad máxima
A B C
MAD.A1 1 0 3
Lenguajes de modelado algebraico. GAMS - 36
MAD.A1 1 0 3
MAD.A2 2 1 2
TABLE CAPACIDAD(i,j,k) capacidad máxima
A1.A A1.B A1.C A2.A A2.B
MAD 1 0 3 6 8
BCN 2 1 2 2 4
Estructura general de un modelo “comercial”
• Declaración de conjuntos y parámetros. Asignación de
valores por omisión.
• Variables
• Ecuaciones
• Modelo
Lenguajes de modelado algebraico. GAMS - 37
• Inclusión y manipulación de datos de entrada. Parámetros
auxiliares
• Acotamiento e inicialización de variables
• Resolución del problema de optimización
• Presentación de resultados
Modelo de transporte en GAMS (i)
SETSSETSSETSSETS
I fábricas de envasado
J mercados de consumo
PARAMETERSPARAMETERSPARAMETERSPARAMETERS
A(i) capacidad de producción de la fábrica i [cajas]
B(j) demanda del mercado j [cajas]
C(i,j) coste transporte entre i y j [€ por caja]
VARIABLESVARIABLESVARIABLESVARIABLES
X(i,j) cajas transportadas entre fábrica i y mercado j [cajas]
Lenguajes de modelado algebraico. GAMS - 38
X(i,j) cajas transportadas entre fábrica i y mercado j [cajas]
CT coste de transporte [€] ;
POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLEVARIABLEVARIABLEVARIABLE X ;
Modelo de transporte en GAMS (ii)
EQUATIONSEQUATIONSEQUATIONSEQUATIONS
COSTE coste total de transporte [€]
CAPACIDAD(i) capacidad máxima de cada fábrica i [cajas]
DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ;
COSTE .. CT =E= SUMSUMSUMSUM((i,j), C(i,j) * X(i,j)) ;
CAPACIDAD(i) .. SUMSUMSUMSUM(j, X(i,j)) =L= A(i) ;
DEMANDA(j) .. SUMSUMSUMSUM(i, X(i,j)) =G= B(j) ;
Lenguajes de modelado algebraico. GAMS - 39
MODELMODELMODELMODEL TRANSPORTE / COSTE, CAPACIDAD, DEMANDA / ;
$include datos.gms$include datos.gms$include datos.gms$include datos.gms
SOLVESOLVESOLVESOLVE TRANSPORTE USING LP MINIMIZING CT ;
Modelo de transporte en GAMS (iii)
* introducción de datos de entrada
SETSSETSSETSSETS
I fábricas de envasado / VIGO, ALGECIRAS /
J mercados de consumo / MADRID, BARCELONA, VALENCIA / ;
PARAMETERSPARAMETERSPARAMETERSPARAMETERS
A(i) capacidad de producción de la fábrica i [cajas]
/ VIGO 350
Lenguajes de modelado algebraico. GAMS - 40
/ VIGO 350
ALGECIRAS 700 /
B(j) demanda del mercado j [cajas]
/ MADRID 400
BARCELONA 450
VALENCIA 150 / ;
TABLETABLETABLETABLE C(i,j) coste transporte entre i y j [€ por caja]
MADRID BARCELONA VALENCIA
VIGO 0.06 0.12 0.09
ALGECIRAS 0.05 0.15 0.11 ;
Modularidad y ocultación de código
• Separar formulación de un problema de sus datos. Proteger la
confidencialidad de la formulación
• Versión RUNTIME de un modelo
SAVE y RESTART
Lenguajes de modelado algebraico. GAMS - 41
• Secure Work Files
Permiten controlar el acceso a símbolos en particular y crear ficheros
de rearranque (restart) seguros asociados a licencias GAMS
particulares
• Funciones dentro de un código
Cualificadores de ejecución
• SUPPRESS 1
suprime el eco del listado del código
• PW 94 PS 999999
especifica la anchura y longitud de la página
• CHARSET 1
Lenguajes de modelado algebraico. GAMS - 42
admite caracteres internacionales en las definiciones
Directivas $, opciones OPTIONS, cualificadores de
modelo (i)
• $nombre_directiva
• OPTION nombre_opción
• nombre_modelo.cualificador
• OPTION LIMROW=número_filas_vistas
• OPTION LIMCOL=número_columnas_vistas
Lenguajes de modelado algebraico. GAMS - 43
• OPTION LIMCOL=número_columnas_vistas
• OPTION SOLPRINT=ON(OFF) permite o suprime la
información sobre la solución óptima
• nombre_modelo.SOLPRINT= 0,1,2
• OPTION DECIMALS=número_decimales en DISPLAY
• OPTION ITERLIM=número_máx_iteraciones
• OPTION RESLIM=tiempo_ejecución_máx
Directivas $, opciones OPTIONS, cualificadores de
modelo (ii)
• OPTION SOLVEOPT=REPLACE reemplaza los valores de
la solución
• $CLEAR=nombre_parámetro
• nombre_modelo.SOLSLACK presenta las variables de
holgura de las restricciones
Lenguajes de modelado algebraico. GAMS - 44
holgura de las restricciones
• nombre_modelo.HOLDFIXED elimina del problema las
variables con valores fijos
• nombre_modelo. MODELSTAT código de control devuelto
por el optimizador
• OPTION SEED=número permite fijar la semilla del
generador de números aleatorios
Interfaces
• GAMS Convert
– Transforma un modelo GAMS en un formato utilizable por otros
sistemas de modelado u optimizadores
• GDX (GAMS Data Exchange)
– Permite el intercambio de datos con una hoja de cálculo o base de
Lenguajes de modelado algebraico. GAMS - 45
– Permite el intercambio de datos con una hoja de cálculo o base de
datos
• Matlab
Estilo de programación
Andrés Ramos
Uso avanzado de GAMS
• minimización del tiempo de ejecución y/o de la memoria
• importante cuando se trata de problemas de muy gran tamaño
(> 100.000 x 100.000) o resolución iterativa de numerosos
problemas (más de 100)
• aparece al usar simulación de Monte Carlo o técnicas de
descomposición
Lenguajes de modelado algebraico. GAMS - 47
descomposición
Tiempo de ejecución de modelos escritos en GAMS
• tiempo de creación
– formulación del problema específico
• tiempo de interfaz
– comunicación de entrada/salida entre lenguaje GAMS y optimizador
• tiempo de optimización
– resolución del problema por el optimizador
Lenguajes de modelado algebraico. GAMS - 48
– resolución del problema por el optimizador
Análisis de consumos de tiempo/memoria
• dependiente del tamaño y estructura de la matriz de
restricciones
• número de resoluciones (iteraciones)
• variación entre soluciones sucesivas de los parámetros
estocásticos
Lenguajes de modelado algebraico. GAMS - 49
Direcciones de mejora
• informáticas (asociadas al lenguaje GAMS)
• matemáticas (reformulación del problema)
• afectan conjuntamente al tiempo de ejecución
• criterios dependientes del problema, indican direcciones a
Lenguajes de modelado algebraico. GAMS - 50
explorar
Control del tiempo y del espacio
• OPTION PROFILE, PROFILETOL
• Uso de disco virtual en memoria RAM (RAMDRIVE)
• Cualificador STEPSUM da tiempo de reloj
• ABORT condición
• La supresión de la información de salida (lista y tabla de referencias entre
los símbolos del código) en el nombre_fichero.lst se consigue con las
siguientes opciones.
Lenguajes de modelado algebraico. GAMS - 51
siguientes opciones.
$OFFSYMLIST, OFFSYMXREF, OFFUELLIST, OFFUELXREF
OPTION LIMROW=0, LIMCOL=0, SOLPRINT=OFF, SYSOUT=OFF
nombre_modelo.SOLPRINT=2 ;
y escribiendo en la invocación de GAMS
gams nombre_modelo.gms suppress 1
Además, también se puede suprimir la información en pantalla que produce el
optimizador con los consiguientes parámetros (por ejemplo, para CPLEX
simdisplay 0 bardisplay 0 mipdisplay 0).
gams nombre_modelo.gms ll 0 lo 0
Orden de índices en instrucciones de asignación o
en restricciones
• orden de los índices consistente en todos los elementos del
modelo
PP(i,j,k) = QQ(k,j,i) * 1.1 ; NO
PP(i,j,k) = QQ(i,j,k) * 1.1 ; SI
• orden de barrido en instrucciones reiterativas coherente
Lenguajes de modelado algebraico. GAMS - 52
• orden de barrido en instrucciones reiterativas coherente
• hacer uso extensivo de condiciones de exclusión mediante el
uso de conjuntos dinámicos
Direcciones a explorar
1. selección de optimizador y algoritmo de optimización y uso
de últimas versiones
2. detección de infactibilidades (parámetro iis de CPLEX)
3. análisis de sensibilidad (disponible en CPLEX y OSL)
4. ajuste de parámetros del optimizador
5. uso de bases previas (parámetro )
Lenguajes de modelado algebraico. GAMS - 53
5. uso de bases previas (parámetro BRATIO=0)
6. mejoras en el barrido de las numerosas optimizaciones
7. resolución de problemas MIPº
Comparación entre optimizadores y método de
optimización
Tiempo p.u. Iter Tiempo p.u. Iter
CPLEX 6.0
Punto interior 41.8 1.0 32 237.3 1.0 35
Simplex dual 99.8 1.4 12692 1812.6 6.6 48695
Simplex primal 156.2 3.7 21622 1217.5 5.1 50280
MINOS 5.3
Simplex primal 1863.6 44.6 23927 --- --- ---
OSL 2.1
Lenguajes de modelado algebraico. GAMS - 54
OSL 2.1
Punto interior 163.9 3.9 10798 774.4 3.3 19524
Simplex primal 530.9 12.7 12685 7426.6 31.3 62019
Tiempo para un ordenador Pentium II con 128 MB a 233 MHz
Selección de optimizador y método de optimización
en LP
•No existe una regla clara
•No hay regla para determinar qué algoritmo simplex es más
eficiente. Muy sensible a la estructura del problema
•Probar y observar
Método simplex Hasta 10.000 x 10.000
Lenguajes de modelado algebraico. GAMS - 55
Método simplex Análisis de sensibilidad, problemas MIP
Método de punto interior Desde 10.000 x 10.000
hasta 100.000 x 100.000
Métodos de descomposición Más de 100.000 x 100.000
Uso de parámetros del optimizador
• nombre_modelo.OPTFILE= 1,2,...
Parámetros en ficheros cplex.opt, cplex.op2, ...
• OPTION SYSOUT=ON(OFF) escribe fichero de opciones
del optimizador
Lenguajes de modelado algebraico. GAMS - 56
Detección de infactibilidades
• Parámetros de CPLEX
– Anular el preproceso
preind 0
– Detección del conjunto mínimo de infactibilidades
iis yes
Lenguajes de modelado algebraico. GAMS - 57
Análisis de sensibilidad
• Parámetros de CPLEX
– En coeficientes de función objetivo
objrng all
– En cotas de restricciones
rhsrng all
Lenguajes de modelado algebraico. GAMS - 58
Resolución de problemas MIP
• OPTCA=criterio_abs_optimalidad en MIP
• OPTCR=criterio_rel_optimalidad en MIP (poner siempre =0)
• nombre_modelo.PRIOROPT = 1
• nombre_var.PRIOR = número
• Las variables más importantes deben ser las primeras en
Lenguajes de modelado algebraico. GAMS - 59
ramificar (mayor prioridad, i.e., número más bajo)
• SOS1 (como mucho una variable es diferente de 0 en un
conjunto), SOS2 (como mucho dos variables son diferentes
de 0 en un conjunto y deben ser adyacentes)
Mejoras en la formulación
• reformulación manual del problema (especialmente indicado
en problemas MIP)
• no crear variables ni ecuaciones superfluas
• reducción de número de restricciones y/o elementos
• escalado alrededor de 1 (especialmente indicado en
problemas NLP)
Lenguajes de modelado algebraico. GAMS - 60
problemas NLP)
• partir de un punto inicial (especialmente indicado en
problemas NLP)
• acotamiento de variables
Cálculo analítico del número de restricciones y
variables
• Permite conocer a priori tamaños de problemas en función de
parámetros del sistema
• Indica dónde se puede mejorar el modelado sin gran
incremento de tamaño
• Permite comprobar la formulación matemática del problema
Lenguajes de modelado algebraico. GAMS - 61
RESTRICCIONES 2 (2 1) (3 1) ( )T P B C H SP T NSP D KL T+ + + + + + + + +
VARIABLES ( 2 ) ( 1) (2 3 2 1)C H P C H T SP T NSP B D H KL T− − + + + + − + + + + + −
• La reducción conseguida por el preproceso nos indica
aproximadamente las posibilidades de mejora manual
• Reducción de los tamaños de dos problemas con la opción de
preproceso de CPLEX 6.0
R V E R V E
Sin preproceso 19047 27262 81215 48971 63935 187059
Preproceso
Lenguajes de modelado algebraico. GAMS - 62
Con preproceso 15744 21982 51079 40794 56133 135361
Decremento 17,3% 19,4% 37,1% 16,7% 12,2% 27,6%
• Comparación entre preprocesos
R V E R V E
Sin preproc 19047 27847 82295 49715 64679 189477
Preproc CPLEX -14,8% -19,3% -36,2% -17,9% -13,2% -28,6%
Preproc OSL -4,9% 0,0% -2,4% -15,6% 0,0% -9,1%
Estructura de la matriz de restricciones y escalado
• Parámetros de GAMSCHK
advisory identifica posibles variables y ecuaciones no acotadas o infactibles
analysis analiza la estructura de la matriz de restricciones
blockpic dibuja la matriz de restricciones por bloques
blocklist dibuja el tamaño y características de cada bloque
• Parámetros de CPLEX
– Calidad numérica de la solución
Lenguajes de modelado algebraico. GAMS - 63
– Calidad numérica de la solución
quality yes
– Escalado
scaind 0
• Opciones de escalado en GAMS
– nombre_modelo.SCALEOPT = 1 ;
– nombre_var.SCALE=número ;
– nombre_ec.SCALE=número ;
Estructura de la matriz de restricciones
• Ciertos algoritmos aprovechan la estructura del problema,
i.e., técnicas de descomposición
Lenguajes de modelado algebraico. GAMS - 64
Récords actuales en LP
• problema lineal estocástico de 1.100.000 x 1.600.000 x
4.400.000 resuelto en 20 min
• problema lineal de 150.000 x 227.000 x 566.000 resuelto en
5 min o problema lineal de 216.000 x 749.000 x 2.137.000
resuelto en 15 min
• problema de 20.000 x 25.000 x 80.000 resuelto numerosas
Lenguajes de modelado algebraico. GAMS - 65
• problema de 20.000 x 25.000 x 80.000 resuelto numerosas
veces en un tiempo medio de menos de 1 s
• problema de 50.000 x 65.000 x 200.000 resuelto numerosas
veces en un tiempo medio de 2 s
Tiempos para procesador Pentium III a 1.1 GHz
Modelado en GAMS
Ejemplo de sistemas de energía eléctricaEjemplo de sistemas de energía eléctrica
Flujo óptimo de cargas en continua
DC-OPF
Andrés Ramos
Álvaro Baíllo
Índice
• El problema del flujo de cargas.
• El problema del flujo de cargas óptimo (OPF).
• Formulación en lenguaje GAMS.
• Resolución del problema.
• Análisis de resultados.
Lenguajes de modelado algebraico. GAMS - 67
El problema del flujo de cargas (I)1
• Un sistema eléctrico interconectado está constituido por:
– Una red de transporte de energía, formada por:
• Ramas: Líneas y transformadores.
• Nudos: Barras de subestaciones (buses).
– Centrales de generación de energía, situadas en ciertos nudos
(subestaciones de generación).
– Centros de consumo de energía, situados en otros nudos
Lenguajes de modelado algebraico. GAMS - 68
– Centros de consumo de energía, situados en otros nudos
(subestaciones de distribución).
• Cuestión fundamental: La energía eléctrica debe producirse
en el mismo instante en que es consumida (no es almacenable
de forma económica a gran escala).
1Elgerd, O.E. “Electric Energy Systems Theory: An Introduction.” Mc-Graw Hill Series in Electrical Engineering, 1983, pp.
219-273
El problema del flujo de cargas (II)
• Ejemplo de red de transporte2
Lenguajes de modelado algebraico. GAMS - 69
2Red Eléctrica de España. Operación del Sistema Eléctrico. Informe 1999. Disponible en www.ree.es
El problema del flujo de cargas (III)
• Situación de las centrales de generación2
Lenguajes de modelado algebraico. GAMS - 70
2Red Eléctrica de España. Operación del Sistema Eléctrico. Informe 1999. Disponible en www.ree.es
El problema del flujo de cargas (IV)
• Entre esos los centros de generación y los de consumo, la
energía fluye por las líneas y centros de transformación de
acuerdo con las leyes de Kirchoff.
• Es necesario vigilar esos flujos de potencia en tiempo real:
– Los elementos de la red tienen unos límites de funcionamiento que no
deben ser rebasados:
Lenguajes de modelado algebraico. GAMS - 71
• Límites térmicos de las líneas.
• Límites de tensiones de los nudos.
– El sistema de transporte de estudio puede estar interconectado con
otros y existir un contrato de intercambio de potencia que hay que
mantener (e.g. España con Francia o con Marruecos).
– Un adecuado control del flujo de potencias permite evitar que el fallo
de algún elemento tenga consecuencias desastrosas.
El problema del flujo de cargas (V)
• El análisis del flujo de cargas también se usa en
planificación:
– La empresa operadora de la red puede:
• Planificar el mantenimiento de la red de transporte.
• Planificar la expansión del sistema de transporte.
– Las empresas de generación pueden:
• Decidir el emplazamiento de nuevas instalaciones de generación
Lenguajes de modelado algebraico. GAMS - 72
• Decidir el emplazamiento de nuevas instalaciones de generación
(influyen otros factores como el fácil acceso al suministro de
combustible).
• La configuración de la red de transporte provoca diferencias
en el precio de la energía eléctrica entre los distintos nudos
de la red debido a las pérdidas o las congestiones.
El problema del flujo de cargas (VI)
• Ecuaciones del flujo de cargas:
Rij+jXiji jIij
Viejθi Viejθj
( ) ( )
*
cos sin cos sin
j i
ijij iS V e I
V j V j
θ
θ θ θ θ
= =
− − −
Lenguajes de modelado algebraico. GAMS - 73
• Operando se llega a:
( )
( ) ( )cos sin cos sin
cos sin
i i i j j j
i i i
ij ij
V j V j
V j
R jX
θ θ θ θ
θ θ
− − −
= +
−
( ) ( )( )( )2
2 2
1
sin cosij ij i j i j ij i i j i j
ij ij
P X VV R V VV
R X
θ θ θ θ= − + − −
+
( )( ) ( )( )2
2 2
1
cos sinij ij i i j i j ij i j i j
ij ij
Q X V VV R VV
R X
θ θ θ θ= − − − −
+
El problema del flujo de cargas (VII)
• Las pérdidas en la línea vienen dadas por la suma de la
potencia que sale de i hacia j y la potencia que sale de j hacia
i:
( )( )2 2
2 2
2 cosij
ij ji i i i j i j
ij ij
R
P P V V VV
R X
θ θ+ = + − −
+
Lenguajes de modelado algebraico. GAMS - 74
• El flujo de cargas consiste en un sistema de ecuaciones no
lineal.
• La resolución del problema del flujo de cargas se lleva a
cabo mediante sofisticadas herramientas informáticas (e.g.
PSS/E).
El problema del flujo de cargas (VII)
• Variables incontroladas: escapan al control de la empresa
operadora de red:
– Potencias activa y reactiva en los nudos de consumo.
• Variables de control: pueden ser controladas:
– Potencias activa y reactiva en los nudos de generación
• Variables de estado: describen el sistema:
Lenguajes de modelado algebraico. GAMS - 75
• Variables de estado: describen el sistema:
– Módulos y argumentos de las tensiones de nudo.
• Cuatro tipos de nudo: |V| θ P Q
– Nudo de generación: * *
– Nudo de consumo: * *
– Nudo de referencia: * * (*)
– Nudo balance: *
*: Conocido
El problema del flujo de cargas (VIII)
• Simplificaciones (flujo de cargas DC):
– Vi = Vj = V
– Xij >> Rij
–
( )
( )
cos 1
sin
i j
i j
i j i j
θ θ
θ θ
θ θ θ θ
 −
⇒ 
− −
≃
≃
≃
Lenguajes de modelado algebraico. GAMS - 76
• Flujo de activa:
• Pérdidas:
( )2
i j i j
ij B
ij ij
V
P S
X x
θ θ θ θ− −
= =
( )( )
( )( )
2
2 2
2 2
2
1 cos
2
1 cos
ij
ij ji i j
ij ij
ij
B i j
ij ij
R
P P V
R X
r
S
r x
θ θ
θ θ
+ = − −
+
= − −
+
El problema del flujo de cargas óptimo (I)
• El problema del flujo de cargas considera como dato la
potencia activa producida en los nudos de generación.
• Sin embargo, en la planificación de la generación para el
corto plazo, puede ser interesante decidir la producción de
cada generador teniendo en cuenta:
– Costes variables de producción de los generadores.
Lenguajes de modelado algebraico. GAMS - 77
– Costes variables de producción de los generadores.
– Límites físicos de los elementos de la red de transporte.
– Pérdidas.
• El problema de decidir la explotación de la generación a
corto plazo considerando la red de transporte se denomina
flujo de cargas óptimo (Optimal Power Flow)
• Vamos a plantear un OPF que represente la red de transporte
mediante la simplificación DC.
El problema del flujo de cargas óptimo (II)
• Se trata de minimizar los costes variables de operación en
un intervalo horario:
– costes variables de los grupos térmicos
– costes de oportunidad de los grupos hidráulicos cuando producen por
encima de su potencia programada.
– coste variable de la potencia no suministrada.
T H N
∑ ∑ ∑
Lenguajes de modelado algebraico. GAMS - 78
– Datos: vt: coste variable de generación del grupo térmico t.
vh: coste de oportunidad de la hidráulica de emergencia.
vh: coste variable de la potencia no suministrada.
– Variables: GTRt potencia producida por el grupo térmico t.
GHEh potencia hidráulica de emergencia del grupo h.
PNSn potencia no suministrada en el nudo n.
1 1 1
T H N
t t h h n n
t h n
v GTR v GHE v PNS
= = =
+ +∑ ∑ ∑
El problema del flujo de cargas óptimo (III)
• Cotas de las variables del equipo generador:
– Potencia térmica máxima y mínima del grupo t:
– La potencia hidráulica programada máxima del grupo h:
t t tGTR GTR GTR≤ ≤
0 GHP GHP≤ ≤
Lenguajes de modelado algebraico. GAMS - 79
– La potencia hidráulica de emergencia máxima del grupo h:
– La potencia no suministrada como mucho será la demanda del nudo.
0 h hGHP GHP≤ ≤
( )0 h h hGHE GHM GHP≤ ≤ −
0 n nPNS D≤ ≤
El problema del flujo de cargas óptimo (IV)
• Modelado de la red de transporte:
– 1ª Ley Kirchoff: Balance entre generación y demanda de nudo:
– 2ª Ley Kirchoff: Flujo de potencia activa por las líneas:
1 1
( )
I J
t h h n i n n j n
t n h n i j
GTR GHP GHE PNS F F D→ →
∈ ∈ = =
+ + + + − =∑ ∑ ∑ ∑
Lenguajes de modelado algebraico. GAMS - 80
– Cotas de los flujos:
i j
i j i j
B
X
F
S
θ θ→
→ = −
i j i j i jF F F→ → →− ≤ ≤
El problema del flujo de cargas óptimo (V)
• Modelado de la red de transporte:
– Formulación alternativa de la 1ª Ley Kirchoff:
1 1
( )
( ) / ( ) /
t h h n
t n h n
I J
i n B i n n j B n j n
i j
GTR GHP GHE PNS
S X S X Dθ θ θ θ
∈ ∈
→ →
= =
+ + + +
− − − =
∑ ∑
∑ ∑
Lenguajes de modelado algebraico. GAMS - 81
– Límites térmicos de las líneas como restricciones:
– Esta formulación tiene menos variables, pero más restricciones.
i j
i j i j
B
X
F
S
θ θ →
→− ≤
i j
i j i j
B
X
F
S
θ θ →
→− ≥ −
El problema del flujo de cargas óptimo (VI)
• Si se consideran las pérdidas:
– Las pérdidas óhmicas de una línea se modelan con una expresión no
lineal:
– Las pérdidas se incluyen como dos cargas adicionales iguales en los
i2 2
2 1 cos( )
i j i j
i j
i j B j
r
L S
r X
θ θ
→ →
→
→  = − − +
Lenguajes de modelado algebraico. GAMS - 82
– Las pérdidas se incluyen como dos cargas adicionales iguales en los
extremos de la línea.
– 1ª Ley Kirchhoff:
– siendo las pérdidas en el nudo n:
1 1
( )
I J
t h h n i n n j n n
t n h n i j
GTR GHP GHE PNS F F D L→ →
∈ ∈ = =
+ + + + − = +∑ ∑ ∑ ∑
1 1
/ 2
I J
n i n n j
i j
L L L→ →
= =
 
= + 
 
∑ ∑
Formulación del DC-OPF en GAMS (I)
$TITLE Flujo de cargas en corriente continua con y sin pérdidas
SETSSETSSETSSETS
ND nudos
GR generadores
TR(gr) generadores térmicos
HD(gr) generadores hidráulicos
NDGR(nd,gr) localización de generadores en nudos
LN(nd,nd) líneas
CN características nudos / dem, cpns /
CG características generadores / coste, pmin, pmax, cshd, hdrpro, hdrmax /
Lenguajes de modelado algebraico. GAMS - 83
CL características líneas / r, x, flmax /
ALIASALIASALIASALIAS (nd, ni, nf) ;
SCALARSSCALARSSCALARSSCALARS
SBASE potencia base [GW] / 0.1 /
OPCPRD opción de modelado de las pérdidas (no 0 si 1) / 0 /
* definición de la estructura de datos sin incluir explícitamente éstos
PARAMETERSPARAMETERSPARAMETERSPARAMETERS
DATNUD(nd,cn) datos de los nudos
DATGEN(gr,cg) datos de los generadores
DATLIN(nd,nd,cl) datos de las líneas
Formulación del DC-OPF en GAMS (II)
* planteamiento matemático del problema
VARIABLESVARIABLESVARIABLESVARIABLES
COSTE función objetivo [k€]
TT(nd) ángulo de tensión en el nudo [rad]
FL(ni,nf) flujo de potencia [GW]
POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLESVARIABLESVARIABLESVARIABLES
GTR(gr) generación térmica [GW]
GHP(gr) generación hidráulica programada [GW]
Lenguajes de modelado algebraico. GAMS - 84
GHP(gr) generación hidráulica programada [GW]
GHE(gr) generación hidráulica de emergencia [GW]
PNS(nd) potencia no suministrada [GW]
PRDAS(nd) pérdidas de las líneas conectadas al nudo [GW]
EQUATIONSEQUATIONSEQUATIONSEQUATIONS
FO costes de generación y de indisponibilidad [k€]
KR1F(nd) primera ley de Kirchhoff para cada nudo en función de flujos
KR1A(nd) primera ley de Kirchhoff para cada nudo en función de ángulos
FLJ(ni,nf) flujo en función de ángulos de tensión
FLJP(ni,nf) diferencia angular máxima en cada línea en un sentido
FLJN(ni,nf) diferencia angular máxima en cada línea en otro sentido
EPRDAS(nd) pérdidas de las líneas conectadas al nudo ;
Formulación del DC-OPF en GAMS (III)
FO .. COSTE =E= SUMSUMSUMSUM[tr, DATGEN(tr,'coste') * GTR(tr)]
+ SUMSUMSUMSUM[hd, DATGEN(hd,'cshd') * GHE(hd)]
+ SUMSUMSUMSUM[nd, DATNUD(nd,'cpns') * PNS(nd)] ;
KR1F(nd) .. SUMSUMSUMSUM[NDGR(nd,tr), GTR(tr)] + SUMSUMSUMSUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUMSUMSUMSUM[LN(ni,nd), FL(ni,nd)] - SUMSUMSUMSUM[LN(nd,nf), FL(nd,nf)]
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;
KR1A(nd) .. SUMSUMSUMSUM[NDGR(nd,tr), GTR(tr)]
+ SUMSUMSUMSUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUMSUMSUMSUM[LN(ni,nd), (TT(ni) - TT(nd)) / DATLIN(ni,nd,'x')] * SBASE
- SUMSUMSUMSUM[LN(nd,nf), (TT(nd) - TT(nf)) / DATLIN(nd,nf,'x')] * SBASE
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;
Lenguajes de modelado algebraico. GAMS - 85
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;
FLJ(LN(ni,nf)) .. FL(ni,nf) * DATLIN(ni,nf,'x') / SBASE =E= TT(ni) - TT(nf) ;
FLJP(LN(ni,nf)) ..
TT(ni) - TT(nf) =L= DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ;
FLJN(LN(ni,nf)) ..
TT(ni) - TT(nf) =G= - DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ;
EPRDAS(nd) .. PRDAS(nd) =E= SBASE * SUMSUMSUMSUM[LN(ni,nd), (1-cos(TT(ni) - TT(nd)))*
DATLIN(ni,nd,'r')/(DATLIN(ni,nd,'r')**2+DATLIN(ni,nd,'x')**2)]
+ SBASE * SUMSUMSUMSUM[LN(nd,nf), (1-cos(TT(nd) - TT(nf)))*
DATLIN(nd,nf,'r')/(DATLIN(nd,nf,'r')**2+DATLIN(nd,nf,'x')**2)] ;
Formulación del DC-OPF en GAMS (IV)
MODELMODELMODELMODEL FC / FO, KR1F, FLJ / ;
MODELMODELMODELMODEL FCA / FO, KR1A, FLJP, FLJN / ;
MODELMODELMODELMODEL FCP / FO, KR1F, FLJ, EPRDAS / ;
Lenguajes de modelado algebraico. GAMS - 86
Formulación del DC-OPF en GAMS (V)
1 2
3
8
Lenguajes de modelado algebraico. GAMS - 87
8
54
6
7 9
Formulación del DC-OPF en GAMS (VI)
* caso de estudio
*** esta parte iría en ficheros independientes y se introduciría con $include
SETSSETSSETSSETS
ND nudos / nudo-1 * nudo-9 /
GR generadores / genr-1 * genr-9, genh-1 * genh-4 /
NDGR(nd,gr) localización de generadores en nudos
/
nudo-1 . genr-1
nudo-1 . genr-2
nudo-1 . genr-3
nudo-2 . genr-4
Lenguajes de modelado algebraico. GAMS - 88
nudo-2 . genr-4
nudo-2 . genr-5
nudo-2 . genr-6
nudo-3 . genr-7
nudo-3 . genr-8
nudo-3 . genr-9
nudo-1 . genh-1
nudo-3 . genh-2
nudo-6 . genh-3
nudo-8 . genh-4
/ ;
Formulación del DC-OPF en GAMS (VII)
TABLETABLETABLETABLE DATNUD(nd,cn) datos de los nudos
dem cpns
* MW €/MWh
nudo-1 1 150
nudo-2 240 150
nudo-3 40 150
nudo-4 160 150
nudo-5 240 150
nudo-6 80 150
nudo-7 100 150
nudo-8 15 150
Lenguajes de modelado algebraico. GAMS - 89
nudo-8 15 150
nudo-9 100 150 ;
Formulación del DC-OPF en GAMS (VIII)
TABLETABLETABLETABLE DATGEN(gr,cg) datos de los generadores
coste pmin pmax cshd hdrpro hdrmax
* €/MWh MW MW €/kWh MW MW
genr-1 65 0 75
genr-2 70 0 125
genr-3 75 0 100
genr-4 59 0 100
genr-5 67 0 50
genr-6 74 0 50
genr-7 61 0 100
genr-8 76 0 50
Lenguajes de modelado algebraico. GAMS - 90
genr-8 76 0 50
genr-9 80 0 50
genh-1 10 300 300
genh-2 10 160 160
genh-3 10 150 150
genh-4 10 100 100 ;
Formulación del DC-OPF en GAMS (IX)
TABLETABLETABLETABLE DATLIN(ni,nf,cl) datos de las líneas
r x flmax
* p.u. p.u. MW
nudo-1 . nudo-2 0.0777 0.2913 500
nudo-1 . nudo-4 0.0544 0.2041 500
nudo-2 . nudo-3 0.0424 0.1695 500
nudo-2 . nudo-4 0.1 0.4 500
nudo-2 . nudo-5 0.05 0.2 500
nudo-2 . nudo-6 0.1 0.4 500
nudo-3 . nudo-5 0.0248 0.099 500
nudo-3 . nudo-8 0.1 0.4 500
Lenguajes de modelado algebraico. GAMS - 91
nudo-3 . nudo-8 0.1 0.4 500
nudo-4 . nudo-6 0.15 0.6 500
nudo-5 . nudo-6 0.05 0.2 500
nudo-5 . nudo-8 0.1 0.4 500
nudo-6 . nudo-7 0.15 0.6 500
nudo-6 . nudo-9 0.05 0.2 500
nudo-7 . nudo-9 0.05 0.2 500 ;
*** hasta aquí son ficheros independientes
Formulación del DC-OPF en GAMS (X)
* activación de generadores térmicos hidráulicos y líneas
TR(gr) $DATGEN(gr,'pmax') = YESYESYESYES ;
HD(gr) $DATGEN(gr,'hdrpro') = YESYESYESYES ;
LN(ni,nf) $DATLIN(ni,nf,'x') = YESYESYESYES ;
* escalación de datos de potencia a GW
Lenguajes de modelado algebraico. GAMS - 92
* escalación de datos de potencia a GW
DATNUD(nd,'dem') = DATNUD(nd,'dem') / 1e3 ;
DATGEN(tr,'pmin') = DATGEN(tr,'pmin') / 1e3 ;
DATGEN(tr,'pmax') = DATGEN(tr,'pmax') / 1e3 ;
DATGEN(hd,'hdrpro') = DATGEN(hd,'hdrpro') / 1e3 ;
DATGEN(hd,'hdrmax') = DATGEN(hd,'hdrmax') / 1e3 ;
DATLIN(ln,'flmax') = DATLIN(ln,'flmax') / 1e3 ;
Formulación del DC-OPF en GAMS (XI)
* acotamiento de las variables (cotas físicas)
GTR.LO(tr) = DATGEN(tr,'pmin') ;
GTR.UP(tr) = DATGEN(tr,'pmax') ;
GHP.UP(hd) = DATGEN(hd,'hdrpro') ;
GHE.UP(hd) = DATGEN(hd,'hdrmax') - DATGEN(hd,'hdrpro') ;
PNS.UP(nd) = DATNUD(nd,'dem') ;
FL.LO(ln) = - DATLIN(ln,'flmax') ;
Lenguajes de modelado algebraico. GAMS - 93
FL.LO(ln) = - DATLIN(ln,'flmax') ;
FL.UP(ln) = DATLIN(ln,'flmax') ;
* cotas algorítmicas de los ángulos
TT.LO(nd) = - 1.5 ;
TT.UP(nd) = 1.5 ;
* nudo de referencia
TT.FX(nd) $(ORDORDORDORD(nd) EQ 1) = 0 ;
Formulación del DC-OPF en GAMS (XII)
* opción sin pérdidas
OPCPRD = 0 ;
* flujo de cargas con variables de flujo
SOLVESOLVESOLVESOLVE FC USING LP MINIMIZING COSTE ;
* control sobre aprovechamiento de base previa
OPTIONOPTIONOPTIONOPTION BRATIO = 1 ;
Lenguajes de modelado algebraico. GAMS - 94
OPTIONOPTIONOPTIONOPTION BRATIO = 1 ;
* flujo de cargas con variables de ángulos de tensión
SOLVESOLVESOLVESOLVE FCA USING LP MINIMIZING COSTE ;
* opción con pérdidas
OPCPRD = 1 ;
* flujo de cargas con variables de flujo
SOLVESOLVESOLVESOLVE FCP USING NLP MINIMIZING COSTE ;
Lenguajes de modelado algebraico. GAMS - 95
Andrés Ramos
http://www.iit.upcomillas.es/aramos/
Andres.Ramos@upcomillas.es

Más contenido relacionado

La actualidad más candente

Tema 1 (conceptos básicos de la termodinámica.)
Tema 1 (conceptos básicos de la termodinámica.)Tema 1 (conceptos básicos de la termodinámica.)
Tema 1 (conceptos básicos de la termodinámica.)Christian Arias Vega
 
Mecánica I - Ecuación General de Energía.ppt
Mecánica I - Ecuación General de Energía.pptMecánica I - Ecuación General de Energía.ppt
Mecánica I - Ecuación General de Energía.pptMaxGonzalez48
 
Reporte practica 2 Potencia de una bomba centrifuga
Reporte practica 2 Potencia de una bomba centrifugaReporte practica 2 Potencia de una bomba centrifuga
Reporte practica 2 Potencia de una bomba centrifugaBeyda Rolon
 
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICA
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICADISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICA
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICAGalvani Carrasco Tineo
 
Transferencia de masa (1)
Transferencia de masa (1)Transferencia de masa (1)
Transferencia de masa (1)ensenada50
 
Tema1 - Intercambiadores de Calor
Tema1 - Intercambiadores de CalorTema1 - Intercambiadores de Calor
Tema1 - Intercambiadores de CalorUNEFA
 
Operaciones unitarias, diagramas de flujo y balance de materia
Operaciones unitarias, diagramas de flujo y balance de materia Operaciones unitarias, diagramas de flujo y balance de materia
Operaciones unitarias, diagramas de flujo y balance de materia Alejandro Escobar
 
Tecnologia alimentos, Tratamiento termico
Tecnologia alimentos, Tratamiento termicoTecnologia alimentos, Tratamiento termico
Tecnologia alimentos, Tratamiento termicoHugo Again
 
Clase no 3 termodinamica básica
Clase no 3 termodinamica básicaClase no 3 termodinamica básica
Clase no 3 termodinamica básicaAlex Pitti Zuleta
 
Espesor optimo economico
Espesor optimo economicoEspesor optimo economico
Espesor optimo economicoMateo Navarro
 
Diagramas de Procesos
Diagramas de ProcesosDiagramas de Procesos
Diagramas de Procesosaaronalan
 
transferencia-de-calor.ppt
transferencia-de-calor.ppttransferencia-de-calor.ppt
transferencia-de-calor.pptRojasSotoEduardo
 
Torre absorcion pag 15
Torre absorcion pag 15Torre absorcion pag 15
Torre absorcion pag 15omardavid01
 

La actualidad más candente (20)

Tema 1 (conceptos básicos de la termodinámica.)
Tema 1 (conceptos básicos de la termodinámica.)Tema 1 (conceptos básicos de la termodinámica.)
Tema 1 (conceptos básicos de la termodinámica.)
 
Mecánica I - Ecuación General de Energía.ppt
Mecánica I - Ecuación General de Energía.pptMecánica I - Ecuación General de Energía.ppt
Mecánica I - Ecuación General de Energía.ppt
 
Calor zapallo
Calor zapalloCalor zapallo
Calor zapallo
 
Lechos porosos
Lechos porososLechos porosos
Lechos porosos
 
Tema07 entropia
Tema07 entropiaTema07 entropia
Tema07 entropia
 
Reporte practica 2 Potencia de una bomba centrifuga
Reporte practica 2 Potencia de una bomba centrifugaReporte practica 2 Potencia de una bomba centrifuga
Reporte practica 2 Potencia de una bomba centrifuga
 
Labo6 7-difusividad
Labo6 7-difusividadLabo6 7-difusividad
Labo6 7-difusividad
 
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICA
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICADISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICA
DISEÑO DE TUBERÍAS y ENERGÍA ESPECÍFICA
 
Transferencia de masa (1)
Transferencia de masa (1)Transferencia de masa (1)
Transferencia de masa (1)
 
Unidades y-dimensiones 2
Unidades y-dimensiones 2Unidades y-dimensiones 2
Unidades y-dimensiones 2
 
Tema1 - Intercambiadores de Calor
Tema1 - Intercambiadores de CalorTema1 - Intercambiadores de Calor
Tema1 - Intercambiadores de Calor
 
Operaciones unitarias, diagramas de flujo y balance de materia
Operaciones unitarias, diagramas de flujo y balance de materia Operaciones unitarias, diagramas de flujo y balance de materia
Operaciones unitarias, diagramas de flujo y balance de materia
 
Tecnologia alimentos, Tratamiento termico
Tecnologia alimentos, Tratamiento termicoTecnologia alimentos, Tratamiento termico
Tecnologia alimentos, Tratamiento termico
 
Clase no 3 termodinamica básica
Clase no 3 termodinamica básicaClase no 3 termodinamica básica
Clase no 3 termodinamica básica
 
Espesor optimo economico
Espesor optimo economicoEspesor optimo economico
Espesor optimo economico
 
Diagramas de Procesos
Diagramas de ProcesosDiagramas de Procesos
Diagramas de Procesos
 
Sistemas de segundo orden
Sistemas de segundo ordenSistemas de segundo orden
Sistemas de segundo orden
 
Diagrama de face
Diagrama de faceDiagrama de face
Diagrama de face
 
transferencia-de-calor.ppt
transferencia-de-calor.ppttransferencia-de-calor.ppt
transferencia-de-calor.ppt
 
Torre absorcion pag 15
Torre absorcion pag 15Torre absorcion pag 15
Torre absorcion pag 15
 

Destacado

Simplified Marketing techniques for Real Time Results for Start ups
Simplified Marketing techniques for Real Time Results for Start upsSimplified Marketing techniques for Real Time Results for Start ups
Simplified Marketing techniques for Real Time Results for Start upsUnspun Consulting Group
 
Dell UPS Management Software Networking Examples
Dell UPS Management Software Networking ExamplesDell UPS Management Software Networking Examples
Dell UPS Management Software Networking ExamplesDell TechCenter
 
2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples
2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples
2011 ISPE Presentation-Supply Chain Improvements w Case Study ExamplesCharles Trammell
 
Programacion lineal entera invope
Programacion lineal entera invopeProgramacion lineal entera invope
Programacion lineal entera invopeDeysi Tasilla Dilas
 
GUÍA BÁSICA DE DIGSILENT POWER FACTORY
GUÍA BÁSICA DE DIGSILENT POWER FACTORYGUÍA BÁSICA DE DIGSILENT POWER FACTORY
GUÍA BÁSICA DE DIGSILENT POWER FACTORYIEEE PES UNAC
 
Finding your target market
Finding your target marketFinding your target market
Finding your target marketStephen Davis
 
Problemas de tarea trasporte
Problemas de tarea trasporteProblemas de tarea trasporte
Problemas de tarea trasporteJaime Medrano
 
Market segmentation presentation
Market segmentation presentationMarket segmentation presentation
Market segmentation presentationAmol Salve
 
PV Wind Hybrid Systems
PV Wind Hybrid SystemsPV Wind Hybrid Systems
PV Wind Hybrid SystemsSeminar Links
 
Market segmentation PPT
Market segmentation PPTMarket segmentation PPT
Market segmentation PPTAabhas Rastogi
 
Segmentation / Targeting / Positioning
Segmentation / Targeting / PositioningSegmentation / Targeting / Positioning
Segmentation / Targeting / PositioningCris Anthony Hödar
 
Segmentation Targeting Positioning
Segmentation Targeting PositioningSegmentation Targeting Positioning
Segmentation Targeting PositioningManish Parihar
 
Segmentation, Targeting, and Positioning
Segmentation, Targeting, and PositioningSegmentation, Targeting, and Positioning
Segmentation, Targeting, and PositioningMehmet Cihangir
 
Market Segmentation, Targeting and Positioning
Market Segmentation, Targeting and PositioningMarket Segmentation, Targeting and Positioning
Market Segmentation, Targeting and PositioningDaniel Gibson
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 

Destacado (19)

investigacion operativa
investigacion operativainvestigacion operativa
investigacion operativa
 
Simplified Marketing techniques for Real Time Results for Start ups
Simplified Marketing techniques for Real Time Results for Start upsSimplified Marketing techniques for Real Time Results for Start ups
Simplified Marketing techniques for Real Time Results for Start ups
 
Dell UPS Management Software Networking Examples
Dell UPS Management Software Networking ExamplesDell UPS Management Software Networking Examples
Dell UPS Management Software Networking Examples
 
2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples
2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples
2011 ISPE Presentation-Supply Chain Improvements w Case Study Examples
 
Programacion lineal entera invope
Programacion lineal entera invopeProgramacion lineal entera invope
Programacion lineal entera invope
 
GUÍA BÁSICA DE DIGSILENT POWER FACTORY
GUÍA BÁSICA DE DIGSILENT POWER FACTORYGUÍA BÁSICA DE DIGSILENT POWER FACTORY
GUÍA BÁSICA DE DIGSILENT POWER FACTORY
 
Finding your target market
Finding your target marketFinding your target market
Finding your target market
 
Handy Guide for Brand Building
Handy Guide for Brand BuildingHandy Guide for Brand Building
Handy Guide for Brand Building
 
Problemas de tarea trasporte
Problemas de tarea trasporteProblemas de tarea trasporte
Problemas de tarea trasporte
 
Marketing Strategy - Introduction
Marketing Strategy - IntroductionMarketing Strategy - Introduction
Marketing Strategy - Introduction
 
Market segmentation presentation
Market segmentation presentationMarket segmentation presentation
Market segmentation presentation
 
PV Wind Hybrid Systems
PV Wind Hybrid SystemsPV Wind Hybrid Systems
PV Wind Hybrid Systems
 
Market segmentation PPT
Market segmentation PPTMarket segmentation PPT
Market segmentation PPT
 
Segmentation / Targeting / Positioning
Segmentation / Targeting / PositioningSegmentation / Targeting / Positioning
Segmentation / Targeting / Positioning
 
Segmentation Targeting Positioning
Segmentation Targeting PositioningSegmentation Targeting Positioning
Segmentation Targeting Positioning
 
Segmentation, Targeting, and Positioning
Segmentation, Targeting, and PositioningSegmentation, Targeting, and Positioning
Segmentation, Targeting, and Positioning
 
The 2016 Economic Outlook in 17 Slides
The 2016 Economic Outlook in 17 SlidesThe 2016 Economic Outlook in 17 Slides
The 2016 Economic Outlook in 17 Slides
 
Market Segmentation, Targeting and Positioning
Market Segmentation, Targeting and PositioningMarket Segmentation, Targeting and Positioning
Market Segmentation, Targeting and Positioning
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 

Similar a T gams ar

Aligia algoritmos geneticos
Aligia  algoritmos geneticos Aligia  algoritmos geneticos
Aligia algoritmos geneticos viktor chucuya
 
Investigación de operaciones I y II.pptx
Investigación de operaciones I y II.pptxInvestigación de operaciones I y II.pptx
Investigación de operaciones I y II.pptxluisfernando570687
 
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)CAChemE
 
1 presentacion del curso 2010 (2 w)
1 presentacion del curso 2010 (2 w)1 presentacion del curso 2010 (2 w)
1 presentacion del curso 2010 (2 w)Andres Milquez
 
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemasJose David Uc Salas
 
Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)CAChemE
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesKarina Arguedas Ruelas
 
Los lenguajes de programación pasado presente y futuro
Los lenguajes de programación pasado presente y futuroLos lenguajes de programación pasado presente y futuro
Los lenguajes de programación pasado presente y futuroFacultad de Informática UCM
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorSotero Ordones
 
Algoritmos con decisiones.pptx
Algoritmos con decisiones.pptxAlgoritmos con decisiones.pptx
Algoritmos con decisiones.pptxMauroTapiaMuoz
 

Similar a T gams ar (20)

Aligia algoritmos geneticos
Aligia  algoritmos geneticos Aligia  algoritmos geneticos
Aligia algoritmos geneticos
 
Io 2da programacion lineal
Io 2da programacion linealIo 2da programacion lineal
Io 2da programacion lineal
 
Optimización
OptimizaciónOptimización
Optimización
 
Investigación de operaciones I y II.pptx
Investigación de operaciones I y II.pptxInvestigación de operaciones I y II.pptx
Investigación de operaciones I y II.pptx
 
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
 
1 presentacion del curso 2010 (2 w)
1 presentacion del curso 2010 (2 w)1 presentacion del curso 2010 (2 w)
1 presentacion del curso 2010 (2 w)
 
Win qsb2.0
Win qsb2.0Win qsb2.0
Win qsb2.0
 
BORLAND
BORLANDBORLAND
BORLAND
 
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
 
Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
 
Win qsb2.0
Win qsb2.0Win qsb2.0
Win qsb2.0
 
presentacion Fermath
presentacion Fermathpresentacion Fermath
presentacion Fermath
 
Los lenguajes de programación pasado presente y futuro
Los lenguajes de programación pasado presente y futuroLos lenguajes de programación pasado presente y futuro
Los lenguajes de programación pasado presente y futuro
 
interfaz grafica
interfaz graficainterfaz grafica
interfaz grafica
 
Mathemática 8
Mathemática 8Mathemática 8
Mathemática 8
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-Vector
 
Algoritmos con decisiones.pptx
Algoritmos con decisiones.pptxAlgoritmos con decisiones.pptx
Algoritmos con decisiones.pptx
 
7 b
7 b7 b
7 b
 
Introduccion a gams
Introduccion a gamsIntroduccion a gams
Introduccion a gams
 

Último

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 

T gams ar

  • 1. Lenguajes de modelado algebraicoLenguajes de modelado algebraico Andrés Ramos Universidad Pontificia Comillas http://www.iit.upcomillas.es/aramos/ Andres.Ramos@upcomillas.es
  • 2. Alternativas desarrollo modelos optimización • Lenguajes de programación de propósito general (C, C++, Java, Visual Basic, FORTRAN 90) – C (CPLEX de ILOG, Gurobi from Gurobi Optimization, Xpress-Optimizer from FICO) – C++ (ILOG Concert de IBM, LINDO API de LINDO Systems, OptiMax 2000 de Maximal Software, FLOPC++ de Universidade de Aveiro) – Dominio público [GNU Linear Programming Toolkit GLPK (www.gnu.org/software/glpk), Computational Infrastructure for Operations Lenguajes de modelado algebraico. GAMS - 2 (www.gnu.org/software/glpk), Computational Infrastructure for Operations Research COIN-OR (www.coin-or.org), LP solver SoPlex (http://soplex.zib.de) and MIP framework SCIP (http://scip.zib.de)] • Lenguajes o entornos de cálculo numérico o simbólico (hojas de cálculo, Matlab, Mathematica) • Lenguajes de modelado algebraico [GAMS, OPL Studio, AMPL, AIMMS, XPRESS-MP, MPL, Zimpl (http://zimpl.zib.de) (el último de dominio público)] • En OR/MS Today (www.orms-today.com) una vez al año hay artículos de resumen de los diferentes entornos de optimización y sus características
  • 3. Optimizadores en hojas de cálculo • Ventajas – Fáciles de usar – Integración total con la hoja de cálculo – Familiaridad con el entorno que facilita la explicación del modelo y de sus resultados – Facilidad de presentación de resultados en gráficos Lenguajes de modelado algebraico. GAMS - 3 • Inconvenientes – No inducen una buena práctica de programación – Presentan dificultades para verificación, validación, actualización y documentación de los modelos – No permiten modelar problemas complejos o de gran tamaño
  • 4. Biblioteca de optimización en C, C++ • Ventajas – Tiempo de solución es crítico – Permiten el uso de algoritmos de optimización específicos – Posibilidad de implantación del modelo en un entorno software o hardware especial Lenguajes de modelado algebraico. GAMS - 4 • Inconvenientes – Mayor dificultad y consumo de recursos para el mantenimiento del modelo
  • 5. Ventajas lenguajes algebraicos (i) • Lenguajes de alto nivel para formulación compacta de modelos grandes y complejos • Facilitan desarrollo de prototipos • Mejorar productividad de modeladores • Estructuran buenos hábitos de modelado Lenguajes de modelado algebraico. GAMS - 5 • Separación entre interfaz, datos, modelo matemático y optimizador • Formulación independiente del tamaño • Modelo independiente de optimizadores
  • 6. Ventajas lenguajes algebraicos (ii) • Facilitan reformulación continua • Documentación simultánea al modelo • Permiten construir grandes modelos “mantenibles” que se pueden adaptar rápidamente a situaciones nuevas • Permiten implantación de algoritmos avanzados Lenguajes de modelado algebraico. GAMS - 6 • Implantación fácil de problemas NLP, MIP, MCP • Arquitectura abierta con interfaces a otros sistemas • Independencia de la plataforma y portabilidad entre plataformas y sistemas operativos (MS Windows, Linux, Sun Solaris, HP UX, Digital True64Unix, IBM AIX, SGI IRIX, Mac OS X)
  • 7. Desventajas lenguajes algebraicos • No son adecuados para usos esporádicos con problemas de pequeño tamaño • No son adecuados para resolución directa problemas de tamaño gigantesco (1.000.000 x 1.000.000) Lenguajes de modelado algebraico. GAMS - 7
  • 8. Tendencias futuras • Interfaz visual en formulación • Interfaz más estrecha con hojas de cálculo y bases de datos • Interfaz con funciones externas escritas en lenguajes de propósito general • Resolución directa de problemas optimización estocástica (OSLSE, DECIS) Lenguajes de modelado algebraico. GAMS - 8 (OSLSE, DECIS) • Selección automática de método de optimización y del optimizador
  • 9. Aplicaciones reales • En IIT se pasó de utilizar FORTRAN a utilizar GAMS exclusivamente • Problemas de hasta 500000 restricciones, 500000 variables y 2000000 elementos no nulos resueltos con facilidad en un PC con 1 GB de memoria RAM • Incorporación de algoritmos avanzados (descomposición Lenguajes de modelado algebraico. GAMS - 9 • Incorporación de algoritmos avanzados (descomposición anidada estocástica de Benders) en modelos
  • 10. Modelo de transporte Sean i fábricas de envasado y j mercados de consumo. Cada planta de producción tiene una capacidad máxima de ai cajas y cada mercado demanda una cantidad bj de cajas (se supone que la capacidad de producción total de las fábricas es superior a la demanda total para que el problema sea factible). El coste de transporte entre cada fábrica i y cada mercado j por cada caja es c . Se desea satisfacer la demanda de cada mercado al Lenguajes de modelado algebraico. GAMS - 10 es cij. Se desea satisfacer la demanda de cada mercado al mínimo coste. Las variables de decisión del problema serán las cajas transportadas entre cada fábrica i y cada mercado j, xij.
  • 11. Formulación matemática • Función objetivo • Límite de producción de cada fábrica i min ij ij i j c x∑∑ ij i j x a i≤ ∀∑ Lenguajes de modelado algebraico. GAMS - 11 • Consumo de cada mercado j • Cantidad a enviar desde cada fábrica i a cada mercado j ij j i x b j≥ ∀∑ 0ijx i j≥ ∀ →
  • 12. Modelo de transporte en GAMS (i) SETSSETSSETSSETS I fábricas de envasado / VIGO, ALGECIRAS / J mercados de consumo / MADRID, BARCELONA, VALENCIA / PARAMETERSPARAMETERSPARAMETERSPARAMETERS A(i) capacidad de producción de la fábrica i [cajas] / VIGO 350 ALGECIRAS 700 / B(j) demanda del mercado j [cajas] Lenguajes de modelado algebraico. GAMS - 12 B(j) demanda del mercado j [cajas] / MADRID 400 BARCELONA 450 VALENCIA 150 / TABLETABLETABLETABLE C(i,j) coste transporte entre i y j [€ por caja] MADRID BARCELONA VALENCIA VIGO 0.06 0.12 0.09 ALGECIRAS 0.05 0.15 0.11
  • 13. Modelo de transporte en GAMS (ii) VARIABLESVARIABLESVARIABLESVARIABLES X(i,j) cajas transportadas entre fábrica i y mercado j [cajas] CT coste de transporte [€] POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLEVARIABLEVARIABLEVARIABLE X EQUATIONSEQUATIONSEQUATIONSEQUATIONS COSTE coste total de transporte [€] CAPACIDAD(i) capacidad máxima de cada fábrica i [cajas] DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ; Lenguajes de modelado algebraico. GAMS - 13 DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ; COSTE .. CT =E= SUMSUMSUMSUM((i,j), C(i,j) * X(i,j)) ; CAPACIDAD(i) .. SUMSUMSUMSUM(j, X(i,j)) =L= A(i) ; DEMANDA(j) .. SUMSUMSUMSUM(i, X(i,j)) =G= B(j) ; MODELMODELMODELMODEL TRANSPORTE / COSTE, CAPACIDAD, DEMANDA / SOLVESOLVESOLVESOLVE TRANSPORTE USING LP MINIMIZING CT
  • 14. Biblioteca de problemas (+ 250 modelos) • Gestión de la producción • Economía agraria • Ingeniería química • Ingeniería de montes • Comercio internacional • Desarrollo económico Lenguajes de modelado algebraico. GAMS - 14 • Desarrollo económico • Micro y macroeconomía • Modelos de equilibrio generalizado • Economía de la energía • Finanzas • Estadística, econometría • Investigación operativa
  • 15. GAMS (General Algebraic Modeling System) • Creado en 1987. Más de 10000 usuarios en 100 países • Entorno de desarrollo GAMSIDE • Manual de usuario Help > GAMS Users Guide Lenguajes de modelado algebraico. GAMS - 15 • Manuales de optimizadores Help > docs > solvers • Modelo: nombre_fichero.gms • Resultados: nombre_fichero.lst • Registro del proceso: nombre_fichero.log
  • 16. Depuración de modelos • Se hace viendo las restricciones realmente formuladas por el lenguaje (LimRow=300) • Los errores se depuran de uno en uno ya que suele haber muchos concatenados entre sí • Se pincha en el primer error del fichero nombre_fichero.log y te redirige a la posición del error Lenguajes de modelado algebraico. GAMS - 16 y te redirige a la posición del error • El código del error explica su causa
  • 17. Formato general de las instrucciones GAMS • Líneas con * en primera columna son de comentario • No se distingue entre mayúsculas y minúsculas • El paréntesis (), el corchete [] o la llave {} se pueden utilizar para separar niveles entre sí con igual funcionamiento • Palabras reservadas del lenguaje aparecen resaltadas Lenguajes de modelado algebraico. GAMS - 17 • Instrucciones acaban en un ; (que puede eliminarse cuando la siguiente palabra sea reservada)
  • 18. Estructura general de un modelo • Declaración de conjuntos. Asignación de valores. • Inclusión y manipulación de datos de entrada y parámetros auxiliares. • Variables • Ecuaciones Lenguajes de modelado algebraico. GAMS - 18 • Modelo • Acotamiento e inicialización de variables • Resolución del problema de optimización • Presentación de resultados
  • 19. Bloques de un modelo en GAMS • Obligatorios VARIABLES EQUATIONS MODEL SOLVE Lenguajes de modelado algebraico. GAMS - 19 • Opcionales SETS: (ALIAS) ALIAS (i,j) i y j se pueden utilizar indistintamente DATA: SCALARS, PARAMETERS, TABLE • Los valores de INF, EPS son válidos como datos
  • 20. VARIABLES • Siempre debe haber una variable libre para representar el valor de la función objetivo. Los valores de las variables son guardados siempre. • Tipos: FREE (por omisión) -∞ a + ∞ POSITIVE 0 a + ∞ NEGATIVE - ∞ a 0 BINARY 0 ó 1 Lenguajes de modelado algebraico. GAMS - 20 BINARY 0 ó 1 INTEGER 0 a 100 (se cambia poniendo cota superior diferente) • Sufijos – nombre_var.LO cota inferior – nombre_var.UP cota superior – nombre_var.L valor inicial antes y valor óptimo después – nombre_var.M valor marginal (coste reducido) – nombre_var.FX fija una variable a un valor
  • 21. EQUATIONS • Bloques: – Declaración con comentario explicativo – Expresiones matemáticas • Tipos: =E= =, =L= ≤, =G= ≥ Lenguajes de modelado algebraico. GAMS - 21 • Sufijos: – nombre_ec.LO cota inferior – nombre_ec.UP cota superior – nombre_ec.L valor inicial antes y valor óptimo después – nombre_ec.M valor marginal (variable dual o precio sombra o precio justo)
  • 22. MODEL y SOLVE • MODEL nombre_modelo / nombre_ecuaciones / MODEL nombre_modelo / ALL / • SOLVE nombre_modelo USING tipo_problema MINIMIZING (MAXIMIZING) variable_f.o. Lenguajes de modelado algebraico. GAMS - 22
  • 23. Tipos de problemas y optimizadores • LP, RMIP (programación lineal): BDMLP, CLP • MILP (programación lineal entera mixta): CPLEX, CBC, Gurobi, XPRESS • NLP (programación no lineal): CONOPT, MINOS, SNOPT, PATHNLP, LGO, MOSEK • DNLP (programación no lineal con derivadas no continuas): CONOPT, MINOS, SNOPT, BARON, LGO, OQNLP, MOSEK • MINLP (programación no lineal entera mixta): DICOPT, SBB, Lenguajes de modelado algebraico. GAMS - 23 • MINLP (programación no lineal entera mixta): DICOPT, SBB, BARON, OQNLP • SP (programación estocástica): DECIS, OSLSE • MCP (problema mixto complementario): MILES, PATH, NLPEC • MPEC (programación matemática con restricciones de equilibrio): • CNS (sistemas no lineales restringidos): CONOPT, PATH • MPSGE (análisis de equilibrio generalizado) • GAMS Solvers (http://www.gams.com/solvers/index.htm)
  • 24. Operador $ en asignaciones, sumatorios, restricciones • Establece una condición $(VALOR > 0) $(NUMERO1 <> NUMERO2) • A la izquierda de una asignación: Realiza la asignación SÓLO cuando se cumple la condición IF (condición, REALIZA LA ASIGNACIÓN ) ; Lenguajes de modelado algebraico. GAMS - 24 ) ; • A la derecha de una asignación: Realiza SIEMPRE la asignación tomando ésta el valor 0 si no se cumple la condición IF (condición, REALIZA LA ASIGNACIÓN ELSE ASIGNA VALOR 0 ) ;
  • 25. Operaciones relacionales • LT <, GT >, EQ =, NE <>, LE <=, GE >= • NOT, AND, OR, XOR • DIAG(elemento_conjunto,elemento_conjunto)={1,0} • SAMEAS(elemento_conjunto,elemento_conjunto)={V,F} Lenguajes de modelado algebraico. GAMS - 25 • SAMEAS(elemento_conjunto,elemento_conjunto)={V,F}
  • 26. Funciones • Elementales: +, -, *, /, ** ó POWER(x,n) • ORD, CARD ordinal y cardinal de un conjunto • Con índices: SUM, PROD, SMAX, SMIN Lenguajes de modelado algebraico. GAMS - 26 • Otras funciones: ABS, ARCTAN, SIN, COS, CEIL, FLOOR, EXP, LOG, LOG10, MAX, MIN, MOD, ROUND, SIGN, SQR, SQRT, TRUNC, NORMAL, UNIFORM • Funciones de tiempo: GYEAR, GMONTH, GDAY, GHOUR, GMINUTE, GSECOND, GDOW, GLEAP, JDATE, JNOW, JSTART, JTIME
  • 27. Conjuntos dinámicos • Subconjuntos de conjuntos estáticos cuyo contenido puede cambiar mediante asignaciones SETS M meses / 1 * 12 / MP(m) meses pares ; display m ; * Selección de subconjunto mediante una condición MP(m) $[MOD(ord(m),2) = 0] = YES ; display mp ; Lenguajes de modelado algebraico. GAMS - 27 display mp ; * Selección de un elemento del conjunto MP('3') = yes ; display mp ; MP(m) $(ord(m) = 3) = NO ; display mp ; • Elementos fundamentales en el desarrollo de modelos en GAMS • Deben utilizarse sistemáticamente para evitar formular ecuaciones o variables o asignaciones innecesarias.
  • 28. Operaciones con conjuntos • Intersección D(a) = B(a) * C(a) • Unión D(a) = B(a) + C(a) • Complementario D(a) = NOT C(a) Lenguajes de modelado algebraico. GAMS - 28 D(a) = NOT C(a) • Diferencia D(a) = B(a) - C(a)
  • 29. Modelo de transbordo • Sea un conjunto de nodos conectados mediante arcos. Un nodo no tiene que estar conectado con todos los demás nodos. Un nodo puede ser de generación, de demanda o de transbordo según produzca, consuma o trasvase el producto. La oferta total es mayor o igual que la demanda total. Se supone conocida la capacidad máxima de oferta y la Lenguajes de modelado algebraico. GAMS - 29 supone conocida la capacidad máxima de oferta y la demanda de cada nodo. También se conoce el coste unitario de transporte de producto para cada arco. Se trata de minimizar el coste de transporte satisfaciendo la demanda. • Extensión del problema anterior añadiendo arcos no dirigidos.
  • 30. Desplazamientos de índices. Adelantos y retrasos • t=E,F,M,A,MY,J,JL,AG,S,O,N,D RVA(t) + APOR(t) - GASTO(t) =E= RVA(t+1) • Valores de vectores fuera del dominio son 0 RVA(’D’) + APOR(’D’) - GASTO(’D’) =E= 0 • Recorrido circular de un índice Lenguajes de modelado algebraico. GAMS - 30 • Recorrido circular de un índice t=1,...,12 RVA(t) + APOR(t) - GASTO(t) = RVA(t++1) RVA(’12’) + APOR(’12’) - GASTO(’12’) = RVA(’1’) • Recorrido en orden inverso del índice de PP aun cuando i se recorre en sentido creciente PP(t+[card(t)-2*ord(t)+1])
  • 31. Contratación de vendedores La sección de venta de billetes de una estación de metro necesita las siguientes personas durante las 24 horas del día Intervalo Vendedores 00 – 06 2 06 – 10 8 10 – 12 4 12 – 16 3 Lenguajes de modelado algebraico. GAMS - 31 16 – 18 6 18 – 22 5 22 – 24 3 Cada vendedor trabaja ocho horas en dos bloques de cuatro con una hora de descanso al cabo del primer bloque. El turno puede empezar en cualquier hora del día. Determinar el número mínimo de vendedores a contratar.
  • 32. Ejercicios de adelantos y retrasos • Distancias entre cruces – Suponer una ciudad completamente reticulada con una longitud unitaria de cada lado de la retícula. Calcular analíticamente la distancia entre dos cruces cualesquiera de la ciudad. • Máximo número de caballos (reinas, torres) – Determinar mediante un problema de optimización el máximo Lenguajes de modelado algebraico. GAMS - 32 – Determinar mediante un problema de optimización el máximo número de caballos (reinas, torres) que pueden estar en un tablero de ajedrez sin comerse entre sí
  • 33. Repeticiones • LOOP (conjunto, ) ; • WHILE (condición, ) ; • REPEAT UNTIL condición; Lenguajes de modelado algebraico. GAMS - 33 UNTIL condición; • IF (condición, ELSE ) ; • FOR (i=inicio TO/DOWNTO final BY incremento, ) ;
  • 34. Entrada/salida de datos • Entrada de datos por fichero $include nombre_del_fichero • DISPLAY nombre_identificador (muestra su valor o contenido) • Salida de datos por fichero Lenguajes de modelado algebraico. GAMS - 34 • Salida de datos por fichero file nombre_interno / nombre_externo / put nombre_interno put nombre_identificador putclose nombre_interno • Existen opciones específicas de control de formato de la salida
  • 35. TABLE (i) • Continuación de tablas con múltiples columnas SETS i / MAD, BCN / j / A1, A2, A3, A4, A5, A6 / TABLE CAPACIDAD(i,j) capacidad máxima A1 A2 A3 Lenguajes de modelado algebraico. GAMS - 35 A1 A2 A3 MAD 1 0 3 BCN 2 1 2 + A4 A5 A6 MAD 2 1 3 BCN 3 2 2
  • 36. TABLE (ii) • Tablas con más de dos dimensiones SETS i / MAD, BCN / j / A1, A2, A3, A4, A5, A6 / K / A, B, C / TABLE CAPACIDAD(i,j,k) capacidad máxima A B C MAD.A1 1 0 3 Lenguajes de modelado algebraico. GAMS - 36 MAD.A1 1 0 3 MAD.A2 2 1 2 TABLE CAPACIDAD(i,j,k) capacidad máxima A1.A A1.B A1.C A2.A A2.B MAD 1 0 3 6 8 BCN 2 1 2 2 4
  • 37. Estructura general de un modelo “comercial” • Declaración de conjuntos y parámetros. Asignación de valores por omisión. • Variables • Ecuaciones • Modelo Lenguajes de modelado algebraico. GAMS - 37 • Inclusión y manipulación de datos de entrada. Parámetros auxiliares • Acotamiento e inicialización de variables • Resolución del problema de optimización • Presentación de resultados
  • 38. Modelo de transporte en GAMS (i) SETSSETSSETSSETS I fábricas de envasado J mercados de consumo PARAMETERSPARAMETERSPARAMETERSPARAMETERS A(i) capacidad de producción de la fábrica i [cajas] B(j) demanda del mercado j [cajas] C(i,j) coste transporte entre i y j [€ por caja] VARIABLESVARIABLESVARIABLESVARIABLES X(i,j) cajas transportadas entre fábrica i y mercado j [cajas] Lenguajes de modelado algebraico. GAMS - 38 X(i,j) cajas transportadas entre fábrica i y mercado j [cajas] CT coste de transporte [€] ; POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLEVARIABLEVARIABLEVARIABLE X ;
  • 39. Modelo de transporte en GAMS (ii) EQUATIONSEQUATIONSEQUATIONSEQUATIONS COSTE coste total de transporte [€] CAPACIDAD(i) capacidad máxima de cada fábrica i [cajas] DEMANDA(j) satisfacción demanda de cada mercado j [cajas] ; COSTE .. CT =E= SUMSUMSUMSUM((i,j), C(i,j) * X(i,j)) ; CAPACIDAD(i) .. SUMSUMSUMSUM(j, X(i,j)) =L= A(i) ; DEMANDA(j) .. SUMSUMSUMSUM(i, X(i,j)) =G= B(j) ; Lenguajes de modelado algebraico. GAMS - 39 MODELMODELMODELMODEL TRANSPORTE / COSTE, CAPACIDAD, DEMANDA / ; $include datos.gms$include datos.gms$include datos.gms$include datos.gms SOLVESOLVESOLVESOLVE TRANSPORTE USING LP MINIMIZING CT ;
  • 40. Modelo de transporte en GAMS (iii) * introducción de datos de entrada SETSSETSSETSSETS I fábricas de envasado / VIGO, ALGECIRAS / J mercados de consumo / MADRID, BARCELONA, VALENCIA / ; PARAMETERSPARAMETERSPARAMETERSPARAMETERS A(i) capacidad de producción de la fábrica i [cajas] / VIGO 350 Lenguajes de modelado algebraico. GAMS - 40 / VIGO 350 ALGECIRAS 700 / B(j) demanda del mercado j [cajas] / MADRID 400 BARCELONA 450 VALENCIA 150 / ; TABLETABLETABLETABLE C(i,j) coste transporte entre i y j [€ por caja] MADRID BARCELONA VALENCIA VIGO 0.06 0.12 0.09 ALGECIRAS 0.05 0.15 0.11 ;
  • 41. Modularidad y ocultación de código • Separar formulación de un problema de sus datos. Proteger la confidencialidad de la formulación • Versión RUNTIME de un modelo SAVE y RESTART Lenguajes de modelado algebraico. GAMS - 41 • Secure Work Files Permiten controlar el acceso a símbolos en particular y crear ficheros de rearranque (restart) seguros asociados a licencias GAMS particulares • Funciones dentro de un código
  • 42. Cualificadores de ejecución • SUPPRESS 1 suprime el eco del listado del código • PW 94 PS 999999 especifica la anchura y longitud de la página • CHARSET 1 Lenguajes de modelado algebraico. GAMS - 42 admite caracteres internacionales en las definiciones
  • 43. Directivas $, opciones OPTIONS, cualificadores de modelo (i) • $nombre_directiva • OPTION nombre_opción • nombre_modelo.cualificador • OPTION LIMROW=número_filas_vistas • OPTION LIMCOL=número_columnas_vistas Lenguajes de modelado algebraico. GAMS - 43 • OPTION LIMCOL=número_columnas_vistas • OPTION SOLPRINT=ON(OFF) permite o suprime la información sobre la solución óptima • nombre_modelo.SOLPRINT= 0,1,2 • OPTION DECIMALS=número_decimales en DISPLAY • OPTION ITERLIM=número_máx_iteraciones • OPTION RESLIM=tiempo_ejecución_máx
  • 44. Directivas $, opciones OPTIONS, cualificadores de modelo (ii) • OPTION SOLVEOPT=REPLACE reemplaza los valores de la solución • $CLEAR=nombre_parámetro • nombre_modelo.SOLSLACK presenta las variables de holgura de las restricciones Lenguajes de modelado algebraico. GAMS - 44 holgura de las restricciones • nombre_modelo.HOLDFIXED elimina del problema las variables con valores fijos • nombre_modelo. MODELSTAT código de control devuelto por el optimizador • OPTION SEED=número permite fijar la semilla del generador de números aleatorios
  • 45. Interfaces • GAMS Convert – Transforma un modelo GAMS en un formato utilizable por otros sistemas de modelado u optimizadores • GDX (GAMS Data Exchange) – Permite el intercambio de datos con una hoja de cálculo o base de Lenguajes de modelado algebraico. GAMS - 45 – Permite el intercambio de datos con una hoja de cálculo o base de datos • Matlab
  • 47. Uso avanzado de GAMS • minimización del tiempo de ejecución y/o de la memoria • importante cuando se trata de problemas de muy gran tamaño (> 100.000 x 100.000) o resolución iterativa de numerosos problemas (más de 100) • aparece al usar simulación de Monte Carlo o técnicas de descomposición Lenguajes de modelado algebraico. GAMS - 47 descomposición
  • 48. Tiempo de ejecución de modelos escritos en GAMS • tiempo de creación – formulación del problema específico • tiempo de interfaz – comunicación de entrada/salida entre lenguaje GAMS y optimizador • tiempo de optimización – resolución del problema por el optimizador Lenguajes de modelado algebraico. GAMS - 48 – resolución del problema por el optimizador
  • 49. Análisis de consumos de tiempo/memoria • dependiente del tamaño y estructura de la matriz de restricciones • número de resoluciones (iteraciones) • variación entre soluciones sucesivas de los parámetros estocásticos Lenguajes de modelado algebraico. GAMS - 49
  • 50. Direcciones de mejora • informáticas (asociadas al lenguaje GAMS) • matemáticas (reformulación del problema) • afectan conjuntamente al tiempo de ejecución • criterios dependientes del problema, indican direcciones a Lenguajes de modelado algebraico. GAMS - 50 explorar
  • 51. Control del tiempo y del espacio • OPTION PROFILE, PROFILETOL • Uso de disco virtual en memoria RAM (RAMDRIVE) • Cualificador STEPSUM da tiempo de reloj • ABORT condición • La supresión de la información de salida (lista y tabla de referencias entre los símbolos del código) en el nombre_fichero.lst se consigue con las siguientes opciones. Lenguajes de modelado algebraico. GAMS - 51 siguientes opciones. $OFFSYMLIST, OFFSYMXREF, OFFUELLIST, OFFUELXREF OPTION LIMROW=0, LIMCOL=0, SOLPRINT=OFF, SYSOUT=OFF nombre_modelo.SOLPRINT=2 ; y escribiendo en la invocación de GAMS gams nombre_modelo.gms suppress 1 Además, también se puede suprimir la información en pantalla que produce el optimizador con los consiguientes parámetros (por ejemplo, para CPLEX simdisplay 0 bardisplay 0 mipdisplay 0). gams nombre_modelo.gms ll 0 lo 0
  • 52. Orden de índices en instrucciones de asignación o en restricciones • orden de los índices consistente en todos los elementos del modelo PP(i,j,k) = QQ(k,j,i) * 1.1 ; NO PP(i,j,k) = QQ(i,j,k) * 1.1 ; SI • orden de barrido en instrucciones reiterativas coherente Lenguajes de modelado algebraico. GAMS - 52 • orden de barrido en instrucciones reiterativas coherente • hacer uso extensivo de condiciones de exclusión mediante el uso de conjuntos dinámicos
  • 53. Direcciones a explorar 1. selección de optimizador y algoritmo de optimización y uso de últimas versiones 2. detección de infactibilidades (parámetro iis de CPLEX) 3. análisis de sensibilidad (disponible en CPLEX y OSL) 4. ajuste de parámetros del optimizador 5. uso de bases previas (parámetro ) Lenguajes de modelado algebraico. GAMS - 53 5. uso de bases previas (parámetro BRATIO=0) 6. mejoras en el barrido de las numerosas optimizaciones 7. resolución de problemas MIPº
  • 54. Comparación entre optimizadores y método de optimización Tiempo p.u. Iter Tiempo p.u. Iter CPLEX 6.0 Punto interior 41.8 1.0 32 237.3 1.0 35 Simplex dual 99.8 1.4 12692 1812.6 6.6 48695 Simplex primal 156.2 3.7 21622 1217.5 5.1 50280 MINOS 5.3 Simplex primal 1863.6 44.6 23927 --- --- --- OSL 2.1 Lenguajes de modelado algebraico. GAMS - 54 OSL 2.1 Punto interior 163.9 3.9 10798 774.4 3.3 19524 Simplex primal 530.9 12.7 12685 7426.6 31.3 62019 Tiempo para un ordenador Pentium II con 128 MB a 233 MHz
  • 55. Selección de optimizador y método de optimización en LP •No existe una regla clara •No hay regla para determinar qué algoritmo simplex es más eficiente. Muy sensible a la estructura del problema •Probar y observar Método simplex Hasta 10.000 x 10.000 Lenguajes de modelado algebraico. GAMS - 55 Método simplex Análisis de sensibilidad, problemas MIP Método de punto interior Desde 10.000 x 10.000 hasta 100.000 x 100.000 Métodos de descomposición Más de 100.000 x 100.000
  • 56. Uso de parámetros del optimizador • nombre_modelo.OPTFILE= 1,2,... Parámetros en ficheros cplex.opt, cplex.op2, ... • OPTION SYSOUT=ON(OFF) escribe fichero de opciones del optimizador Lenguajes de modelado algebraico. GAMS - 56
  • 57. Detección de infactibilidades • Parámetros de CPLEX – Anular el preproceso preind 0 – Detección del conjunto mínimo de infactibilidades iis yes Lenguajes de modelado algebraico. GAMS - 57
  • 58. Análisis de sensibilidad • Parámetros de CPLEX – En coeficientes de función objetivo objrng all – En cotas de restricciones rhsrng all Lenguajes de modelado algebraico. GAMS - 58
  • 59. Resolución de problemas MIP • OPTCA=criterio_abs_optimalidad en MIP • OPTCR=criterio_rel_optimalidad en MIP (poner siempre =0) • nombre_modelo.PRIOROPT = 1 • nombre_var.PRIOR = número • Las variables más importantes deben ser las primeras en Lenguajes de modelado algebraico. GAMS - 59 ramificar (mayor prioridad, i.e., número más bajo) • SOS1 (como mucho una variable es diferente de 0 en un conjunto), SOS2 (como mucho dos variables son diferentes de 0 en un conjunto y deben ser adyacentes)
  • 60. Mejoras en la formulación • reformulación manual del problema (especialmente indicado en problemas MIP) • no crear variables ni ecuaciones superfluas • reducción de número de restricciones y/o elementos • escalado alrededor de 1 (especialmente indicado en problemas NLP) Lenguajes de modelado algebraico. GAMS - 60 problemas NLP) • partir de un punto inicial (especialmente indicado en problemas NLP) • acotamiento de variables
  • 61. Cálculo analítico del número de restricciones y variables • Permite conocer a priori tamaños de problemas en función de parámetros del sistema • Indica dónde se puede mejorar el modelado sin gran incremento de tamaño • Permite comprobar la formulación matemática del problema Lenguajes de modelado algebraico. GAMS - 61 RESTRICCIONES 2 (2 1) (3 1) ( )T P B C H SP T NSP D KL T+ + + + + + + + + VARIABLES ( 2 ) ( 1) (2 3 2 1)C H P C H T SP T NSP B D H KL T− − + + + + − + + + + + −
  • 62. • La reducción conseguida por el preproceso nos indica aproximadamente las posibilidades de mejora manual • Reducción de los tamaños de dos problemas con la opción de preproceso de CPLEX 6.0 R V E R V E Sin preproceso 19047 27262 81215 48971 63935 187059 Preproceso Lenguajes de modelado algebraico. GAMS - 62 Con preproceso 15744 21982 51079 40794 56133 135361 Decremento 17,3% 19,4% 37,1% 16,7% 12,2% 27,6% • Comparación entre preprocesos R V E R V E Sin preproc 19047 27847 82295 49715 64679 189477 Preproc CPLEX -14,8% -19,3% -36,2% -17,9% -13,2% -28,6% Preproc OSL -4,9% 0,0% -2,4% -15,6% 0,0% -9,1%
  • 63. Estructura de la matriz de restricciones y escalado • Parámetros de GAMSCHK advisory identifica posibles variables y ecuaciones no acotadas o infactibles analysis analiza la estructura de la matriz de restricciones blockpic dibuja la matriz de restricciones por bloques blocklist dibuja el tamaño y características de cada bloque • Parámetros de CPLEX – Calidad numérica de la solución Lenguajes de modelado algebraico. GAMS - 63 – Calidad numérica de la solución quality yes – Escalado scaind 0 • Opciones de escalado en GAMS – nombre_modelo.SCALEOPT = 1 ; – nombre_var.SCALE=número ; – nombre_ec.SCALE=número ;
  • 64. Estructura de la matriz de restricciones • Ciertos algoritmos aprovechan la estructura del problema, i.e., técnicas de descomposición Lenguajes de modelado algebraico. GAMS - 64
  • 65. Récords actuales en LP • problema lineal estocástico de 1.100.000 x 1.600.000 x 4.400.000 resuelto en 20 min • problema lineal de 150.000 x 227.000 x 566.000 resuelto en 5 min o problema lineal de 216.000 x 749.000 x 2.137.000 resuelto en 15 min • problema de 20.000 x 25.000 x 80.000 resuelto numerosas Lenguajes de modelado algebraico. GAMS - 65 • problema de 20.000 x 25.000 x 80.000 resuelto numerosas veces en un tiempo medio de menos de 1 s • problema de 50.000 x 65.000 x 200.000 resuelto numerosas veces en un tiempo medio de 2 s Tiempos para procesador Pentium III a 1.1 GHz
  • 66. Modelado en GAMS Ejemplo de sistemas de energía eléctricaEjemplo de sistemas de energía eléctrica Flujo óptimo de cargas en continua DC-OPF Andrés Ramos Álvaro Baíllo
  • 67. Índice • El problema del flujo de cargas. • El problema del flujo de cargas óptimo (OPF). • Formulación en lenguaje GAMS. • Resolución del problema. • Análisis de resultados. Lenguajes de modelado algebraico. GAMS - 67
  • 68. El problema del flujo de cargas (I)1 • Un sistema eléctrico interconectado está constituido por: – Una red de transporte de energía, formada por: • Ramas: Líneas y transformadores. • Nudos: Barras de subestaciones (buses). – Centrales de generación de energía, situadas en ciertos nudos (subestaciones de generación). – Centros de consumo de energía, situados en otros nudos Lenguajes de modelado algebraico. GAMS - 68 – Centros de consumo de energía, situados en otros nudos (subestaciones de distribución). • Cuestión fundamental: La energía eléctrica debe producirse en el mismo instante en que es consumida (no es almacenable de forma económica a gran escala). 1Elgerd, O.E. “Electric Energy Systems Theory: An Introduction.” Mc-Graw Hill Series in Electrical Engineering, 1983, pp. 219-273
  • 69. El problema del flujo de cargas (II) • Ejemplo de red de transporte2 Lenguajes de modelado algebraico. GAMS - 69 2Red Eléctrica de España. Operación del Sistema Eléctrico. Informe 1999. Disponible en www.ree.es
  • 70. El problema del flujo de cargas (III) • Situación de las centrales de generación2 Lenguajes de modelado algebraico. GAMS - 70 2Red Eléctrica de España. Operación del Sistema Eléctrico. Informe 1999. Disponible en www.ree.es
  • 71. El problema del flujo de cargas (IV) • Entre esos los centros de generación y los de consumo, la energía fluye por las líneas y centros de transformación de acuerdo con las leyes de Kirchoff. • Es necesario vigilar esos flujos de potencia en tiempo real: – Los elementos de la red tienen unos límites de funcionamiento que no deben ser rebasados: Lenguajes de modelado algebraico. GAMS - 71 • Límites térmicos de las líneas. • Límites de tensiones de los nudos. – El sistema de transporte de estudio puede estar interconectado con otros y existir un contrato de intercambio de potencia que hay que mantener (e.g. España con Francia o con Marruecos). – Un adecuado control del flujo de potencias permite evitar que el fallo de algún elemento tenga consecuencias desastrosas.
  • 72. El problema del flujo de cargas (V) • El análisis del flujo de cargas también se usa en planificación: – La empresa operadora de la red puede: • Planificar el mantenimiento de la red de transporte. • Planificar la expansión del sistema de transporte. – Las empresas de generación pueden: • Decidir el emplazamiento de nuevas instalaciones de generación Lenguajes de modelado algebraico. GAMS - 72 • Decidir el emplazamiento de nuevas instalaciones de generación (influyen otros factores como el fácil acceso al suministro de combustible). • La configuración de la red de transporte provoca diferencias en el precio de la energía eléctrica entre los distintos nudos de la red debido a las pérdidas o las congestiones.
  • 73. El problema del flujo de cargas (VI) • Ecuaciones del flujo de cargas: Rij+jXiji jIij Viejθi Viejθj ( ) ( ) * cos sin cos sin j i ijij iS V e I V j V j θ θ θ θ θ = = − − − Lenguajes de modelado algebraico. GAMS - 73 • Operando se llega a: ( ) ( ) ( )cos sin cos sin cos sin i i i j j j i i i ij ij V j V j V j R jX θ θ θ θ θ θ − − − = + − ( ) ( )( )( )2 2 2 1 sin cosij ij i j i j ij i i j i j ij ij P X VV R V VV R X θ θ θ θ= − + − − + ( )( ) ( )( )2 2 2 1 cos sinij ij i i j i j ij i j i j ij ij Q X V VV R VV R X θ θ θ θ= − − − − +
  • 74. El problema del flujo de cargas (VII) • Las pérdidas en la línea vienen dadas por la suma de la potencia que sale de i hacia j y la potencia que sale de j hacia i: ( )( )2 2 2 2 2 cosij ij ji i i i j i j ij ij R P P V V VV R X θ θ+ = + − − + Lenguajes de modelado algebraico. GAMS - 74 • El flujo de cargas consiste en un sistema de ecuaciones no lineal. • La resolución del problema del flujo de cargas se lleva a cabo mediante sofisticadas herramientas informáticas (e.g. PSS/E).
  • 75. El problema del flujo de cargas (VII) • Variables incontroladas: escapan al control de la empresa operadora de red: – Potencias activa y reactiva en los nudos de consumo. • Variables de control: pueden ser controladas: – Potencias activa y reactiva en los nudos de generación • Variables de estado: describen el sistema: Lenguajes de modelado algebraico. GAMS - 75 • Variables de estado: describen el sistema: – Módulos y argumentos de las tensiones de nudo. • Cuatro tipos de nudo: |V| θ P Q – Nudo de generación: * * – Nudo de consumo: * * – Nudo de referencia: * * (*) – Nudo balance: * *: Conocido
  • 76. El problema del flujo de cargas (VIII) • Simplificaciones (flujo de cargas DC): – Vi = Vj = V – Xij >> Rij – ( ) ( ) cos 1 sin i j i j i j i j θ θ θ θ θ θ θ θ  − ⇒  − − ≃ ≃ ≃ Lenguajes de modelado algebraico. GAMS - 76 • Flujo de activa: • Pérdidas: ( )2 i j i j ij B ij ij V P S X x θ θ θ θ− − = = ( )( ) ( )( ) 2 2 2 2 2 2 1 cos 2 1 cos ij ij ji i j ij ij ij B i j ij ij R P P V R X r S r x θ θ θ θ + = − − + = − − +
  • 77. El problema del flujo de cargas óptimo (I) • El problema del flujo de cargas considera como dato la potencia activa producida en los nudos de generación. • Sin embargo, en la planificación de la generación para el corto plazo, puede ser interesante decidir la producción de cada generador teniendo en cuenta: – Costes variables de producción de los generadores. Lenguajes de modelado algebraico. GAMS - 77 – Costes variables de producción de los generadores. – Límites físicos de los elementos de la red de transporte. – Pérdidas. • El problema de decidir la explotación de la generación a corto plazo considerando la red de transporte se denomina flujo de cargas óptimo (Optimal Power Flow) • Vamos a plantear un OPF que represente la red de transporte mediante la simplificación DC.
  • 78. El problema del flujo de cargas óptimo (II) • Se trata de minimizar los costes variables de operación en un intervalo horario: – costes variables de los grupos térmicos – costes de oportunidad de los grupos hidráulicos cuando producen por encima de su potencia programada. – coste variable de la potencia no suministrada. T H N ∑ ∑ ∑ Lenguajes de modelado algebraico. GAMS - 78 – Datos: vt: coste variable de generación del grupo térmico t. vh: coste de oportunidad de la hidráulica de emergencia. vh: coste variable de la potencia no suministrada. – Variables: GTRt potencia producida por el grupo térmico t. GHEh potencia hidráulica de emergencia del grupo h. PNSn potencia no suministrada en el nudo n. 1 1 1 T H N t t h h n n t h n v GTR v GHE v PNS = = = + +∑ ∑ ∑
  • 79. El problema del flujo de cargas óptimo (III) • Cotas de las variables del equipo generador: – Potencia térmica máxima y mínima del grupo t: – La potencia hidráulica programada máxima del grupo h: t t tGTR GTR GTR≤ ≤ 0 GHP GHP≤ ≤ Lenguajes de modelado algebraico. GAMS - 79 – La potencia hidráulica de emergencia máxima del grupo h: – La potencia no suministrada como mucho será la demanda del nudo. 0 h hGHP GHP≤ ≤ ( )0 h h hGHE GHM GHP≤ ≤ − 0 n nPNS D≤ ≤
  • 80. El problema del flujo de cargas óptimo (IV) • Modelado de la red de transporte: – 1ª Ley Kirchoff: Balance entre generación y demanda de nudo: – 2ª Ley Kirchoff: Flujo de potencia activa por las líneas: 1 1 ( ) I J t h h n i n n j n t n h n i j GTR GHP GHE PNS F F D→ → ∈ ∈ = = + + + + − =∑ ∑ ∑ ∑ Lenguajes de modelado algebraico. GAMS - 80 – Cotas de los flujos: i j i j i j B X F S θ θ→ → = − i j i j i jF F F→ → →− ≤ ≤
  • 81. El problema del flujo de cargas óptimo (V) • Modelado de la red de transporte: – Formulación alternativa de la 1ª Ley Kirchoff: 1 1 ( ) ( ) / ( ) / t h h n t n h n I J i n B i n n j B n j n i j GTR GHP GHE PNS S X S X Dθ θ θ θ ∈ ∈ → → = = + + + + − − − = ∑ ∑ ∑ ∑ Lenguajes de modelado algebraico. GAMS - 81 – Límites térmicos de las líneas como restricciones: – Esta formulación tiene menos variables, pero más restricciones. i j i j i j B X F S θ θ → →− ≤ i j i j i j B X F S θ θ → →− ≥ −
  • 82. El problema del flujo de cargas óptimo (VI) • Si se consideran las pérdidas: – Las pérdidas óhmicas de una línea se modelan con una expresión no lineal: – Las pérdidas se incluyen como dos cargas adicionales iguales en los i2 2 2 1 cos( ) i j i j i j i j B j r L S r X θ θ → → → →  = − − + Lenguajes de modelado algebraico. GAMS - 82 – Las pérdidas se incluyen como dos cargas adicionales iguales en los extremos de la línea. – 1ª Ley Kirchhoff: – siendo las pérdidas en el nudo n: 1 1 ( ) I J t h h n i n n j n n t n h n i j GTR GHP GHE PNS F F D L→ → ∈ ∈ = = + + + + − = +∑ ∑ ∑ ∑ 1 1 / 2 I J n i n n j i j L L L→ → = =   = +    ∑ ∑
  • 83. Formulación del DC-OPF en GAMS (I) $TITLE Flujo de cargas en corriente continua con y sin pérdidas SETSSETSSETSSETS ND nudos GR generadores TR(gr) generadores térmicos HD(gr) generadores hidráulicos NDGR(nd,gr) localización de generadores en nudos LN(nd,nd) líneas CN características nudos / dem, cpns / CG características generadores / coste, pmin, pmax, cshd, hdrpro, hdrmax / Lenguajes de modelado algebraico. GAMS - 83 CL características líneas / r, x, flmax / ALIASALIASALIASALIAS (nd, ni, nf) ; SCALARSSCALARSSCALARSSCALARS SBASE potencia base [GW] / 0.1 / OPCPRD opción de modelado de las pérdidas (no 0 si 1) / 0 / * definición de la estructura de datos sin incluir explícitamente éstos PARAMETERSPARAMETERSPARAMETERSPARAMETERS DATNUD(nd,cn) datos de los nudos DATGEN(gr,cg) datos de los generadores DATLIN(nd,nd,cl) datos de las líneas
  • 84. Formulación del DC-OPF en GAMS (II) * planteamiento matemático del problema VARIABLESVARIABLESVARIABLESVARIABLES COSTE función objetivo [k€] TT(nd) ángulo de tensión en el nudo [rad] FL(ni,nf) flujo de potencia [GW] POSITIVEPOSITIVEPOSITIVEPOSITIVE VARIABLESVARIABLESVARIABLESVARIABLES GTR(gr) generación térmica [GW] GHP(gr) generación hidráulica programada [GW] Lenguajes de modelado algebraico. GAMS - 84 GHP(gr) generación hidráulica programada [GW] GHE(gr) generación hidráulica de emergencia [GW] PNS(nd) potencia no suministrada [GW] PRDAS(nd) pérdidas de las líneas conectadas al nudo [GW] EQUATIONSEQUATIONSEQUATIONSEQUATIONS FO costes de generación y de indisponibilidad [k€] KR1F(nd) primera ley de Kirchhoff para cada nudo en función de flujos KR1A(nd) primera ley de Kirchhoff para cada nudo en función de ángulos FLJ(ni,nf) flujo en función de ángulos de tensión FLJP(ni,nf) diferencia angular máxima en cada línea en un sentido FLJN(ni,nf) diferencia angular máxima en cada línea en otro sentido EPRDAS(nd) pérdidas de las líneas conectadas al nudo ;
  • 85. Formulación del DC-OPF en GAMS (III) FO .. COSTE =E= SUMSUMSUMSUM[tr, DATGEN(tr,'coste') * GTR(tr)] + SUMSUMSUMSUM[hd, DATGEN(hd,'cshd') * GHE(hd)] + SUMSUMSUMSUM[nd, DATNUD(nd,'cpns') * PNS(nd)] ; KR1F(nd) .. SUMSUMSUMSUM[NDGR(nd,tr), GTR(tr)] + SUMSUMSUMSUM[NDGR(nd,hd), GHP(hd) + GHE(hd)] + SUMSUMSUMSUM[LN(ni,nd), FL(ni,nd)] - SUMSUMSUMSUM[LN(nd,nf), FL(nd,nf)] + PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ; KR1A(nd) .. SUMSUMSUMSUM[NDGR(nd,tr), GTR(tr)] + SUMSUMSUMSUM[NDGR(nd,hd), GHP(hd) + GHE(hd)] + SUMSUMSUMSUM[LN(ni,nd), (TT(ni) - TT(nd)) / DATLIN(ni,nd,'x')] * SBASE - SUMSUMSUMSUM[LN(nd,nf), (TT(nd) - TT(nf)) / DATLIN(nd,nf,'x')] * SBASE + PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ; Lenguajes de modelado algebraico. GAMS - 85 + PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ; FLJ(LN(ni,nf)) .. FL(ni,nf) * DATLIN(ni,nf,'x') / SBASE =E= TT(ni) - TT(nf) ; FLJP(LN(ni,nf)) .. TT(ni) - TT(nf) =L= DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ; FLJN(LN(ni,nf)) .. TT(ni) - TT(nf) =G= - DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ; EPRDAS(nd) .. PRDAS(nd) =E= SBASE * SUMSUMSUMSUM[LN(ni,nd), (1-cos(TT(ni) - TT(nd)))* DATLIN(ni,nd,'r')/(DATLIN(ni,nd,'r')**2+DATLIN(ni,nd,'x')**2)] + SBASE * SUMSUMSUMSUM[LN(nd,nf), (1-cos(TT(nd) - TT(nf)))* DATLIN(nd,nf,'r')/(DATLIN(nd,nf,'r')**2+DATLIN(nd,nf,'x')**2)] ;
  • 86. Formulación del DC-OPF en GAMS (IV) MODELMODELMODELMODEL FC / FO, KR1F, FLJ / ; MODELMODELMODELMODEL FCA / FO, KR1A, FLJP, FLJN / ; MODELMODELMODELMODEL FCP / FO, KR1F, FLJ, EPRDAS / ; Lenguajes de modelado algebraico. GAMS - 86
  • 87. Formulación del DC-OPF en GAMS (V) 1 2 3 8 Lenguajes de modelado algebraico. GAMS - 87 8 54 6 7 9
  • 88. Formulación del DC-OPF en GAMS (VI) * caso de estudio *** esta parte iría en ficheros independientes y se introduciría con $include SETSSETSSETSSETS ND nudos / nudo-1 * nudo-9 / GR generadores / genr-1 * genr-9, genh-1 * genh-4 / NDGR(nd,gr) localización de generadores en nudos / nudo-1 . genr-1 nudo-1 . genr-2 nudo-1 . genr-3 nudo-2 . genr-4 Lenguajes de modelado algebraico. GAMS - 88 nudo-2 . genr-4 nudo-2 . genr-5 nudo-2 . genr-6 nudo-3 . genr-7 nudo-3 . genr-8 nudo-3 . genr-9 nudo-1 . genh-1 nudo-3 . genh-2 nudo-6 . genh-3 nudo-8 . genh-4 / ;
  • 89. Formulación del DC-OPF en GAMS (VII) TABLETABLETABLETABLE DATNUD(nd,cn) datos de los nudos dem cpns * MW €/MWh nudo-1 1 150 nudo-2 240 150 nudo-3 40 150 nudo-4 160 150 nudo-5 240 150 nudo-6 80 150 nudo-7 100 150 nudo-8 15 150 Lenguajes de modelado algebraico. GAMS - 89 nudo-8 15 150 nudo-9 100 150 ;
  • 90. Formulación del DC-OPF en GAMS (VIII) TABLETABLETABLETABLE DATGEN(gr,cg) datos de los generadores coste pmin pmax cshd hdrpro hdrmax * €/MWh MW MW €/kWh MW MW genr-1 65 0 75 genr-2 70 0 125 genr-3 75 0 100 genr-4 59 0 100 genr-5 67 0 50 genr-6 74 0 50 genr-7 61 0 100 genr-8 76 0 50 Lenguajes de modelado algebraico. GAMS - 90 genr-8 76 0 50 genr-9 80 0 50 genh-1 10 300 300 genh-2 10 160 160 genh-3 10 150 150 genh-4 10 100 100 ;
  • 91. Formulación del DC-OPF en GAMS (IX) TABLETABLETABLETABLE DATLIN(ni,nf,cl) datos de las líneas r x flmax * p.u. p.u. MW nudo-1 . nudo-2 0.0777 0.2913 500 nudo-1 . nudo-4 0.0544 0.2041 500 nudo-2 . nudo-3 0.0424 0.1695 500 nudo-2 . nudo-4 0.1 0.4 500 nudo-2 . nudo-5 0.05 0.2 500 nudo-2 . nudo-6 0.1 0.4 500 nudo-3 . nudo-5 0.0248 0.099 500 nudo-3 . nudo-8 0.1 0.4 500 Lenguajes de modelado algebraico. GAMS - 91 nudo-3 . nudo-8 0.1 0.4 500 nudo-4 . nudo-6 0.15 0.6 500 nudo-5 . nudo-6 0.05 0.2 500 nudo-5 . nudo-8 0.1 0.4 500 nudo-6 . nudo-7 0.15 0.6 500 nudo-6 . nudo-9 0.05 0.2 500 nudo-7 . nudo-9 0.05 0.2 500 ; *** hasta aquí son ficheros independientes
  • 92. Formulación del DC-OPF en GAMS (X) * activación de generadores térmicos hidráulicos y líneas TR(gr) $DATGEN(gr,'pmax') = YESYESYESYES ; HD(gr) $DATGEN(gr,'hdrpro') = YESYESYESYES ; LN(ni,nf) $DATLIN(ni,nf,'x') = YESYESYESYES ; * escalación de datos de potencia a GW Lenguajes de modelado algebraico. GAMS - 92 * escalación de datos de potencia a GW DATNUD(nd,'dem') = DATNUD(nd,'dem') / 1e3 ; DATGEN(tr,'pmin') = DATGEN(tr,'pmin') / 1e3 ; DATGEN(tr,'pmax') = DATGEN(tr,'pmax') / 1e3 ; DATGEN(hd,'hdrpro') = DATGEN(hd,'hdrpro') / 1e3 ; DATGEN(hd,'hdrmax') = DATGEN(hd,'hdrmax') / 1e3 ; DATLIN(ln,'flmax') = DATLIN(ln,'flmax') / 1e3 ;
  • 93. Formulación del DC-OPF en GAMS (XI) * acotamiento de las variables (cotas físicas) GTR.LO(tr) = DATGEN(tr,'pmin') ; GTR.UP(tr) = DATGEN(tr,'pmax') ; GHP.UP(hd) = DATGEN(hd,'hdrpro') ; GHE.UP(hd) = DATGEN(hd,'hdrmax') - DATGEN(hd,'hdrpro') ; PNS.UP(nd) = DATNUD(nd,'dem') ; FL.LO(ln) = - DATLIN(ln,'flmax') ; Lenguajes de modelado algebraico. GAMS - 93 FL.LO(ln) = - DATLIN(ln,'flmax') ; FL.UP(ln) = DATLIN(ln,'flmax') ; * cotas algorítmicas de los ángulos TT.LO(nd) = - 1.5 ; TT.UP(nd) = 1.5 ; * nudo de referencia TT.FX(nd) $(ORDORDORDORD(nd) EQ 1) = 0 ;
  • 94. Formulación del DC-OPF en GAMS (XII) * opción sin pérdidas OPCPRD = 0 ; * flujo de cargas con variables de flujo SOLVESOLVESOLVESOLVE FC USING LP MINIMIZING COSTE ; * control sobre aprovechamiento de base previa OPTIONOPTIONOPTIONOPTION BRATIO = 1 ; Lenguajes de modelado algebraico. GAMS - 94 OPTIONOPTIONOPTIONOPTION BRATIO = 1 ; * flujo de cargas con variables de ángulos de tensión SOLVESOLVESOLVESOLVE FCA USING LP MINIMIZING COSTE ; * opción con pérdidas OPCPRD = 1 ; * flujo de cargas con variables de flujo SOLVESOLVESOLVESOLVE FCP USING NLP MINIMIZING COSTE ;
  • 95. Lenguajes de modelado algebraico. GAMS - 95 Andrés Ramos http://www.iit.upcomillas.es/aramos/ Andres.Ramos@upcomillas.es