non-linear dual dynamic programming (nl-ddp) · 2017-10-12 · 1 non-linear dual dynamic...
TRANSCRIPT
1
NON-LINEAR DUAL DYNAMIC PROGRAMMING
(NL-DDP)
DOCUMENTO DE TRABAJO - DW-DT-028-003
Jesús María Velásquez Bermúdez
DecisionWare Ltda.
Medellin, julio de 2005
2
NON-LINEAR DUAL DYNAMIC PROGRAMMING
(NL-DDP)
Jesús María Velásquez Bermúdez
DecisionWare Corporation
ABSTRACT
The work presents theoretical considerations about the solution of non linear dynamic
optimization problems integrating the Generalized Benders Theory, developed by Geoffrion for special non-linear problems, with the Dynamic Programming approach and with the
concepts of Control Theory. The NL-DDP can be considered as an extension of the called Generalized Dual Dynamic Programming (GDDP), developed by Velasquez, that is a
generalization of two previous approaches known as Dual Dynamic Programming (DDP):
The first is the work developed by Pereira and Pinto which was revised by Velásquez, Restrepo and Campo. The second is the work developed by Read and others. Additionally,
NL-DDP can be considered as a specialization of the called Nested Benders Decomposition techniques (Ruszczynski and Birge).
1. DESCOMPOSICIÓN GENERALIZADA DE BENDERS (GBD)
La Teoría de Descomposición Generalizada de Benders (GBD) formulada por A. M.
Geoffrion considera el problema de optimización P: compuesto por dos tipos de variables:
las y, correspondientes a las variables de coordinación (variables complicadas), y las x, correspondientes a las coordinadas.
P: = { Max f(x,y) | G(x,y) 0 ; xX ; yY }
Para convergencia la GBD restringe el modelo sobre x a un problema convexo para
cualquier valor de yY. El espacio Y de existencia de y puede ser continuo o discreto, lo
que permite que las componentes de y sean variables continuas, enteras y/o binarias.
El problema P: puede partirse en dos subproblemas uno sobre y y otro sobre x. Si se define v(y) como el valor óptimo de la función objetivo correspondiente al problema sobre x para
un valor dado de y:
v(y) = { Maxx f(x,y) | G(x,y) 0 ; xX }
es posible formular un problema equivalente CY:
CY: = { Max v(y) |
yY ; y ;
3
v(y) = { Maxx f(x,y) | G(x,y) 0 ; xX }
donde corresponde al conjunto de y que para los cuales existe solución factible a P:, esto
es
= { y | G(x,y) 0 ; para algún xX }
El subproblema SP(y): para evaluar v(y) es
SP(y): = { Maxx f(x,y) | G(x,y) 0 ; xX }
Consideremos la función Lagrangeana de SP(y): (definida de tal forma que los
multiplicadores de Lagrange correspondan a la derivada de la función objetivo con respecto al vector de recursos) es
L*(x,| y) = f(x,y) - G(x,y)
donde corresponde al vector de multiplicadores de Lagrange (variables duales), que de
acuerdo a condiciones KKT debe ser positivo e igual a
= v(y)
Para un valor óptimo de SP(Y): se cumple que en dicho punto se maximiza el Lagrangeano
con respecto a x. Adicionalmente se cumple v(y) que
v(y) = L*(x,|y) = f(x,y) - G(x,y)
Si se conoce un punto óptimo-factible (xk, k), obtenido para un valor yk como solución a
SP(yk):, se debe cumplir para todo y
v(y) L*(xk, k|y) = f(xk,y) - k G(xk,y)
Por lo anterior el problema CY: puede escribirse como
CY: = { Max v(y) |
yY ; y ;
v(y)L*(xk, k|y) = f(xk,y) - k G(xk,y) kIF }
donde IF representa el conjunto de puntos factibles-óptimos que se conocen como consecuencia de resolver SP(y):.
SP(yk): puede tener tres posibles soluciones: no acotada, factible y óptima, y no factible. En caso de solución no acotada en SP(yk): se puede concluir que P: también tiene solución
no acotada. En caso de solución factible y óptima, SP(yk): proporciona información para generan un corte en la zona de factibilidad de y por razones de optimalidad, es decir se
eliminan valores de y que no pueden ser óptimos. Este corte tiene la forma
4
v(y)f(xk,y) - k G(xk,y)
En caso de que no exista solución factible a SP(yk): se debe incluir un corte por razones de
la relación entre la zona de factibilidad de y y la zona de factibilidad de x. La no factibilidad implica que no es posible satisfacer
G(x,yk) 0
para todas las funciones vectoriales que definen la restricción. Lo anterior quiere decir
que para al menos una restricción
gi(x,yk) 0
La condición de factibilidad que se debe imponer sobre y se expresa como:
L*(x,k|y) = supremoxX ()T G(x,y) 0
i 2. PROGRAMACIÓN DINÁMICA DUAL (PDD)
La PDD, tal como fue definida por M.F. Pereira [12][21], está orientada a resolver un
problema con una estructura apropiada para utilizar el enfoque de programación
dinámica apoyándose en los principios de la teoría propuesta por J. F. Benders [23].
El problema al que se aplica la PDD es:
DDP: = { Min t=1,T ctT xt | Atxt = bt - Et-1xt-1 , t=1,T ; xtR+ }
donde xt representa conjuntamente a las variables de estado.
La teoría que soporta la PDD consideremos se concentra en la determinación de la
función de costo futuro t(xt) que determina el costo de operación como función del estado
del sistema al final del periodo t
Con base en la Teoría de Benders (TB) propone la solución del problema DDP con base en
la solución coordinada de un conjunto de problemas del tipo:
CPt(xt-1): = { Min ctTxt + t(xt) |
Atxt = bt - Et-1xt-1 ; xtR+ ;
t(xt) (kt+1)T [bt+1 - Etxt] , k=1,IT(t) }
donde IT(t) corresponde al número de cortes que se han generado a nivel del coordinador
CPt(xt), y kt+1 al vector de variables duales de las restricciones At+1xt+1=bt+1-Etxt obtenido
en la k-ésima solución del problema CPt+1(xt):
5
El problema CPt(xt): cumple las funciones de un coordinador del tipo Benders. El
problema correspondiente al coordinador de la primera etapa, es equivalente al problema original, ya que el enfoque de Benders es una reformulación del problema con la finalidad
de facilitar su solución y no implica aproximación alguna. En otras palabras mediante la PDD se prueba que la cadena de problemas
CPt(xt-1): = { Min ctTxt + t(xt) |
Atxt = bt – Et-1xt-1 ; xtR+ ;
t(xt) (kt+1)T [bt – Etxt] , k=1,IT(t) }
es equivalente al problema original P:. La concepción de la programación dinámica dual
convierte un problema de múltiples períodos en múltiples problemas de un período
parametrizados por los estados del anterior periodo y teniendo en cuenta la estimación de la función de costo futuro para los siguientes períodos. O sea que el problema
transformado para evaluar CPt(xt-1) es función de las variables xt-1 y se relaciona con los
valores de las variables de los períodos posteriores por medio de la función t(xt) y con la
de las variables del periodo anterior por medio de la parametrización en xt-1.
En definitiva la función t(xt) que representa el costo futuro desde la etapa t hasta el final
del horizonte T se determina por medio del conjunto de cortes de Benders
t(xt) (kt+1)T [bt – Etxt] , k=1,IT(t)
La revisión realizada por Velásquez [13] y por Velásquez et. al. [14] a la PDD implica la inclusión de un término faltante en los cortes de Benders considerados originalmente por
M. F, Pereira [12][21]. Los nuevos cortes tienen la siguiente forma
t(xt) + kt+1
TEtxt t+1k , k =1,IJ(t,j)
donde IJ(t,j) representa el número de cortes incluidos en el problema coordinador CPt-1(xt-
1) cuando se resuelve el problema CPt(xjt-1) y t
j es un valor constante calculado como
tj = {
jtTbt t = T
jtTbt + k=1,IJ(t,j) k,j
tt+1k t = 1 , T-1
donde k,jt representa la variable dual del k-ésimo corte de Benders en el problema CPt(xj
t-
1).
Si no se incluye el término de corrección la DDP corresponde a un método aproximado y no a un método exacto. Con respecto a esta aproximación Yang y Read [31] dicen: "Rather
than produce exact decision rules for the entire state-space and planning horizon, it focuses on producing a good solution for the first period, and only forms approximate
decision rules for later periods ...".
6
Como comentarios parciales preliminares se debe tener en cuenta que la DDP implica la
descomposición multinivel (en el dominio del tiempo) de múltiples problemas que se
descomponen utilizando BT, generando nuevos problemas que nuevamente son descompuestos utilizando BT. Esto implica el uso “anidado” de la BT tal como la
describen Ruszczynski [34] y Birge [35]. Este aspecto es importante si se desean extender los conceptos de la DDP al uso de la GDB, ya que es necesario extender el anidamiento de
cortes que corresponden a la corrección realizada por Velásquez et at.
Por otro lado se debe tener en cuenta que la “complejidad” de las variables de la DDP es
asociada al tiempo, y no a la estructura lineal – no-lineal del problema que se pretende resolver. También se debe notar que la PDD ignora los cortes de factibilidad (basados en
el lema de farkas), lo que implícitamente asume problemas que siempre tienen solución
factible.
3. NON-LINEAR DUAL DYNAMIC PROGRAMMING (NLDDP)
3.1. FORMULACIÓN MATEMÁTICA
El primer paso es formular el problema en términos similares a los utilizados en la DDP.
Asumiendo una función objetivo lineal, el problema no-lineal se puede formular como:
{ Min z = t=1,...,T ctT xt | Gt(xt ,xt-1)=bt t=1,...,T ; xtR }
(1)
donde z es la función objetivo, ct es un vector de costos, xt es el vector de decisiones,
Gt(xt,xt-1) una función vectorial no-lineal y bt el vector de recursos compuesto por términos independientes.
Se debe notar que la restricción no-lineal Gt(xt,xt-1)=bt reemplaza el conjunto de
restricciones lineales expresadas como Atxt+Et-1xt-1 bt en el artículo DDP-V.
De acuerdo con el principio de optimalidad de Bellman la solución a (1) puede expresarse
como
{ Min t-1(xt-1) = ctT xt + t(xt) | Gt(xt ,xt-1)=bt t=1,...,T ; xtR }
(2)
donde t(xt) corresponde al costo de la etapa t+1 hasta la última etapa (T) dado que el
estado del sistema es xt al final de la etapa t, donde cada etapa se asocia a un periodo del
horizonte de planificación.
En cada etapa t la formulación anterior corresponde a un tipo de problema que puede
descomponerse utilizando los principios metodológicos planteados por Benders (TB) y ampliados por Geoffrion (GBD). Por lo tanto la aplicación de la DDP al problema (2)
tiene como objetivo determinar la función de costo futuro t(xt) utilizando en problemas
lineales la TB y en problemas no-lineales la extensión GBD de Geoffrion, esta “nueva”
teoría se denominará NLDDP (Non-linear Dual Dynamic Programming).
7
Tal como se hace en DDP-V, consideremos inicialmente la aplicación de la GBT a un
problema de dos etapas. Tal como ocurre en la DDP, y específicamente en DDP-V, en el
desarrollo de la NLDDP utilizando la GBD se ignorarán los cortes que se refieren a la factibilidad del problema, lo que implica que se asume que siempre hay solución factible,
lo que se logra en la formulación del problema, o con la relajación de restricciones introduciendo factores de penalización para el caso de su violación.
Consideremos el problema
{ Min z = c1Tx1 + c2
Tx2 | G1(x1 ,x0)=b1 ; G2(x2 ,x1)=b2 ; x1R ; x2R }
(3)
La aplicación de la GBD implica dividir el problema en dos subproblemas, uno para cada periodo, o etapa.
Para la etapa 2:
{ Min 1(x1) = c2T x2 | G2(x2 ,x1)=b2 ; x2R }
(4)
Para la etapa 1:
{ Min 0(x0) = c1T x1 + 1(x1) | G1(x1 ,x0)=b1 ; x1R }
(5)
donde 1(x1) esta definido por el problema (4).
Se debe notar que en DDP-V se presenta inconsistencia en la definición y en el manejo de
t(xt) en las ecuaciones (2a) (4a) y (4c).
Con base en la GBD se puede definir un proceso iterativo para estimar 1(x1). Geoffrion
demostró que para problemas convexos es posible obtener la solución de (5) con base en
los hiperplanos que aproximan la función Lagrangeana del problema en el vecindario de
la solución óptima. 1(x1) puede ser aproximada con base en la siguiente representación:
1(x1) = min a2
sujeto a
a2 c2Tx1
2 + (12)T (b2 - G(x1
2 ,x1))
a2 c2Tx2
2 + (22)T (b2 - G(x2
2 ,x1))
.
.
.
a2 c2Txj
2 + (j2)T (b2 - G(xj
2 ,x1)) }
(6)
donde j representa la iteración, j2 corresponde al vector de variables duales
correspondientes a las restricciones del problema (4) en la solución obtenida en la
iteración j, y xj2 corresponde al vector de variables primales en la solución obtenida en la
iteración j.
8
Con base en la definición de 1(x1) se modifica el problema (5) de la siguiente manera:
{ Min 0(x0) = c1T x1 + a2
sujeto a
G1(x1 ,x0)=b1
a2 c2Tx1
2 + (12)T (b2 - G(x1
2 ,x1))
a2 c2Tx2
2 + (22)T (b2 - G(x2
2 ,x1))
.
.
.
a2 c2Txj
2 + (j2)T (b2 - G(xj
2 ,x1))
x1R ; a2R }
(7)
Para dos etapas, el procedimiento comienza asumiendo un valor inicial de x1 factible a (5),
sea x*1, para dicho valor se resuelve (4) parametrizado en x1
1 generando 12 y x1
2, se
incluye el primer corte en el problema (7), o sea a2 (12)T(b2 -G(x1
2 ,x1)), se soluciona (7)
y se obtiene un segundo valor para x1, se redefine x*1, nuevamente se resuelve (4)
parametrizado en x21 generando 2
2 y x22, se incluye un nuevo corte en (7) y se genera un
nuevo valor de x1.El proceso continua hasta que se satisfaga el criterio de convergencia
que se da cuando la cota superior c1Tx1+c2
Tx2 (primal), es igual a la cota inferior c1Tx1+a2,
(dual).
Para generalizar la teoría NLDDP a un problema con T etapas, consideremos el problema
de la última etapa T asociado a la determinación de T-1(xT-1) que se puede obtener
resolviendo el problema
{ Min T-1(xT-1) = cTT xT | G(xT ,xT-1)=bT ; xTR }
(8)
como se nota en la definición este problema esta parametrizado en un valor factible xT-1.
Para evaluar T-2(xT-2), o sea el costo de las dos últimas etapas, se debe resolver el
siguiente problema
{ Min T-2(xT-2) = cT-1T xT-1 + T-1(xT-1) | G(xT-1 ,xT-2)=bT-1 ; xT-1R ;
{ Min T-1(xT-1) = cTT xT | G(xT ,xT-1)=bT ; xTR } }
(9)
Utilizando los conceptos desarrollados por Geoffrion, T-1(xT-1) se puede reemplazar por
el conjunto de hiperplanos que la definen con base en la acotación de la función
Lagrangeana del problema relacionado con T-1(xT-1). Después de la primera iteración el
problema relacionado con T-2(xT-2) queda
{ Min T-2(xT-2) = cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 ; xT-1R ;
aT-1 cTT x1
T + (1T)T (bT - G(x1
T ,xT-1)) }
(10)
9
donde la variable aT-1 representa el valor de la función T-1(xT-1).
Agrupando los términos constantes, la restricción que define aT-1 puede escribirse como:
aT-1 + (1T)TG(x1
T ,xT-1) cTT x1
T + (1T)TbT
(11)
El anterior corte se puede generalizar para múltiples iteraciones (índice j) como
aT-1 + (jT)TG(xj
T ,xT-1) cTT xj
T + (jT)TbT
(12)
quedando el problema (10) como:
{ Min T-2(xT-2) = cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 ; xT-1R ;
aT-1 + (jT)TG(xj
T ,xT-1) cTT xj
T + (jT)TbT j=1,...J }
(13)
donde el índice j representa una iteración en la que se ha resuelto el problema (8) para la
etapa T, J el número total de iteraciones, xjT la solución óptima obtenida en la j-ésima
iteración y jT el vector de variables duales obtenidas para las restricciones G(xT ,xT-1)=bT
en la j-ésima iteración.
Para la generalización del tipo de corte a incluir consideremos el problema relacionado
con la etapa T-2 que define la función T-3(xT-3)
Para evaluar T-3(xT-3) se debe resolver el siguiente problema
{ Min T-3(xT-3) = cT-2T xT-2 + T-2(xT-2) | G(xT-2 ,xT-3)=bT-2 ; xT-2R
{ Min T-2(xT-2) = cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 ; xT-1R ;
aT-1 + (jT)TG(xj
T ,xT-1) cTT xj
T + (jT)TbT j=1,...J } }
(14)
Como en el caso anterior, reemplazando T-2(xT-2) por cortes con base en la acotación de
la función Lagrangeana tenemos la siguiente condición para la primera iteración
aT-2 cT-1T x1
T-1 + a1T-1
+ (1T-1)T (bT-1 - G(x1
T-1 ,xT-2) )
+ j=1,…J jT-1 [a1
T-1 - cTT xj
T - (jT)T (bT - G(xj
T ,x1T-1)] }
(15)
donde jt representa la variable dual del j-ésimo corte incluido para la estimación a1
T-1 y la
variable aT-2 representa el valor de la función T-2(xT-2).
El anterior corte se puede generalizar para múltiples iteraciones (índice j) como
aT-2 cT-1T xk
T-1 + akT-1
+ (kT-1)T (bT-1 - G(xk
T-1 ,xT-2) )
+ j=1,…J(k) k,jT-1 [ak
T-1 - cTT xk,j
T - (k,jT)T (bT - G(xk,j
T ,xkT-1)]
(16)
10
donde el índice k se refiere a la k-esima iteración del problema (13) que define T-2(xT-2),
J(k) el número de cortes incluidos en (13) en la iteración k. Para identificar las variables
primales y duales obtenidas como solución del problema (8) que define T-1(xT-1) se
requiere un doble super-índice (k,j) que relacione las iteraciones de los problemas (13) y (8).
Agrupando apropiadamente los términos constantes de (16) se tiene
aT-2 + (kT-1)TG(xk
T-1 ,xT-2) cT-1T xk
T-1 + akT-1
+ (kT-1)TbT-1 + j=1,…J(k) k,j
T-1 [akT-1 - cT
T xk,jT - (k,j
T)T (bT - G(xk,jT ,xk
T-1)]
(17)
que se puede rescribir como
aT-2 + (kT-1)TG(xk
T-1 ,xT-2) kT-1
(18)
donde kT-1 es un valor constante calculado como
kT-1
= cT-1T xk
T-1 + akT-1
+ (kT-1)TbT-1 + j=1,…J(k) k,j
T-1 [akT-1 - cT
T xk,jT - (k,j
T)T (bT - G(xk,jT ,xk
T-1)]
(19)
El problema general para T-3(xT-3) puede escribirse como
{ Min T-3(xT-3) = cT-2T xT-2 + aT-2 | G(xT-2 ,xT-3)=bT-2 ; xT-2R
aT-2 + (kT-1)TG(xk
T-1 ,xT-2) kT-1 k=1,...,K }
(20)
donde K representa el número total de iteraciones realizadas para estimar T-2(xT-2.).
Con base en un proceso de inducción se puede probar que el subproblema para cualquier
etapa t se formula como
{ Min t(xt) = ct+1T xt+1 + at+1 | G(xt+1 ,xt)=bt+1 ; xt+1R
at+1 + (jt+2)TG(xj
t+2 ,xt+1) ) jt+2
j=1,…,IT(t+1) }
(21)
donde el índice j representa una iteración de problema que evalúa la función t(xjt) por
medio de la variable at, IT(t) el número de veces que se ha resuelto el problema asociado a
la función t(xt), xjt la solución óptima obtenida en la j-ésima iteración y j
t el vector de
variables duales obtenidas para las restricciones G(xt ,xt-1)=bt en la j-ésima iteración. jt+2
es un valor constante calculado como
jt = {
cTT xj
T + (jT)TbT si t = T
ctT xj
t + ajt + (j
t)Tbt + k=1,...,IJ(t,j) k,jt k
t+1 si t = 1,...,T-1
(22)
donde IJ(t,j) representa el número de cortes incluidos en el problema evaluador de la
función t-1(xt-1): cuando se resuelve el problema t-1(xjt-1):
11
El problema que estima t(xt) cumple las funciones de un coordinador del tipo Benders de
acuerdo a los procedimientos de partición de problemas que A. M: Geoffrion especificó. El problema correspondiente a la primera etapa es equivalente al problema original y obtiene
la solución a dicho problema en un numero finito de pasos, siempre y cuando todo el
problema corresponda a uno de programación convexa, esto principalmente debido al encadenamiento de cortes que exige que el problema en cada etapa sea de programación
convexa.
La estructura de los cortes es similar a la determinada en la revisión realizada por
Velásquez et. al. [14] para la DDP.
Finalmente, en la extensión para el caso de funciones objetivo no-lineales el problema
para estimar t(xt) es:
{ Min t(xt) = ft+1( xt+1) + at+1 | G(xt+1 ,xt)=bt+1 ; xt+1R
at+1 + (jt+2)TG(xj
t+2 ,xt+1) ) jt+2
j=1,…,IT(t+1) }
(23)
donde jt+2
es un valor constante calculado como
jt = {
fT(xjT) + (j
T)TbT si t = T
ft( xjt) + t(xj
t) + (jt)Tbt + k=1,...,IJ(t,j) k,j
tt+1k si t = 1,...,T-1
(24)
3.2. PROCEDIMIENTO ALGORÍTMICO
A continuación, se describe un procedimiento algorítmico similar al propuesto por M. F.
Pereira para la DDP. Se debe notar que el este procedimiento se puede mejorar en muchos aspectos para resolver más eficientemente el problema; este tópico no se toca en esta
respuesta.
Problema a resolver:
{ Min z = t=1,...,T ctT xt | Gt(xt ,xt-1)=bt t=1,...,T ; xtR }
(25)
Paso 1. Inicialización
J=0 contador de iteraciones, exactamente igual al numero de cortes GBD.
Et(xt)=0 para t=1,...,T. Primera aproximación para las funciones de costo futuro
zL=- cota inferior para la función objetivo
límite de precisión para convergencia
x0 estado inicial
Paso 2.Forward Simulation.
12
Comenzado con t=0 y de manera secuencial ascendente, para todo t{0,1,...,T-1} se
resuelve el problema que estima t(xt), o sea para t{1,...,T-2} se resuelve
{ Min t(x*t) = ct+1
T xt+1 + at+1
sujeto a
G(xt+1 ,xt)=bt+1 ; xt+1R
at+1 + (1t+2)TG(x1
t+2 ,xt+1) 1t+2
at+1 + (2t+2)TG(x2
t+2 ,xt+1) 2t+2
.
.
.
at+1 + (jt+2)TG(xj
t+2 ,xt+1) jt+2
}
(26)
Para la última etapa, t=T-1, se resuelve:
{ Min T-1(x*T-1) = cT
T xT | G(xT ,xT-1)=bT ; xTR }
(27)
donde jt está definido de acuerdo a (22) y x*
t está definido con base en la solución del
problema de la etapa anterior que estima t-1(xt-1) y es igual al estado inicial x0 para la
primera etapa.
Paso 3. Estimación cota superior
zU=t=1,...,T ctT xt
(28)
Paso 4. Estimación cota inferior
zI= c1T x1 + a1
(29)
donde a1 corresponde al estimado de 1(x1).
Paso 5. Convergencia
Si
zU – zL < (30)
se ha conseguido la solución de lo contrario vaya al paso 6.
Paso 6. Backward Recursion (estimación de funciones t(xt).
Comenzado con t=T-2 y de manera secuencial decreciente, para todo t{0,1,...,T-2} se
resuelve el problema que estima t(xt) incluyendo un nuevo corte con base en la solución
obtenida para la etapa siguiente, comenzando por la última etapa del paso 2 cuando se
estimó T-1(x*T-1)
13
{ Min t(x*t) = ct+1
T xt+1 + at+1
sujeto a
G(xt+1 ,xt)=bt+1 ; xt+1R
at+1 + (1t+2)TG(x1
t+2 ,xt+1) 1t+2
at+1 + (2t+2)TG(x2
t+2 ,xt+1) 2t+2
.
.
.
at+1 + (jt+2)TG(xj
t+2 ,xt+1) jt+2
}
(31)
Al finalizar volver al Paso 2.
4. APLICACIÓN DE LA NL-DDP A GENERACIÓN EN HIDROELÉCTRICAS
A continuación, se presenta la aplicación de la NL-DDP a problemas de generación de
electricidad. Para ello se ha tomado como referencia el artículo “SOLVING LARGE
NONCONVEX WATER RESOURCES MANAGEMENT MODELS USING
GENERALIZED BENDERS DECOMPOSITION” (Cai et. al. [1])
Las variables utilizadas en el modelaje son:
Pt Potencia generada en el periodo t (GWh) Ht Nivel (cota) del agua en el embalse al final del periodo t (mts)
HPt Salto hidráulico promedio del agua en el embalse durante el periodo t (mts)
Vt Volumen de energía almacenada en el embalse al final del periodo t (MM3)
Qt Caudal “turbinado” del embalse durante el periodo t (MM3)
St Caudal perdido (desbordamiento o desembalsamiento forzoso) en el embalse durante el periodo t (MM3)
Los parámetros relacionados son:
HT Nivel (cota) de referencia de la turbina (mts)
FP Factor de conversión (eficiencia hidráulica) INt Aporte de agua al embalse en el periodo t
Las ecuaciones requeridas para el modelaje son:
Pt = FP (½[Ht+ Ht-1] - HT) Qt = FP HPt Qt
Vt = (Ht) Ht = (Vt)
Vt = Vt-1 + INt - Qt - St
HPt = ½[Ht+ Ht-1] – HT = ½[(Vt) + (Vt-1)] – HT
14
donde (Ht) representa la función que relaciona el nivel del agua en el embalse con el
volumen de agua almacenada, función no-lineal que puede ser o no convexa. Para facilidad del análisis se asume convexa. En el trabajo en referencia se asume una función
lineal, lo que implica un reservorio de forma de paralelepípedo, la expresión utilizada
puede escribirse como
Vt = (Ht - HE)* FV
donde HE representa el nivel (cota) de referencia del embalse (mts) y FV el factor de
conversión de altura en volumen.
La función (Ht) determina el “grado” y el tipo de no-linealidad asociada al problema.
Esta función depende de la forma del embalse; sin ningún soporte adicional al de una
racionalidad intuitiva, creo que (Ht) puede expresarse como un polinomio en Ht.
La consideración sobre la similitud entre la ecuación 16-2 del paper de A.M. Geoffrion y la
ecuación de potencia (Pt) debe tener en cuenta que los dos problemas pertenecerían al
mismo formato independientemente de la función (Ht), ya que el subproblema generado
es lineal independiente de la forma de (Ht). El problema será lineal si (Ht) es lineal, en
el resto de casos será no lineal.
Para la aplicación de la GBD se debe seleccionar al vector de variables Ht, o al de las Vt,
como las variables de coordinación. El paper en referencia reporta aplicación exitosa de este enfoque que no considera descomposición dinámica del problema intertemporal. Para
evitar los problemas debidos a la factibilidad, cai et al incluyen factores de penalización
para la violación de las restricciones y utilizan la GBD sin incluir cortes por factibilidad.
REFERENCIAS
[1] Cai X. , McKinney, Daene C., Lasdon, Leon and Watkins, David. “Solving Large Nonconvex Water Resources Management Models Using Generalized Benders
Decomposition”. Operations Research (INFORMS) 49 (No. 2). También en la URL: http://www.mccombs.utexas.edu/faculty/msis/lasdonl/SYS13withfig&tab.html
[12] Pereira, M. V. F. and Pinto, L. M. V. G. “Stochastic Optimization of a
Multireservoir Hydroelectric System: A Decomposition Approach”, Water
Resources Research. 21, 779-792, 1985.
[13] Velásquez, J. “Objeciones a la Programación Dinámica Dual”. Mundo Eléctrico
Colombiano No.30 (Diciembre 1997)
[14] Velásquez, J., Restrepo, P.J., and Campo, R. “Dual Dynamic Programming: A
note on implementation”. Water Resources Research, Vol 35, No. 7 Pages 2269-
2271, July 1995.
15
[21] M.V.F. Pereira. "Stochastic Operation Scheduling of Large Hydroelectric
Systems". Electric Power Energy Systems, Vol 11(3-1989)
[22] Velásquez, J.“GDDP: Generalized Dual Dynamic Programming”. Annals of
Operations Research 117, 21–31, 2002.
[23] J.F. Benders. "Partitioning procedures for solving mixed variables programming
problems". Numer. Math 4, 238-252 (1962).
[24] Read, E. G. and George, J. A. "Dual Dynamic Programming for Linear
Production/Inventory Systems ". Computers Math. Aplicc. Vol 19, No. 11, 29-42,
(1990)
[27] A. Ruszczynski. “Parallel Decomposition of Multistage Stochastic Programming
Problems”. Mathematical Programming 58 (1993) 201-228.
[28] Nemhauser, G. L. "Introduction to Dynamic Programming". Jhon Wiley & Sons
(1970)
[29] Ring, B. J. and Read, G. "Pricing for Reserve Capacity in a Competitive Electricity
Market". Technical Document EMRG-WP-94-01, Energy Model Research Group,
Departament of Management, university of Canterbury New Zealand (1994)
[31] Yang, M. and Read, G. "A Constructive Dual DP for a Reservoir Model with
Correlation". Technical Document EMRG-WP-99-01, Energy Model Research Group, Department of Management, university of Canterbury New Zealand (1999)
[32] M. V. F. Pereira and L. M. G. Pinto. "Multi-stage Stochastic Optimization Applied
to Energy Planning". Mathematical Programming, 52, 359-375, (1991)
[33] P. D. Casseboom and E. G. Read. "Dual dynamic programming for coal
stockpiling". Proc. Operations Research Society of New Zealand, 15-18, (1987)
[34] A. Ruszczynski. “Parallel decomposition of multistage stochastic programming
problems”. Mathematical Programming 58 (1993) 201-228.
[35] J. R. Birge, et al. “A parallel implementation of the nested decomposition algorithm
for multistage linear programs”. Mathematical Programming 75 (1996) 327-352.
[36] E. G. Read. "A Dual Approach to Stochastic Dynamic Programming for
Reservoir Scheduling". In Dynamic Programming for Optimal Water Resources
Systems Analysis (Ed. A. O. Esogbue), 361-372. Pretence-Hll Englewood Cliffs, N. J. (1989).