Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_reward toe aan de lijst rewards_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))
Code bewerken en uitvoeren