Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo 3 PDF
Capitulo 3 PDF
3. PROGRAMACIÓN DINÁMICA
Cuando la función Θ (.) es separable a lo largo de las etapas del proceso de decisión 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 )
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 política óptima tiene la propiedad de que las
restantes decisiones hasta la etapa final T, representadas por (ut , ut+1 , ... , uT) deben constituir una política
ó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
programación dinámica ha sido una alternativa numérica válida para resolver muchos tipos de problemas
no solubles por métodos directos de programación matemática.
Cuando las etapas se asocian a un espacio continuo, como el tiempo, el enfoque de Programación
Dinámica puede ser muy rico para estudiar el comportamiento de los sistemas a lo largo de dicho espacio.
En adelante se asociará las etapas a períodos del horizonte de planificación. Para el caso lineal el problema
de Programación Dinámica (PD:) puede formularse como
3-1
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
Programació
Programación Diná
Dinámica - Conceptualizació
Conceptualización Programació
Programación Diná
Dinámica
Etapas (Periodos)
Variables de ut
Control
u1 ut uT
Para resolver el problema mediante PD éste se descompone en múltiples etapas, una por cada período,
encadenando las etapas por medio de la denominada función de costo futuro αt(xt ,ut), que por la
condición de separabilidad y el “Principio de Optimalidad” solamente es función explícita de las variables
de estado e independiente de las variables de control, por lo tanto el problema a resolver en cada etapa es:
donde αt(xt) representa la función de los costos futuros asociados a la operación óptima del sistema para
los períodos posteriores a t, dado que al final de dicho período el estado del sistema es xt.
La evaluación de la función αt(xt) es el problema central de la PD. Existen al menos dos alternativas:
3-2
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
por medio de algoritmos numéricos basados en tablas que almacenan los valores de αt(xt) para valores
discretos de xt, que es convencionalmente el método con el cual se asocia la Programación Dinámica
Clásica (PD); ó
por medio de métodos analíticos que utilizan la definición de αt(xt), que es el método utilizado por
versiones modernas, como la Programación Dinámica Dual.
Un algoritmo de PD basado en la evaluación de la función αt(xt) por medio tablas considera dos fases: i)
evaluación de la tablas asociadas a las funciones αt(xt); y ii) determinación de la solución óptima al
problema, x*t.
Las soluciones a obtener mediante este tipo de algoritmo dependen del nivel de discretización que se
utilice para las variables de estado xt, que se puede asociar al número de intervalos en los que se divide la
zona factible de xt en lo que se refiere a sus cotas de variación. En adelante se asocia el superíndice d a la
notación para indicar el nivel de discretización, es decir que αdt(xt) corresponde a la función de costos
futuros obtenida por un algoritmo de PD para un nivel de discretización d. La discretización implica que
se considera un número finito de d posibles estados para evaluar puntos de la función αt(xt). El vector xdt
de posibles estados se puede expresar como
Consideremos la solución del problema de la última etapa para un nivel de discretización d, para una
condición inicial xeT-1, que pertenece a uno de los posible valores discretos considerados para xT-1
αdT-1(xeT-1) representa exactamente a αT-1(xeT-1) debido a que no hay ninguna aproximación en el problema
que la define. Para estimar la función αT-1(xT-1) para valores de xT-1 que no pertenecen a xdT-1 se requiere
de un proceso de interpolación, lineal o no lineal, que debido a la convexidad (Davis y Provonost 1972) de
αT-1(xT-1) implica siempre la sobrestimación del verdadero valor. Por lo tanto se puede afirmar que
independiente del nivel de discretización d se cumple
3-3
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA CLÁ
CLÁSICA
APROXIMACION DE LA FUNCION DE COSTO FUTURO αT(xT)
αt(xt)
αT(xe T)
EVALUACIONES DISCRETAS
+
xt
Comenzando por la etapa T-2 de manera recursiva es posible demostrar que siempre se cumple que
El error de aproximación 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 gráfica
+ PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA CLÁ
CLÁSICA
APROXIMACION DE αt(xt)
αt(xt) +
+
+
+ + α1(x1)
+ + αt(xt)
+ αT(xT)
xt
Con respecto al nivel de discretización es fácil verificar que debido a la convexidad de αt(xt) a menor
nivel de discretización mayor sobrestimación de αt(xt); es decir que si xdd2t esta incluido en xdd1t se
cumple
3-4
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
lo que es coherente matemáticamente ya que cuando el número de componentes de xddt tiende a infinito se
tiene el problema exacto.
El efecto de la sobreestimación depende del sistema; por ejemplo, en el caso de aplicaciones de recursos
hídricos retarda el uso del agua con respecto a su uso óptimo, lo que se traduce en niveles de embalse
superiores al perfil de operación óptimo que se obtendría con un método continuo. Por lo tanto, se puede
afirmar que la pérdida de precisión de los algoritmos de PD, entendida como menor nivel de
discretización, retarda el uso del recurso hídrico con respecto a su uso óptimo. Lo que implica que la PD
produce políticas más conservadoras con respecto a la política ó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 información "completa" con respecto al costo de oportunidad implícito
en el nivel de las variables de estado para todas las etapas y todos los estados. Esta información es
suficiente para determinar la trayectoria óptima x*d definida como
donde x*dt representa la solución óptima para el período t dado el nivel de discretización d.
Simultáneamente, 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 período t, y de las de control al interior del
período t, como función del valor de las variables de estado al comienzo del período.
Para determinar la decisión óptima para cualquier período t se puede utilizar la información dual, es decir
αdt(xt), o la información primal, es decir x*dt(xt-1).
Si el problema se resuelve exactamente, es decir que no hay errores en la estimación de las funciones
αt(xt), lo que ocurre cuando el nivel de discretización d tiende a infinito, cualquiera de las dos alternativas
se puede utilizar indistintamente, ya que darán el mismo resultado. La igualdad entre las solución dual y la
primal se basa en la Teoría de la Dualidad que dice que si existe solución al problema dual
en el óptimo se cumple
donde π*t es la solución al problema dual DPD: y x*t la solución al problema primal PD:.
Se debe tener en cuenta que las funciones aproximadas αdt(xt) implican que la solución x*dt(xt-1) para las
variables primales es subóptima y que por lo tanto la solución dual correspondiente es no factible (Ring y
Read 1994), esto es consecuencia directa del proceso de interpolación. Bajo estas consideraciones se debe
ser cuidadoso al utilizar información económica factible lo que puede distorsionar los resultados
obtenidos. En principio, sin mucha rigurosidad matemática desde el punto de vista teórico, se puede
3-5
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
afirmar que el uso de la información primal subóptima debe ser más apropiado que el uso de la
información dual no factible. Pero a pesar de lo anterior, las soluciones deben ser "similares".
Cuando existen múltiples variables de estado, la PD debe enfrentar “el problema de la maldición de la
dimensionalidad” (“curse of dimensionality problem") que radica en la alta dimensionalidad de las tablas
que deben manejar los algoritmos numéricos, debido al número de variables de estado y a multiplicación
por el nivel de discretización, 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 solución al problema para todo el horizonte de planificación. Por esta razón, en la práctica se
debe limitar el número de variables de estado y el nivel de discretización.
En términos generales, el enfoque utilizado para reducir de tamaño 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,j≠i} y fijando su valor
con base en una función de agregación Θ({xt,j≠i}), matemáticamente lo anterior es
ξt,i = Θ({xt,j≠i})
donde δt,j,i corresponde a un factor de ponderación de la variable de estado xt,j cuando se evalúa 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 solución del problema original implica la solución coordinada de N problemas aproximados con base
en dos variables de estado. La agregación de N-1 variables de estado conlleva simplificaciones del
problema original que deben analizarse para cada caso específico. La coordinación de la solución debe
soportarse en desarrollos matemáticos que describan los procedimientos que se deben seguir para obtener
la "mejor" solución al problema según sea el caso. En la literatura técnica 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. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
Se debe tener en claro que la suboptimalidad será una característica presente en todos los casos de
agregación de variables de estado, ya que el problema real ha sido simplificado para obtener una "buena"
solución factible, mas no la solución óptima.
Existen al menos dos orígenes para lo que se ha denominado Programación Dinámica 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 Velásquez et. al (Velásquez 1997, Velásquez,
Restrepo y Campo 1999). El segundo corresponde al trabajo desarrollado Read y sus colaboradores
(Casseboom y Read 1987, Read 1989, Read y George 1990).
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
metodología de la Programación Dinámica, a problemas con múltiples variables de estado sin enfrentar “el
problema de la maldición de la dimensionalidad”. Pereira y Pinto utilizan la Teoría de Benders (TB) para
establecer la función de costo futuro del sistema con base en los hiperplanos que la definen, en vez de
calcularla a partir de la discretización de su valor en varios puntos del espacio primal de las variables de
estado; posteriormente Velásquez y sus colaboradores (Velásquez 1997, Velásquez, Restrepo y Campo
1999) revisan y ajustan las ecuaciones propuestas por Pereira y Pinto para garantizar la convergencia al
óptimo de dicha teoría. Este último trabajo se considera aporte original del autor a la teoría matemática de
la Programación Dinámica 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 programación dinámica con los principios de la teoría
propuesta por Benders. La formulación propuesta para PDD-P es:
y t = { xt , ut }
Las formulaciones de la PD y de PDD-P son equivalentes; sin embargo, la formulación que hace explícita
las variables de control es más rica para describir un sistema técnico-económico. La diferencia
fundamental con respecto a la PD es la forma de resolver el problema, es decir la forma en como se evalúa
las funciones de costo futuro αt(xt). Las dos soluciones son equivalentes. Dado que la función de costo
futuro es independiente del valor de las variables de control se tiene
Para desarrollar la teoría que soporta PDD-P consideremos, como en el caso de PD, el problema de la
última etapa, T, asociado a la determinación de αT-1(xT-1) que se puede obtener resolviendo el problema
Con base en la Teoría de la Dualidad se puede evaluar αT-1(yT-1) a partir del problema dual
donde representa πt las variables duales del problema asociado a la etapa t. Por lo tanto αT-1(yT-1) cumple
con
La anterior condición 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 solución del problema PD: con base en la
solución coordinada de un conjunto de problemas del tipo:
donde IT(t) corresponde al número 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 solución del
problema CPt+1(yt):
En definitiva la función α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
3-8
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
La revisión realizada por Velásquez y sus colaboradores (Velásquez 1997, Velásquez, Restrepo y Campo
1999) implica la inclusión de un término faltante en los cortes de Benders considerados originalmente por
Pereira. Los nuevos cortes tienen la siguiente forma
donde IJ(t,j) representa el número 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).
La siguiente gráfica ilustra la aproximación de la función de costo futuro bajo el enfoque PDD-P.
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA DUAL
αt(xt) PROXIMACION DE αt(xt)
CORTES DE BENDERS
xt
Fuera del punto óptimo, la aproximación que realiza PDD-P subestima el verdadero valor de αt(xt), en la
medida que se generan cortes el error de subestimación desaparece y al final la representación del
problema es exacta en el vecindario de la solución óptima, fuera de este vecindario no lo es. Este hecho es
de fundamental importancia cuando los cortes de Benders son utilizados como definición de la función de
costo futuro para simular decisiones para casos no considerados en el modelo de optimización. Dicha
simulación, por definición 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. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
Desde el punto de vista algorítmico existe más de una alternativa para enfrentar la solución de un
problema dinámico 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 condición 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 algorítmico: i) pasar a la etapa anterior solo cuando se ha obtenido la solución óptima para
CPt(yt-1):, lo que implica la generación de múltiples cortes a partir de la solución 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 también se conoce como fast-backward.
Por otro lado, E. G. Read y otros desarrollaron un trabajo que también llamaron Programación Dinámica
Dual (Casseboom y Read 1987, Read 1989, Read y George 1990, Yang y Read 1999) que en adelante se
referirá como PDD-R. La formulación conceptual de PDD-R hace distinción entre variables de control y
variables de estado. En sistemas productivos dicho manejo implica diferenciar las variables de producción
y de distribución de las de los inventarios. La PDD-R puede considerarse como un planteamiento dual al
enfoque clásico de PD en el sentido que en la PD clásica para la solución numérica se escoge una rejilla
de variables de estado primales (“stocks”) y para cada punto de la rejilla se encuentra la decisión óptima y
los precios sombra implícitos (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 período, PDD-R
resuelve paramétricamente un sub-problema por período, o por grupos de períodos cuando la función de
oferta es común. Posteriormente, utilizando recursión hacia atrás, PDD-R combina estas funciones con el
fin determinar la estrategia óptima.
ut = { zt , wt }
3-10
Capitulo 3. Programación Dinámica Optimización Estocástica 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 formulación corresponde a un caso particular de la formulación general de la PD:
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 período del horizonte de planificación la
construcción paramétrica de una función de oferta para un nivel pt, lo que se puede conseguir resolviendo
para cada período el siguiente problema:
En términos de variación de las variables de estado, xt -xt-1, el anterior problema puede formularse como
La PDD-R propone resolver paramétricamente SFt(p): para varios valores de p y construir la función de
costo de oferta Ωt(zt) que determina el costo de producir zt en el período t y cuya derivada determina la
función de oferta Θt(zt), costo marginal de producir zt.
Θt(zt) = ∇zΩt(zt)
Los valores de p se establecen de manera discreta para todo el rango de variación de zt, resolviéndose el
problema para puntos zet.
3-11
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA 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
La PDD-R propone resolver el problema utilizando los principios de Programación Dinámica Clásica, lo
que implica una doble discretización: en las variables de producción zt y en las de almacenamiento xt; por
lo anterior esta metodología debe enfrentar los problemas asociados a la “maldición de la
dimensionalidad”. El nombre de Programación Dinámica Dual se asocia al hecho que la discretización de
la función Ωt(zt) implica la discretización de su derivada Θt(zt), que corresponde a los costos marginales
de producción, variables duales, para cada período.
Es interesante considerar el caso que se genera cuando la zona de factibilidad del problema SFt(p) es
independiente de t, y la función objetivo corresponde al descuento de costos reales que son constantes en
el tiempo, esto es:
donde β es el factor neto de descuento. Bajo estas condiciones no es necesario resolver todos los
problemas para cada período, ya que la zona de falibilidad es común a todos y la función objetivo es co-
lineal para cada xt. Por lo tanto se puede establecer una función de costo de oferta para el período inicial
(t=0), y a partir de ella establecer la función descontada para cualquier período t, esto es:
Ωt(zt) = β t Ω0(zt)
lo que presenta ventajas computacionales para problemas con gran cantidad de períodos.
3-12
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
Este caso puede ser bastante común, si se tiene en cuenta que la matriz Gt es función de la topología y de
la tecnología y el vector gt de las capacidades disponibles, aspectos que frecuentemente no cambian en los
diferentes períodos.
La Programación Dinámica Dual Generalizada (PDDG, Velásquez 2002), trabajo original desarrollado
por el autor, se basa en la aplicación encadenada de TB a un problema de optimización multiperíodo y
corresponde a una generalización de PDD-P y de la PDD-R. La PDDG considera la solución del siguiente
problema dinámico lineal:
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
número de períodos del horizonte de planificación.
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA DUAL GENERALIZADA
Variables
de Control
ut
Atxt=bt-Et-1xt-1–Btut
xt-1 Gtut = gt xt
Variables ut∈R +
Variables
de Estado xt∈R+
de Estado
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
función de oferta en cada período. 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 función de costo futuro.
La diferencia entre PDD-P y PDDG radica la formulación 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. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
PDDG considera una formulación más detallada en la que las variables que acoplan dos períodos
consecutivos, corresponden a las variables de estado, xt, en tanto que las variables no incluidas
directamente en la relación dinámica son manejadas como variables de control, ut .
La formulación conceptual del problema PDDG: permite desarrollar algoritmos eficaces basados en la
partición y la descomposición del problema original utilizando TB ya que la solución del problema se
obtiene con base en la solución coordinada de múltiples problemas de dimensión más pequeña que en
PDD-P.
La equivalencia entre la formulación de la PPD-P y PDDG puede visualizarse al considerar las dos
siguientes formulaciones
At 0
APt = | Bt Gt |
Et 0
EPt = | 0 0 |
3.3.1. TEORÍA BÁSICA
En la solución de PDDG: se considera un proceso de dos fases: primero, se definen las variables de estado
xt como las variables de coordinación 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.
donde Ωt(xt-1,xt) representa el costo del funcionamiento óptimo en el período t teniendo como condición
de frontera inicial xt-1 y como frontera final xt y corresponde a la función objetivo del problema estático
de operaciones SUt(xt-1,xt): definido como
DSUt(xt-1,xt): = {Ωt(xt-1,xt) = Max πtT[bt - Et-1xt-1 - Atxt] + δtTgt | πtTBt + δtTGt ≤ dtT }
Considerando los cortes desacoplados para cada sub-problema SUt(xt-1,xt): el coordinador CX: es
donde IU(t) representa el número de cortes generados para cada sub-problema SUt(xt-1,xt) y θt(π,δ) es una
función temporal, de dos argumentos, que define un valor constante
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 teoría para resolverlo. Los cortes que
integran el coordinador CX: son
La anterior condición será llamada corte de Benders tipo FO (función de oferta). Se debe notar que en la
publicación original este tipo de corte se denominó corte de Benders tipo 1.
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA 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)
}
t=1 t=T
Siguiendo el enfoque de recursión hacia atrás es posible aplicar TB al coordinador del último período
CX:. El coordinador CGT-1: para el período {1,T-1} es
3-15
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
donde αt+1(xt) respresenta la función de costo futuro definida en la PDD-P, ψk,jt la variable dual del k-
ésimo corte de Benders tipo FO para el período t obtenido al resolver el sub-problema SGt(xjt-1):, IJ(t) el
número de cortes generados para el sub-problema SGt(xjt-1): y I1(t,j) el número de cortes de Benders tipo
FO incluido en el sub-problema SGt(xjt-1).
Esta condición será llamada corte de Benders tipo CF (función de costo futuro). Se debe notar que en la
publicación original este tipo de corte se denominó corte de Benders tipo 2.
donde γm,jt representa la variable dual del m-ésimo corte de Benders tipo CF para el período t obtenido en
la solución del sub-problema SGt(xjt-1): definido para el período T-1 como
Se puede demostrar que el problema coordinador para cada etapa intermedia t (menor que T) es
3-16
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
El problema original GDP: corresponde al problema coordinador de la primera etapa CG1:, que tiene la
misma estructura del que sería 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.
Como en el caso de la PDD-P, desde el punto de vista algorítmico existe más de una alternativa para
implementar la metodología 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 solución se incluya un corte tipo FO en el sub-problema SGt(xt-1): y a partir
de su solución se proceda a generar xt como condición 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. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA 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 ∀k∈IU(t,j)
k k θ T(π t ,δ t ) - (π tk)TEt-1xjt-1 ∀k∈IU(t,j)
k k
ψ kjt+1 θ T(πtk,δ tk) - (π tk)TEt-1xjt-1 ∀k∈IU(t,j)
ψ kjt+1
xt∈R+ xt∈R+ xt∈R+
αt+1(xt) + Σk∈I1(t+1,j) ψ k,j t+1 (πt+1k )Te txt α t+1(xt) + Σ k∈I1(t+1,j) ψ k,j t+1 (π t+1k )Te txt α t+1(xt) + Σk∈I1(t+1,j) ψ k,j t+1 (π t+1k )Te txt
≥ φ tj ∀j∈IJ(t) } ≥ φ tj ∀j∈IJ(t) } ≥ φ tj ∀j∈IJ(t) }
t=1 t=T
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
estática, lo que implica que las matrices Bt y Gt y el vector dt son independientes del tiempo y el problema
dual se formula como
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
específicos de t es posible generar cortes tipo FO para todos los períodos y el coordinador CX: puede
expresarse como
donde el vector de variables duales {π,δ} es independiente del tiempo. Para cada iteración coordinador-
sub-problemas solo se requiere resolver un sub-problema SUt(xt-1, xt):. Esta situación es frecuente para las
matrices Gt y Bt debido a que en muchos casos están relacionadas con la tecnología y la topología del
sistema, las que en el corto plazo no varían. La situación con el vector de costos dt es diferente ya que en
muchos casos es dependiente del tiempo. En casos en que la variación temporal de dt se expresa como
dt = β t d
3-18
Capitulo 3. Programación Dinámica Optimización Estocástica 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
Desde el punto de vista económico, Ωt(xt-1,xt) representa el costo de la operación óptima en el período t
cuando las condiciones de frontera son xt-1 y xt, que será constante e igual para todos los períodos,
independiente del tiempo en el corto y en el mediano plazo, si durante el período de planificación la
topología, la tecnología 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 período que pertenece a una “estación” e.
Desde el punto de vista algorítmico se debe modificar el procedimiento propuesto para implementar la
metodología PDDG y tomar ventaja de la estructura del problema. La modificación 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 “estación” e a la que pertenece SUt(xt-1,xt):.
3-19
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
PROGRAMACIÓ
PROGRAMACIÓN DINÁ
DINÁMICA 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 ∀k∈IU(t,j) θ T(πtk ,δtk ) - (πtk)TEt-1xjt-1 ∀k∈IU(t,j) ψ k,jt+1 θ T(πtk ,δtk ) - (πtk)TEt-1xjt-1 ∀k∈IU(t,j)
ψ k,jt+1
xt∈R+ xt∈R+ xt∈R+
αt+1(xt) + Σk∈I1(t+1,j) ψ k,j t+1 (πt+1k )Te txt αt+1(xt) + Σk∈I1(t+1,j) ψ k,j t+1 (πt+1k )Te txt αt+1(xt) + Σk∈I1(t+1,j) ψ k,j t+1 (πt+1k )Te txt
≥ φ tj ∀j∈IJ(t) } ≥ φtj ∀j∈IJ(t) } ≥ φ tj ∀j∈IJ(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
ut∈R+
}
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 común para las ecuaciones relacionadas con niveles de almacenamiento que
determinan la dinámica de las variables de estado xt. En este caso el nivel es igual al nivel en t-1 más un
“input” externo y una combinación lineal de las variables de producción y de distribución. Bajo esta
condición, la función Ωt(xt-1,xt) puede expresarse como Ωt(Δxt) ya que el sub-problema se formula como
La ventaja de esta estructura es la función de costo Ωt(Δxt) solamente depende de la variación en el nivel
de las variables de estado Δxt, siendo independiente de su valor absoluto. El coordinador CX: puede
expresarse en términos de Δxt como
Velásquez (2003) presenta consideraciones teóricas relacionadas con la introducción de los conceptos de
la Teoría de Descomposición Generalizada de Benders (GBD, Geoffrion 1972) para modelar bajo el
enfoque de programación dinámica problemas con función objetivo lineal y restricciones no-lineales
continuas. De esta forma se utiliza en problemas lineales TB y en problemas no-lineales la extensión GBD
de Geoffrion, esta teoría se denomina Programación Dinámica Dual No-Lineal (PDD-NL), en inglés
3-20
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
De acuerdo con el principio de optimalidad de Bellman la solución a NLDDP: puede obtenerse con base
en la cadena de problemas
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 período del horizonte de planificación.
Para determinar αt(xt) se debe considerar que en cada etapa t la formulación anterior corresponde a un
tipo de problema que se puede descomponer utilizando los principios metodológicos planteados por
Benders (TB) y ampliados por Geoffrion (GBD).
Tal como se hace en PDD-P, consideremos inicialmente la aplicación 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 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
La aplicación de la GBD implica dividir el problema en dos subproblemas, uno para cada período, o etapa.
para la etapa 2, y
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 función objetivo convexa para minimización y conjunto de
restricciones convexas, es posible obtener α0(x0) con base en los hiperplanos que aproximan la función
3-21
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
Lagrangeana del problema en el vecindario de la solución óptima que define a α1(x1) que puede ser
aproximada con base en la siguiente representación:
donde j representa la iteración, πj2 corresponde al vector de variables duales correspondientes a las
restricciones del problema que define α0(x0) 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.
Con base en la definición 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:
x1∈R , a2∈R }
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 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
Para evaluar αT-2(xT-2), es decir el costo de las dos últimas etapas, se debe resolver el siguiente problema
3-22
Capitulo 3. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
αT-1(xT-1) se puede reemplazar por el conjunto de hiperplanos que acotan de la función Lagrangeana del
problema PD-NLT(xT-1):, lo que implica un problema coordinador
donde aT-1 representa el valor de la función αT-1(xT-1). Agrupando los términos constantes, el corte puede
escribirse como
donde el índice j representa una iteración en la que se ha resuelto el problema PD-NLT(xT-1):, 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. El coordinador CXT-2(xT-2):
queda
Para la generalización del corte a incluir consideremos el problema CXT-2(xT-2): para evaluar αT-3(xT-3)
donde λjt representa la variable dual del j-ésimo corte incluido para la estimación a1T-1 y la variable aT-2
representa el valor de la función αT-2(xT-2). Agrupando apropiadamente los términos constantes, el anterior
corte se puede generalizar para múltiples iteraciones como
donde el índice k se refiere a la k-ésima iteración 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. Programación Dinámica Optimización Estocástica Multi-Etapa con Manejo de Riesgo
donde J(k) el número de cortes incluidos en CXT-2(xT-2): en la iteración 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):.
Con base en un proceso de inducción se puede probar que el sub-problema para cualquier etapa t es
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 πjt 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
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):
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 número
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. (2002) para la PDD-P.
Finalmente, en la extensión para el caso de funciones objetivo no-lineales el problema para estimar αt(xt)
es:
3-25