实现值迭代
值迭代是 RL 中用于寻找最优策略的关键方法。它会反复改进每个状态的价值函数,直到收敛,从而得到最优策略。本题已为您预先加载了初始化的价值函数 V 和 policy。接下来,您将在循环中不断更新它们,直到价值函数收敛,并查看策略的实际效果。
函数 get_max_action_and_value(state, V) 已为您预加载。
本练习是课程的一部分
Python 中的 Gymnasium 强化学习
练习说明
- 对于每个状态,找到具有最大 Q 值的动作(
max_action)及其对应的数值(max_q_value)。 - 基于
max_action和max_q_value更新字典new_V与policy。 - 通过检查每个状态下
new_V与V的差是否小于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)