Andrs Ramos
Universidad Pontificia Comillas
http://www.iit.comillas.edu/aramos/
Andres.Ramos@comillas.edu
PROGRAMACIN DINMICA 1
Programacin dinmica (DP)
1. Definiciones
PROGRAMACIN DINMICA 2
Definiciones
En cada etapa se valora no slo el coste actual de tomar una decisin sino los costes futuros
que se originan a partir de ella.
Etapas: k
Decisiones en cada etapa: uk
Estados (situaciones en que puede encontrarse el sistema en cada etapa): xk
PROGRAMACIN DINMICA 3
Mediante una decisin uk se va de un estado al comienzo de una etapa xk a otro estado al
comienzo de la siguiente xk +1 .
En cada etapa se evala la decisin ptima para cada uno de sus estados xk .
Cada estado guarda toda la informacin necesaria para tomar las decisiones futuras sin
necesidad de conocer cmo se ha alcanzado dicho estado.
Es un procedimiento recursivo que resuelve de manera iterativa, incorporando cada vez una
etapa, partes cada vez mayores del problema original.
El procedimiento puede hacerse hacia delante o hacia atrs.
PROGRAMACIN DINMICA 4
Principio de optimalidad de la DP o de Bellman
Dado un estado, la poltica ptima para las siguientes etapas no depende de la poltica
tomada en las etapas anteriores.
La decisin de ptima inmediata slo depende del estado en el que se est, no de cmo se
lleg hasta l. Toda la informacin sobre el pasado se resume en el estado en que se
encuentra.
Una vez conocida la solucin ptima global, cualquier solucin parcial que involucre slo
una parte de las etapas es tambin una solucin ptima.
Todo subconjunto de una solucin ptima es a su vez una solucin ptima para un problema
parcial.
PROGRAMACIN DINMICA 5
Ejemplo
Andorra
Lrida
Barcelona
Lrida
Zaragoza
Castelln
Zaragoza
Madrid Valencia
Si nos preguntamos por el camino ms corto entre Zaragoza y Barcelona, es obvio que ser
el mismo que el utilizado en la solucin del problema global (Madrid - Barcelona).
Si existiera un camino ms corto entre Zaragoza y Barcelona (problema parcial), lo
habramos tomado como parte de la solucin del problema global.
PROGRAMACIN DINMICA 6
Relacin recursiva (hacia atrs)
{ }
f k* ( xk ) = min cxk uk + f k*+1 ( xk +1 )
uk
PROGRAMACIN DINMICA 7
Coste acumulado desde una etapa k + 1 hasta el final para un estado xk +1 , f k*+1 ( xk +1 )
PROGRAMACIN DINMICA 8
Ejemplo: problema del viajero
B 7 E
4 1
6 4
2 H
3
3 6
A 4 C 2 F J
3
4 4
I
3 4 3
1 3
D 5 G
PROGRAMACIN DINMICA 9
DP hacia atrs (backward DP)
Para la etapa k = 3
Estados x4
Estados x3 H I Distancia acumulada f 3* Decisin ptima u3*
E 4 8 4 H
F 9 7 7 I
G 6 7 6 H
Para la etapa k = 2
Estados x3
PROGRAMACIN DINMICA 10
Estados x2 E F G Distancia acumulada f 2* Decisin ptima u2*
B 11 11 12 11 E, F
C 7 9 10 7 E
D 8 8 11 8 E, F
Finalmente en la etapa k = 1
Estados x2
Estado x1 B C D Distancia acumulada f1* Decisin ptima u1*
A 13 11 11 11 C, D
PROGRAMACIN DINMICA 11
DP hacia adelante (forward DP)
Para la etapa k = 2
Estado x1
Estados x2 A Distancia acumulada f 2* Decisin ptima u2*
B 2 2 A
C 4 4 A
D 3 3 A
Para k = 3
Estados x2
Estados x3 B C D Distancia acumulada f 3* Decisin ptima u3*
E 9 7 7 7 C, D
F 6 6 4 4 D
G 8 8 8 8 B, C, D
PROGRAMACIN DINMICA 12
Para k = 4
Estados x3
Estados x4 E F G Distancia acumulada f 4* Decisin ptima u4*
H 8 10 11 8 E
I 11 7 11 7 F
PROGRAMACIN DINMICA 13
Ejemplos caractersticos de DP de sistemas de energa elctrica
3. Coordinacin hidrotrmica
PROGRAMACIN DINMICA 14
Planificacin de la expansin de la generacin
Minimizar los costes totales (fijos y variables) de expansin del equipo generador para un
alcance de varios aos.
Decisiones: Potencia a instalar de cada tipo de generacin en cada ao del alcance del
modelo.
Restricciones de expansin:
Potencia instalada inicial conocida.
Mxima (mnima) potencia instalable, inversin mxima (mnima), nmero mximo
(mnimo) de generadores instalables en cada ao.
Restricciones de operacin:
Balance generacin demanda en cada ao.
PROGRAMACIN DINMICA 15
Ejemplo de planificacin de la expansin de la generacin
PROGRAMACIN DINMICA 16
Etapa k = 2004
Estado 8000 Cst fut Inst pt
7000 15+40=55 55 1000
8000 0 0 0
Etapa k = 2003
Estado 7000 8000 Cst fut Inst pt
6000 15+45+55=115 15+90=105 105 2000
7000 55 15+45=60 55 0
8000 0 0 0
PROGRAMACIN DINMICA 17
Etapa k = 2002
Estado 6000 7000 8000 Cst fut Inst pt
4000 15+130+105=250 15+195+55=265 250 2000
5000 15+65+105=185 15+130+55=200 15+195=210 185 1000
6000 105 15+65+55=135 15+130=145 105 0
7000 55 15+65=80 55 0
8000 0 0 0
Etapa k = 2001
Estado 4000 5000 6000 7000 8000 Cst fut Inst pt
2000 15+120+250=385 15+180+185=380 380 3000
3000 15+60+250=325 15+120+185=320 15+180+105=300 300 3000
4000 250 15+60+185=260 15+120+105=240 15+180+55=250 240 2000
5000 185 15+60+105=180 15+120+55=190 15+180=195 180 1000
6000 105 15+60+55=130 15+120=135 105 0
PROGRAMACIN DINMICA 18
Etapa k = 2000
Estado 2000 3000 4000 5000 6000 Cst fut Inst pt
1000 15+55+380=445 15+110+300=425 15+165+240=420 420 3000
2000 15+55+300=365 15+110+240=365 15+165+180=360 360 3000
3000 15+55+240=305 15+110+180=305 15+165+105=285 285 3000
Etapa k= 1999
Estado 1000 2000 3000 Cst fut Inst pt
0 15+50+420=485 15+100+360=475 15+150+285=450 450 3000
PROGRAMACIN DINMICA 19
MTODO DE PROGRAMACIN DINMICA
Andrs Ramos
Mariano Ventosa
Mayo 1996
PROGRAMACIN DINMICA 20
CONTENIDO
1. Introduccin.
2. Algoritmo de la Programacin Dinmica.
3. Ejemplo: Gestin de un embalse de bombeo puro.
4. Programacin Dinmica Estocstica.
5. Formulacin Matemtica.
6. Modelo de gestin hidrotrmica desarrollado por Red Elctrica de Espaa (MITRE):
6.1. Modelo bsico.
6.2. Proceso de clculo.
6.3. Tratamiento de la aleatoriedad en la demanda y los fallos trmicos.
6.4. Tratamiento de la aleatoriedad en las aportaciones
6.5. Consideracin de mltiples embalses.
PROGRAMACIN DINMICA 21
REFERENCIAS
[1] Bertsekas, 87. "Dynamic Programming. Deterministic and Stochastic Models". Prentice-Hall, Inc. New Jersey,
1987.
PROGRAMACIN DINMICA 22
INTRODUCCIN
PROGRAMACIN DINMICA 23
El principio de optimalidad de Bellman.
- Ejemplo:
Castelln
Zaragoza
Madrid Valencia
PROGRAMACIN DINMICA 24
+ Si nos preguntamos por el camino ms corto entre Zaragoza y
Barcelona, es obvio que ser el mismo que el utilizado en la solucin
del problema global (Madrid - Barcelona).
+ Si existiera un camino ms corto entre Zaragoza y Barcelona
(problema parcial), lo habramos tomado como parte de la solucin
del problema global.
PROGRAMACIN DINMICA 25
- La programacin dinmica se adapta bien a problemas de carcter
secuencial como por ejemplo:
PROGRAMACIN DINMICA 26
ALGORITMO DE LA PROGRAMACIN DINMICA
- El estado siguiente a cada etapa depende del estado actual del sistema, de
las decisiones tomadas en esa etapa y de las perturbaciones exteriores:
PROGRAMACIN DINMICA 27
* xk+1 = fk (xk, uk, wk)
Escenario
wk
Estado
Operaciones siguiente
SISTEMA xk+1
uk xk
PROGRAMACIN DINMICA 28
- La solucin del problema PN-1 (considerando slo la ltima etapa) se
obtiene como sigue:
+ Para cada estado xN-2 se calcula el coste asociado a cada una de las
posibles decisiones uN-2 que estar compuesto por dos trminos.
* El coste de la etapa N-2 debido a la decisin tomada.
PROGRAMACIN DINMICA 29
* El coste en que incurriremos en el futuro debido al estado final
del sistema xN-1. Este valor es la solucin del problema PN-1, ya
resuelto.
+ El coste futuro para el estado final del sistema xN-1 obtenido como
ptimo del problema PN-1 forma parte de nuestra solucin ptima
segn el principio de Bellman.
+ Nuevamente nos quedamos para cada estado xN-2 con la decisin de
coste mnimo, obteniendo as la solucin del problema PN-2.
PROGRAMACIN DINMICA 30
- La siguiente figura ilustra este procedimiento.
PN-2 PN-1
P0 P1
PROGRAMACIN DINMICA 31
Ejemplo: Gestin de un embalse de bombeo puro
+ Etapas k = 0, 1 y 2.
- Sabemos que x0 = 1.
- Las decisiones posibles son acerca del bombeo del embalse en cada
semana uk: 0, 1 2.
PROGRAMACIN DINMICA 32
+ Mxima capacidad de bombeo: 2 unidades.
+ Semana 1: w0 = 2 unidades.
+ Semana 2: w1 = 1 unidades.
+ Semana 3: w2 = 3 unidades.
PROGRAMACIN DINMICA 33
- La demanda vale w2 = 3.
PROGRAMACIN DINMICA 34
Solucin de la segunda semana (etapa 1):
- La demanda vale w1 = 1.
PROGRAMACIN DINMICA 35
3 1 3 1+2+0+0.3+0 = 1.3
2 Imposible -
PROGRAMACIN DINMICA 36
Solucin de la primera semana (etapa 0):
- La demanda vale w0 = 2.
- El estado inicial x0 = 1.
PROGRAMACIN DINMICA 37
- La solucin de esta etapa nos proporciona el coste mnimo total de 5.1
unidades econmicas, con la siguiente poltica de decisiones:
+ Bombeo de la semana 1: u0 = 1
+ Bombeo de la semana 2: u1 = 2
+ Bombeo de la semana 3: u2 = 2
PROGRAMACIN DINMICA 38
x0=1 x1=0 x2=1 x3=0
1.2 0
lleno = 3
u1=0
u2=0
2.1 1
semilleno = 2
u1=0
u2=1
5.1 3.1 u1=1 2
semivaco = 1
u0=1
4 u2=2
vaco = 0 u1=2
4.1 u2=2
w0=2 w1=1 w2=3
semana 1 semana 2 semana 3
PROGRAMACIN DINMICA 39
- En nuestro ejemplo: 2 + 4 + 3 + 3 - 1 = 26 evaluaciones.
PROGRAMACIN DINMICA 40
PROGRAMACIN DINMICA ESTOCSTICA
Determinista vs Estocstica:
- Determinista:
- Estocstica:
PROGRAMACIN DINMICA 41
Ejemplo:
PROGRAMACIN DINMICA 42
Programacin Dinmica Estocstica aplicada a la Coordinacin
Hidrotrmica:
+ Demanda Elctrica.
+ Hidraulicidad.
+ Fallos de los grupos.
PROGRAMACIN DINMICA 43
FORMULACIN MATEMTICA
- Donde
+ k = 0, 1, ... N-1.
+ xk pertenece a un espacio de estados posibles.
+ uk pertenece a un espacio de controles posibles y puede estar
restringido en cada estado de cada etapa a un subconjunto del
mismo.
+ wk pertenece a un espacio de perturbaciones posibles y est
caracterizada por una funcin de probabilidad que puede
depender explcitamente de xk y uk pero no de valores anteriores
wk-1 ...w0.
PROGRAMACIN DINMICA 44
- Llamamos = {0, 1, ..., N-1} a una ley de control que para cada estado xk
proporciona un control uk: uk = k (xk)
PROGRAMACIN DINMICA 45
- Dado un estado inicial x0 el problema es encontrar una ley de control
ptima * = {*0, *1, ..., *N-1} que minimice la esperanza (E) del coste
definida como:
N 1
J 0 ( x0 ) = E g N ( xN ) + g k [ f k ( xk , k ( xk ), wk ) ]
wk
k =0
PROGRAMACIN DINMICA 46
J k ( xk ) = min E { g k ( xk , uk , wk ) + J k +1 [ f k ( xk , uk , wk ) ]}
uk wk
PROGRAMACIN DINMICA 47
MODELO DE GESTIN HIDROTRMICA DESARROLLADO POR
RED ELCTRICA DE ESPAA (MITRE):
Modelo bsico:
PROGRAMACIN DINMICA 48
- El problema de programacin dinmica es el siguiente:
PROGRAMACIN DINMICA 49
+ Es necesario disponer de la curva de costes futuros del agua en
funcin del nivel, para cada semana.
+ Demanda.
+ Aportaciones.
PROGRAMACIN DINMICA 50
+ Fallos de los grupos.
PROGRAMACIN DINMICA 51
Proceso de Clculo.
PROGRAMACIN DINMICA 52
xN-2 xN-1 xN= 0
CT1+CN-13
CN-22 CN-12
CT1+CN-12 2
1
CT1+CN-10
PROGRAMACIN DINMICA 53
C N -1 = C o s t e s f u t u r o s d e l a g u a
L a p e n d ie n te d e e sta
C N -1 0 c u r v a e s e l v a lo r
m a r g in a l d el a g u a
C N -1 1 en la eta p a N -1
C N -1 2
C N -1 3
x N -1
0 1 2 3
- Dado que el coste futuro del agua para la etapa N es igual a cero, la
trayectoria ptima en cada caso es la de mxima turbinacin.
- La curva de costes futuros CN-1 para la etapa xN-2 se obtiene de los costes
calculados para cada estado xN-1.
- Para la etapa N-2 hay que calcular los costes para cada estado xN-2. La
figura muestra el proceso para el nivel 1.
PROGRAMACIN DINMICA 54
+ Se ha supuesto que el coste total mnimo (trmico + futuro del agua)
se obtiene para XN-1 igual a 2.
+ Por tanto CN-21 = CT1 + CN-12 .
+ La trayectoria ptima para cada xk debe coincidir con aqulla que iguale el
valor marginal del agua en la curva de costes futuros Ck+1, con el coste
marginal del equipo trmico CT de la etapa k.
PROGRAMACIN DINMICA 55
Tratamiento de la aleatoriedad en la demanda y los fallos trmicos.
PROGRAMACIN DINMICA 56
PROGRAMACIN DINMICA 57
Tratamiento de la aleatoriedad en las aportaciones.
PROGRAMACIN DINMICA 58
determinado nivel de aportaciones le siga otro cualquiera de los
cinco posibles.
PROGRAMACIN DINMICA 59
+ Ahora las cinco curvas de coste futuro (k+1) se ponderan con las
probabilidades compuestas, obtenindose cinco curvas, una para
cada nivel de aportaciones de la etapa k.
Mltiples Embalses.
- Para una representacin realista del caso espaol son necesarios entre 30
y 40 embalses.
PROGRAMACIN DINMICA 60
+ La trayectoria ptima para cada estado inicial no se obtiene
tanteando todas las posibles, sino directamente, mediante tcnicas
de programacin lineal con restricciones y funcin objetivo no
lineales:
+ Se utiliza la herramienta MINOS.
+ La funcin objetivo es el coste total, suma del trmico (lineal),
ms el coste futuro del agua (no lineal).
+ En este clculo se incluye toda la red hidrulica en detalle
agrupada en unos 40 subsistemas.
+ Los resultados obtenidos del problema de optimizacin planteado,
para cada estado inicial, son:
+ La trayectoria ptima.
+ El coste de la trayectoria ptima, para construir las curvas de
costes futuros.
+ Los costes marginales del agua para cada embalse.
PROGRAMACIN DINMICA 61
+ Para limitar el nmero de estados iniciales, o lo que es lo mismo para
limitar el nmero de trayectorias ptimas que hay que buscar, el
algoritmo de la programacin dinmica reduce el nmero de estados
iniciales posibles de forma apriorstica.
PROGRAMACIN DINMICA 62