正在加载图片...
.242. 智能系统学报 第6卷 态的影响。 Parameters() 下面给出的伪代码描述了一个办公室机器人移 (method msbl 动行动的规则 preconditon() <Rule name=“moveActivity”> :tasks((A1)(A2)))) <Rule.Condition 2)并行模式工作流表示及对应的HTN编码: moveActivity.locl.rloc <ParallelActivity x:Name=“PBl”> &moveActivity.d.closed <SequenceActivity &moveActivity.door.realvalue x:Name=“sequenceActivity1”> </Rule.Condition> <ns0:MoveActivity:Name=“A1”/> <Rule.ThenAction </SequenceActivity moveActivity.loc2.rloc =true <SequenceActivity &&moveActivity.loc1.rloc false x:Name=“sequenceActivity.2”> Rule.ThenAction <ns0:MoveActivity:Name=“A2”/> </Rule </SequenceActivity> 上述例子转换为HTN规划的行动表达如下 </ParallelActivity (action move 对应的HTN编码如下: parameters (?loc1-ROOM ?loc2-ROOM ?d- (task PB1 ROOMDOOR) Parameters() precondition (and (rloc ?loc1)(door ?loc1 (method mpbl loc2 ?d)(not (closed ?d))) preconditon() effect (and (rloc ?loc2)(not (rloc ?loc1))) :tasks([(A1)(A2)]))) 3)选择模式工作流表示及对应的HTN编码: 其中,二者对于状态的表达有所不同.在规划的 <IfElseActivity:Name=“XORB1”> 领域模型中,状态由一组基础谓词的合取来表达;而 <IfElseBranchActivity 在工作流模型中,状态一般由对象、对象实例(- x:Name=“ifBranch”> stances)、属性(attributes)以及属性的值(variable)来 <IfElseBranchActivity.Condition> 表达.在工作流模型中,用bool型变量来表达命题,如 RuleCondition Reference “bool armempty”表达机器手臂是否为空;用对象的 ConditionName=“ifConditon'”/> bool型属性来表达一元谓词,如“bool door.closed”表 </IfElseBranchActivity.Condition 达门是否关闭;用谓词对象来表达多元谓词,其中谓 <ns0:MoveActivityx:Name=“Al”/> 词的项由对象的属性来表达,而谓词的断言(asser- </IfElseBranchActivity tion)可以由对象中的一个bool型属性来表达, <IfElseBranchActivity 2.2工作流模式的转换 x:Name-“elseBranch”> G-Ferrer等人在其开发的JABBH系统(将业务 <ns0:MoveActivity:Name=“A2”/> 流程模型转换为HTN规划模型的一个JAVA应用 </IfElseBranchActivity 程序框架)51应用了3种典型的工作流模式来表达 </IfElseActivity HTN规划的任务分解方法.以下是这3种模式的工 ifConditon: 作流编码和转换为HTN方法后的HTN编码. this.x ==true 1)顺序模式工作流表示及对应的HTN编码: 对应的HTN编码如下: <SequenceActivity x:Name=“SBl”> (task XORB1 <ns0:MoveActivity:Name=“Al”/> Parameters(?x-parameter) <ns0:MoveActivityx:Name=“A2”/> (:method ifBranch </SequenceActivity> preconditon(value ?x true) 对应的HTN编码如下: tasks((A1))) (:task SB1 (method elseBranch
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有