首页 理论教育 表示行动分解

表示行动分解

时间:2022-02-11 理论教育 版权反馈
【摘要】:图12.5描绘了将BuildHouse行动分解成4个低层行动的可能分解。图12.6显示了领域的一些行动描述,以及BuildHouse的分解出现在规划库中的样子。例如,BuildHouse可能有另一种分解,它描述了智能体是如何空手用石头和泥炭建造房子的。

12.2.1 表示行动分解

行动分解方法的一般描述被存储在规划库中,它们被从库中抽取出来并被实例化以满足正在被构建的规划的需求。每个方法是一个形如Decompose(a, d)的表达式。这表明行动a能够被分解为规划d,它被表示为一个偏序规划,如第11.3节中所述。

建造一幢房子是一个精细而具体的例子,所以我们将用它来说明行动分解的概念。图12.5描绘了将BuildHouse(建造房屋)行动分解成4个低层行动的可能分解。图12.6显示了领域的一些行动描述,以及BuildHouse的分解出现在规划库中的样子。规划库中也许存有其它可能的分解。

图12.6 房屋建造问题的行动描述以及对BuildHouse行动的一个详细分解。描述采用了金钱的简化视角和施工人员的乐观视角

分解的Start行动为那些在规划中没有其它行动提供前提的行动提供所有前提。我们称这些为外部前提。在我们的例子中,分解的外部前提是Land和Money。相似地,作为Finish的前提的外部效果,是所有那些在规划中未被其它行动否定的行动效果。在我们的例子中,BuildHouse 的外部效果是House和¬ Money。某些HTN规划器也区分诸如House的初级效果和诸如¬ Money的次级效果。只有初级效果才可能被用来获得目标,而两种类型的效果都可能引起与其它行动冲突;这能极大地缩小搜索空间。[9]

分解应该是行动的一个正确实现。如果已知a的前提,规划d对于获得a的效果的问题是一个完备且一致的偏序规划,则规划d正确地实现了行动a。显然,如果分解是运行一个可靠偏序规划器的结果,那么它是正确的。

一个规划库对任何给定高层行动能够包含几种分解。例如,BuildHouse可能有另一种分解,它描述了智能体是如何空手用石头和泥炭建造房子的。每个分解应该是一个正确的规划,但是它能够在高层行动描述以外有附加的前提和效果。例如,图12.5的BuildHouse的描述需要除Land以外的Money,并有效果¬Money。在另一方面,自己建造的选项不需要钱(money),但是的确需要准备提供 Rocks (石头)和Turf(泥炭),能够导致BadBack。

给定一个高层行动,比如BuildHouse,可能存在几种可能的分解,在它的STRIPS行动描述中隐藏那些分解的某些前提和效果是不可避免的。高层行动的前提应该是其分解的外部前提的交集,它的效果应该是分解的外部效果的交集。换个角度说,高层前提和效果保证是每个原始实现的真值前提和效果的子集。

信息隐藏的两种其它形式应该被注意到。第一,高层描述完全忽视了分解的所有内部效果。例如,我们的BuildHouse分解包含时序的内部效果Permit(许可证)和Contract(合同)[10]。第二,高层描述没有详细说明行动“内部”的时间区间,在其间高层前提是必须成立的效果。例如,Land(土地)前提必须只能为真(在我们非常近似的模型中)直到GetPermit(得到许可证)完成,只有在PayBuilder (支付施工人员)完成之后House才为真。

这种类型的信息隐藏是根本的,如果要用分层规划减小复杂度。我们需要能够对高层行动进行推理而不需要担心实现的种种细节。然而,有必须负担的代价。例如,一个高层行动的内部条件和另一个的内部行动之间可能存在冲突,但是没有办法从高层描述检测它。这个问题对 HTN 规划算法有重要含义。简而言之,尽管原始行动可以被规划算法视为点事件,高层行动仍然具备时序范围,在这范围内各种事情都可能发生。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈