Programación
dinámica
PID_00275575
Paolo Dini
Tiempo mínimo de dedicación recomendado: 2 horas
© FUOC • PID_00275575 Programación dinámica
Paolo Dini
Investigador sénior en el Centro
Tecnológico de Telecomunicacio-
nes de Cataluña. Doctor en Ciencia
de la Información y Comunicación
por la Universidad de Roma La Sa-
pienza. Sus áreas de interés son el
aprendizaje automático distribuido,
el control de sistemas multiagente y
la minería de datos para la sostenibi-
lidad. Ha publicado más de ochenta
artículos en revistas científicas y con-
gresos internacionales.
El encargo y la creación de este recurso de aprendizaje UOC han sido coordinados
por el profesor: Jordi Casas Roma
Primera edición: septiembre 2021
© de esta edición, Fundació Universitat Oberta de Catalunya (FUOC)
Av. Tibidabo, 39-43, 08035 Barcelona
Autoría: Paolo Dini
Producción: FUOC
Todos los derechos reservados
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico,
mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
del titular de los derechos.
© FUOC • PID_00275575 Programación dinámica
Índice
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1 Conceptos básicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Evaluación de la política . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 Ejemplo: cuadrícula 4 × 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Mejora de la política . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Iteración de la política . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.1 Ejemplo: alquiler de coche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Iteración del valor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1 Ejemplo: el problema del jugador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6 Iteración generalizada de la política . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7 Eficiencia de los algoritmos DP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
© FUOC • PID_00275575 5 Programación dinámica
Introducción
En este módulo veremos los algoritmos de programación dinámica (dynamic
programming o DP en inglés). Nos referimos a DP como a una colección de al-
goritmos que buscan las políticas óptimas, dado el conocimiento perfecto del
modelo de entorno como un proceso de decisión de Markov, (Markov decision
process o MDP en inglés).
Normalmente estos algoritmos tienen una elevada carga computacional, pero
son muy importantes y útiles desde el punto de vista teórico. DP proporciona
los fundamentos esenciales para la comprensión de los métodos que se pre-
sentarán en todos los apartados siguientes. De hecho, podemos afirmar que
todos los métodos que veremos en este curso se pueden entender como un
intento de conseguir el mismo rendimiento que DP, solo que con una carga
computacional menor y sin asumir el conocimiento perfecto del entorno.
En este módulo, después de haber introducido los elementos básicos de los
algoritmos DP, estudiaremos el problema de predicción o de evaluación de la
política (policy evaluation en inglés).
Después pasaremos al problema de control y trataremos los métodos de me-
jora de la política (policy improvement en inglés), iteración de la política (policy
iteration en inglés), iteración del valor (value iteration) e iteración generalizada
de la política (generalized policy iteration).
Finalmente, concluiremos este apartado con algunas reflexiones sobre la efi-
ciencia de los algoritmos DP.
© FUOC • PID_00275575 6 Programación dinámica
Objetivos
En este módulo encontraremos las herramientas necesarias para ser capaces
de asimilar los siguientes objetivos:
1. Entender qué son los métodos DP, su motivación, y su conexión con los
métodos de aprendizaje por refuerzo.
2. Comprender cómo los métodos DP resuelven el problema de predicción o
de evaluación de la política.
3. Entender cómo los métodos DP tratan el problema de control por medio de
los diferentes algoritmos de mejora de la política, iteración de la política,
iteración del valor e iteración generalizada de la política.
4. Conocer la complejidad y la eficiencia de los métodos DP.
© FUOC • PID_00275575 7 Programación dinámica
1. Conceptos básicos
.
Asumimos, como se hace normalmente, que el entorno es un MDP finito, o
dicho de otra manera, se asume que sus estados, acciones y recompensas sean
conjuntos finitos y que sus dinámicas se puedan describir por un conjunto de
probabilidades p(s′ ,r |s,a)∀s ∈ S,a ∈ A(s),r ∈ R,s′ ∈ S+ , donde S+ es la unión de S
y el estado terminal, si el problema es episódico.
La idea principal de los métodos DP, y del aprendizaje por refuerzo, en general,
es usar la función de valor para organizar y estructurar la búsqueda de buenas
políticas. Como se ha introducido en los apartados anteriores, podemos fácil-
mente obtener políticas óptimas, una vez hayamos encontrado las funciones
de valor óptimas, v∗ (s) o q∗ (s,a), que satisfacen la ecuación de optimalidad de
Bellman:
Lecturas adicionales
D. P. Bertsekas (2017).
v∗ (s) = max E[Rt+1 + γv∗ (St+1 )|St = s,At = a)]
a Dynamic Programming and
Optimal Control, Vol. I.
∑ (1) D. P. Bertsekas (2012).
= max p(s′ ,r |s,a)[r + γv∗ (s′ )] Dynamic Programming and
a
s′ ,r Optimal Control, Vol. II:
Approximate Dynamic
Programming.
o
q∗ (s,a) = E[Rt+1 + γ max q∗ (St+1 ,a′ )|St = s,At = a)]
a
∑ (2)
= p(s′ ,r |s,a)[r + γ max
′
q∗ (s′ ,a′ )]
a
s′ ,r
∀s ∈ S,a ∈ A(s),s′ ∈ S+ .
En los apartados siguientes veremos como los diferentes algoritmos DP se for-
man convirtiendo las ecuaciones de Bellman en tareas, es decir, convirtiendo
las ecuaciones en reglas de actualizaciones para mejorar las aproximaciones
de la función de valor deseada.
© FUOC • PID_00275575 8 Programación dinámica
2. Evaluación de la política
.
En este apartado estudiaremos cómo calcular la función de valor de un esta-
do vπ (s) para una política arbitraria π. Esto se conoce, generalmente, como
problema de evaluación de la política o policy evaluation en inglés. A veces,
también se puede encontrar con el nombre de problema de predicción.
Recordamos aquí las siguientes definiciones, que son válidas ∀s ∈ S:
˙ π [Gt |St = s]
vπ (s)=E
= Eπ [Rt+1 + γGt+1 |St = s]
(3)
= Eπ [Rt+1 + γvπ (St+1 )|St = s]
∑ ∑
= π(a,s) p(s′ ,r |s,a)[r + γvπ (s′ )]
a s′ ,r
donde π(a|s) es la probabilidad de tomar una acción a en un estado s bajo
la política π, y las esperanzas son condicionadas a la política π que se es-
tá siguiendo. La existencia y la unicidad de vπ están garantizadas siempre y
cuando γ < 1 o la finalización esté garantizada para todos los estados bajo la
política π.
Si las dinámicas del entorno son completamente conocidas, la ecuación (3) es
un sistema de |S| ecuaciones lineales simultáneas en |S| con variables vπ (s),s ∈
S. En principio, su solución es sencilla, aunque el tiempo de computación
puede ser elevado. Para nuestro objetivo, los métodos de solución iterativa
son los más apropiados. Consideramos una secuencia de funciones de valor
aproximadas v0 ,v1 ,v2 ,..., donde cada una mapea S+ a R (números reales). La
aproximación inicial, v0 , se elige arbitrariamente y cada aproximación sucesi-
va se obtiene usando la ecuación de Bellman para vπ (ecuación 3) como regla
de actualización:
˙ π [Rt+1 + γvk (St+1 )|St = s]
vk+1 (s)=E
∑ ∑ (4)
= π(a,s) p(s′ ,r |s,a)[r + γvk (s′ )]
a s′ ,r
∀s ∈ S.
© FUOC • PID_00275575 9 Programación dinámica
Claramente, vk = vπ es un punto fijo para esta regla de actualización, porque
la ecuación de Bellman asegura la igualdad en este caso. La secuencia vk , en
general, converge a vπ con k → ∞, bajo las mismas condiciones que garantizan
la existencia de vπ .
Este algoritmo se llama evaluación iterativa de la política (iterative policy
evaluation en inglés).
Para producir cada aproximación sucesiva, vk+1 desde vk , el algoritmo aplica
la misma operación a cada estado s: se sustituye el valor antiguo de s por
uno nuevo obtenido desde los valores antiguos de los estados sucesivos a s, y
las recompensas inmediatas esperadas, durante todos los posibles pasos de la
transición bajo la política que se está evaluando. Esta operación se llama ac-
tualización esperada (expected update en inglés). Cada iteración del algoritmo
actualiza el valor de cada estado una vez, para producir la nueva función de
valor aproximada vk+1 . Existen diferentes tipos de actualizaciones esperadas,
que dependen de si se está actualizando un estado (como hemos comentado
anteriormente) o una pareja estado-acción, y de cómo se combinan los valores
estimados y los estados sucesivos. Todas las actualizaciones en los algoritmos
DP se llaman esperadas porque se basan en una esperanza sobre todos los po-
sibles estados sucesivos, más que en una muestra del próximo estado.
Para implementar el algoritmo de evaluación iterativa de la política, se puede
usar el pseudocódigo 1. Formalmente, el algoritmo de evaluación iterativa de
la política converge solo en el límite, pero en la práctica se debe detener antes.
El pseudocódigo controla el valor maxs∈S |vk+1 (s) – vk (s)| después de cada paso,
y finaliza cuando es suficientemente pequeño.
Algorithm 1 Evaluación iterativa de la política para estimar V ≈ vπ
Entrada: política π a evaluar
Parámetro del algoritmo: θ , determina la precisión de la estimación
Inicializar V(s) ∀s ∈ S+ arbitrariamente, excepto V(terminal) = 0
while ∆ > θ do
∆←
–0
for cada s ∈ S do
v←– V(s)
∑ ∑
– a π(a|s) s′ ,r p(s′ ,r |s,a)[r + γV(s′ )]
V(s) ←
∆ ← max(∆,|v – V(s)|)
end for
end while
2.1 Ejemplo: cuadrícula 4 × 4
En este entorno consideramos la cuadrícula de tamaño 4 × 4, como la que
mostramos en la figura 1.
© FUOC • PID_00275575 10 Programación dinámica
Figura 1. Ejemplo de evaluación de la política para el problema de la cuadrícula 4 × 4
1 2 3
4 5 6 7
Rt = −1
(en todas las transiciones) 8 9 10 11
12 13 14 Acciones
Los estados no terminales son {1,2, . . . ,14}. Existen cuatro posibles acciones
en cada estado, A = {arriba,abajo,derecha,izquierda}, que de forma determinis-
ta causan la transición al próximo estado correspondiente, excepto aquellas
acciones que harían salir el agente de la cuadrícula y que, de hecho, dejan el
estado inalterado.
Por ejemplo, presentamos los siguientes casos para entender el funcionamien-
to del entorno:
• p(6, – 1 | 5,derecha) = 1
• p(7, – 1 | 7,derecha) = 1
• p(10,r | 5,derecha) = 0, ∀r ∈ R
Esta es una tarea descontada y episódica. La recompensa es –1 para todas las
transiciones hasta que se llegue al estado terminal. Los estados terminales son
los que están en gris en la figura 1. Notar que, aunque sean dos en la figura,
formalmente es uno solo.
Suponemos que el agente sigue una política aleatoria equiprobable, es decir,
donde todas las acciones son igualmente válidas. La parte izquierda de la fi-
gura 2 muestra la secuencia de la función de valor vk , calculada usando el
algoritmo de evaluación de la política. La estimación final es vπ , que en este
caso proporciona, para cada estado, la negación del número de pasos espera-
dos desde el estado hasta el estado terminal. Dicho de otra manera, la colum-
na a la izquierda representa la secuencia de las aproximaciones de la función
de valor de estado para una política aleatoria (donde todas las acciones son
equiprobables). La columna de la derecha es, en cambio, una secuencia de la
política greedy, que corresponde a las estimaciones de la función de valor. Se
muestran las flechas correspondientes a cada acción que se obtiene de buscar
el máximo de la función de valor (los números están redondeados a la primera
cifra decimal). En este caso, todas las políticas después de la tercera iteración
son óptimas.
© FUOC • PID_00275575 11 Programación dinámica
Figura 2. Secuencia del algoritmo de evaluación de la política en el ejemplo de la cuadrícula
4×4
Fuente: Sutton & Barto, 2018
© FUOC • PID_00275575 12 Programación dinámica
3. Mejora de la política
.
La principal razón para calcular la función de valor de una política, es ayudar
en la búsqueda de políticas mejores. Supongamos que hemos determinado la
función de valor vπ de una política arbitraria π. Queremos saber, si en algún
estado s podemos cambiar la política para elegir de manera determinista una
acción a ̸= π(s). Sabemos la bondad de seguir la política actual en s, es decir,
conocemos vπ (s), pero ¿sería mejor o peor cambiar a una nueva política? Se
podría considerar la selección de a en s y, a partir de ahí, seguir la política
existente π. El valor de este comportamiento es:
qπ (s,a)=E[R
˙ t+1 + γvπ (St+1 )|St = s,At = a]
∑ (5)
= p(s′ ,r |s,a)[r + γvπ (s′ )]
s′ ,r
El factor clave es comprobar si qπ (s,a) es mayor o menor que vπ (s). Si es mayor
(si es mejor seleccionar a estando en s y sucesivamente seguir π, que seguir π
todo el tiempo) entonces sería oportuno seleccionar a cada vez que estamos
en s, y la nueva política sería, de hecho, mejor en general.
Este sería un caso especial de un resultado más general llamado mejora de la
política o policy improvement en inglés. Sean π y π′ dos políticas deterministas
cualesquiera; si ∀s ∈ S resulta que
qπ (s,π′ (s)) ≥ vπ (s) (6)
entonces la política π′ debe ser igual de buena o mejor que π. O, de otra
manera, debe obtener retornos esperados más grandes o iguales en todos los
estados s ∈ S:
vπ′ (s) ≥ vπ (s). (7)
Además, si la ecuación 6 es una desigualdad estricta en cada estado, enton-
ces debe ser una desigualdad estricta también la ecuación 7 en aquel estado.
Este resultado se aplica en particular a las dos políticas introducidas anterior-
mente, π (la original) y π′ que es idéntica a π excepto que π′ (s) = a ̸= π(s).
Obviamente, la ecuación 6 vale en cualquier estado excepto en s. Por lo tanto,
si qπ (s,a) > vπ (s), entonces la política con cambio es, sin duda, mejor que π.
© FUOC • PID_00275575 13 Programación dinámica
La idea existente detrás de la demostración del teorema de policy improvement
es sencilla. Empezando por la ecuación 6, vamos expandiendo la qπ y aplica-
mos la ecuación 7, hasta que obtenemos vπ′ (s):
vπ (s) ≤ qπ (s,π′ (s)) = E[Rt+1 + γvπ (St+1 )|St = s,At = π′ (s)]
= Eπ′ [Rt+1 + γvπ (St+1 )|St = s]
≤ Eπ′ [Rt+1 + γqπ (St+1 ,π′ (St+1 ))|St = s]
= E[Rt+1 + γvπ (St+1 )|St = s,At = π′ (s)]
= Eπ′ [Rt+1 + γE[Rt+2 + γvπ (St+2 )|St+1 ,At+1 = π′ (St+1 )]|St = s]
(8)
′ 2
Eπ [Rt+1 + γRt+2 + γ vπ (st+2 )|St = s]
≤ E′π [Rt+1 + γRt+2 + γ2 Rt+3 + γ3 vπ (st+3 )|St = s]
...
≤ E′π [Rt+1 + γRt+2 + γ2 Rt+3 + γ3 Rt+4 + ... + |St = s]
= vπ′ (s).
Hasta ahora hemos visto como, dada una política y su función de valor, po-
demos fácilmente evaluar un cambio en la política en un estado determinado
con una acción particular. La extensión natural es considerar cambios en todos
los estados y en todas las posibles acciones, y seleccionando en cada estado la
acción que parece mejor sobre la base de qπ (s,a). En otras palabras, considerar
la nueva política greedy π′ determinada por:
π′ (s)=˙ arg max qπ (s,a)
a
= arg max E[Rt+1 + γvπ (St+1 )|St = s,At = a] (9)
a
∑
= arg max p(s′ ,r |s,a)[r + γvπ (s′ )],
a
s′ ,r
donde arg maxa denota el valor de a que maximiza la expresión. Algoritmo greedy
El término voraz o greedy se
La política greedy toma la acción que parece mejor en el futuro cercano (des- utiliza en informática para
describir cualquier
pués de un paso adelante) basándose en vπ . Por como está construida, la políti- procedimiento de búsqueda
ca greedy satisface las condiciones del teorema de policy improvement (ecuación o decisión que seleccione
alternativas basándose
6), así que sabemos que es mejor que la política original. El proceso de hacer únicamente en
una política nueva que mejora progresivamente la política original, se llama consideraciones locales o
inmediatas
mejora de la política o policy improvement, en inglés.
© FUOC • PID_00275575 14 Programación dinámica
Suponemos ahora que la nueva política greedy π′ es buena, pero no llega a
mejorar la política π. Entonces, vπ = vπ′ y, por la ecuación 9, podemos escribir
que ∀s ∈ S:
vπ′ (s) = max E[Rt+1 + γvπ (St+1 )|St = s,At = a]
a
∑ (10)
= max p(s′ ,r |s,a)[r + γvπ (s′ )].
a
s′ ,r
Esta fórmula resulta ser la misma ecuación de Bellman (ecuación 1) y, por
lo tanto, vπ′ debe ser v∗ , y π y π′ deben ser políticas óptimas. La mejora de
la política debe darnos estrictamente una política mejor, excepto cuando la
política original sea la óptima.
En este apartado hemos tratado el caso especial de políticas deterministas. En
el caso general, una política estocástica π especifica las probabilidades π(a|s)
de escoger cada acción a en cada estado s. Sin entrar en detalle, podemos con-
cluir que todas las ideas de este apartado se extienden fácilmente a políticas
estocásticas. El teorema de policy improvement se formula exactamente igual en
el caso de políticas estocásticas. Además, si tenemos múltiples acciones para
las cuales se obtiene el máximo, como en la ecuación 9, entonces, en el caso
estocástico, no necesitamos seleccionar una única acción entre ellas. En cam-
bio, cada acción que maximiza puede ser una porción de la probabilidad de
ser seleccionada en una nueva política greedy.
© FUOC • PID_00275575 15 Programación dinámica
4. Iteración de la política
.
Una vez la política π ha sido mejorada, usando vπ para conseguir una política
π′ , podemos también calcular vπ′ y mejorarla aun, produciendo otra política
π′′ todavía mejor. Obtendremos así una secuencia de políticas y funciones de
valor que mejoran de forma monótona.
E I E I E I E
π0 –→ vπ0 →
– π1 –→ vπ1 →
– π2 –→ ... →
– π∗ –→ vπ+ (11)
E I
donde –→ indica una evaluación de la política y →
– indica una mejora de la
política (de improvement en inglés).
Este procedimiento garantiza que cada política es una mejora de la anterior,
a menos que sea la óptima. Dado que un MDP solo puede tener un número
finito de políticas, este procedimiento converge a una política óptima y a una
función de valor óptima en un número finito de iteraciones.
Esta manera de encontrar la política óptima se llama iteración de la política o
policy iteration, en inglés. El algoritmo completo se detalla en el pseudocódigo
2. Se debe notar que cada evaluación de la política se inicia con el valor de la
función de valor de la política anterior. Esto típicamente genera un aumento
en la velocidad de convergencia de la evaluación de la política, porque la
función de valor cambia poco de una política a la siguiente.
4.1 Ejemplo: alquiler de coche
Jack gestiona dos localizaciones de una compañía de alquiler de coches na-
cional. Cada día, un cierto número de clientes llega a cada localización de
la empresa. Si Jack tiene un coche disponible, lo alquila y gana 10 $ con el
alquiler. Si no tiene coche, no gana nada. Los coches se pueden alquilar des-
pués de que hayan vuelto de otro alquiler. Para asegurar que los coches estén
disponibles cuando se necesiten, Jack puede mover los coches entre las dos
localizaciones durante la noche, con un coste de 2 $ por coche movido.
Asumimos que el número de coches requeridos y retornados en cada localiza-
ción son variables de Poisson, es decir, que la probabilidad de que el número
λn λ
sea n es n! e , donde λ es el número esperado. Suponemos, además, que λ es
3 y 4 para las demandas en la primera y segunda localización, y 3 y 2 para los
retornos. Para simplificar un poco el escenario, asumimos que no puede haber
© FUOC • PID_00275575 16 Programación dinámica
más de veinte coches en cada localización (los otros se devolverán a la sede
central de la compañía y desaparecerán del problema) y que se puedan mover
un máximo de cinco coches de una localización a otra durante la noche. Se-
leccionamos el factor de descuento γ = 0.9 y formulamos el problema como
un MDP finito, donde los pasos temporales son días, el estado es el número
de coches en cada localización al final del día y las acciones son el número de
coches que se mueven en cada localización durante la noche.
Algorithm 2 Iteración de la política para estimar π ≈ π∗
0) Inicialización
Valores arbitrarios V(s) ∈ R y π(s) ∈ A(s), ∀s ∈ S
Parámetros del algoritmo: θ , determina la precisión de la estimación
1) Evaluación de la política
while ∆ > θ do
∆←
–0
for cada s ∈ S do
v←– V(s)
∑
– s′ ,r p(s′ ,r |s,π(s))[r + γV(s′ )]
V(St ) ←
∆ ← max(∆,|v – V(s)|)
end for
end while
2) Mejora de la política
política-estable ←
– true
for cada s ∈ S do
– π(s)
vieja-acción ←
∑
π(s) ←– arg maxa s′ ,r p(s′ ,r |s,a)[r + γV(s′ )]
if vieja-acción ̸= π(s) then
política-estable ←
– false
end if
end for
if política-estable then
devuelve V ≈ v∗ y π ≈ π∗
else
vuelve al paso 1)
end if
La figura 3 muestra la secuencia de las políticas encontradas con el método de
iteración de la política, empezando por la política que nunca mueves coches.
Los primeros cinco diagramas muestran el número de coches que se deben
mover desde la primera localización a la segunda por cada número de coches
en cada localización a final del día. Los números negativos indican una trans-
ferencia desde la segunda localización a la primera. Cada política sucesiva es
estrictamente calculada sobre la anterior política, y la última es la óptima. La
sexta gráfica muestra la función de valor para todos los estados siguiendo la
política óptima encontrada finalmente.
© FUOC • PID_00275575 17 Programación dinámica
Figura 3. Secuencia de políticas encontradas con el método de iteración de la política para el
problema del alquiler de coches
Fuente: Sutton & Barto, 2018
© FUOC • PID_00275575 18 Programación dinámica
5. Iteración del valor
.
Un inconveniente del algoritmo de iteración de la política es que cada itera-
ción necesita de la evaluación de la política, que puede ser una operación que
requiere múltiples movimientos por los estados. Sabemos que si la evaluación
de la política se hace de forma iterativa, converge exactamente a vπ en el lí-
mite. Pero ¿es necesario esperar a la convergencia exacta? ¿O quizás podemos
parar las iteraciones antes? En la práctica, después de un cierto número de
iteraciones del algoritmo, la evaluación de la política no tiene ningún efecto
sobre la convergencia y la determinación de la política óptima.
Un caso especial es cuando paramos el algoritmo justo después de un ciclo.
Entendemos por ciclo una actualización para cada estado del entorno. Este
algoritmo se llama iteración del valor o value iteration en inglés. Se puede es-
cribir como una simple operación de actualización que combina la mejora de
la política y los pasos truncados de la evaluación de la política:
vk+1 (s)=˙ max E[Rt+1 + γvk (St+1 )|St = s,At = a]
a
∑ (12)
= max p(s′ ,r |s,a)[r + γvk (s′ )]
a
s′ ,r
∀s ∈ S.
Para un valor arbitrario v0 , se demuestra que la secuencia vk converge a v∗ ,
bajo las mismas condiciones que garantizan la existencia de v∗ .
Podemos también entender la iteración del valor haciendo referencia a la
ecuación de optimalidad de Bellman (ecuación 1). Se puede notar como la ite-
ración del valor se obtiene simplemente cambiando la ecuación de Bellman
por una regla de actualización. También se puede notar como la actualización
de la iteración del valor es idéntica a la actualización de la evaluación de la
política (ecuación 4), excepto que se requiere escoger el máximo sobre todas
las acciones.
Finalmente, vamos a considerar cómo termina la iteración del valor. Como la
evaluación de la política, la iteración del valor formalmente requiere un nú-
mero infinito de iteraciones para converger exactamente a v∗ . En la práctica,
podemos parar una vez la función experimenta cambios muy pequeños entre
ciclos sucesivos.
© FUOC • PID_00275575 19 Programación dinámica
El pseudocódigo 3 muestra el algoritmo completo, incluyendo este tipo de fi-
nalización.
Algorithm 3 Iteración del valor para estimar π ≈ π∗
Parámetro del algoritmo: θ > 0, determina la precisión de la estimación
Inicializar V(s) ∀s ∈ S+ arbitrariamente, excepto V(terminal) = 0
while ∆ > θ do
∆←0
for cada s ∈ S do
v←
– V(s)
∑
V(s) ←
– maxa s′ ,r p(s′ ,r |s,a)[r + γV(s′ )]
∆ ← max(∆,|v – V(s)|
end for
end while
Output: política determinista π ≈ π∗ ,
∑
tal que π(s) = arg maxa s′ ,r p(s′ ,r |s,a)[r + γV(s′ )]
El algoritmo de iteración del valor combina un ciclo de evaluación de la po-
lítica con un ciclo de la mejora de la política. Se obtiene una convergencia
más rápida, a menudo interponiendo ciclos múltiples de evaluación de la po-
lítica entre ciclos de mejora de la política. En general, se puede pensar que
las actualizaciones de los algoritmos de iteración de la política truncados sean
secuencias de ciclos, algunos de los cuales usan las actualizaciones de la eva-
luación de la política y otros utilizan las actualizaciones de iteración del valor.
Dado que la única diferencia entre las actualizaciones en la ecuación (12) es
el operador max, esto significa que se añade la operación max en algunos ci-
clos de la evaluación de la política. Todos estos algoritmos convergen a una
política óptima para un MDP finito.
5.1 Ejemplo: el problema del jugador
Un jugador tiene la oportunidad de hacer apuestas sobre las secuencias de
resultados del lanzamiento de una moneda. Si la moneda sale de cara, el juga-
dor gana tantos dólares como había apostado; si sale cruz, pierde su apuesta.
El juego acaba cuando el jugador llega a ganar 100 $ o pierde todo el dinero
que tenía al principio. En cada tirada, el jugador decide qué porción de su
capital apostar, en valores enteros de dólares.
Este problema se puede formular como un MDP finito, descontado y episó-
dico. El estado es el capital del jugador, s ∈ {1,2,...,99} y las acciones son las
apuestas, a ∈ {0,1,...,min(s,100 – s)}. La recompensa es cero en cada transi-
ción, excepto en aquellas donde el jugador gana la apuesta y que valen +1.
La función de valor de estado nos proporciona la probabilidad de ganar en
cada estado. La política mapea los niveles del capital a las apuestas. La política
óptima maximiza la probabilidad de llegar al objetivo.
© FUOC • PID_00275575 20 Programación dinámica
Definimos ph como la probabilidad de que una moneda salga de cara. Si cono-
cemos el valor de ph , el problema entero es conocido y se puede resolver, por
ejemplo, con el algoritmo de iteración del valor.
La figura 4 muestra el cambio de la función de valor en los diferentes pasos
(sweep en inglés), y la política final encontrada para el caso en que ph = 0.4.
El gráfico superior muestra la función de valor encontrada en cada paso del
método de iteración del valor. El gráfico inferior muestra la política final.
Esta política es óptima, pero no es la única. Existe una familia entera de po-
líticas óptimas, que son las correspondientes al empate del «argmax» para la
selección de la acción respecto a la función de valor óptima.
Figura 4. Solución del problema del jugador con ph = 0.4
Fuente: Sutton & Barto, 2018
© FUOC • PID_00275575 21 Programación dinámica
6. Iteración generalizada de la política
.
La iteración de la política consiste en dos procesos simultáneos que interac-
cionan entre ellos: uno hace que la función de valor sea consistente con la
política actual (evaluación de la política), el otro ejecuta la política greedy con
respecto al valor actual de la función de valor (mejora de la política). Estos dos
procesos se alternan, cada uno completándose antes de que empiece el otro.
Sin embargo, esto no es necesario. En la iteración de valor, por ejemplo, se
ejecuta una sola iteración de la evaluación de la política entre dos pasos del
método de mejora de la política. En algunos casos, se puede actualizar un solo
estado en un proceso, antes de retornar al otro proceso. El resultado final es
normalmente el mismo, es decir, se converge a la función de valor óptima y
a la política óptima, siempre y cuando ambos procesos se actualicen en todos
los estados.
Figura 5. Diagrama de interacción entre la evaluación de la función de valor y la mejora de la
política
Fuente: Sutton & Barto, 2018
Usamos el término iteración generalizada de la política (generalized policy ite-
ration en inglés) para referirnos a la idea general de hacer interaccionar los
métodos de evaluación de la política y de mejora de la política, de forma in-
dependiente de la granularidad y de otros detalles de los dos procesos. Pode-
mos afirmar que casi todos los procesos de aprendizaje por refuerzo se pueden
describir con el término «iteración generalizada de la política». Es decir, to-
dos tienen políticas y funciones de valor identificables, en los que la política
se mejora siempre respecto a las funciones de valor, y la función de valor es
siempre guiada hacia la función de valor para esa política, como se muestra
en la figura 5. Cuando ambos procesos se estabilizan, es decir no producen
© FUOC • PID_00275575 22 Programación dinámica
más cambios, entonces la función de valor y la política deben ser óptimas. La
función de valor se estabiliza solo cuando es consistente con la política actual,
y, por otro lado, la política se estabiliza solo cuando es greedy con respecto a
la función de valor actual. Por lo tanto, ambos procesos se estabilizan solo
cuando se ha encontrado una política que es greedy con respecto a su propia
función de valor. Esto implica la validez de la ecuación de optimalidad de
Bellman, y que la política y la función de valor son óptimas.
Los procesos de evaluación y de mejora se pueden ver no solo como procesos
cooperativos sino también competitivos. Compiten porque los dos «empu-
jan» hacia direcciones opuestas. Ejecutar la política greedy con respecto a la
función de valor provoca que la función de valor sea incorrecta para la polí-
tica que cambia. Por otro lado, hacer que la función de valor sea consistente
con la política, típicamente, causa que la política ya no sea greedy. A la larga,
sin embargo, estos dos procesos interaccionan para encontrar una solución
conjunta única, que es la función de valor óptima y la política óptima.
Figura 6. Visualización geométrica de las interacciones entre la evaluación de la función de
valor y la mejora de la política
Fuente: Sutton & Barto, 2018
Asimismo, se puede también pensar en la interacción entre los procesos de
evaluación y mejora en términos de conseguir dos objetivos. Conceptualmen-
te, podemos entender este proceso como muestran las dos líneas de la figura 6.
Aunque la geometría real es mucho más complicada y representa una simpli-
ficación del problema, el diagrama sugiere lo que pasa en el caso real. Cada
proceso guía la función de valor o la política hacia una de las líneas, que repre-
sentan una solución a uno de los dos objetivos. Los objetivos interaccionan,
porque las dos líneas no son ortogonales. Guiar directamente hacia un ob-
jetivo puede causar movimientos que alejen del otro objetivo. Por lo tanto,
el objetivo general de este método es guiar el proceso, de forma iterativa, al
objetivo global de optimalidad. Las flechas en el diagrama corresponden al
comportamiento de la iteración de la política, en la que, en cada paso, se guía
al sistema para obtener uno de los dos objetivos. Además, se pueden también
tomar pasos más cortos o incompletos hacia cada objetivo. En cualquier caso,
los dos procesos juntos permiten obtener el objetivo general de optimalidad,
aunque no se intente conseguirlo directamente.
© FUOC • PID_00275575 23 Programación dinámica
7. Eficiencia de los algoritmos DP
.
Como hemos afirmado al principio de este módulo, los algoritmos DP pueden
ser poco prácticos para problemas muy grandes. Sin embargo, si los compa-
ramos con otros métodos para solucionar MDP, en la realidad son bastante
eficientes.
Normalmente, y en el peor de los casos, el tiempo que los métodos DP tar-
dan en encontrar la política óptima es polinómico con el número de estados
y acciones. Si n y k son los números de estados y acciones, esto significa que
los métodos DP necesitan de un número de operaciones de computación que
es menor que una función polinómica de n y k. Un método DP encuentra
una política óptima en un tiempo polinómico, aunque el número total de
las políticas (deterministas) es kn . En este sentido, DP es exponencialmente
más rápido que cualquier algoritmo de búsqueda directa en los espacios de las
políticas, porque la búsqueda directa debería examinar exhaustivamente cada
política para proporcionar alguna garantía. Los métodos de programación li-
neal son otra manera de solucionar los MDP, y en algunos casos, sus peores
garantías de convergencia son mejores que los DP. Sin embargo, cuando el
sistema tiene una complejidad muy alta (por ejemplo, debido a un elevado
número de estados), los métodos de programación lineal pueden ser irreali-
zables. Para este tipo de problemas, los métodos DP son la única opción para
llegar a la solución óptima.
A menudo se piensa que los métodos DP tienen una aplicabilidad limitada
debido al problema de las dimensiones (en inglés, curse of dimensionality pro-
blem), es decir al hecho de que el número de estados crece exponencialmente
con el número de variables. Está claro que un conjunto grande de estados crea
dificultades, pero son dificultades típicas del problema y no de los métodos
DP como solución. De hecho, DP es mejor en manejar un conjunto grande de
estados que otros métodos como los de búsqueda directa o de programación
lineal.
En la práctica, los métodos DP se pueden implementar en ordenadores actua-
les para solucionar problemas MDP con millones de estados. Tanto el método
de iteración de la política como de iteración del valor son ampliamente usa-
dos, y no está claro cuál de los dos es mejor, en general. En la práctica, estos
métodos normalmente convergen mucho más rápido que su tiempo teórico
estimado, sobre todo si se inicializan con un valor ’bueno’ de la función de
valor o de la función de política.
© FUOC • PID_00275575 24 Programación dinámica
Resumen
A lo largo de este módulo hemos realizado una introducción a los métodos de
programación dinámica (DP).
Hemos introducido los elementos básicos de los algoritmos DP para solucio-
nar los problemas de MDP. A continuación hemos estudiado el problema de
predicción o de evaluación de la política (policy evaluation en inglés).
Además, hemos tratado el problema de control e introducido los métodos de
mejora de la política (policy improvement en inglés), iteración de la política
(policy iteration), iteración del valor (value iteration) e iteración generalizada de
la política (generalized policy iteration).
Finalmente, hemos cerrado este apartado con algunas reflexiones sobre la efi-
ciencia de los algoritmos DP y su implementación práctica.
© FUOC • PID_00275575 25 Programación dinámica
Glosario
greedy m Véase voraz.
voraz m término que se utiliza en informática para describir cualquier procedimiento de
búsqueda o decisión que seleccione alternativas basándose únicamente en consideraciones
locales o inmediatas.
en greedy
© FUOC • PID_00275575 26 Programación dinámica
Bibliografía
Bertsekas, D. P. (2017). Dynamic Programming and optimal Control, Vol. I (4th edition). Athe-
na Scientific. ISBN: 1-886529-43-4
Bertsekas, D. P. (2012). Dynamic Programming and Optimal Control, Vol. II: Approximate
Dynamic Programming (4th edition). Athena Scientific. ISBN: 1-886529-44-2
Lapan, M. (2020). Deep Reinforcement Learning Hands-On (Second Edition). Packt Publishing.
ISBN: 9781838826994
Sutton, R. S.; Barto, A. G. (2018). Reinforcement Learning: An Introduction (Second Edition).
Cambridge, MA: MIT Press.