清晨八点,浓雾锁城。一台送餐机器人接到了一个任务:把热咖啡送到楼上客人的房间。它手里捏着一张大楼平面图,可电梯口的提示牌写着“雾天可见度不足”——它看不清门牌号,只能靠走廊里模糊的光影和脚步声,猜自己大概走到了哪里。每走一步,它都必须回答三个问题:我现在到底在哪儿?该往哪个方向走?这一趟走下来值不值?这其实就是所有机器人决策问题的缩影。如果雾散了,地图清晰,机器人能准确知道自己的位置,问题就退化成 MDP(马尔可夫决策过程)——在完全可观测的世界里做最优选择;如果雾还在,只能靠猜,问题就升级成 POMDP(部分可观测马尔可夫决策过程)——在不确定中靠“信念”前行。这篇文章就沿着“浓雾送外卖”这条主线,把状态、动作、奖励、策略、值迭代、信念状态这些概念一个个拆开,让你看清机器人到底是怎么“想”着走路的。
机器人的每一次转向背后,都站着一套数学模型。读懂 MDP/POMDP,你就拿到了理解机器人导航、自动驾驶决策这一整片领域的钥匙,也为后续学习强化学习打下第一块基石。
可视化演示
通过网格世界状态转移、值迭代收敛过程和POMDP信念状态更新三个模式,展示马尔可夫决策过程与部分可观测决策的核心原理。
本节配有交互动效(进入视口后自动加载,约 3KB)。
MDP网格世界状态转移 智能体在网格中移动,目标G获得+1奖励,每步-0.1惩罚 障碍物X不可通过,需规划最优路径到达目标 V*(s) = max_a Σ P(s\'|s,a)[R(s,a,s\') + γV*(s\')] MDP假设完全可观测,智能体始终知道自己的确切位置
基本要素
晴天里,送餐机器人在商场一楼大厅,阳光透过玻璃顶棚,它看得见自己站在哪块地砖上。要决定“下一步去哪”,它只需要三样东西:一是“我现在在哪”,这在数学里叫状态(State);二是“我能往哪走”,叫动作(Action);三是“每走一步环境给我什么反馈”,叫奖励(Reward)。没有这三样,任何决策问题都无法开口——就像下围棋却不知道棋盘上的棋子和可落子的位置。
这三样东西构成了一个循环:机器人看一眼状态,从动作集合里挑一个执行,环境随之变化,抛回一个新状态和一份奖励。下一次决策又从头开始。这个“状态→动作→奖励→新状态”的循环,是 MDP 所有故事的舞台。奖励可以理解成“顾客满意度积分”:送到咖啡加 10 分,撞到墙角扣 0.5 分。积分规则由设计者定,它决定了机器人会养成什么样的“性格”。
回到晴天大厅:机器人每踏出一步,都是在执行这个循环。正是这三样基础要素,让“怎么走最好”从一句空话变成了一个可以计算的问题。下一节我们看,这个循环里最关键的“记忆开关”长什么样。
- 下一状态采样$s_{t+1} \sim P$ 表示下一步状态不是拍脑袋定的,而是按转移概率分布随机抽取,就像掷骰子决定落到哪个格子。
- 即时奖励计算$r_t = R(s_t, a_t)$ 表示在当前状态做了动作之后,立刻就能拿到的分数,相当于顾客当场给出的评价。
- 循环闭环两个式子首尾相接,就是“看状态→选动作→拿奖励→到新状态”的完整决策循环,MDP 的一切都建立在这个环上。
马尔可夫性质
送餐机器人拖着两道轮印,从一楼绕到三楼,又折回二楼,最后停在了走廊尽头。此时它需要决定下一步,但它完全不关心自己是怎么绕到这儿的——是刚加完班还是路过拍照,都不影响眼前的岔路选择。这种“未来只由当下决定,与历史路径无关”的性质,就是马尔可夫性质,也叫“无后效性”。像金鱼只有七秒记忆一样,机器人“忘记”了来路,反而活得更轻松。
数学上,这个性质写成:给定完整历史后预测下一状态的概率,和只给定当前状态与动作时预测的概率,完全相等。这意味着,状态里已经浓缩了决策所需的全部信息。你可以把“状态”想象成一张病历卡:医生做手术前的决策,只需要看最新的检查结果,而不是病人从出生到现在的每一顿饭。
需要强调的是,“金鱼记忆”不等于“世界是确定的”。地面可能湿滑、轮子可能打滑,即便知道当前格子,往右走也未必百分百到右边——这种随机性被装进了转移概率 $P$ 里。马尔可夫性质只管“依赖谁”,不管“是否随机”。对机器而言,这既是省脑力的恩赐,也是 MDP 能被高效求解的根基。
- 完整历史条件左边括号里列了从过去到现在的所有状态与动作,意思是“在知道这一切的前提下”。
- 只留当下右边只保留当前状态 $s_t$ 与当前动作 $a_t$,历史被全部删去。
- 等号即无后效性两个概率一模一样,说明“怎么来的”不影响“要去哪”,这就是马尔可夫性质。
MDP五元组
现在把刚才的三样要素和“记忆规则”凑齐,就能写出一张完整的“配送配方卡”:马尔可夫决策过程(MDP)。它像做奶茶的配料表一样精确,一共五种“原料”,任何决策问题都能用这五样描述。配料卡写好了,不管晴天雨天,机器人都知道自己面对的是什么问题。
MDP 用记号写作一个五元组。$S$ 是全部门牌号(状态集合);$A$ 是每个门口可做的选择(动作集合);$P$ 是“从这间房走那个方向,落到那间房的概率”(状态转移概率);$R$ 是顾客给的积分规则(奖励函数);$\gamma$ 是“耐心系数”(折扣因子),表示未来积分打几折折算成今天的价值。
配方卡的意义在于“统一语言”:仓储机器人抢货架、下棋程序算落子、自动驾驶判断要不要变道,都可以翻译成 $(S, A, P, R, \gamma)$。拿到配方后还差最后一步——怎么从配方算出“最优走法”?这就要引出策略与回报这两个概念了。
- 状态集合 $S$机器人可能所处的全部位置,比如大楼里的所有房间号,是决策的“棋盘”。
- 动作集合 $A$每个状态可选的行动,比如直行、左转、右转,是机器人的“棋子走法”。
- 转移概率 $P$$P(s' \mid s, a)$ 表示在 $s$ 执行 $a$ 后落到 $s'$ 的概率,把环境的随机性装了进去。
- 奖励函数 $R$ 与折扣因子 $\gamma$$R(s, a)$ 是即时积分,$\gamma \in [0,1]$ 决定未来积分折多少,$\gamma$ 越接近 1 越“有耐心”。
策略与回报
老板给送餐机器人发了一本《接单行动手册》:在一楼大厅往右转,在走廊尽头直行,看到电梯就按上行……手册里每个状态对应一条指令,这种“从状态到动作的映射”就是策略(Policy),记作 $\pi$。策略是机器人的“性格”:手册越优秀,机器人越靠谱。而判断手册优劣,要看它带来的总积分——回报(Return)。
但顾客不会一次性把积分全给完:送到咖啡后,今天给 10 分,明天再补 1 分,后天补 0.1 分……积分越晚到手,对今天的决策越不重要。于是定义折扣回报:把每一步的即时奖励乘上不断缩小的折扣系数再累加。$\gamma=0.9$ 时,明天的 1 分只算 0.9 分,后天的算 0.81 分。这就像一个耐心的美食评论家:离现在越远的评价,权重越低。
有了回报这杆秤,任何策略都能打分:把手册模拟着走一遍,算期望总积分,高分手册留下,低分手册改正。这也引出了两套经典的“打磨手册”算法——值迭代和策略迭代。它们一个像给地图画光晕,一个像反复试菜改菜谱,是我们接下来两节的主角。
- 立即到手的积分$R_{t+1}$ 是执行动作后马上拿到的奖励,权重为 1,因为它最确定。
- 折扣未来积分下一步的奖励乘 $\gamma$,下下步乘 $\gamma^2$,越远的积分被折得越薄,对应“耐心”。
- 无穷求和把从 $k=0$ 到无穷的每一项 $\gamma^k R_{t+k+1}$ 加起来,就是整条路径的总回报。
值迭代算法
夜里打烊后,送餐机器人站在前台,面前摊开整栋楼的平面图。它想做一件事:给每个房间标一个“亮度”,亮度代表“站在这间房,将来还能拿多少积分”。聪明的做法是从终点倒着画:客人房间最亮,标 10;它隔壁的走廊次亮,标 9 折;再隔壁依次递减……每一轮,光亮向外多传播一格,亮度打一次折扣。这就像往水塘里丢石头,波纹一圈圈荡开,越远越弱,直到整张图稳定下来。这就是值迭代(Value Iteration)。
值迭代的每一次更新都基于贝尔曼方程的思想:一个状态的新价值 = 从它出发做“最好动作”时,即时奖励加上下一状态价值的折扣值。因为 $P(s'|s,a)$ 可能指向多个下一步,所以要把各种可能的结果按概率加权,取期望。在可视化演示里,我们用了简化的确定性网格,所以看到的是一格一格清晰地传播;真实场景里波纹会“模糊”一些,但原理完全一样。
算法终止后,机器人走路就变成了“傻瓜式”操作:在每个格子朝最亮的邻居走,一条最优路径自然浮现。值迭代的代价是它把所有格子都反复刷了很多遍,有些角落根本不会走到——这也是它的“笨”处。于是人们又发明了更“精明”的策略迭代。
- 轮次更新$V_{k+1}(s)$ 是第 $k+1$ 轮给状态 $s$ 打的新亮度,由第 $k$ 轮的旧亮度推导而来。
- 取最大值$\max_{a}$ 表示在全部动作里挑最好的那一个,代表“聪明的机器人总是选最亮的方向”。
- 概率加权求和$\sum_{s'} P(s' \mid s, a)$ 把每个可能下一状态的结果按概率加权,相当于算平均前景。
- 判断收敛当所有格子的亮度在两轮之间几乎不变(差值小于阈值),就停止迭代,地图即为最优价值函数。
策略迭代算法
值迭代像“刷墙”,把整栋楼刷亮;策略迭代则像“试菜”:主厨先凭经验写出一份菜单(初始策略),然后逐一试吃打分(策略评估),哪道菜客人不满意就换配方(策略改进),再试再改,直到客人评分不再上升。机器人世界里,这套流程同样奏效,而且通常比值迭代更快。
策略迭代分两步交替进行。策略评估:固定当前行动手册 $\pi$,算出每个状态在“一直按手册走”前提下的价值 $V^{\pi}$。策略改进:在每个状态,试探性地用“手册以外的动作”替换,如果某个动作带来的“即时奖励 + 折后的未来价值”比手册动作更大,就换掉它。两步反复循环,直到手册不再有任何一个字需要改动,此时的策略就是最优策略。
对比两法:值迭代每轮更新所有状态的价值,最后才一次性提取策略;策略迭代则一直维护一份“活的手册”,先评估再改进。通常策略迭代的轮数更少,但每一轮里的策略评估要反复扫价值,单轮计算更重。实践中,小规模问题两者都很快;大规模问题则往往用策略迭代或它的变体。晴天的问题解决了,可别忘了开头那场浓雾——当机器人看不清自己在哪时,MDP 就不够用了。
- 新策略在这一格的动作$\pi'(s)$ 表示改进后的手册在状态 $s$ 上写下的新指令。
- 老手册的价值$V^{\pi}(s')$ 是“如果后面一直遵循旧手册”,状态 $s'$ 的期望回报,作为评价基准。
- 贪心替换$\arg\max$ 找出让方括号里数值最大的动作——相当于在每道菜上试放新调料,留下分数最高的那款。
- 循环直到稳定当一轮改进后没有任何状态的动作发生变化,说明手册已无可挑剔,算法结束。
POMDP模型
下午四点,浓雾突然灌进大厅。送餐机器人抬头一看,门牌号全模糊了,它只能靠传感器分辨“这间房大概有厨房的油烟味”或“这间房很安静”。这时,“状态”不再是准确的一格,而是一团概率:有 60% 的可能在一楼厨房,30% 在储物间,10% 在电梯口。这团概率叫信念状态(Belief State),记作 $b(s)$。部分可观测马尔可夫决策过程(POMDP)就是为这种“雾天”量身定制的模型。
POMDP 在 MDP 五元组之外,多了两样原料:观测空间 $\Omega$(传感器可能给出的读数集合)和观测函数 $O(o \mid s', a)$(如果在状态 $s'$ 执行了 $a$,看到读数 $o$ 的概率)。机器人每走一步,都做一次“贝叶斯账本更新”:先用转移概率把旧信念往前推一步,再用新的传感器读数对每个可能位置加权,最后归一化,得到新信念。
为什么 POMDP 求解那么难?因为 MDP 在有限状态上规划,状态数再多也是有限的;而 POMDP 的规划发生在“信念空间”上——信念是个连续的概率分布,可能性无穷无尽。哪怕真实世界只有 10 个房间,信念空间也是一个十维的连续几何体,这就是著名的“维度灾难”。理论上 POMDP 是 PSPACE-hard 问题,比 MDP 的求解难度高了好几个等级。现实中的做法是退而求其次:用粒子滤波近似信念,或用深度强化学习学一个近似的决策策略。
- 旧信念的推进$\sum_{s} P(s' \mid s, a)\, b(s)$ 把“执行动作前的信念”按转移概率推到动作后的状态 $s'$,相当于雾中迈一步后的预判。
- 观测模型加权$O(o \mid s', a)$ 表示若真的在 $s'$,得到读数 $o$ 的可能性有多大,用它对预测值逐点打分。
- 归一化系数$\eta$ 是让所有 $b'(s')$ 加起来等于 1 的常数,保证修正后的信念仍是合法的概率分布。
导航应用
天色渐暗,雾气未散,但送餐机器人终于走到了客人门前。这一路,它把前面所有工具串成了一台“决策引擎”:每到一个位置,看一眼当前状态(晴天查地图,雾天查信念),翻开 Q 值表,选出 Q 值最大的动作执行。Q 函数 $Q(s,a)$ 是“在状态 $s$ 执行动作 $a$”的期望总回报,它比 $V(s)$ 更直接——连动作都替你选好了。
这套决策引擎在真实世界里无处不在:仓库里上千台 AGV 小车用 MDP 规划取货路径,遇到临时堵路就重跑一遍值迭代;扫地机器人在家具间穿行,把每个房间当作状态、碰撞当作负奖励;自动驾驶的决策层更是把“要不要变道、该不该让行”建模成 POMDP——因为其他司机的意图不可见,只能靠传感器观测来更新信念。从黑板上的公式到马路上的方向盘,MDP 与 POMDP 就是机器人“想清楚再动脚”的那颗大脑。
- Q 值定义$Q(s, a)$ 表示状态 $s$ 下执行动作 $a$ 后,未来所有折扣奖励的期望总和。
- 贪心选择$\arg\max_{a} Q(s, a)$ 在所有动作里挑 Q 值最大的那个,就是当前最优决策。
- 落地执行机器人每个时刻只做“看状态、查 Q 表、走一步”三件事,最优策略便自然涌现。
AI 应用场景
仓库移动机器人(AGV)的路径规划
阶段:机器人决策与规划(决策层)——MDP 建模与值迭代求解
解决的问题:传统叉车沿固定轨道行驶,遇到临时障碍只能急停,整个仓库跟着瘫痪;用 MDP 把仓库地板网格化成状态,动作为四方向移动,奖励函数给“送抵货架”高分行、给“拥堵/碰撞”罚分,再用值迭代算出每格价值,机器人沿最亮邻居走,遇到堵塞随时重规划,路线天然具备弹性。
具体案例:电商仓库里有上千台 Kiva 式搬运机器人同时穿梭取货。调度系统为每台机器人维护一张 Q 值表:把“去货架提货”还是“去卸货口交货”写成动作,用转移概率描述路口的拥挤程度,并叠加充电与拥堵惩罚。每台机器人查自己的表,选择 Q 值最高的动作,整个仓库的交通流因此井然有序。
自动驾驶汽车的决策规划层
阶段:自动驾驶“感知→预测→决策→控制”链路中的决策层——POMDP 建模与信念更新
解决的问题:摄像头和雷达都有噪声,行人的意图、旁车是否会礼让都不可见。如果强行把这些当作“看得见的状态”用 MDP 求解,等于让机器人在雾天假装看清路,非常危险;POMDP 引入观测模型与信念状态,对“旁车让行概率”维持信念分布,每次观测后做贝叶斯更新,再基于信念选动作——概率够高才加速通过,否则减速等待。
具体案例:自动驾驶汽车在无保护左转时,对向直行车辆的“礼让意图”是隐藏状态。车辆通过视觉观测不断更新信念:对方减速了,信念中“会让”的权重上升;对方加速,权重下降。当信念超过阈值才踩油门完成左转,否则停在路口等待。这正是 POMDP 决策从论文走向量产车的经典缩影。
室内服务机器人的定位与求助决策
阶段:定位建图(SLAM)与行为决策的交叉环节——信念状态与不确定性管理
解决的问题:酒店送餐机器人在深夜走廊里,激光雷达扫到大量相似墙面,传感器读数区分度很低。直接把观测当真实位置会导致定位漂移、撞到客人;用信念状态维护“我可能在哪些位置”的概率分布,当信念的熵(不确定程度)超过阈值,就触发“原地等待/请求人工协助”的保守决策。
具体案例:某酒店送餐机器人深夜在走廊中失去特征,POMDP 决策层检测到信念分布过于分散,主动停下并拨打前台求助电话,而不是盲目前进。这个“懂得承认自己不知道”的行为,正是信念状态带来的工程价值。
Python 演示
# -*- coding: utf-8 -*-# 网格世界中的值迭代与策略迭代:MDP 求解入门GW, GH = 4, 3GOAL = (3, 0)WALL = {(1, 1)}ACTIONS = [(1, 0), (-1, 0), (0, 1), (0, -1)]ARROW = {(1, 0): '>', (-1, 0): '<', (0, 1): 'v', (0, -1): '^'}GAMMA, R_STEP, R_GOAL = 0.9, -0.1, 10.0 def is_blocked(x, y): return not (0 <= x < GW and 0 <= y < GH) or (x, y) in WALL def step_pos(s, a): nx, ny = s[0] + a[0], s[1] + a[1] return s if is_blocked(nx, ny) else (nx, ny) def r(s2): return R_GOAL if s2 == GOAL else R_STEP def value_iteration(max_iter=1000, tol=1e-4): V = {(x, y): 0.0 for x in range(GW) for y in range(GH)} for _ in range(max_iter): diff = 0.0 for s in V: if s == GOAL: continue v = V[s] V[s] = max(r(step_pos(s, a)) + GAMMA * V[step_pos(s, a)] for a in ACTIONS) diff = max(diff, abs(v - V[s])) if diff < tol: break return V def policy_eval(V, pi, max_iter=100, tol=1e-4): for _ in range(max_iter): diff = 0.0 for s in V: if s == GOAL: continue a = pi[s] v = V[s] V[s] = r(step_pos(s, a)) + GAMMA * V[step_pos(s, a)] diff = max(diff, abs(v - V[s])) if diff < tol: break def policy_iteration(max_iter=100): pi = {(x, y): ACTIONS[0] for x in range(GW) for y in range(GH)} for _ in range(max_iter): V = {(x, y): 0.0 for x in range(GW) for y in range(GH)} policy_eval(V, pi) stable = True for s in pi: if s == GOAL: continue old = pi[s] pi[s] = max(ACTIONS, key=lambda a: r(step_pos(s, a)) + GAMMA * V[step_pos(s, a)]) if pi[s] != old: stable = False if stable: break return pi def main(): V = value_iteration() pi = policy_iteration() for y in range(GH): row = '' for x in range(GW): cell = (x, y) if cell == GOAL: row += ' G ' elif cell in WALL: row += ' # ' else: row += ' ' + ARROW[pi[cell]] + ' ' print(row) print('V(起点) =', round(V[(0, 2)], 2)) print('V(终点旁) =', round(V[(2, 0)], 2)) if __name__ == '__main__': main()
V[s] = max(r(step_pos(s, a)) + GAMMA * V[step_pos(s, a)] for a in ACTIONS)值迭代的核心一行:对所有动作取“即时奖励 + 折扣未来价值”的最大值,完成一次贝尔曼备份。if diff < tol: break当所有格子的价值变化都小于阈值,说明“亮度地图”已稳定,提前收敛终止。def policy_eval(V, pi, max_iter=100, tol=1e-4)策略评估:固定行动手册,反复代入旧手册的价值公式,算出每个格子的期望回报。pi[s] = max(ACTIONS, key=lambda a: r(step_pos(s, a)) + GAMMA * V[step_pos(s, a)])策略改进:在每个格子挑一个使“奖励 + 折扣价值”最大的方向,替换手册里的旧指令。if stable: break没有任何格子的动作再发生变化时,行动手册已经最优,外层循环终止。
常见误区
误区“MDP 里机器人完全知道自己在哪,所以环境也是确定的,不会出任何差错。”
正解完全可观测只代表“状态已知”,不代表“转移确定”。转移概率 $P(s'|s,a)$ 完全可以带随机性——轮子打滑、地面湿滑、风力干扰,都是 MDP 里用概率表达的“意外”。MDP 的价值恰恰是把这种不确定性显式地写进模型,让机器人提前预案,而不是假装世界一成不变。
为何常见:把“可观测”和“确定性”两个不同的维度混为一谈。可观测说的是“信息够不够”,确定性说的是“结果稳不稳”,两者互不决定。
误区“γ=0.9 表示机器人只考虑未来 0.9 秒的收益。”
正解γ 是“耐心系数”,衡量未来回报相对现在的折价比例。γ 越接近 1,机器人越重视长远利益;γ=0 时只在乎眼前一步。它影响决策的前瞻性和收敛速度,与时间单位没有直接换算关系。比如 γ=0.9 时,10 步之后的奖励大约只折算成原来的 35%,是“价值衰减”而非“时间窗口”。
为何常见:看到“折扣”二字就联想到“倒计时”或“过期”,把它误当成时间概念;其实折扣是经济学里的“现值折算”,与耐心相关。
误区“两个算法算出的价值不一样,肯定有一个是对的,另一个是错的。”
正解在同一个 MDP 上,两者都收敛到同一个最优价值函数和最优策略。区别只在路径:值迭代每轮同时更新所有状态的价值,最后才提取策略;策略迭代始终维护一份显式策略,先评估、再改进、交替推进。通常策略迭代轮数更少,但单轮里的策略评估计算更重。
为何常见:把“流程不同”误解为“答案不同”——就像去同一个目的地,坐地铁和骑车路线不同,终点却一样。
误区“传感器有噪声,那我把观测值当作状态,照样用 MDP 求解不就行了?”
正解把观测当状态会忽略“信息不确定性”的累积误差。POMDP 必须显式建模观测函数 $O(o|s',a)$,并在连续且高维的信念空间上做规划,而不是在原始状态上。它的求解难度是 PSPACE-hard,远高于 MDP 的多项式复杂度。噪声小时也许能凑合,噪声大或安全要求高时(比如自动驾驶),忽略部分可观测性会直接导致决策失误。
为何常见:直觉上“噪声不大,直接忽略”很省事,但没意识到状态不确定会在多步决策中被放大,最终偏离真相。
面试题
Q1. 马尔可夫性质最准确的描述是?
- A.环境变化与时间完全无关
- B.下一步只依赖当前状态与动作← 正确答案
- C.机器人无法保存任何历史数据
- D.机器人的状态必须完全可观测
答案:B。马尔可夫性质说的是“给定当前状态与动作,未来状态的分布与历史无关”,而不是否定历史数据存在。A 把“无后效”夸大成“与时间无关”,C 把“不需要”误当“不能保存”,D 把可观测性混入马尔可夫性质——那是区分 MDP 与 POMDP 的维度。
Q2. 在 MDP 五元组中,折扣因子 γ 的作用是?
- A.控制动作集合的大小
- B.衡量对未来回报的重视程度← 正确答案
- C.设定奖励函数的最大上限
- D.表示传感器观测精度
答案:B。γ 是“耐心系数”,决定未来奖励折算成当前价值的比例:γ 越接近 1 越重视长远收益,γ=0 时只看即时奖励。它不控制动作数量、不设奖励上限,也与传感器无关。
Q3. 值迭代每一轮对每个状态执行的操作是?
- A.随机扰动之后才更新价值函数
- B.最大化即时奖励加上折扣未来价值← 正确答案
- C.按状态出现频率来加权更新价值
- D.只保留当前最优策略不更新价值
答案:B。值迭代的核心是贝尔曼备份:对每个状态,在所有动作中取“即时奖励 + γ × 下一状态价值”的最大值来更新 V。A 的随机扰动不是值迭代的机制,C 的“按频率加权”是统计估计的思路,D 则完全跳过了价值更新。
Q4. 策略迭代中“策略改进”步骤的本质是?
- A.在每个状态随机换一个新动作
- B.贪心地选择 Q 值最大的动作← 正确答案
- C.调低折扣因子让价值变小
- D.扩大状态空间来找更多动作
答案:B。策略改进对每个状态计算 $R(s,a) + \gamma \sum P(s'|s,a) V^\pi(s')$,并贪心选择使该值最大的动作,替换旧策略。它既不是随机换动作,也不改变 γ 或状态空间。
Q5. POMDP 求解困难的根本原因是?
- A.需要处理非常庞大的状态空间
- B.要在连续无界的信念空间上规划← 正确答案
- C.奖励函数始终无法被设计出来
- D.动作空间比 MDP 更加庞大
答案:B。POMDP 的信念状态是连续的概率分布,规划发生在信念空间上而非原始状态上;即使状态有限,信念空间也是连续且维度随状态数增长的几何体,导致问题为 PSPACE-hard。A、D 只是规模问题,C 与奖励设计无关。
Q6. 信念状态 b(s) 的含义是?
- A.对所有可能状态的信念概率分布← 正确答案
- B.机器人对观测值的置信区间
- C.每个动作被选中的执行概率
- D.环境不确定性的大小度量
答案:A。信念状态是机器人对自己可能处于各状态的“后验概率分布”,是部分可观测下的决策依据。B 是区间估计,C 是策略,D 只是对不确定性的宏观描述,都不构成完整的信念状态。
Q7. 从 MDP 扩展到 POMDP,新增的两大元素是?
- A.状态集合与动作集合
- B.观测空间与观测函数← 正确答案
- C.奖励函数与折扣因子
- D.策略函数与价值函数
答案:B。POMDP 在 $(S, A, P, R, \gamma)$ 基础上新增观测空间 Ω 和观测函数 $O(o|s',a)$,用于描述“传感器能看到什么、看到某读数的概率”;状态、动作、奖励、折扣在 MDP 中就已存在。
Q8. 下列哪些属于 MDP 建模的组成元素?
- A.状态集合 S← 正确答案
- B.动作集合 A← 正确答案
- C.信念状态 b(t)
- D.转移概率 P← 正确答案
答案:ABD。MDP 五元组包含 S、A、P、R、γ,其中状态集合、动作集合、转移概率都是核心元素。信念状态 $b(t)$ 是 POMDP 引入的概念,MDP 中状态完全可观测,不需要信念。
Q9. 关于折扣回报 $G_t = \sum \gamma^k R_{t+k+1}$,下列说法正确的有?
- A.γ 越接近 1 越重视长远收益← 正确答案
- B.γ 等于 0 时只看即时奖励← 正确答案
- C.期望回报会依赖全部历史轨迹
- D.γ 越大代表机器人越短视
答案:AB。γ 越接近 1,远期奖励折损越小,机器人越“有耐心”;γ=0 时远期项全部归零,只看 $R_{t+1}$。由于马尔可夫性质,期望回报只依赖当前状态而不依赖历史轨迹,因此 C 错;D 说反了。
Q10. 相比值迭代,策略迭代的特点包括?
- A.每轮先做策略评估再做策略改进← 正确答案
- B.收敛之后的价值函数一定不唯一
- C.通常轮数更少但单轮计算更重← 正确答案
- D.求解过程完全不需要价值函数
答案:AC。策略迭代每轮先固定策略做评估,再贪心改进每个状态的动作,因此 A 正确;它通常比值迭代轮数少,但策略评估内部要反复迭代价值,单轮更重,C 正确。同一 MDP 下最优价值函数唯一,B 错;策略评估恰恰需要价值函数,D 错。