开始使用免费开始使用

实现值迭代

值迭代是 RL 中用于寻找最优策略的关键方法。它会反复改进每个状态的价值函数,直到收敛,从而得到最优策略。本题已为您预先加载了初始化的价值函数 Vpolicy。接下来,您将在循环中不断更新它们,直到价值函数收敛,并查看策略的实际效果。

函数 get_max_action_and_value(state, V) 已为您预加载。

本练习是课程的一部分

Python 中的 Gymnasium 强化学习

查看课程

练习说明

  • 对于每个状态,找到具有最大 Q 值的动作(max_action)及其对应的数值(max_q_value)。
  • 基于 max_actionmax_q_value 更新字典 new_Vpolicy
  • 通过检查每个状态下 new_VV 的差是否小于 threshold 来判断是否收敛。

交互式实操练习

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

threshold = 0.001
while True:
  new_V = {}
  for state in range(num_states-1):
    # Get action with maximum Q-value and its value 
    max_action, max_q_value = ____
    # Update the value function and policy
    new_V[state] = ____
    policy[state] = ____
  # Test if change in state values is negligeable
  if all(abs(____ - ____) < ____ for state in ____):
    break
  V = new_V
render_policy(policy)
编辑并运行代码