10.3.2 描述情景演算中的行动
最简单版本的情景演算中,每个行动用两条公理来描述:可能性公理(possibility axiom)表述什么时候可以执行行动,效应公理(effect axiom)表述某个可能的行动被执行后会发生什么。我们用Poss(a,s)表示在情景s下执行行动a是可能的。公理有如下形式:
我们将会为修改过的wumpus世界提供这些公理。为了简化我们的语句,我们省略作用范围是整个语句的全称量词。我们假设变量s的取值范围是所有情景,a的取值范围是所有行动,o的取值范围是所有对象(包括智能体),g的取值范围是金子,x和y的取值范围是所有可能的位置。
这个世界的可能性公理陈述了一个智能体能够在相邻位置间移动,能够在当前位置抓住一块金子,也能够放开它持有的一些金子:
效应公理陈述了如果一个行动是可能的,那么在由执行此行动而产生的情景中某些属性(流)会成立。从x走到y导致智能体处于y,抓住金子导致持有(holding)金子,而放开金子导致不持有金子:
在已经说明了这些公理的情况下,我们能够证明我们小小的规划可以达到目标吗?很不幸,还不能!一开始,一切正常运转;Go([1, 1], [1, 2])在情景S0下确实是可以的,而Go的效应公理让我们能够得到结论,智能体到达了[1, 2]:
At(Agent, [1, 2], Result(Go([1, 1], [1, 2]), S0))
现在考虑行动Grab(G1)。我们必须说明它在新的情景下是可能的——也就是,
At(G1, [1, 2], Result(Go([1, 1], [1, 2]), S0))
唉,知识库中没有东西能证实这个结论。直觉上,我们明白智能体的 Go 行动对金子的位置应该是没有任何影响的,所以金子应该还在[1, 2],同在S0中一样。问题在于效应公理说明了什么会改变,却没有说明什么会保持原状。
表示所有保持原状的东西被称为框架问题(frame problem)[35]。我们必须找到框架问题的有效解决方案,因为在现实世界中,几乎所有的东西都是一直保持不变的。每个行动都只影响全部流中的很小一部分。
一种方法是写下明确的框架公理(frame axioms)确实说明什么保持不变。例如,智能体的移动不会影响其它对象,除非对象被智能体持有:
如果有F个流谓词和A个行动,那么我们需要框架公理的条数为O(AF)。另一方面,如果每个行动最多有E种效果,其中典型情况下E远小于F,那么我们就能够用一个小很多的O(AE)规模的知识库来表示发生的情况。这就是表示框架问题(representational frame problem)。有紧密联系的推理框架问题(inferential frame problem)是对在时间O(Et)内一个t步行动序列的结果的投影,而不是时间O(Ft)或者O(AEt)。我们会依次讲述这两个问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。