ImageVerifierCode 换一换
格式:PDF , 页数:10 ,大小:277.37KB ,
资源ID:16088149      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16088149.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于STRIPS语言的经典规划_精品文档资料下载.pdf)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于STRIPS语言的经典规划_精品文档资料下载.pdf

1、普通的 Agent 规划有下列几个较难处理的问题:1)一个规划问题中不相关的行动太多时,普通 Agent 无法处理;2)很难寻找到一个好的启发式函数;3)Agent 很多时候并不能够利用问题分解,即不能够把规划问题完全分解为子问题。虽然在理论上,这些困难看起来的确有些难以解决,但是在经典规划理论研究中,往往都是直接忽略或者增加一些假设以避免这些问题,因为在实际应用中,问题往往被限定在一个有限的范围内,我们只需要使用一些特殊技术就能解决这些问题。例如:在以下要介绍的规划算法中,都是假设问题是可以分解的(子目标独立性假设)。2Planning 语言语言 2.1 STRIPS 在介绍经典规划之前我们

2、先介绍一下规划语言。最初描述规划问题是用情形演算的语言,情形演算是一种特殊的一阶语言,它设置了一些特定的语法对象以描述行动和状态变化。不过情形演算有一个致命的缺憾框架问题。框架问题分为表示框架问题和推理框架问题,虽然在情形演算中用后继状态公设取代效果公设和框架公设而解决了表示框架问题,但是却无法解决推理框架问题。STRIPS 语言是 R.File&Nilsson 在 1971 年提出的表示规划问题的一种简洁的形式化语言,它是一种能够描述范围很宽的各种问题的语言。STRIPS 语言成功地解决了推理框架问题,在说明它是怎么解决这个问题之前,先介绍 STRIPS 的相关知识。STRIPS 语言定义了

3、以下表示1:?状态:在规划问题中,用一个文字的合取式表示世界中的某一状态。我们采用一阶文字表示这种状态,在一阶状态描述中,这些文字必须是基项(ground),而且必须是无函数的。另外,还采用了封闭世界假设:在一个状态中没有提到的条件被认为是假的!行动(Action):一个行动是由前提(Precondition)和效果(Effect)来表示和决定的。其中,前提是执行这个行动所必须满足的条件,效果是执行行动之后引起状态的变化,效果一般用删除表(D)和添加表(A)表示。表示一个积木世界中的行动把积木 x 从积木 y 上搬到 z 上如下图所示。准确地说它表示的是一个行动模式,它包含的意义是指一系列不同

4、的行动,这些行动可以通过把变量 x,y,z 实例化成不同的常量而得到。)()(),(:)(),(:),(FclearyclearzxonAzclearyxonDzclearxclearyxonPCzyxMove?目标:其实目标表示也应包括在状态表示中,之所以把它单独提出来,是因为目标仅是用正文字的合取式表示的,而且,一个状态 S 满足目标 G(Goal)当且仅当状态 S 包含 G 的所有原子。说明:注意这里有一个很重要的假设-无函数假设,之所以使用这个假设,是因为无函数假设保证了任何问题的行动模式都可以被命题化,而不会无限的迭代下去,以至于规划器无法处理。我们知道在情形演算中使用了 fluen

5、t(变式),fluent 是指其值依赖于情形的谓词和函数,如:我们在积木世界中表达 B 在 A 上这个状态On(B,A,S),注意这里每一个状态表示都与某一“时刻”的状态 S 联系在一起,正是因此才导致了框架问题(更多细节参见参考书目1的第十章),相对而言,在 STRIPS 中状态表示为 On(B,A),这样,执行某一个行动后原状态未改变的逻辑公式就可以直接“复制”下来,而在情形演算中是必须通过框架公设或后继状态公设来得到的。下面通过一个具体例子来说明 STRIPS 是如何解决框架问题的。例 1:如图 1 所示的积木世界状态 S,S 用 STRIPS 语言表示为:)()(),(),(),(Fc

6、learBclearFConCAonABonS=现执行行动 Move(B,A,F),此行动的表示如下:),(FclearAclearFBonAFclearABonDFclearBclearABonPCFABMove 行动的执行:若状态 S 中有删除表 D 中的某一公式,则删除之;若状态 S 中没有添加表A中的某一公式,则添加之。对于行动的添加表A和删除表D中没有提到的S中的公式,STRIPS语言使其直接复制到下一状态S,这一处理过程可以用集合运算来形式 化 表示:,对应到这里的行动ADSSU)(0=)()(),()(),(:),(FclearAclearFBonFclearABonSSFABM

7、ove=U得到)()()(),(),(),(FclearBclearAclearFBonFConCAonS=,如图 1 所示。而 在 情 景 演 算 里,用 效 果 公 设、领 域 知 识 和 框 架 公 设 来 推 理:),(,()(),(),(,()(),(),(,),(,()(),(),(),(),(,()(),(),(),(),(,()(),(),(),(),(,()(),(),(),(SFABMovedoFConBCSFConSFABMovedoCAonBASCAonSFclearSSFABMovedoFclearFBSFclearSBclearSABonSFABMovedoAcle

8、arFBSFclearSBclearSABonSFABMovedoABonFBSFclearSBclearSABonSFABMovedoFBonFBSFclearSBclearSABon=其中,显然,在情形演算中与一个行动不相关的状态较多的话,Agent 处理这些没有被行动所改变状态的复杂程度是相当大的,这就是框架问题。而在前面STRIPS 语言用集合运算就非常简单地处理了。),(SFABMovedoS=由此分析可以很清楚的看到,STRIPS 语言非常容易的解决了“执行一个行动后原状态未改变的逻辑公式的表示”的问题,即是解决了框架问题,这也是 STRIPS 语言成为规划中最重要也是影响最大的语

9、言之一的原因。2.2ADL 和和 PDDL 语言语言 1986,Pedanault 在 STRIPS 的基础上提出了 ADL 语言,ADL 语言继承了 STRIPS 语言的知识,并且放松了 STRIPS 语言的一些限制,使得规划语言更加灵活,而且应用范围也更加广泛。1998 年,Ghallab 等人提出问题域描述语言 PDDL,它是一种更加完善的语言系统,能够表示 STRIPS、ADL 以及其他语言,目前是国际上公认的标准规划问题描述语言。3 规划算法规划算法 3.1 全序规划全序规划 全序规划是指这样的规划:它们搜索的是与起始状态或目标相关的严格线性行动序列。下面所要介绍的状态空间搜索算法就

10、是这样的全序规划算法。状态空间搜索是规划算法中最直接的方法,因为规划语言中描述行动的时侯同时用到了前提和效果,所以我们可以考虑从两个方向进行搜索:从初始状态开始的前向状态空间搜索和从目标状态开始的后向状态空间搜索。3.1.1 前向状态空间搜索和后向状态空间搜索 这里只简单介绍一下这两种规划搜索算法的思想并提供一个前向搜索算法。前向搜索(又称前行规划)从初始状态 S 开始,考虑那些前提得到满足的行动 a,并把他们加入到规划行动集合 A 中去;再通过修改当前状态 S(增加 S 中没出现的 a 中的添加表文字和删除 S 中出现的 a 中的删除表文字),并把行动 a 添加到 A 中去;最后通过判断 S

11、 的相容性的和是否包含目标状态的所有文字来确定是否是规划问题的一个解。相反,后向搜索(又称为回归规划)是从目标状态开始,考虑那些正效果中出现而负效果中不出现当前状态的文字的行动,把此行动添加到规划行动集合中去,再在 S 中添加此行动的前提和删除此行动的正效果。最后也是通过判断 S 的相容性和初始状态是否包含 S 的所有文字来确定是否得到规划问题的一个解。先对几个符号说明一下:S0:初始状态,G:目标状态,表示行动集。前向规划算法:)返回)()中出现;中的文字在和;包含于,和替换)找出一个行动模式;,);)3,5;SS4PCAD S PC :.S,R 3|S 2,10UURADtADPCretu

12、rnGIfSS=3.1.2 启发式在搜索算法中的应用 不论是前向还是后向搜索,如果没有一个好的启发式的话,都不是高效的。启发式应用于搜索算法中,可以使搜索速度大大加快。下面就介绍一些常用的求可采纳的启发式的方法:1)删除每个行动的前提以得到松弛规划问题,然后求此松弛规划问题的最优解耗散,并以此作为一个可采纳的启发式。2)假设子目标独立,以每个子问题耗散的总和为启发式。在实际的应用中,经常是把上面两种方法结合起来使用,即先假设子目标独立,然后写出松弛问题,再把每个子问题的最优解耗散求和,以此作为规划问题的启发式。为了得到更加精确的启发式,我们还可以更进一步的只删除每个行动的前提和负效果,以此得到

13、松弛规划问题,再以此松弛问题的最优解作为启发式。另外,还可以只删除负效果而不删除前提来生成松弛问题(此方法得到的启发式称作清空删除表启发式),这种方法得到的启发式更加精确。3.1.3 前向搜索和后向搜索的比较 从以上的描述来看,因为后向搜索只需要考虑相关的行动,不必对所有可能的行动进行搜索,而前向搜索需要考虑所有可能的行动,由此产生的分支太多,搜索时间消耗自然也就随之而大大增加了,因此后向搜索在理论上要比前向搜索更好,而且一般情况下也确实如此。不过,规划算法的速度很大程度上依赖于启发式的应用,所以这种比较就只有理论上的意义。注:这里的相关行动是指效果中包含目标文字或者是搜索中当前状态的文字的行

14、动,可能行动是指前提被满足的行动。下面用一个简单的图示(图 2)来说明前行规划和回归规划的区别:初始状态 S0 为:At(P1,A)At(P2,A);目标状态 G 为:At(P1,B)At(P2,B)。这里我们不必细究这些公式的具体含义,仅从图 2 中可以很明显的看出前行规划和回归规划的搜索区别:前行规划从初始状态出发,使用问题的行动向前搜索目标状态,回归规划从目标状态出发,使用行动的逆,向后搜索初始状态。3.2 偏序规划偏序规划 偏序规划是指任何能够将两个行动放在一个规划中而不指定哪一个在前的规划算法。简单的来说,偏序规划允许两个或多个行动无严格先后顺序。一个偏序规划包含以下内容1:1)行动

15、:一组行动是组成规划的步骤。此处需要特别说明的是 Start 行动和 Finish 行动,空规划只包含 Start 和 Finish 行动。Start 行动没有前提而且将规划问题的初始状态中的文字作为其效果,Finish 行动没有效果且将规划问题的目标文字作为其前提。2)定序约束:形如:,表示行动 a 必须在行动 b 之前执行。这里还需说明的是规划中不能包含可以造成循环的定序,如:和。ba pba pab p3)因果连接(因果链):,表示 p 是行动 a 的效果同时是行动 b 的前提,且保证了 p 在从执行行动 a 的时刻到执行行动 b 的时刻这段时间内为真即“保护”p 的真值。bap4)开放前提:表示不能从规划中的一些行动中得到的前提,在不引起冲突的情况下,规划算法会尽力缩小开放前提直到使得它为空集。我们在这里引

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1