《人工智能:计算Agent基础》——3.2 状态空间

本节书摘来自华章计算机《人工智能:计算Agent基础》一书中的第3章,第3.2节,作者:(加)David L.Poole,Alan K.Mackworth 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 状态空间

智能行为的一种一般形式就是状态空间(state space)。一个状态(state)包含着所有必备的信息,以用来预测动作结果并确定是否是目标状态。状态空间搜索假设如下:

  • Agent具有状态空间的完全知识,并可观察自己所处的状态(即完全可见)。
  • Agent具有一个动作集,这些动作有已知的确定效果。72
  • 一些状态是目标状态,Agent想要到达其中一个目标状态,并可识别目标状态。
  • 解(solution)就是一个动作序列,使得Agent从当前状态到达目标状态。

【例3-1】 图3-1显示了机器人投递域及寻找从一个位置到达另一个位置的一条路径的任务。这可以抽象为一个状态空间的搜索问题模型,其中状态就是那些位置。假设Agent能够利用低级控制器去执行从一个位置到相邻位置的高级行为,那么在这种层次的抽象中,行为就是指相邻位置的明确的移动。


《人工智能:计算Agent基础》——3.2 状态空间

例如,机器人在房间r103外,即图中o103位置处,目标是到达房间r123。解就是使机器人到达r123的动作序列。
【例3-2】 在更复杂的情况下,投递机器人可能有多个包裹要投送到不同的位置。在这种情况下,状态包含:机器人的位置、机器人正在投送的包裹以及其他包裹的位置。机器人可能做出的动作包括:移动、捡起与自己在同一位置的包裹,或者随意将包裹放下。目标状态则可能是将一些特定包裹送达预期的位置。73因为我们不考虑机器人或者其他一些包裹的位置,所以可能会出现很多目标状态。
注意上述描述忽略了很多细节,例如,机器人怎样携带包裹(这会影响到它是否能携带其他包裹),机器人所剩的电量,包裹是否易碎或者损毁,以及地板的颜色。我们不把它们作为状态空间的一部分,而假定这些细节与目前所研究的问题无关。
【例3-3】 在一个指导系统中,一个状态可能包含着学生知道的主题集合。动作就是教授一门特定课程,教学行为结果可能是学生弄懂课程的主题,因为学生知道这些主题是他们掌握课程的先决条件。目标就是学生能够懂得一些特定的主题集合。
如果教学的效果也取决于学生的能力,那么这个细节信息也必须作为状态空间的一部分。如果学生正在做什么并不影响行为的结果,也不影响目标是否能达到,那么我们就不必为它建模。
一个状态空间问题(state-space problem)由以下部分组成:

  • 一个状态集;
  • 一个特定状态集合,称为初始状态(start state);
  • 每一个状态中Agent可执行的一个动作集;
  • 一个动作函数(action function),给定一个状态和一个动作,返回一个新的状态;
  • 一个目标状态集,通常被定义为布尔函数,goal(s),当s为目标状态时,这个函数返回值为真。
  • 用于检验一个可接受解的质量的标准。例如,只要能让Agent到达目标状态的任意一个行为序列都是可接受的解,或者动作是有花费的,Agent可能被要求找到最小总花费的解,这样的解叫做最优(optimal)解。或者说,比最优解花费多10%以内的解都是令人满意的。

这种框架在接下来的章节中会进一步扩展讲解,例如以下情况,Agent可以发掘状态的内在特征、状态不能完全可观察(例如,机器人不知道包裹在哪,或者老师不知道学生的能力),或者动作是随机的(例如,机器人有可能跑过了目标位置,或者学生可能不学习被教的主题),或者不仅仅是到达目标状态,还涉及奖惩时存在着复杂的偏好,等等。