Está en la página 1de 25

Capitulo 3.

Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

3. PROGRAMACIN DINMICA

La Programacin Dinmica (PD) resuelve un problema de decisiones secuenciales, en el espacio o en el


tiempo, que de manera general se formula de la siguiente forma:

PD: = { Min/Max (x1 ,u1 ,x2 ,u2 , ... , xt ,ut , , xT ,uT ) |


xt = g(xt-1,ut) t=1,T
ut (xt-1) t=1,T
xtt t=1,T
utt t=1,T }

donde xt representa el vector de variables de estado, ut el vector de variables de control, t y t


representan los espacios de existencia para dichas variables, gt(yt ,ut) la funcin que describe la evolucin
de las variables de estado dada una escogencia de las variables control, (xt-1) el espacio de las
posibilidades de seleccin de las variables de control cuando el sistema se encuentra en el estado xt-1, (.)
la funcin de retorno del decisor y T el nmero de etapas secuenciales de decisin.

Cuando la funcin (.) es separable a lo largo de las etapas del proceso de decisin es posible utilizar los
principios desarrollados por Richard Bellman (1957) para resolver el problema PD:, esto ocurre cuando
(.) se puede expresar como:

(x1 ,u1 ,x2 ,u2 , ... , xt ,ut , , xT ,uT ) = t=1,T rt(yt ,ut )

o como

(x1 ,u1 ,x2 ,u2 , ... , xt ,ut , , xT ,uT ) = t=1,T rt(yt ,ut )

donde rt(xt ,ut ) representa la funcin de retorno en la etapa t.

El Principio de Optimalidad de Bellman dice que independientemente de las decisiones tomadas para
llegar a un estado especifico xt, en cualquier etapa t, una poltica ptima tiene la propiedad de que las
restantes decisiones hasta la etapa final T, representadas por (ut , ut+1 , ... , uT) deben constituir una poltica
ptima para la trayectoria desde t hasta T. En otras palabras, la trayectoria ptima desde el estado de
partida, x0, hasta estado final ptimo xT*, tiene la propiedad que para cualquier estado intermedio xt, la
trayectoria debe ser ptima desde el estado inicial x0 hasta el estado intermedio xt y desde dicho estado
hasta el estado final xT.

Dadas las pocas restricciones que se imponen para que se cumpla el Principio de Optimalidad, la
programacin dinmica ha sido una alternativa numrica vlida para resolver muchos tipos de problemas
no solubles por mtodos directos de programacin matemtica.

Cuando las etapas se asocian a un espacio continuo, como el tiempo, el enfoque de Programacin
Dinmica puede ser muy rico para estudiar el comportamiento de los sistemas a lo largo de dicho espacio.
En adelante se asociar las etapas a perodos del horizonte de planificacin. Para el caso lineal el problema
de Programacin Dinmica (PD:) puede formularse como

3-1
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PD: = { Min t=1,T ctTxt + dtTut |


Atxt = bt - Et-1xt-1 - Btut t=1,T
Ftxt = ft t=1,T
Gtut = gt t=1,T
utR+ t=1,T , xtR+ t=1,T }

donde xt representa el vector de variables de estado, ut el vector de variables de control, ct as y dt los


vectores de costos, bt , ft y gt los vectores de recursos, y At , Et , Bt , Ft y Gt las matrices de relaciones
funcionales. La siguiente grfica presenta la descomposicin del problema bajo la visin de la PD.
DW DW

Programaci
Programacin Din
Dinmica - Conceptualizaci
Conceptualizacin Programaci
Programacin Din
Dinmica
Etapas (Periodos)
Variables de ut
Control
u1 ut uT

xt-1 Atxt=bt-Et-1xt-1-Btut xt x0 x1 xt-1 xt xT-1 xT


Variables de
Ftux = ft
Variables de
1 t T
Gtut = gt Estado
Estado

Retorno ctTxt + dtTut


c1Tx1 + d1Tu1 ctTxt + dtTu cTTxT + dTTuT

La anterior formulacin es apropiada para el caso de sistemas tcnico-econmicos, (por ejemplo:


financieros, cadenas de abastecimiento, recursos hdricos, mercados, etc.) en los que el vector de variables
de estado representa el nivel de los almacenamientos (stocks) y el vector de variables de control a las
variables asociadas a las operaciones al interior de un perodo (por ejemplo: produccin y distribucin de
los productos de la cadena de abastecimiento, transacciones de activos y de pasivos, etc.).

Para resolver el problema mediante PD ste se descompone en mltiples etapas, una por cada perodo,
encadenando las etapas por medio de la denominada funcin de costo futuro t(xt ,ut), que por la
condicin de separabilidad y el Principio de Optimalidad solamente es funcin explcita de las variables
de estado e independiente de las variables de control, por lo tanto el problema a resolver en cada etapa es:

PDt: = { Min ctTxt + dtTut + t(xt) |


Atxt = bt - Et-1xt-1 - Btut
Ftxt = ft
Gtut = gt
utR+ , xtR+ }

donde t(xt) representa la funcin de los costos futuros asociados a la operacin ptima del sistema para
los perodos posteriores a t, dado que al final de dicho perodo el estado del sistema es xt.

La evaluacin de la funcin t(xt) es el problema central de la PD. Existen al menos dos alternativas:

3-2
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

por medio de algoritmos numricos basados en tablas que almacenan los valores de t(xt) para valores
discretos de xt, que es convencionalmente el mtodo con el cual se asocia la Programacin Dinmica
Clsica (PD);
por medio de mtodos analticos que utilizan la definicin de t(xt), que es el mtodo utilizado por
versiones modernas, como la Programacin Dinmica Dual.

3.1. PROGRAMACIN DINMICA CLSICA

3.1.1. TEORA FUNDAMENTAL

Un algoritmo de PD basado en la evaluacin de la funcin t(xt) por medio tablas considera dos fases: i)
evaluacin de la tablas asociadas a las funciones t(xt); y ii) determinacin de la solucin ptima al
problema, x*t.

Las soluciones a obtener mediante este tipo de algoritmo dependen del nivel de discretizacin que se
utilice para las variables de estado xt, que se puede asociar al nmero de intervalos en los que se divide la
zona factible de xt en lo que se refiere a sus cotas de variacin. En adelante se asocia el superndice d a la
notacin para indicar el nivel de discretizacin, es decir que dt(xt) corresponde a la funcin de costos
futuros obtenida por un algoritmo de PD para un nivel de discretizacin d. La discretizacin implica que
se considera un nmero finito de d posibles estados para evaluar puntos de la funcin t(xt). El vector xdt
de posibles estados se puede expresar como

xddt = { x1t, x2t, x3t, ... , xdt}

donde xet representa al -simo punto de divisin de la zona de factibilidad de xt.

Consideremos la solucin del problema de la ltima etapa para un nivel de discretizacin d, para una
condicin inicial xeT-1, que pertenece a uno de los posible valores discretos considerados para xT-1

dT-1(xeT-1):= { Min cTT xT |


ATxT = bT - ET-1xeT-1 , xTR+ }

dT-1(xeT-1) representa exactamente a T-1(xeT-1) debido a que no hay ninguna aproximacin en el problema
que la define. Para estimar la funcin T-1(xT-1) para valores de xT-1 que no pertenecen a xdT-1 se requiere
de un proceso de interpolacin, lineal o no lineal, que debido a la convexidad (Davis y Provonost 1972) de
T-1(xT-1) implica siempre la sobrestimacin del verdadero valor. Por lo tanto se puede afirmar que
independiente del nivel de discretizacin d se cumple

T-1(xT-1) < dT-1(xT-1)

La siguiente grfica permite visualizar la anterior condicin.

3-3
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PROGRAMACI
PROGRAMACIN DIN
DINMICA CL
CLSICA
APROXIMACION DE LA FUNCION DE COSTO FUTURO T(xT)
t(xt)

T(xe T)

EVALUACIONES DISCRETAS

+
xt

Consideremos el problema aproximado que se debe resolver en las restantes etapas

dt(xet) = { Min ct+1T xt+1 + dt+1(xet+1) |


At+1xt+1 = bt+1 - Etxet , xt+1R+ }

Comenzando por la etapa T-2 de manera recursiva es posible demostrar que siempre se cumple que

t(xt) < dt(xt)

El error de aproximacin va aumentando en la medida que disminuye el valor de t, es decir que para la
primera etapa se tiene el mayor nivel de error. Lo anterior se puede visualizar en la siguiente grfica

+ PROGRAMACI
PROGRAMACIN DIN
DINMICA CL
CLSICA
APROXIMACION DE t(xt)
t(xt) +

+
+

+ + 1(x1)
+ + t(xt)

+ T(xT)
xt

Lo anterior implica que cualquier algoritmo de PD correctamente implementado, independientemente de


los mtodos de interpolacin y del nivel de discretizacin, siempre sobrestima la funcin de costos futuros
t(xt) y la sobrestimacin es mayor para los primeros perodos del horizonte de planificacin.

Con respecto al nivel de discretizacin es fcil verificar que debido a la convexidad de t(xt) a menor
nivel de discretizacin mayor sobrestimacin de t(xt); es decir que si xdd2t esta incluido en xdd1t se
cumple

3-4
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

d1t(xt) < d2t(xt)

lo que es coherente matemticamente ya que cuando el nmero de componentes de xddt tiende a infinito se
tiene el problema exacto.

El efecto de la sobreestimacin depende del sistema; por ejemplo, en el caso de aplicaciones de recursos
hdricos retarda el uso del agua con respecto a su uso ptimo, lo que se traduce en niveles de embalse
superiores al perfil de operacin ptimo que se obtendra con un mtodo continuo. Por lo tanto, se puede
afirmar que la prdida de precisin de los algoritmos de PD, entendida como menor nivel de
discretizacin, retarda el uso del recurso hdrico con respecto a su uso ptimo. Lo que implica que la PD
produce polticas ms conservadoras con respecto a la poltica ptima.

Cuando se obtiene d1(x1) se puede considerar que se ha explorado la zona de factibilidad dual del
problema original, ya que se tiene informacin "completa" con respecto al costo de oportunidad implcito
en el nivel de las variables de estado para todas las etapas y todos los estados. Esta informacin es
suficiente para determinar la trayectoria ptima x*d definida como

x*d = {x*d1, x*d2, x*d3, ... , x*dT-1, x*dT}

donde x*dt representa la solucin ptima para el perodo t dado el nivel de discretizacin d.
Simultneamente, se ha explorado la zona de factibilidad primal determinando funciones x*dt(xt-1) que
definen el valor ptimo de las variables de estado al final del perodo t, y de las de control al interior del
perodo t, como funcin del valor de las variables de estado al comienzo del perodo.

Para determinar la decisin ptima para cualquier perodo t se puede utilizar la informacin dual, es decir
dt(xt), o la informacin primal, es decir x*dt(xt-1).

Si el problema se resuelve exactamente, es decir que no hay errores en la estimacin de las funciones
t(xt), lo que ocurre cuando el nivel de discretizacin d tiende a infinito, cualquiera de las dos alternativas
se puede utilizar indistintamente, ya que darn el mismo resultado. La igualdad entre las solucin dual y la
primal se basa en la Teora de la Dualidad que dice que si existe solucin al problema dual

DPD: = { Max t=1,T btT t |


tT [At+Et-1] ctT t=1,T
tR t=1,T }

en el ptimo se cumple

t=1,T btT *t = t=1,T ctT x*t

donde *t es la solucin al problema dual DPD: y x*t la solucin al problema primal PD:.

Se debe tener en cuenta que las funciones aproximadas dt(xt) implican que la solucin x*dt(xt-1) para las
variables primales es subptima y que por lo tanto la solucin dual correspondiente es no factible (Ring y
Read 1994), esto es consecuencia directa del proceso de interpolacin. Bajo estas consideraciones se debe
ser cuidadoso al utilizar informacin econmica factible lo que puede distorsionar los resultados
obtenidos. En principio, sin mucha rigurosidad matemtica desde el punto de vista terico, se puede

3-5
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

afirmar que el uso de la informacin primal subptima debe ser ms apropiado que el uso de la
informacin dual no factible. Pero a pesar de lo anterior, las soluciones deben ser "similares".

3.1.2. AGREGACIN DE VARIABLES DE ESTADO

Cuando existen mltiples variables de estado, la PD debe enfrentar el problema de la maldicin de la


dimensionalidad (curse of dimensionality problem") que radica en la alta dimensionalidad de las tablas
que deben manejar los algoritmos numricos, debido al nmero de variables de estado y a multiplicacin
por el nivel de discretizacin, lo que aumenta la demanda de requerimientos computacionales en tiempo y
en espacio haciendo inmanejable el problema. La complejidad radica en la cantidad de combinaciones que
se deben evaluar para elaborar las tablas que contienen los valores de dt(xt) y/o x*dt(xt-1) requeridos para
obtener la solucin al problema para todo el horizonte de planificacin. Por esta razn, en la prctica se
debe limitar el nmero de variables de estado y el nivel de discretizacin.

Si se tienen N variables de estado, T perodos de planificacin y d niveles de discretizacin, las tablas


para almacenar dt(xt) y x*dt(xt-1) tendran cada una un total de (T-1)*dN elementos. El factor dN se deriva
del hecho que es necesario evaluar dt(xt) y x*dt(xt-1) para todas las combinaciones de los valores discretos
de las variables de estado. Lo anterior hace que ante limitaciones computacionales, para resolver
problemas prcticos con mltiples variables de estado se requiera de transformaciones del problema para
conseguir la solucin ptima, o al menos una solucin cerca de la solucin ptima.

En trminos generales, el enfoque utilizado para reducir de tamao el problema original consiste en
evaluar las funciones dt(xt) y x*dt(xt-1) para cada componente xt,i del vector de variables de estado xt con
base en un problema de dos variables de estado: xt,i y t,i, siendo t,i una variable de estado artificial que se
obtiene agregando las restantes componentes del vector de variables de estado {xt,ji} y fijando su valor
con base en una funcin de agregacin ({xt,ji}), matemticamente lo anterior es

t,i = ({xt,ji})

Un ejemplo de una funcin de transformacin general es

t,i = ji t,j,i xt,j

donde t,j,i corresponde a un factor de ponderacin de la variable de estado xt,j cuando se evala las
funciones dt(xt) y x*dt(xt-1) para las componentes xt,i. La variable de estado t,i se discretiza de manera
similar a las variables de estado originales xt,i. Por lo tanto, las funciones dt(xt) y x*dt(xt-1) no son
evaluadas en todos los puntos discretos del espacio del vector xt, sino en todos los puntos discretos del
espacio {xt,i ,t,i}.

La solucin del problema original implica la solucin coordinada de N problemas aproximados con base
en dos variables de estado. La agregacin de N-1 variables de estado conlleva simplificaciones del
problema original que deben analizarse para cada caso especfico. La coordinacin de la solucin debe
soportarse en desarrollos matemticos que describan los procedimientos que se deben seguir para obtener
la "mejor" solucin al problema segn sea el caso. En la literatura tcnica existen muchas variaciones
alrededor de los conceptos generales que aqu se han planteado, la bondad y calidad el enfoque debe
analizarse independientemente en cada caso.

3-6
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

Se debe tener en claro que la suboptimalidad ser una caracterstica presente en todos los casos de
agregacin de variables de estado, ya que el problema real ha sido simplificado para obtener una "buena"
solucin factible, mas no la solucin ptima.

3.2. PROGRAMACIN DINMICA DUAL

Existen al menos dos orgenes para lo que se ha denominado Programacin Dinmica Dual (PDD). El
primero est relacionado con el trabajo desarrollado por Pereira y Pinto (Pereira y Pinto 1985, Pereira
1989, Pereira y Pinto 1991) el cual fue revisado por Velsquez et. al (Velsquez 1997, Velsquez,
Restrepo y Campo 1999). El segundo corresponde al trabajo desarrollado Read y sus colaboradores
(Casseboom y Read 1987, Read 1989, Read y George 1990).

3.2.1. PROGRAMACIN DINMICA DUAL VERSIN PEREIRA (PDD-P)

En una serie de trabajos desarrollados a partir de 1985 por Pereira y Pinto (Pereira y Pinto 1985, Pereira
1989, Pereira y Pinto 1991) se presentan los conceptos fundamentales que hacen posible utilizar la
metodologa de la Programacin Dinmica, a problemas con mltiples variables de estado sin enfrentar el
problema de la maldicin de la dimensionalidad. Pereira y Pinto utilizan la Teora de Benders (TB) para
establecer la funcin de costo futuro del sistema con base en los hiperplanos que la definen, en vez de
calcularla a partir de la discretizacin de su valor en varios puntos del espacio primal de las variables de
estado; posteriormente Velsquez y sus colaboradores (Velsquez 1997, Velsquez, Restrepo y Campo
1999) revisan y ajustan las ecuaciones propuestas por Pereira y Pinto para garantizar la convergencia al
ptimo de dicha teora. Este ltimo trabajo se considera aporte original del autor a la teora matemtica de
la Programacin Dinmica Dual, y en conjunto en adelante se referir como PDD-P.

La PDD, tal como fue definida por Pereira y Pinto est orientada a resolver un problema con una
estructura apropiada para combinar el enfoque de programacin dinmica con los principios de la teora
propuesta por Benders. La formulacin propuesta para PDD-P es:

PDD-P: = { Min t=1,T ctTyt |


Atyt = bt - Et-1yt-1 t=1,T , ytR+ t=1,T }

donde yt representa conjuntamente a las variables de estado y a las de control, es decir

y t = { xt , ut }

Las formulaciones de la PD y de PDD-P son equivalentes; sin embargo, la formulacin que hace explcita
las variables de control es ms rica para describir un sistema tcnico-econmico. La diferencia
fundamental con respecto a la PD es la forma de resolver el problema, es decir la forma en como se evala
las funciones de costo futuro t(xt). Las dos soluciones son equivalentes. Dado que la funcin de costo
futuro es independiente del valor de las variables de control se tiene

t(yt) = t(xt , ut) = t(xt)

Para desarrollar la teora que soporta PDD-P consideremos, como en el caso de PD, el problema de la
ltima etapa, T, asociado a la determinacin de T-1(xT-1) que se puede obtener resolviendo el problema

{ T-1(yT-1) = Min cTT yT |


ATyT = bT - ET-1yT-1 , yTR+ }
3-7
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

Con base en la Teora de la Dualidad se puede evaluar T-1(yT-1) a partir del problema dual

{ T-1(yT-1) = Max TT[bT - ET-1yT-1] |


TTAT cTT , TR }

donde representa t las variables duales del problema asociado a la etapa t. Por lo tanto T-1(yT-1) cumple
con

T-1(yT-1) TT[bT - ET-1yT-1]

La anterior condicin se debe cumplir para cualquier valor de T perteneciente a la zona de factibilidad
dual y corresponde al corte por optimalidad de Benders.

A partir del anterior razonamiento, Pereira (1989) propone la solucin del problema PD: con base en la
solucin coordinada de un conjunto de problemas del tipo:

CPt(yt-1): = { Min ctTyt + t(yt) |


Atyt = bt - Et-1yt-1 , ytR+
t(yt) ( t+1) [bt+1 - Etyt] k=1,IT(t) }
k T

donde IT(t) corresponde al nmero de cortes que se han generado a nivel del coordinador CPt(yt), y kt+1
al vector de variables duales de las restricciones At+1yt+1=bt+1-Etyt obtenido en la k-sima solucin del
problema CPt+1(yt):

El problema CPt(yt): cumple las funciones de un coordinador de acuerdo a TB. El problema


correspondiente al coordinador de la primera etapa, es equivalente al problema original, ya que el enfoque
de Benders es una reformulacin del problema con la finalidad de facilitar su solucin y no implica
aproximacin alguna. En otras palabras PDD-P postula que la cadena de problemas

CPt(yt-1): = { Min ctTyt + t(yt) |


Atyt = bt Et-1yt-1 , ytR+
t(yt) (kt+1)T [bt Etyt] k=1,IT(t) }

es equivalente al problema original P:. La concepcin de la programacin dinmica dual convierte un


problema de mltiples perodos en mltiples problemas de un perodo parametrizados por los estados del
anterior perodo y por la estimacin de la funcin de costo futuro para los siguientes perodos. O sea que
el problema transformado para evaluar CPt(yt-1) es funcin de las variables yt-1 y se relaciona con las
variables de los perodos posteriores por medio de la funcin t(yt) y con las variables del perodo anterior
por medio de la parametrizacin en yt-1.

En definitiva la funcin t(yt), que representa el costo futuro desde la etapa t+1 hasta el final del horizonte
T, se determina por medio del conjunto de cortes de Benders

t(yt) (kt+1)T [bt Etyt] k=1,IT(t)

3-8
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

La revisin realizada por Velsquez y sus colaboradores (Velsquez 1997, Velsquez, Restrepo y Campo
1999) implica la inclusin de un trmino faltante en los cortes de Benders considerados originalmente por
Pereira. Los nuevos cortes tienen la siguiente forma

t(yt) + kt+1TEtyt t+1k k =1,IJ(t,j)

donde IJ(t,j) representa el nmero de cortes incluidos en el problema coordinador CPt-1(yt-1) cuando se
resuelve el problema CPt(yjt-1) y tj es un valor constante calculado como

jtTbt t=T
tj = { jtTbt + k=1,IJ(t,j) k,jt t+1k t = 1 , T-1

donde k,jt representa la variable dual del k-simo corte de Benders en el problema CPt(yjt-1).

Si no se incluye el trmino de correccin PDD-P corresponde a un mtodo aproximado y no a un mtodo


exacto. Con respecto a esta aproximacin Yang y Read (1999) 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 ..."

El enfoque de PDD-P implica la descomposicin multilevel en el dominio de tiempo (Velsquez 1995) de


mltiples problemas que se descomponen usando TB, generando nuevos problemas que de nuevo se
descomponen usando TB, es decir el uso anidado de TB tal como describen Gassman (1990) y Birge
(1996) y como se presenta en el caso multinivel, en el numeral 2.1.3, del presente informe.

La siguiente grfica ilustra la aproximacin de la funcin de costo futuro bajo el enfoque PDD-P.
PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL
t(xt) PROXIMACION DE t(xt)

t(xt) + kt+1TEtxt t+1k

CORTES DE BENDERS
xt

Fuera del punto ptimo, la aproximacin que realiza PDD-P subestima el verdadero valor de t(xt), en la
medida que se generan cortes el error de subestimacin desaparece y al final la representacin del
problema es exacta en el vecindario de la solucin ptima, fuera de este vecindario no lo es. Este hecho es
de fundamental importancia cuando los cortes de Benders son utilizados como definicin de la funcin de
costo futuro para simular decisiones para casos no considerados en el modelo de optimizacin. Dicha
simulacin, por definicin es sub-ptima, ya que subestima el verdadero costo futuro.

Por lo anterior se puede afirmar que la PDD subestima las funciones de costo futuro, en tanto que la PD
las sobreestima. Por lo tanto se cumple:
3-9
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PDDt(yt) < PDt(yt)

Desde el punto de vista algortmico existe ms de una alternativa para enfrentar la solucin de un
problema dinmico utilizando los conceptos de la PDD-P, en general un algoritmo se mueve en dos
direcciones: i) forward: desde la etapa 1 hacia la T; y ii) backward: en sentido contrario. En la fase
forward, inicializando t en 1 y partiendo de un valor dado de y0, se resuelven sub-problemas CPt(yt-1): con
la finalidad de determinar el valor de yt que sirve como condicin de frontera para el siguiente sub-
problema CPt+1(yt): hasta llegar a la etapa T; en la fase backward se insertan cortes de optimalidad en
CPt(yt-1): con base en el valor de las variables duales obtenidas para CPt+1(yt):.

En la fase backward antes de pasar de CPt(yt-1): a CPt-1(yt-2): existen al menos dos alternativas extremas
para el proceso algortmico: i) pasar a la etapa anterior solo cuando se ha obtenido la solucin ptima para
CPt(yt-1):, lo que implica la generacin de mltiples cortes a partir de la solucin de CPt+1(yt):; y ii) pasar
a la etapa anterior cuando se ha obtenido el primer corte para CPt(yt-1):. Entre las dos anteriores
alternativas se puede generar gran cantidad de variaciones. La propuesta original de PDD-P corresponde a
la segunda alternativa, propuesta que tambin se conoce como fast-backward.

3.2.2. PROGRAMACIN DINMICA DUAL VERSIN READ (PDD-R)

Por otro lado, E. G. Read y otros desarrollaron un trabajo que tambin llamaron Programacin Dinmica
Dual (Casseboom y Read 1987, Read 1989, Read y George 1990, Yang y Read 1999) que en adelante se
referir como PDD-R. La formulacin conceptual de PDD-R hace distincin entre variables de control y
variables de estado. En sistemas productivos dicho manejo implica diferenciar las variables de produccin
y de distribucin de las de los inventarios. La PDD-R puede considerarse como un planteamiento dual al
enfoque clsico de PD en el sentido que en la PD clsica para la solucin numrica se escoge una rejilla
de variables de estado primales (stocks) y para cada punto de la rejilla se encuentra la decisin ptima y
los precios sombra implcitos (costos marginales de las existencias); en tanto que PDD-R escoge una
rejilla de variables duales (costos marginales) y para cada uno encuentra el nivel de existencias ptimo en
el espacio primal. Para producir la curva de oferta (supply function) al final de cada perodo, PDD-R
resuelve paramtricamente un sub-problema por perodo, o por grupos de perodos cuando la funcin de
oferta es comn. Posteriormente, utilizando recursin hacia atrs, PDD-R combina estas funciones con el
fin determinar la estrategia ptima.

La formulacin original de PDD-R considera el siguiente problema

PDD-R: = { Min t=1,T [etTzt + dtTwt ] + T(xT) |


xt = xt-1 + zt - bt t=1,T
Gtwt + zt = gt t=1,T
ztR t=1,T , wtR+ t=1,T
+

xMINt xt xMAXt t=1,T }

donde zt representa el vector de variables de produccin en el perodo t y wt el vector de variables de


actividad de la infraestructura industrial. Tomando como referencia la formulacin de la PD,
conjuntamente zt y wt conforman el vector de variables de control, es decir:

ut = { zt , wt }

3-10
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

El vector xt representa los stocks de cada producto (variables de estado) y el vector bt la demanda. La
anterior formulacin corresponde a un caso particular de la formulacin general de la PD:

GDP: = { Min t=1,T ctTxt + dtTut |


Atxt = bt - Et-1xt-1 - Btut t=1,T
Gtut = gt t=1,T
utR+ t=1,T , xtR+ t=1,T }

A diferencia del enfoque de la PDD-P, PDD-R mantiene la diferencia entre variables de estado y
variables de control.

Para resolver el problema PDD-R considera para cada perodo del horizonte de planificacin la
construccin paramtrica de una funcin de oferta para un nivel pt, lo que se puede conseguir resolviendo
para cada perodo el siguiente problema:

SFt(p): = { Min [etTzt + dtTwt ] |


zt = p
Gtwt + zt = gt
ztR+ , wtR+ }

En trminos de variacin de las variables de estado, xt -xt-1, el anterior problema puede formularse como

SFt(xt): = { Min [etTzt + dtTwt ] |


zt = bt + xt
Gtwt + zt = gt
ztR+ , wtR+ }

La PDD-R propone resolver paramtricamente SFt(p): para varios valores de p y construir la funcin de
costo de oferta t(zt) que determina el costo de producir zt en el perodo t y cuya derivada determina la
funcin de oferta t(zt), costo marginal de producir zt.

t(zt) = zt(zt)

Los valores de p se establecen de manera discreta para todo el rango de variacin de zt, resolvindose el
problema para puntos zet.

3-11
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL DDP-
DDP-R
APROXIMACION DE LA FUNCION OFERTA t(zt)
t(zt)

t(zet)
EVALUACIONES +
DISCRETAS

+
zt

Con base en las funciones de costo de oferta t(zt) el problema original se puede formular como

PDD-R: = { Min t=1,T [etTzt + t(zt) ] + T(xT) |


xt = xt-1 + zt - bt t=1,T
ztR+ t=1,T
x t xt xMAXt t=1,T }
MIN

La PDD-R propone resolver el problema utilizando los principios de Programacin Dinmica Clsica, lo
que implica una doble discretizacin: en las variables de produccin zt y en las de almacenamiento xt; por
lo anterior esta metodologa debe enfrentar los problemas asociados a la maldicin de la
dimensionalidad. El nombre de Programacin Dinmica Dual se asocia al hecho que la discretizacin de
la funcin t(zt) implica la discretizacin de su derivada t(zt), que corresponde a los costos marginales
de produccin, variables duales, para cada perodo.

Es interesante considerar el caso que se genera cuando la zona de factibilidad del problema SFt(p) es
independiente de t, y la funcin objetivo corresponde al descuento de costos reales que son constantes en
el tiempo, esto es:

SFt(p): = { Min t [eTzt + dTwt ] |


zt = p
Gwt + zt = g
ztR+ , wtR+ }

donde es el factor neto de descuento. Bajo estas condiciones no es necesario resolver todos los
problemas para cada perodo, ya que la zona de falibilidad es comn a todos y la funcin objetivo es co-
lineal para cada xt. Por lo tanto se puede establecer una funcin de costo de oferta para el perodo inicial
(t=0), y a partir de ella establecer la funcin descontada para cualquier perodo t, esto es:

t(zt) = t 0(zt)

lo que presenta ventajas computacionales para problemas con gran cantidad de perodos.

3-12
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

Este caso puede ser bastante comn, si se tiene en cuenta que la matriz Gt es funcin de la topologa y de
la tecnologa y el vector gt de las capacidades disponibles, aspectos que frecuentemente no cambian en los
diferentes perodos.

3.3. PROGRAMACIN DINMICA DUAL GENERALIZADA (PDDG)

La Programacin Dinmica Dual Generalizada (PDDG, Velsquez 2002), trabajo original desarrollado
por el autor, se basa en la aplicacin encadenada de TB a un problema de optimizacin multiperodo y
corresponde a una generalizacin de PDD-P y de la PDD-R. La PDDG considera la solucin del siguiente
problema dinmico lineal:

PDDG: = { Min t=1,T ctTxt + dtTut |


Atxt = bt - Et-1xt-1 - Btut t=1,T
Gtut = gt t=1,T
utR+ t=1,T , xtR+ t=1,T }

donde el vector xt representa las variables de estado y el vector ut las variables de control. At, Et, Bt, y Gt
son matrices de relaciones funcionales, bt y gt son vectores de recursos, ct y dt vectores de costos y T el
nmero de perodos del horizonte de planificacin.

PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL GENERALIZADA

Variables
de Control
ut

Atxt=bt-Et-1xt-1Btut
xt-1 Gtut = gt xt
Variables utR +
Variables
de Estado xtR+
de Estado

Retorno ctTxt + dtTut + t(xt)

Como se mencion anteriormente, la formulacin previa es apropiada para describir agregadamente


sistemas industriales en que las variables de estado se asocian con la cantidad de existencias de recursos
en los almacenamientos y las variables de control con la produccin y la distribucin de materias primas,
productos intermedios y/o productos finales. Por ejemplo, la familia de los problemas de optimizacin
PDDG: se puede utilizar en la planificacin tctica de sistemas industriales en los que sus caractersticas
no-lineales, si existen, pueden ser linealizadas. La aplicacin de PDDG resuelve el problema de
optimizacin como la solucin coordinada de una suma problemas ms simples.

El enfoque conceptual de PDDG es similar al de PDD-R, en el sentido que mantiene la diferencia entre
variables de estado y variables de control; la diferencia fundamental radica en la forma de evaluar la
funcin de oferta en cada perodo. En PDDG las funciones de oferta se construyen con base en el conjunto
de hiperplanos que la definen, que son generados utilizando TB de la misma forma que PDD-P lo hace
para la funcin de costo futuro.

La diferencia entre PDD-P y PDDG radica la formulacin conceptual, ya que PDD-P solo considera
variables de estado, en tanto que PDDG hace diferencia entre variables de estado y variables de control.
3-13
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PDDG considera una formulacin ms detallada en la que las variables que acoplan dos perodos
consecutivos, corresponden a las variables de estado, xt, en tanto que las variables no incluidas
directamente en la relacin dinmica son manejadas como variables de control, ut .

La formulacin conceptual del problema PDDG: permite desarrollar algoritmos eficaces basados en la
particin y la descomposicin del problema original utilizando TB ya que la solucin del problema se
obtiene con base en la solucin coordinada de mltiples problemas de dimensin ms pequea que en
PDD-P.

La equivalencia entre la formulacin de la PPD-P y PDDG puede visualizarse al considerar las dos
siguientes formulaciones

PDD-P: = { Min t=1,T cPtT xt |


APtxt = bPt - EPt-1xt-1 t=1,T
xtR+ t=1,T }

PDDG: = { Min t=1,T ctTyt + dtTut |


Atyt = bt - Et-1yt-1 t=1,T
Btyt + Gtut = gt t=1,T
utR+
t=1,T , xtR+ t=1,T }

donde el vector xt es igual a { yt , ut } y las matrices APt y EPt-1 iguales a

At 0
APt = | Bt Gt |
Et 0
EPt = | 0 0 |
3.3.1. TEORA BSICA

En la solucin de PDDG: se considera un proceso de dos fases: primero, se definen las variables de estado
xt como las variables de coordinacin y se desacopla el problema a nivel temporal, generando sub-
problemas para las variables de control ut. parametrizados en xt. Posteriormente, utilizando los principios
de PDD-P se resuelve el problema coordinador para las variables de estado xt, que incluyen los cortes de
Benders que se han generado.

El problema coordinador para xt es

CX: = { Min t=T-1 ctTxt + t(xt-1,xt) |


{ t(xt-1,xt) = Min | Btut = bt - Et-1xt-1 - Atxt , Gtut = gt , utR+ } t=1,T
dtTut
xtR+ t=1,T }

donde t(xt-1,xt) representa el costo del funcionamiento ptimo en el perodo t teniendo como condicin
de frontera inicial xt-1 y como frontera final xt y corresponde a la funcin objetivo del problema esttico
de operaciones SUt(xt-1,xt): definido como

SUt(xt-1,xt): = { t(xt-1,xt) = Min dtTut | Btut = bt - Et-1xt-1 - Atxt , Gtut = gt , utR+ }


3-14
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

El problema dual de SUt(xt-1,xt): es

DSUt(xt-1,xt): = {t(xt-1,xt) = Max tT[bt - Et-1xt-1 - Atxt] + tTgt | tTBt + tTGt dtT }

donde t representa el vector de variables duales de las restricciones Btut=bt-Et-1xt-1-Atxt y t el vector de


variables duales de Gtut=gt.

Considerando los cortes desacoplados para cada sub-problema SUt(xt-1,xt): el coordinador CX: es

CX: = { Min t=1,T ctTxt + t(xt-1,xt) |


t(xt-1,xt) + (t ) Et-1xt-1+(tk)TAtxt t(tk,tk) t=1,T
k T
k=1,IU(t) }

donde IU(t) representa el nmero de cortes generados para cada sub-problema SUt(xt-1,xt) y t(,) es una
funcin temporal, de dos argumentos, que define un valor constante

t(,) = Tbt + Tgt

El problema coordinador CX: solo contiene cortes de Benders y variables de estado, estructura similar a la
considerada para la PDD-P, por lo tanto es posible utilizar esta teora para resolverlo. Los cortes que
integran el coordinador CX: son

t(xt-1,xt) + (tk)TEt-1xt-1+(tk)TAtxt t(tk,tk) t=1,T k=1,IU(t)

La anterior condicin ser llamada corte de Benders tipo FO (funcin de oferta). Se debe notar que en la
publicacin original este tipo de corte se denomin corte de Benders tipo 1.

PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL GENERALIZADA
FASE I

CX: =
{
Min t=1,T ctTxt + t(xt-1,xt) |
t(xt-1,xt) + (tk)TEt-1xt-1+(tk)TAtxt t(tk,tk) t=1,T k=1,IU(t)
}

1k tk Tk
x1 k xtk xTk

t=1 t=T

SUt(xt-1,xt): = SUt(xt-1,xt): = SUt(xt-1,xt): =


{ t(xt-1,xt) = { t(xt-1,xt) = { t(xt-1,xt) =
Min dtTut | Min dtTut | Min dtTut |
Btut = bt - Et-1xt-1 - Atxt Btut = bt - Et-1xt-1 - Atxt Btut = bt - Et-1xt-1 - Atxt
Gtut = gt Gtut = gt Gtut = gt
utR+ utR+ utR+
} } }

Siguiendo el enfoque de recursin hacia atrs es posible aplicar TB al coordinador del ltimo perodo
CX:. El coordinador CGT-1: para el perodo {1,T-1} es
3-15
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

CGT-1: = { Min t=1,T-1 [ ctTxt +t(xt-1,xt)] + T(xT-1) |


t(xt-1,xt) + (tk)TEt-1xt-1+(tk)TAtxt t(tk,tk) t=1,T-1 kIU(t)
xtR+ t=1,T-1
T(xT-1) + kI1(T,j) k,jT (Tk)TET-1xT-1 kI1(T,j) k,jT T(Tk,Tk) jIJ(T-1) }

donde t+1(xt) respresenta la funcin de costo futuro definida en la PDD-P, k,jt la variable dual del k-
simo corte de Benders tipo FO para el perodo t obtenido al resolver el sub-problema SGt(xjt-1):, IJ(t) el
nmero de cortes generados para el sub-problema SGt(xjt-1): y I1(t,j) el nmero de cortes de Benders tipo
FO incluido en el sub-problema SGt(xjt-1).

El sub-problema SGt(xjt-1) para el perodo T es

SGT(xjT-1):={ T(xjT-1) = Min cTTxT + T(xT-1,xT) |


T(xT-1,xT) + (Tk)TATxT T(Tk,Tk) - (Tk)TET-1xjT-1 kIU(T)
xTR+ }

El nuevo corte incluido en CGT-1: es

T(xT-1) + kI1(T,j) k,jT (Tk)TET-1xT-1 kI1(T,j) k,jT T(Tk,Tk)

Esta condicin ser llamada corte de Benders tipo CF (funcin de costo futuro). Se debe notar que en la
publicacin original este tipo de corte se denomin corte de Benders tipo 2.

Aplicando TB para dividir el coordinador CGT-1: se obtiene un nuevo coordinador CGT-2:

CGT-2: = { Min z = t=1,T-2 [ ctTxt +t(xt-1,xt)] + T-1(xT-2) |


t(xt-1,xt) + (tk)TEt-1xt-1+(tk)TAtxt t(tk,tk) t=1,T-2 kIU(T-2)
xtR+ t=1,T-2
T-1(xT-2) + kI1(T-1,j) k,jT-1 (T-1k)TET-2xT-2 kI1(T-1,j) k,jT-1 T-1(T-1k,T-1k)
+ m=1,IJ(T-1,j) m,jT-1 kI1(T,j) k,jT T(Tk,Tk) jIJ(T-2) }

donde m,jt representa la variable dual del m-simo corte de Benders tipo CF para el perodo t obtenido en
la solucin del sub-problema SGt(xjt-1): definido para el perodo T-1 como

SGT-1(xjT-2):={ T(xjT-2) = Min cT-1TxT-1 + T-1(xT-2,xT-1) + T(xT-1) |


T-1(xT-2,xT-1) + (T-1k)TAT-1xT-1 T(T-1k,T-1k) - (T-1k)TET-2xjT-2 kIU(T-1)
xT-1R+
T(xT-1) + kI1(T,j) k,jT (Tk)TET-1xT-1 kI1(T,j) k,jT T(Tk,Tk) jIJ(T-1) }

Se puede demostrar que el problema coordinador para cada etapa intermedia t (menor que T) es

CGt: = { Min =1,t [ c Tx1 +(x-1,x)] + t+1(xt) |


(x-1,x) + (k)TE-1x-1+(k)TAx (k,k) =1,t kIU(t)
xR+ =1,t
t+1(xt) + kI1(t+1,j) k,jt+1 (t+1k)TEtxt tj jIJ(t) }

3-16
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

y el sub-problema para cada etapa intermedia t es

SGt(xjt-1):={ T(xjt-1) = Min ctTxt + t(xt-1,xt) + t+1(xt) |


t(xt-1,xt) + (tk)TAtxt T(tk,tk) - (tk)TEt-1xjt-1 kIU(t)
xtR+
t+1(xt) + kI1(t+1,j) t+1 (t+1k)TEtxt tj jIJ(t) }
k,j

donde tj es un valor constante calculado como

kI1(T,j) k,jT T(Tk,Tk) t=T


tj = { kI1(t,j) k,jt t(tk,tk) + m=1,IJ(t,j) m,jtt+1m t = 1 , T-1

El problema original GDP: corresponde al problema coordinador de la primera etapa CG1:, que tiene la
misma estructura del que sera el sub-problema SG1(xj0).

Las funciones t(xt-1,xt) corresponden a las funciones de oferta (costs supply functions) que Read
considera en la PDD-R.

La implementacin de PDDG implica la solucin coordinada jerrquicamente de dos tipos de problemas:


en el nivel superior se resuelve la cadena integrada por los sub-problemas SGt(xjt-1):, que con excepcin
de los sub-problemas asociados a las etapas extremas, 1 y T, cada uno de ellos acta como coordinador del
sub-problema siguiente, etapa t+1, y como sub-problema coordinado, etapa t-1. En el nivel inferior,
dependiente de cada sub-problemna SGt(xjt-1):, se resuelve los sub-problemas SUt(xt-1,xt):.

Como en el caso de la PDD-P, desde el punto de vista algortmico existe ms de una alternativa para
implementar la metodologa PDDG. En este caso se propone un algoritmo similar al de PDD-P con una
fase forward y una fase fast-backward. La diferencia fundamental radica en la fase forward en la que se
deben resolver dos problemas para cada etapa t; se propone que inicialmente se resuelva el sub-problema
SUT(xt-1,xt): y con base en su solucin se incluya un corte tipo FO en el sub-problema SGt(xt-1): y a partir
de su solucin se proceda a generar xt como condicin de frontera de la siguiente etapa; en la fase fast-
backward se insertan cortes tipo CF de en SGt(xt-1): con base en el valor de las variables duales obtenidas
para SGt+1(xt):.

3-17
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL GENERALIZADA
FASE II
t=1 t=T

xk xk
SGt(xt-1):= 1 SGt(xt-1):= T-1 SGt(xt-1):=
{ T(xjt-1) Min = { T(xjt-1) Min = {T(xjt-1) Min =
c tTxt + t(xt-1,xt) + t+1(xt) c tTxt + t(xt-1,xt) + t+1(xt) c tTxt + t(xt-1,xt) + t+1(xt)
| | |
t(xt-1,xt) + ( tk )TAtxt t(xt-1,xt) + ( tk )TAtxt t(xt-1,xt) + ( tk)TAtxt
T( t , t ) - ( tk )TEt-1xjt-1 kIU(t,j)
k k T( t , t ) - ( tk)TEt-1xjt-1 kIU(t,j)
k k
kjt+1 T(tk, tk) - ( tk)TEt-1xjt-1 kIU(t,j)
kjt+1
xtR+ xtR+ xtR+
t+1(xt) + kI1(t+1,j) k,j t+1 (t+1k )Te txt t+1(xt) + kI1(t+1,j) k,j t+1 ( t+1k )Te txt t+1(xt) + kI1(t+1,j) k,j t+1 ( t+1k )Te txt
tj jIJ(t) } tj jIJ(t) } tj jIJ(t) }

k1 xk0, x k1, kt xkt-1, xkt, kT xkT-1, x kT,

t=1 t=T

SUt(xt-1, xt): = SUt(xt-1, xt): = SUt(xt-1, xt): =


{ t(xt-1,xt) = { t(xt-1,xt) = { t(xt-1,xt) =
Min dtTut | Min dtTut | Min dtTut |
Btut = bt - Et-1xt-1 - Atxt Btut = bt - Et-1xt-1 - Atxt Btut = bt - Et-1xt-1 - Atxt
Gtut = gt Gtut = gt Gtut = gt
utR+ utR+ utR+
} } }

3.3.2. CASOS ESPECIALES

3.3.2.1. Bt , Gt , dt CONSTANTES

Consideremos el caso especial cuando la zona de factibilidad dual de los problemas SUt(xt-1, xt): es
esttica, lo que implica que las matrices Bt y Gt y el vector dt son independientes del tiempo y el problema
dual se formula como

DSUt(xt-1, xt): = { t(xt-1, xt) = Max tT[bt - Tt-1xt-1 - Wtxt] + tTgt |


tTB + tTG dT }

En este caso, un vector dual {t,t} factible para DSUt(xt-1, xt): es factible para todos los sub-problemas
DSUt(xt-1, xt): independientemente valor de t. Por tanto cuando se resuelve SUt(xt-1, xt): para valores
especficos de t es posible generar cortes tipo FO para todos los perodos y el coordinador CX: puede
expresarse como

CGt(xt-1): = { Min ctTxt + t(xt-1,xt) + t(xt) |


t(xt-1,xt) + (k)TWtxt t(k,k) - (k)TTt-1xt-1 kIU
t(xt) + kI1(t+1,j) tk,j (t+1k)TTtxt tj jIJ(t)
xtR+ }

donde el vector de variables duales {,} es independiente del tiempo. Para cada iteracin coordinador-
sub-problemas solo se requiere resolver un sub-problema SUt(xt-1, xt):. Esta situacin es frecuente para las
matrices Gt y Bt debido a que en muchos casos estn relacionadas con la tecnologa y la topologa del
sistema, las que en el corto plazo no varan. La situacin con el vector de costos dt es diferente ya que en
muchos casos es dependiente del tiempo. En casos en que la variacin temporal de dt se expresa como

dt = t d
3-18
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

donde es un factor de descuento y d es un vector de referencia de precios constantes. En este caso, los
sub-problemas SUt(xt-1, xt): se pueden formular como

SUt(xt-1, xt): = { Min t(xt-1, xt) = dTut |


But = bt - Tt-1xt-1 - Wtxt , Gut = gt , utR+ }

y el coordinador CGt(xt-1): como

CGt(xt-1): = { Min z = ctTxt + t (xt-1,xt) + t(xt) |


(xt-1,xt)+ (k)TWtxt t(k,k) - (k)TTt-1xt-1 kIU
t(xt) + kI1(t+1,j) tk,j (t+1k)TTtxt tj jIJ(t)
xtR+ }

y solo se requiere resolver un sub-problema, independientemente de la cantidad de perodos. Este hecho es


fundamental cuando el nmero de perodos es muy grande, como en el caso de los problemas de control
ptimo, que exigen muchos perodos para representar apropiadamente los movimientos continuos y las
restricciones diferenciales de las variables de estado.

Desde el punto de vista econmico, t(xt-1,xt) representa el costo de la operacin ptima en el perodo t
cuando las condiciones de frontera son xt-1 y xt, que ser constante e igual para todos los perodos,
independiente del tiempo en el corto y en el mediano plazo, si durante el perodo de planificacin la
topologa, la tecnologa y los ndices de precios son constantes.

Otros casos especiales pueden considerarse cuando el vector de precios de referencia, d, es dependiente
del tiempo presentando variaciones estacionales. En este caso es posible definir familias de funciones
e(xt-1,xt), donde el ndice e representa la variaciones estacional de d, definida como de. En este caso solo
se requiere resolver un problema para cada perodo que pertenece a una estacin e.

Desde el punto de vista algortmico se debe modificar el procedimiento propuesto para implementar la
metodologa PDDG y tomar ventaja de la estructura del problema. La modificacin se realiza en la fase
forward y radica en que posteriormente a resolver el sub-problema SUt(xt-1,xt): se incluyen un corte tipo
FO en todos los sub-problemas que pertenecen a la estacin e a la que pertenece SUt(xt-1,xt):.

3-19
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

PROGRAMACI
PROGRAMACIN DIN
DINMICA DUAL GENERALIZADA
Bt , Gt, dt - CONSTANTES
t=1 t=T

xk1 xk
SGt(xjt-1):= SGt(xjt-1):= T-1 SGt(xjt-1):=
{ T(xjt-1) min = { T(xjt-1) min = { T(xjt-1) min =
ctTxt + t(xt-1,xt) + t+1(xt) ctTxt + t(xt-1,xt) + t+1(xt) ctTxt + t(xt-1, xt) + t+1(xt)
| | |
t(xt-1,xt) + (tk )TAtxt t(xt-1, xt) + (tk )TAtxt t(xt-1, xt) + (tk )TAtxt
T(tk ,tk ) - (tk)TEt-1xjt-1 kIU(t,j) T(tk ,tk ) - (tk)TEt-1xjt-1 kIU(t,j) k,jt+1 T(tk ,tk ) - (tk)TEt-1xjt-1 kIU(t,j)
k,jt+1
xtR+ xtR+ xtR+
t+1(xt) + kI1(t+1,j) k,j t+1 (t+1k )Te txt t+1(xt) + kI1(t+1,j) k,j t+1 (t+1k )Te txt t+1(xt) + kI1(t+1,j) k,j t+1 (t+1k )Te txt
tj jIJ(t) } tj jIJ(t) } tj jIJ(t) }
k
k
k xkT
xk1 xkt

SUt(xt-1,xt): =
{t(xt-1,xt) =
Min dtTut |
But = bt - Tt-1xt-1 - Wtx t
Gut = gt
utR+
}

3.3.2.2. Wt = I y Tt = -I

Otro caso especial puede considerarse cuando Wt es igual a la matriz identidad y Tt es igual al negativo de
la matriz identidad, entonces xt se expresa como

xt = xt-1 + bt - Btut
o sea
xt = xt - xt-1 = bt - Btut

ste es un caso muy comn para las ecuaciones relacionadas con niveles de almacenamiento que
determinan la dinmica de las variables de estado xt. En este caso el nivel es igual al nivel en t-1 ms un
input externo y una combinacin lineal de las variables de produccin y de distribucin. Bajo esta
condicin, la funcin t(xt-1,xt) puede expresarse como t(xt) ya que el sub-problema se formula como

SUt(xt): = { t(xt) = Min dTut | But = bt - xt , Gut = gt , utR+ }

La ventaja de esta estructura es la funcin de costo t(xt) solamente depende de la variacin en el nivel
de las variables de estado xt, siendo independiente de su valor absoluto. El coordinador CX: puede
expresarse en trminos de xt como

CX: = { Min t=1,T ctT (q=1,t xq) + t t(xt) |


t(xt) + (k)Txt t(k,k) t=1,T kIT }

3.4. PROGRAMACIN DINMICA DUAL NO-LINEAL

Velsquez (2003) presenta consideraciones tericas relacionadas con la introduccin de los conceptos de
la Teora de Descomposicin Generalizada de Benders (GBD, Geoffrion 1972) para modelar bajo el
enfoque de programacin dinmica problemas con funcin objetivo lineal y restricciones no-lineales
continuas. De esta forma se utiliza en problemas lineales TB y en problemas no-lineales la extensin GBD
de Geoffrion, esta teora se denomina Programacin Dinmica Dual No-Lineal (PDD-NL), en ingls
3-20
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

Non-Linear Dual Dynamic Programming (NLDDP), y se considera un aporte original de la presente


investigacin.

El problema NLDDP: se formula como

NLDDP: = { Min t=1,T ctT xt | Gt(xt ,xt-1)=bt t=1,T ; xtR }

donde z es la funcin objetivo, ct es un vector de costos, xt es el vector de decisiones, Gt(xt,xt-1) una


funcin vectorial no-lineal y bt el vector de recursos compuesto por trminos independientes. La
restriccin no-lineal Gt(xt,xt-1)=bt reemplaza el conjunto de restricciones lineales expresadas como
Atxt+Et-1xt-1=bt en el problema PDD-P:.

De acuerdo con el principio de optimalidad de Bellman la solucin a NLDDP: puede obtenerse con base
en la cadena de problemas

PD-NLt(xt-1): = { t-1(xt-1) = Min ctT xt + t(xt) | Gt(xt ,xt-1)=bt t=1,T ; xtR }

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 perodo del horizonte de planificacin.

Para determinar t(xt) se debe considerar que en cada etapa t la formulacin anterior corresponde a un
tipo de problema que se puede descomponer utilizando los principios metodolgicos planteados por
Benders (TB) y ampliados por Geoffrion (GBD).

Tal como se hace en PDD-P, consideremos inicialmente la aplicacin de la GBD a un problema de dos
etapas. Tal como ocurre en PDD-P en el desarrollo de la NLDDP se ignoran los cortes que se refieren a la
factibilidad del problema, lo que implica que se asume que siempre hay solucin factible, lo que se logra
en la formulacin del problema, o con la relajacin de restricciones introduciendo factores de penalizacin
para el caso de su violacin.

Consideremos el problema

{ Min z = c1Tx1 + c2Tx2 | G1(x1 ,x0)=b1 ; G2(x2 ,x1)=b2 ; x1R ; x2R }

La aplicacin de la GBD implica dividir el problema en dos subproblemas, uno para cada perodo, o etapa.

PD-NL2(x1): = { 1(x1) = Min c2T x2 | G2(x2 ,x1)=b2 ; x2R }

para la etapa 2, y

PD-NL1(x0): = { 0(x0) = Min c1T x1 + 1(x1) | G1(x1 ,x0)=b1 ; x1R }

para la etapa 1.

Con base en la GBD se puede definir un proceso iterativo para estimar 1(x1). Geoffrion demostr que
para problemas convexos, es decir con funcin objetivo convexa para minimizacin y conjunto de
restricciones convexas, es posible obtener 0(x0) con base en los hiperplanos que aproximan la funcin

3-21
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

Lagrangeana del problema en el vecindario de la solucin ptima que define a 1(x1) que puede ser
aproximada con base en la siguiente representacin:

PD-NL2(x1): = { 1(x1) = Min a2 |


a2 c2Tx12 + (12)T (b2 - G(x12 ,x1))
a2 c2Tx22 + (22)T (b2 - G(x22 ,x1))
.
.
.
a2 c2Txj2 + (j2)T (b2 - G(xj2 ,x1)) }

donde j representa la iteracin, j2 corresponde al vector de variables duales correspondientes a las


restricciones del problema que define 0(x0) en la solucin obtenida en la iteracin j, y xj2 corresponde al
vector de variables primales en la solucin obtenida en la iteracin j.

Con base en la definicin de 1(x1) se modifica el problema PD-NL1(x1): para generar un problema
coordinador CX1(x1): con base en los cortes que definen 1(x1), de la siguiente manera:

CX1(x1): = { 0(x0) = Min c1T x1 + a2 |


G1(x1 ,x0)=b1
a2 c2Tx12 + (12)T (b2 - G(x12 ,x1))
a2 c2Tx22 + (22)T (b2 - G(x22 ,x1))
.
.
.
a2 c2 x 2 + ( 2) (b2 - G(xj2 ,x1))
T j j T

x1R , a2R }

Para dos etapas, el procedimiento comienza asumiendo un valor inicial x11 factible a G1(x1 ,x0)=b1 para
dicho valor se resuelve PD-NL2(x11): generando 12 y x12, se incluye el primer corte en el problema
coordinador CX1(x1):, es decir a2 (12)T(b2-G(x12,x1)), y se soluciona para obtener x21. Posteriormente se
resuelve (PD-NL2(x21): generando 22 y x22, y se incluye un nuevo corte en CX1(x1): y se genera x31, y as
sucesivamente. El proceso continua hasta que se satisfaga el criterio de convergencia que se da cuando la
cota superior c1Tx1+c2Tx2 (primal) es igual a la cota inferior c1Tx1+a2 (dual).

Para generalizar la teora NLDDP a un problema con T etapas, consideremos el problema de la ltima
etapa T asociado a la determinacin de T-1(xT-1) que se puede obtener resolviendo el problema

PD-NLT(xT-1): = { T-1(xT-1) = Min cTT xT | G(xT ,xT-1)=bT , xTR }

Para evaluar T-2(xT-2), es decir el costo de las dos ltimas etapas, se debe resolver el siguiente problema

PD-NLT-1(xT-2): = { T-2(xT-2) = Min cT-1T xT-1 + T-1(xT-1) | G(xT-1 ,xT-2)=bT-1 , xT-1R ;


{ T-1(xT-1) = Min cTT xT | G(xT ,xT-1)=bT , xTR } }

3-22
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

T-1(xT-1) se puede reemplazar por el conjunto de hiperplanos que acotan de la funcin Lagrangeana del
problema PD-NLT(xT-1):, lo que implica un problema coordinador

CXT-2(xT-2): = { T-2(xT-2) = Min cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 , xT-1R ;


aT-1 cTT x1T + (1T)T (bT - G(x1T ,xT-1)) }

donde aT-1 representa el valor de la funcin T-1(xT-1). Agrupando los trminos constantes, el corte puede
escribirse como

aT-1 + (1T)TG(x1T ,xT-1) cTT x1T + (1T)TbT

El anterior corte se puede generalizar para mltiples iteraciones (ndice j) como

aT-1 + (jT)TG(xjT ,xT-1) cTT xjT + (jT)TbT j=1,J

donde el ndice j representa una iteracin en la que se ha resuelto el problema PD-NLT(xT-1):, J el nmero
total de iteraciones, xjT la solucin ptima obtenida en la j-sima iteracin y jT el vector de variables
duales obtenidas para las restricciones G(xT ,xT-1)=bT en la j-sima iteracin. El coordinador CXT-2(xT-2):
queda

CXT-2(xT-2): = { T-2(xT-2) = Min cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 , xT-1R ;


aT-1 + (jT)TG(xjT ,xT-1) cTT xjT + (jT)TbT j=1,J }

Para la generalizacin del corte a incluir consideremos el problema CXT-2(xT-2): para evaluar T-3(xT-3)

CXT-3(xT-3): = { T-3(xT-3) = Min cT-2T xT-2 + T-2(xT-2) | G(xT-2 ,xT-3)=bT-2 , xT-2R


{ T-2(xT-2) = Min cT-1T xT-1 + aT-1 | G(xT-1 ,xT-2)=bT-1 , xT-1R
aT-1 + (jT)TG(xjT ,xT-1) cTT xjT + (jT)TbT j=1,J } }

Como en el caso anterior, reemplazando T-2(xT-2) por cortes se tiene

aT-2 cT-1T x1T-1 + a1T-1


+ (1T-1)T (bT-1 - G(x1T-1 ,xT-2) )
+ j=1,J T-1 [a1T-1 - cTT xjT - (jT)T (bT - G(xjT ,x1T-1)]
j

donde jt representa la variable dual del j-simo corte incluido para la estimacin a1T-1 y la variable aT-2
representa el valor de la funcin T-2(xT-2). Agrupando apropiadamente los trminos constantes, el anterior
corte se puede generalizar para mltiples iteraciones como

aT-2 + (kT-1)TG(xkT-1 ,xT-2) kT-1

donde el ndice k se refiere a la k-sima iteracin del problema CXT-2(xT-2): que define T-2(xT-2) y kT-1 es
un valor constante calculado como

kT-1 = cT-1T xkT-1 + akT-1 + (kT-1)TbT-1 + j=1,J(k) k,jT-1 [akT-1 - cTT xk,jT - (k,jT)T (bT - G(xk,jT ,xkT-1) ]

3-23
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

donde J(k) el nmero de cortes incluidos en CXT-2(xT-2): en la iteracin k. Para identificar las variables
primales y duales se requiere un doble super-ndice (k,j) que relacione las iteraciones de los problemas
PD-NLT(xT-1): y CXT-2(xT-2):.

aT-2 + (kT-1)TG(xkT-1 ,xT-2) cT-1T xkT-1 + akT-1


+ (kT-1)TbT-1 + j=1,J(k) k,jT-1 [akT-1 - cTT xk,jT - (k,jT)T (bT - G(xk,jT ,xkT-1)]

El problema general para T-3(xT-3) puede escribirse como

{ T-3(xT-3) = Min cT-2T xT-2 + aT-2 | G(xT-2 ,xT-3)=bT-2 ; xT-2R


aT-2 + (kT-1)TG(xkT-1 ,xT-2) kT-1 k=1,K }

donde K representa el nmero total de iteraciones realizadas para estimar T-2(xT-2.).

Con base en un proceso de induccin se puede probar que el sub-problema para cualquier etapa t es

{ t(xt) = Min ct+1T xt+1 + at+1 | G(xt+1 ,xt)=bt+1 ; xt+1R


at+1 + (jt+2)TG(xjt+2 ,xt+1) ) jt+2 j=1,IT(t+1) }

donde el ndice j representa una iteracin de problema que evala la funcin t(xjt) por medio de la
variable at, IT(t) el nmero de veces que se ha resuelto el problema asociado a la funcin t(xt), xjt la
solucin ptima obtenida en la j-sima iteracin y jt el vector de variables duales obtenidas para las
restricciones G(xt ,xt-1)=bt en la j-sima iteracin. jt+2 es un valor constante calculado como

cTT xjT + (jT)TbT t=T


jt = { ctT xjt + ajt + (jt)Tbt + k=1,IJ(t,j) k,jt kt+1 t = 1,T-1

donde IJ(t,j) representa el nmero de cortes incluidos en el problema evaluador de la funcin t-1(xt-1):
cuando se resuelve el problema t-1(xjt-1):

El problema que estima t(xt) cumple las funciones de un coordinador del tipo Benders de acuerdo a los
procedimientos de particin de problemas que A. M. Geoffrion especific. El problema correspondiente a
la primera etapa, es equivalente al problema original y obtiene la solucin a dicho problema en un nmero
finito de pasos, siempre y cuando todo el problema corresponda a uno de programacin convexa, esto
principalmente debido al encadenamiento de cortes que exige que el problema en cada etapa sea de
programacin convexa. La estructura de los cortes es similar a la determinada en la revisin realizada por
Velsquez et al. (2002) para la PDD-P.

Finalmente, en la extensin para el caso de funciones objetivo no-lineales el problema para estimar t(xt)
es:

{ t(xt) = Min ft+1( xt+1) + at+1 | G(xt+1 ,xt)=bt+1 ; xt+1R


at+1 + (jt+2)TG(xjt+2 ,xt+1) ) jt+2 j=1,IT(t+1) }

donde jt+2 es un valor constante calculado como

jt = fT(xjT) + (jT)TbT t=T


{ 3-24
Capitulo 3. Programacin Dinmica Optimizacin Estocstica Multi-Etapa con Manejo de Riesgo

ft( xjt) + t(xjt) + (jt)Tbt + k=1,IJ(t,j) k,jt t+1k t = 1,T-1

3-25