开始使用免费开始使用

实现 First-Visit Monte Carlo

Monte Carlo 算法的目标是估计 Q 表,从而导出最优策略。本练习中,您将实现 First-Visit Monte Carlo 方法来估计动作-价值函数 Q,然后计算最优策略以解决您在上一个练习中见到的自定义环境。计算回报时,假设折扣因子为 1。

已为您初始化并预加载了 numpy 数组 Qreturns_sumreturns_count,分别用于存储 Q 值、奖励的累积和,以及每个状态-动作对的访问次数。

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 定义首次访问 Monte Carlo 算法中需要检查的 if 条件。
  • 更新回报(returns_sum)、其计数(returns_count)以及 visited_states

交互式实操练习

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

for i in range(100):
  episode = generate_episode()
  visited_states = set()
  for j, (state, action, reward) in enumerate(episode):
    # Define the first-visit condition
    if ____ not in ____:
      # Update the returns, their counts and the visited states
      returns_sum[state, action] += ____([____ for ____ in ____])
      returns_count[state, action] += ____
      visited_states.____(____)

nonzero_counts = returns_count != 0

Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())
编辑并运行代码