开始使用免费开始使用

在湿滑的 Frozen Lake 上评估策略

在湿滑的 Frozen Lake 环境中,仅通过已学习的 Q 表来推断策略,无法充分评估其效果。要准确判断已学习策略是否合适,您需要运行多个 episode,并观察其获得的平均回报。本练习将把已学习策略的效果,与在训练期间遵循随机策略所建立的基线进行比较。您的任务是:在若干个 episode 中执行已学习的策略,根据所收集的平均回报来分析其表现,并将其与随机策略阶段获得的平均回报进行对比。

Q(Q 表)、num_statesnum_actionsavg_reward_per_random_episode 已为您预先加载。 NumPy 库已以 np 导入。

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 在每次迭代中,基于已学习的 Q 表 Q 选择要执行的最优动作。
  • 计算每个已学习 episode 的平均回报 avg_reward_per_learned_episode

交互式实操练习

通过完成这段示例代码来试试这个练习。

for episode in range(10000):
    state, info = env.reset()
    terminated = False
    episode_reward = 0
    while not terminated:
        # Select the best action based on learned Q-table
        action = ____
        new_state, reward, terminated, truncated, info = env.step(action)
        state = new_state
        episode_reward += reward
    reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)
编辑并运行代码