Implémenter la value iteration
La value iteration est une méthode clé en RL pour trouver la politique optimale. Elle améliore itérativement la fonction de valeur pour chaque état jusqu’à convergence, ce qui permet de découvrir la politique optimale. Vous commencez avec une fonction de valeur V et une policy initialisées et déjà chargées pour vous. Ensuite, vous les mettrez à jour dans une boucle jusqu’à ce que la fonction de valeur converge, puis vous verrez la politique en action.
La fonction get_max_action_and_value(state, V) a été préchargée pour vous.
Cet exercice fait partie du cours
Reinforcement Learning avec Gymnasium en Python
Instructions
- Pour chaque état, trouvez l’action avec la valeur de Q maximale (
max_action) et sa valeur correspondante (max_q_value). - Mettez à jour le dictionnaire
new_Vet lapolicyen fonction demax_actionetmax_q_value. - Vérifiez la convergence en contrôlant que la différence entre
new_vetVpour chaque état est inférieure àthreshold.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)