non-linear dual dynamic programming (nl-ddp) · 2017-10-12 · 1 non-linear dual dynamic...

15
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. [email protected] Medellin, julio de 2005

Upload: others

Post on 15-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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.

[email protected]

Medellin, julio de 2005

Page 2: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

2

NON-LINEAR DUAL DYNAMIC PROGRAMMING

(NL-DDP)

Jesús María Velásquez Bermúdez

DecisionWare Corporation

[email protected]

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 ;

Page 3: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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

Page 4: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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):

Page 5: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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 ...".

Page 6: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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).

Page 7: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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.

Page 8: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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)

Page 9: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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)

Page 10: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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):

Page 11: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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.

Page 12: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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)

Page 13: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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

Page 14: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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.

Page 15: NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) · 2017-10-12 · 1 NON-LINEAR DUAL DYNAMIC PROGRAMMING (NL-DDP) DOCUMENTO DE TRABAJO - DW-DT-028-003 Jesús María Velásquez Bermúdez

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).