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
Instrukcje do ćwiczenia
- W każdym epizodzie wykonaj wybraną akcję i zaobserwuj nagrodę oraz następny stan.
- Zaktualizuj Q-tabelę.
- Dodaj
total_rewarddo listyrewards_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))