搜索与规划:从状态到行动序列
- 定义状态、动作、目标与代价
- 说明搜索顺序和启发式如何影响结果
先把展览布置写成问题
星河玩具展是一座虚构的桌面模型展。志愿者要把圆形玩具从储物盒放到展台,开始时玩具在盒中,双手空闲,展台尚未清理。状态描述当前与任务有关的事实,动作描述可以做的改变,目标描述希望最后满足的条件。这里不需要先收集几万张照片训练网络:只要状态与行动规则明确,就可以通过搜索寻找可行序列。人工智能也包括这种显式建模与推理路线,并非所有任务都由语言模型回答。
搜索树不是现实世界本身
从初始状态出发,列出允许执行的动作,每个动作产生新状态,再继续扩展,形成搜索树或状态图。比如先清理展台,再取出玩具,最后放置;也可能先取玩具却发现没有空手清理,必须放回。若不同序列达到同一状态,应考虑避免重复探索。状态如果漏掉手是否空闲,就可能生成现实上无法执行的步骤。建模是决定搜索是否有意义的前提,搜索算法不能自动补回被遗漏的条件。
不同搜索方式有不同保证
广度优先搜索先检查较少动作的路径,在每步代价相同且条件适当时可找到动作数量最少的解,但需要保存许多候选状态。深度优先搜索先沿一条路往下,可能节省某些情况下的存储,却可能陷入很深的分支。若清理与搬运代价不同,动作最少不等于总代价最低,可以使用按累计代价扩展的办法。不能把找到一个解就称为最优,也不能脱离状态空间大小与停止条件谈必然成功。
规划把动作前提说清楚
行动规划会显式描述前提与效果。放置玩具的前提是手中有玩具且展台已清理,效果是玩具在展台且双手空闲。启发式是估计离目标还有多远的辅助规则,可以优先探索看起来更有希望的状态。估计应服务于具体代价定义;某些算法只有在启发式满足不高估等条件时才具有对应最优保证。启发式不是随意猜一个自信分数,更不是语言描述越详细就越可靠。
执行后仍要观察
计划是在模型假设下生成的,执行时可能发现展台尚未清理或玩具没有取出。应观察实际状态,再决定重试、重新规划或请求人工帮助,不能把计划文本当成动作已经完成。工坊练习只在纸上模拟,不控制真实设备。若存在不可逆动作、共享资源或安全要求,计划生成与执行授权要分开。规划擅长组织明确行动条件,但对未知环境、错误规则和不完整观察仍然有限,需要恰当的反馈与范围声明。
本节要点
- 搜索需要明确状态、动作、目标与代价
- 最少动作不一定等于最小总代价
- 计划生成不等于执行成功,反馈决定是否重规划
动手练习:为三步玩具布置画状态图
- 写出初始事实:玩具在盒中、手空、展台未清理,以及目标玩具在展台
- 为清理、取出、放置分别列前提和效果,明确清理需要手空
- 画出先清理再取出再放置的状态序列,另画先取出后无法清理的分支
自查清单
- 每个动作都有可核对前提与效果
- 状态包含手空与清理情况
- 区分纸面可行、最优证明与实际执行
先自己做,再查看参考答案
示范计划先清理展台,前提手空,效果展台已清理;再取出玩具,前提手空且玩具在盒中,效果手中有玩具、玩具不在盒中;最后放置,前提手中有玩具且展台已清理,效果玩具在展台、手空。若先取出,手不再空闲,清理动作的前提不满足,必须增加放回等动作才能继续。状态图要同时记录玩具位置、手是否空闲和展台清理状态,不能只画玩具从盒子到展台的一根箭头。这个序列在既定规则下可行,但若没有列出所有动作与代价,不能声称它在任何定义下都是最优;执行时还要确认每步效果确实发生。