开始使用免费开始使用

用 Q-learning 解决 8x8 Frozen Lake

在本练习中,您将应用 Q-learning 算法来学习在 8x8 Frozen Lake 环境中导航的最优策略,本次开启了"slippery(打滑)"条件。该挑战会引入随机转移,使智能体的移动不可预测,更贴近真实世界情境。

我们已为您初始化并预加载了一个 Q 表 Q,还提供了上一个练习中的 update_q_table() 函数,以及一个空列表 rewards_per_episode,用于存放每个回合累积的总奖励。

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 在每个回合中,执行选定的动作并观察奖励与下一状态。
  • 更新 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))
编辑并运行代码