Розв'язання 8×8 Frozen Lake за допомогою Q-learning
У цій вправі ви застосуєте алгоритм Q-learning, щоб навчити оптимальну стратегію для навігації середовищем 8×8 Frozen Lake, цього разу з увімкненою умовою «slippery». Це ускладнення запроваджує стохастичні переходи, роблячи рух агента непередбачуваним і таким чином ближчим до реальних сценаріїв.
Q-таблицю Q вже ініціалізовано та попередньо завантажено для вас, разом із функцією update_q_table() з попередньої вправи та порожнім списком rewards_per_episode, який міститиме загальну винагороду, накопичену в кожному епізоді.
Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- Для кожного епізоду виконайте вибрану дію та спостерігайте винагороду і наступний стан.
- Оновіть Q-таблицю.
- Додайте
total_rewardдо спискуrewards_per_episode.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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))