Résoudre Frozen Lake 8x8 avec Q-learning
Dans cet exercice, vous allez appliquer l’algorithme de Q-learning pour apprendre une politique optimale afin de naviguer dans l’environnement Frozen Lake 8x8, cette fois avec la condition « slippery » activée. Le défi introduit des transitions stochastiques, rendant les déplacements de l’agent imprévisibles et simulant ainsi de façon plus réaliste des situations du monde réel.
Une Q-table Q a été initialisée et préchargée pour vous, ainsi que la fonction update_q_table() de l’exercice précédent et une liste vide rewards_per_episode qui contiendra la récompense totale accumulée à chaque épisode.
Cet exercice fait partie du cours
Reinforcement Learning avec Gymnasium en Python
Instructions
- Pour chaque épisode, exécutez l’action sélectionnée et observez la récompense et l’état suivant.
- Mettez à jour la Q-table.
- Ajoutez
total_rewardà la listerewards_per_episode.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
for episode in range(10000):
state, info = env.reset()
total_reward = 0
terminated = False
while not terminated:
action = env.action_space.sample()
# Execute the action
next_state, reward, terminated, truncated, info = ____
# Update the Q-table
____
state = next_state
total_reward += reward
# Append the total reward to the rewards list
rewards_per_episode.____(____)
print("Average reward per random episode: ", np.mean(rewards_per_episode))