ComenzarEmpieza gratis

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

Ver curso

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_V y la policy según max_action y max_q_value.
  • Comprueba la convergencia verificando que la diferencia entre new_v y V para cada estado sea menor que threshold.

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)
Editar y ejecutar código