Implementación de value iteration
Value iteration es un método clave en RL para encontrar la política óptima. Mejora iterativamente la función de valor de cada estado hasta que converge, lo que permite descubrir la política óptima. Empezarás con una función de valor V y una policy ya inicializadas y cargadas. Luego, las actualizarás en un bucle hasta que la función de valor converja y verás la política en acción.
La función get_max_action_and_value(state, V) ya está precargada para ti.
Este ejercicio forma parte del curso
Reinforcement Learning con Gymnasium en Python
Instrucciones del ejercicio
- Para cada estado, encuentra la acción con el valor Q máximo (
max_action) y su valor correspondiente (max_q_value). - Actualiza el diccionario
new_Vy lapolicysegúnmax_actionymax_q_value. - Comprueba la convergencia verificando que la diferencia entre
new_vyVpara cada estado sea menor quethreshold.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
threshold = 0.001
while True:
new_V = {}
for state in range(num_states-1):
# Get action with maximum Q-value and its value
max_action, max_q_value = ____
# Update the value function and policy
new_V[state] = ____
policy[state] = ____
# Test if change in state values is negligeable
if all(abs(____ - ____) < ____ for state in ____):
break
V = new_V
render_policy(policy)