用 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))