Zacznij terazZacznij za darmo

Rozwiązywanie Frozen Lake 8x8 z Q-learningiem

W tym ćwiczeniu zastosujesz algorytm Q-learningu, aby nauczyć agenta optymalnej strategii poruszania się po środowisku Frozen Lake 8x8 – tym razem z włączonym trybem "slippery" (śliska powierzchnia). To ustawienie wprowadza stochastyczne przejścia między stanami, przez co ruchy agenta stają się nieprzewidywalne i bliższe rzeczywistym scenariuszom.

Q-tabela Q została już zainicjowana i wczytana, podobnie jak funkcja update_q_table() z poprzedniego ćwiczenia oraz pusta lista rewards_per_episode, w której będą zapisywane łączne nagrody zebrane w każdym epizodzie.

To ćwiczenie jest częścią kursu

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • W każdym epizodzie wykonaj wybraną akcję i zaobserwuj nagrodę oraz następny stan.
  • Zaktualizuj Q-tabelę.
  • Dodaj total_reward do listy rewards_per_episode.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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))
Edytuj i uruchom kod