8x8 Frozen Lake oplossen met Q-learning
In deze oefening pas je het Q-learning-algoritme toe om een optimale policy te leren voor het navigeren door de 8x8 Frozen Lake-omgeving, dit keer met de "slippery"-conditie ingeschakeld. Deze uitdaging introduceert stochastische transities, waardoor de beweging van de agent onvoorspelbaar wordt en de situatie realistischer wordt.
Een Q-tabel Q is al geïnitialiseerd en voor je geladen, samen met de functie update_q_table() uit de vorige oefening en een lege lijst rewards_per_episode die de totale beloning per aflevering zal bevatten.
Deze oefening maakt deel uit van de cursus
Reinforcement Learning met Gymnasium in Python
Oefeninstructies
- Voer voor elke aflevering de gekozen actie uit en observeer de beloning en de volgende toestand.
- Werk de Q-tabel bij.
- Voeg de
total_rewardtoe aan de lijstrewards_per_episode.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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))