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
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_Vet lapolicyen fonction demax_actionetmax_q_value. - Vérifiez la convergence en confirmant que la différence entre
new_vetVpour 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)