CommencezCommencez gratuitement

Implémenter la value iteration

La value iteration est une méthode clé en RL pour trouver la politique optimale. Elle améliore de façon itérative la fonction de valeur pour chaque état jusqu'à sa convergence, ce qui permet de découvrir la politique optimale. Vous partirez d'une fonction de valeur V et d'une policy initialisées, déjà chargées pour vous. Ensuite, vous les mettrez à jour dans une boucle jusqu'à la convergence de la fonction de valeur et verrez la politique en action.

La fonction get_max_action_and_value(state, V) a été préchargée pour vous.

Cette activité fait partie du cours

Reinforcement Learning avec Gymnasium en Python

Voir le cours

Instructions de l’exercice

  • Pour chaque état, trouvez l'action dont la valeur Q est maximale (max_action) ainsi que sa valeur correspondante (max_q_value).
  • Mettez à jour le dictionnaire new_V et la policy en fonction de max_action et max_q_value.
  • Vérifiez la convergence en confirmant que la différence entre new_v et V pour chaque état est inférieure à threshold.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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)
Modifier et exécuter le code