1. 网格世界策略评估与改进概述
在强化学习领域,策略评估与策略改进是构建智能体的核心环节。这个5×5网格世界案例完美展示了如何通过迭代计算找到最优移动策略。网格中分布着6个禁区(橙色)和1个目标点(绿色),智能体可以执行上、下、左、右或原地不动五种动作。每次移动会根据到达的格子类型获得不同奖励:禁区-10、目标+1、其他格子0,越界时则保持原位。
这个案例的价值在于,它用最简明的形式呈现了强化学习的核心思想——通过不断评估当前策略的价值,然后基于价值函数改进策略,最终收敛到最优解。整个过程就像教一个机器人如何在迷宫中找到宝藏,同时避开陷阱。下面我将详细拆解每个环节的实现细节和背后的数学原理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境建模与初始化
2.1 网格世界表示
我们使用5×5的NumPy数组表示网格环境,其中:
- 坐标采用1-based索引(左上角为(1,1))
- 禁区位置:[(2,2), (2,3), (3,3), (4,2), (4,4), (5,2)]
- 目标位置:(4,3)
- 奖励矩阵r:禁区对应位置为-10,目标位置为+1,其余为0
python复制n = 5
V0 = np.zeros((n, n)) # 初始价值矩阵
policy0 = np.full((n, n), 4, dtype=int) # 初始策略:全部不动
# 构建奖励矩阵
r = np.zeros((n, n))
forbidden_positions = [(2,2), (2,3), (3,3), (4,2), (4,4), (5,2)]
goal_position = (4,3)
for (ri, ci) in forbidden_positions:
r[ri-1, ci-1] = -10
r[goal_position[0]-1, goal_position[1]-1] = 1
2.2 动作空间定义
智能体可以执行五种基本动作:
- 上移(-1,0)
- 下移(1,0)
- 左移(0,-1)
- 右移(0,1)
- 原地不动(0,0)
动作执行时有边界检查机制:如果移动会导致出界,则自动转为原地不动。这种设计避免了智能体"掉出"网格的情况。
3. 策略评估实现细节
3.1 评估算法原理
策略评估的目标是计算给定策略π下的状态价值函数V(s)。我们使用迭代策略评估算法,其核心公式为:
V_{k+1}(s) = R(s, a) + γ * V_k(s')
其中:
- a = π(s) 是策略指定的动作
- s' 是执行动作后的新状态
- γ=0.9 是折扣因子
- 当不同动作价值相同时,优先选择"原地不动"
3.2 代码实现
python复制def policy_evaluation_fixed_policy(
