3.2 规划


3.2 规划

本节摘要:规划是根据当前状态、行动集合、世界模型与目标,搜索一条行动序列,使得到达目标且代价可接受。要素是状态、行动、目标、转移模型、代价。确定与随机、离线与在线、分层与平坦,决定搜索器看到的问题形态。规划吃的是第 2 章的模型;模型错,计划会精确地失败。执行时通常只落地第一步,再根据新观测重规划。

读前必看

阅读完本节,你应当能够:

  1. 列出规划问题的五要素,并指出缺模型时规划会退化成什么
  2. 按确定性、是否在线、是否分层给一个任务选型
  3. 解释为何「算出完整序列再执行」在动态环境里会过期
  4. 说明分层规划如何把 3.1 的目标层次变成搜索层次

规划是在模型里预演序列

去开会要选路、留缓冲——人做的就是规划。智能体这边,SOURCE 把要素写成状态、行动、目标、模型、代价。缺模型就无法预演,只能走 3.3 的一步选择或靠学习撞。缺代价则只能找任意可行,往往走出荒唐绕路。缺目标则搜索没有终止。五要素是问题定义,不是算法名。A 星、MCTS、任务网络,都是在这份定义上换搜索策略。

确定性规划假设行动后继唯一,适合棋盘与多数符号装配。随机规划承认后继是分布,计划必须在分支上仍能到达。离线规划在开跑前算完整序列,适合静态、算得起的场景。在线规划边走边算,适合动态与模型不准。分层把「出库」拆成「取托盘、行驶、插入」,每层有自己的行动粒度。非分层在平坦行动上直接搜,任务一长组合爆炸。

定义 规划问题: S 状态空间 来自认知的状态清单 A 行动集合 执行器能做的事 T 转移 世界模型 G 目标条件 来自 3.1 C 代价 时间、能量、风险 求解: 一条行动序列,使沿 T 走完后 G 成立,C 可接受

💡 关键直觉:规划器再强,也只是世界模型的客户。客户不能比货源更懂物理。

算法只是搜索策略不同

符号规划常用前向/后向搜索、启发式。启发式来自放松问题:忽略部分约束得到的距离估计。启发式可采纳,搜索有保证;启发式乱编,搜索会偏。连续控制里「规划」常变成轨迹优化:在状态轨迹上最小化代价并满足约束。游戏与大行动空间里,蒙特卡洛树搜索用采样估计行动价值,它横跨规划与 3.3 的价值选择。名称不重要,问三问:有没有显式模型?搜的是序列还是一步?如何处理随机与时间限制?

形态 模型需求 输出 怕什么
确定性启发式搜索 准的离散 T 完整序列 动态过期、状态空间大
随机规划/期望搜索 带分布的 T 策略树或带备份的计划 分支爆炸
在线重规划 可快速重算 当前第一步 算超时
分层任务网络 分层操作模型 高层方法加底层技能 分解错
轨迹优化 可微或可仿真动态 连续轨迹 局部最优
树搜索采样 可仿真 当前根节点行动 仿真偏差

SOURCE 把离线例子写成自动驾驶预先规划路线。更准确的工程图是:全局路线可以离线,局部避障必须在线。两层对应分层:高层用路网模型,低层用车辆动态模型。模型粒度随层变化,这是分层真正的好处,不是图画得好看。

计划过期与执行接口

动态环境里,完整序列是易碎品。行人一迈步,第三步以后全废。标准做法:规划频率与感知频率对齐,每次只执行当前最优的第一步,同时保留未执行尾部当热启动。若执行器有延迟,计划里还要含「现在发出的指令,对应的是未来哪一时刻的状态」——这又把世界模型的时间对齐提上桌。

⚠️ 常见坑:在仿真里开环执行整条序列就成功,上真机仍开环。真机上的 T 与仿真 T 不一致,从第二步开始误差累积。

代价函数是 3.1 效用在路径上的展开。只写路径长度,会贴着障碍擦过;加上风险项,路径会主动留空。风险项若用状态里的置信,3.4 与 2.4 就接上了:不确定高的区域代价变高,规划自动绕开认知看不清的地方。这比事后加一堆 if 更干净。

没有世界模型时,不要假装在做规划。有人把大模型生成的步骤清单叫计划,却没有 T 来检查下一步是否可行。那是行动选择的一种启发式,应放进 3.3,并准备随时被真观测打脸。真规划必须能问:「若执行这条序列,模型是否认为 G 会成立?」答不出这个问题,就还没有规划器。

启发式从哪来,失败时怎么办

A 星一类搜索的启发式若来自放松问题,例如忽略动态障碍的静态最短路,它可采纳、偏乐观,搜索仍有保证。若启发式来自学习网络,保证消失,速度可能上升。两者可以叠:网络提供排序,可采纳启发式提供上界剪枝。声明来源,调试才知道「搜偏了」该怪网络还是该怪放松过度。

分层任务网络把 3.1 的目标层次变成方法:出库 → 取货、行驶、插入。方法展开失败时,应回退到上一层换方法,而不是在底层技能里死磕。死磕是把层次又压平。回退日志是规划可解释性的来源:为何放弃左通道、改走右通道。没有回退,只剩一条最终路径,问责只能猜。

确定性规划在略微随机的真机上,应用闭环重规划补,而不是一上来换随机规划器。随机规划贵,且需要 T 的分布估计。分布估计比均值估计更吃数据。能用重规划解决的,先重规划。只有行动后果多峰、一步走错不可逆时,才值得在根上算期望树。不可逆再次指向 3.1 的避免目标:那些行动应从合法集剔除,而不是靠期望里的小概率安慰。

代价里加「不确定区域」项,是把 2.4 的置信接进来。看不清的格子更贵,路径自动留空。这比事后加 if 干净。但置信若被虚高(同源证据加倍),代价会被骗,规划会穿过其实看不清的区域。所以规划质量仍受认知诚实约束。3.2 改变不了 2.1 的撒谎,只能选择信或不信。

图:规划五要素与在线只取第一步

图:规划五要素与在线只取第一步

本节检查清单

五要素缺哪块?缺 T 还自称规划吗?动态环境是否只执行第一步并重规划?超时返回空还是返回默认?启发式来源是放松问题还是网络,失败该怪谁写清了吗?分层失败会不会在底层死磕而不回退?打断日志在不在,能否解释改道?不确定区域有没有进代价?开环整段执行有没有从仿真直接搬到真机?不可逆行动是进期望还是先踢出合法集?规划器再强也只是模型的客户——这句话能否对着一次失败说出来,并指出是 T 错还是状态错?说不出来,3.2 还停在算法名词。名词不执行第一步,执行器才执行。执行器咬到的那一口,才是规划与世界的交点。

开环成功不是真机许可

仿真里开环走完十二条,真机第二条就擦货架。原因通常是 T 与真机不一致,误差从第二步累积。许可应是:仿真也改成闭环重规划再对比,真机默认只咬第一口。第一口咬完用新观测重算。重算超时走 5.1 默认。默认不是规划失败的耻辱,是动态环境的合同。合同写清,3.2 才不是「在脑子里走完全程」的幻想。幻想在棋盘上成立,因为棋的 T 完美。仓库的 T 不完美。不完美就短视加闭环。短视加闭环看起来没那么「运筹帷幄」。帷幄在过期计划里是事故。事故预防是只执行第一步。第一步是规划与执行器的唯一合法接头。接头以外的序列留作热启动,不直接下发。不直接下发要在接口里写死。写死比换更强搜索重要。更强搜索会把错误 T 上的路径找得更「最优」。更最优更擦架。擦架不是搜索不够。不够的是对 T 的谦虚。谦虚写成在线。在线是本节的默认。默认可被静态环境改成离线。改要声明环境轴。轴在 1.2。1.2 允许简单时,3.2 也允许离线。不允许时,离线是偷懒。偷懒在真机上从第二步开始还债。还债用碰撞。碰撞太贵。贵之前改接口。接口只咬一口。一口一口才是规划活在循环里。活在循环里的规划才是决策,而不是一次离线作文。作文可以很长。长计划在动态里是易碎品。易碎品不要整段执行。整段执行是本节最常见的仿真到真机陷阱。陷阱用这一条实验拆:同一 T 误差,开环与闭环的擦架次数。次数差就是在线的价值。价值可测。可测才不用靠「运筹」这种词。词不挡货架。闭环挡。挡了,3.2 过关。过关后才配谈启发式来源。来源再漂亮,也要在闭环里跑。跑不过的启发式,不是规划器的荣耀。荣耀是少擦架。少擦架来自谦虚的接口。接口是第一步。第一步是本节要钉的钉子。钉子钉在执行器前。执行器前只许当前步。当前步以外,留给下一拍的重规划。下一拍会有新观测。新观测是真世界。真世界比模型新。新的当锚。锚住了,模型误差才不会走完十二条。走不完是福。福来自闭环。闭环是规划的伦理。伦理很土:别把幻想一次下发。下发一口。一口一口,才配叫运筹。运筹在循环里。循环在第 1 章。第 3 章不另造一个能预知全程的神。神不存在于仓库。仓库只有一口一口。一口一口写进接口。接口测试加一条:禁止下发长度大于一的开环指令,除非环境声明静态且 T 已校准。声明要签字。签字是选型合同。合同在 5.1 也会要。两章接头。接头很多。很多是因为规划活在系统里,不活在课件的完美图上。完美图可以画十二条。真机只许可一口。一口是本节的毕业标准。

核心回顾

  • 五要素:状态、行动、目标、转移、代价,缺一则问题没定义完
  • 规划是模型的客户:T 错则计划精确失败
  • 在线默认:动态环境只执行第一步并重规划
  • 分层对粒度:高层路网、低层动态,模型随层变
  • 代价含风险:用置信抬高看不清区域的代价
  • 无 T 不叫规划:步骤清单只是启发式行动选择

下一节讨论不搜完整序列时,当前这一步如何选。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U