多Agent系统BDI模型的推理研究

时间:2022-05-01 05:50:12

多Agent系统BDI模型的推理研究

摘要:提出了基于环境感知的具有推理能力的BDI Agent模型。通过引入环境感知函数、意见函数、过滤函数、行为函数对环境的变化和Agent自身推理过程进行研究,并通过实例加以说明。

关键词:Agent;BDI模型;推理

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)15-4081-03

Study About Rational Model Base on BDI Agent

MIAO Zhi, DENG Hui-yu

(Engineering College of Armed Police Force, Xi'an 710075, China)

Abstract: In this thesis, a dynamic rational BDI Agent model based on perception is proposed. The functions of the sense, opinion, filter and action are introduced to study the changes of environment and Agent. In this foundation, performs through the example to explain. Finally, the conclusion is discussed.

Key words: Agent; BDI model; rational

1 引言

Agent研究中,具有奠基性的工作是Bratman 提出的BDI模型。Multi-Agent系统即“MAS”,是一些自主的Agent通过协作完成某些任务或达到某些目的的计算系统,它为很多大规模的工商业应用系统提供了新的解决方案。然而这些系统通常处于一种不可预测的动态变化环境中,在某些时候MAS需要有一定的自适应能力。本文以BDI Agent为例,分析在环境变化下Agent是如何进行推理的。过去的研究表明,BDI(Beliefs-Desires-Intentions)模型被研究人员认为是最健壮和灵活的智能主体模型。Bratman提出的一种基于意识的观点来研究Agent的概念,认为信念(belief)即一组关于世界的信念、愿望(desire)即主体当前打算达到的一组目的、意图(intention)即一个意图的结构,描述主体当前怎样达到它的目标是Agent的思维属性。

这里给出了一个动态的BDI Agent模型并用ASL(Agent Script Language)语言来描述这个模型。

2 ASL(Agent Script Language)的引入

ASL基于模态逻辑,用于描述Agent之间的交互。为了描述基于BDI模型的Agent,引入了算子Bel(信念),Des(愿望),Int(意图),E(环境)和符号ρ,×。算子可以表示成由三个条件集合组成的三元组(P,A,D):前提条件集合P(Precondition)在算子执行的所有状态中的值都为“真”,增加条件集合A(Addition)在算子导致的状态中都为“真”,删除条件集合D(Deletion)在算子导致的状态中的值都为“假”。ρ表示幂集,×表示笛卡儿乘积。

3 BDI结构简介

Agent的信念-愿望-意图(BDI)范例是近年来计算机学术界广泛研究的一种智能Agent结构。有关Agent的信念-愿望-意图(Beliefs-Desires-Intentions,BDI)概念的哲学观点源自Bratman。Bratman在IRMA系统的设计中明确表示了信念、愿望和意图,并将意图看作部分行为计划,这些计划是Agent承诺执行以完成其目标的计划,从而使Agent能够根据资源的变化情况有效实现手段目的推理。

智能Agent的实际推理过程涉及到三个重要环节:

1) 选择目标;

2) 确定怎样获得这些目标;

3) 当环境发生变化时,如何调整所追求的目标以适应变化了的环境。

环节1称作慎思过程,环节2称作手段-目的推理过程,环节3称作反应过程。信念-愿望-意图Agent模型的一般结构就是针对三个环节而建立的。如图1所示为BDI Agent的实际推理过程示意图。

由图可见:

①BDI Agent的求解意见产生过程可看作循环求精的一个层次计划结构的过程,不断地考虑和承诺逐步实现的意图,直到最后获得目标。

②求解意见过程驱动手段―目的的推理,同时它还满足几个其他的约束:所产生的意见必须与Agent当前的信念和当前的意图一致;其次,应当能识别出环境变化的趋势,提供Agent获得意图的新方法或新的可能性。

③一个BDI Agent慎思过程表示为过滤函数,过滤函数根据Agent当前的意图、信念和愿望刷新Agent的意图。过滤函数需要丢弃无法完成、或已经无意义的意图,为无法实现的意图选择新的实现方法及选择新的意图。

综上可知,BDI体系结构是一个实际的推理结构,其基本成分是表示Agent信念、愿望和意图的数据结构,以及表示慎思过程的功能和手段-目的推理。在BDI体系结构里,Agent通过所感知的事件(包括通信行为)、可能采取的行动、所拥有的信念、可能采纳的目标以及达到意图的计划等得到完全实例化。从上述推理过程可见,基于BDI结构的Agent建模可以较好地反映智能Agent的反应性、自主性、预动性和社会性(即协作性)。同时BDI模型也给出了Agent体系结构的运行特性,即确定了根据事件和目标如何产生意图,以及意图如何引发行动并修正信念和目标,同时确保了信念、目标和意图的合理运转。

将BDI结构用于Agent体系结构设计的主要原因:

1) 意图能够明确表示,有助于抽象Agent的意图、知识、承诺等;

2) 能够比较自然地分析和设计多Agent系统;

3) 有助于描述和解释基于Agent系统的复杂行为;

4) 可能有助于实现对其他Agent的知识、行为的推理。

4 形式化模型

在一个多Agent系统体系结构中最初的变化可由E(环境)引起,当环境发生变化时,Agent将收到新的信息来更新自己的Bel(信念)。如图2当机器手臂抓起积木A时即机器手臂执行操作UnStack(A,B)后,E(环境)就发生了变化,这时积木B上就为空了。通过环境感知函数sense,Agent就可感知环境的变化。Bel的变化可用谓词表示为删除On(A,B)∧ArmEmpty,同时增加Clear(B)∧Holding(A)。这是一个简单但很典型的环境变化的例子。每当环境有变化,Agent将及时更新自己的Bel(信念)来满足新的变化的要求。Agent的Bel是在一种开放的环境下,处于动态的变化中。Bel的变化将会引起Des的变动,Des的变动就会影响Int的选择和所要采取的行为,最终影响整个环境的变化。Agent的变动是一种链式反应,E的变化引起Bel、Des和Int的变化,最终又影响到E。

下面给出这一动态模型的具体定义:

定义1. UAgt={Agt1,Agt2,…Agti};i∈N

定义2. MAS={E,Agt1,Agt2,…Agti};i∈N Agti∈UAg

定义3. Agent={B,D,I};B?哿Bel,D?哿Des,I?哿Int

定义4. 感知函数sense:ρ(Bel)×eρ(Bel)该函数依据当前对环境的感知和当前的信念确定一个新的信念集合。

定义5. 意见函数opinion:ρ(Bel)×ρ(Int)ρ(Des)该函数依据当前环境的感知和当前意图的执行确定新的目标。

定义6. 过滤函数filter:ρ(Bel)×ρ(Des)×ρ(Int)ρ(Int)该函数根据Agent当前的意图、信念和愿望更新Agent的意图。它会丢弃无法完成或已无意义的意图,为无法实现的意图选择新的实现方法及选择新的意图。

定义7. 行为函数action:Agti×ρ(Int)Agtj×E当i=j时为内部行为,当i≠j时为外部行为。

5 实例分析

下面通过一个机器手搬积木的具体实例来说明BDI Agent是如何实现推理的。如图3所示,通过机器手的操作将完成从初始状态到目标状态的转化。机器手可执行的操作有:若机器手为空可从桌面上抓起积木或从积木上抓起积木;若机器手中抓着积木,则可将该积木放到桌面上或放在另一块表面为空的积木上。描述积木世界所使用的谓词有:

On(x,y):物体x在物体y之上;

OnTable(x):物体x在桌面上;

Clear(x):物体x上没有东西;

Holding(x):机器手抓着x;

ArmEmpty:机器手为空(没拿任何东西)。

机器手可执行的操作描述如下:

Stack(x,y):机器手把手中的物体x放在物体y上;

UnStack(x,y):机器手从另一物体y上面拿起物体x;

Pickup(x):机器手从桌面上拿起物体x;

Putdown(x):机器手把物体x放在桌面上(机器手中已拿着物体x)。

执行每一个操作的前提条件(pre)、删除动作(del)和增加动作(add)为:

Stack(x,y)

pre{Clear(y),Holding(x)}

del{Clear(y),Holding(x)}

add{ArmEmpty,On(x,y)}

UnStack(x,y)

pre{On(x,y),Clear(x),ArmEmpty}

del{On(x,y),ArmEmpty}

add{Holding(x),Clear(y)}

Pickup(x)

pre{Clear(x),OnTable(x),ArmEmpty}

del{OnTable(x),ArmEmpty}

add{Holding(x)}

Putdown(x)

pre{Holding(x)}

del{Holding(x)}

add{ArmEmpty,OnTable(x)}

如图3该问题的初始状态可描述为:OnTable(3),On(4,3),On(5,4),Clear(5),OnTable(2),On(1,2),Clear(2),ArmEmpty。目标状态可描述为OnTable(3),On(2,3),On(1,2),Clear(1)。目标状态又可以分为三个子目标:OnTable(3)和On(2,3)以及On(1,2)。第一个子目标完成后就会引发第二个子目标的执行,第二个子目标完成后就会引发第三个子目标的执行。图4显示目标状态是如何分成子目标实现的。

以下是具体的求解过程:

B0:OnTable(3)∧On(4,3)∧On(5,4)∧Clear(5)∧OnTable(2)∧On(1,2)∧Clear(2)∧ArmEmpty

D0:OnTable(3)

I0:Ф(由于OnTable(3)是初始状态可以立即实现)

B1:OnTable(3)∧On(4,3)∧On(5,4)∧Clear(5)∧OnTable(2)∧On(1,2)∧Clear(2)∧ArmEmpty

D1:On(2,3)

I1:Unstack(5,4)∧PutDown(5)∧Unstack(4,3)∧PutDown(4)∧Unstack(1,2)∧PutDown(1)∧Pickup(2)∧Stack(2,3)

意图I1的实现如下:

Unstack(5,4)

Pre{On(5,4),Clear(5),ArmEmpty}

Del{On(5,4),ArmEmpty}

Add{Holding(5),Clear(4)}

PutDown(5)

Pre{Holding(5)}

Del{Holding(5)}

Add{ArmEmpty,OnTable(5)}

Unstack(4,3)

Pre{On(4,3),Clear(4),ArmEmpty}

Del{On(4,3),ArmEmpty}

Add{Holding(4),Clear(3)}

PutDown(4)

Pre{Holding(4)}

Del{Holding(4)}

Add{ArmEmpty,OnTable(4)}

Unstack(1,2)

Pre{On(1,2),Clear(1),ArmEmpty}

Del{On(1,2),ArmEmpty}

Add{Holding(1),Clear(2)}

PutDown(1)

Pre{Holding(1)}

Del{Holding(1)}

Add{ArmEmpty,OnTable(1)}

Pickup(2)

Pre{Clear(2),OnTable(2),ArmEmpty}

Del{OnTable(2),ArmEmpty}

Add{Holding(2)}

Stack(2,3)

Pre{Clear(3),Holding(2)}

Del{Clear(3),Holding(2)}

Add{ArmEmpty,On(2,3)}

由于子目标On(2,3)已经实现,环境发生了变化,所以:

B2:OnTable(3)∧OnTable(4)∧OnTable(5)∧OnTable(1)∧On(2,3)∧Clear(2)∧Clear(4)∧Clear(5)∧Clear(1)

D2:On(1,2)

I2:Pickup(1)∧Stack(1,2)

意图I2的实现如下:

Pickup(1)

Pre{Clear(1),OnTable(1),ArmEmpty}

Del{OnTable(1),ArmEmpty}

Add{Holding(1)}

Stack(1,2)

Pre{Clear(2),Holding(1)}

Del{Clear(2),Holding(1)}

Add{ArmEmpty,On(1,2)}

这样就完成了最终的目标。

在这个过程中机器手根据sense函数动态地更新自己的信念,这些及时更新的信念和原先意图的成功执行通过opinion函数引发新的子目标的执行,则目标也跟着发生变化。于是原先意图的成功执行、信念的变化和新的产生的目标通过filter函数得到新的意图,即意图就发生了变化。就这样循环下去直至最终意图的实现。

6 总结

本文对Agent的BDI模型进行了详细的研究,通过引入感知函数sense、意见函数opinion、过滤函数filter、行为函数action说明了Agent是如何进行推理运算的。并且通过积木世界的具体实例,解释了BDI模型。

参考文献:

[1] 郑丽伟,余雪丽,冯秀芳.基于FIPA规范的MAS抽象体系结构的形式化[J].高科技通讯,2003,9(4):5-7.

[2] Thomas Dean,James Allen,Yiannis Aloimonos.人工智能――理论与实践[M].顾国昌,刘海波,仲宇,等译.北京:电子工业出版社,2004.

[3] 姚莉,龚勇,王长缨,刘芳.一种基于BDI Agent的复杂系统设计建模方法[J].小型微型计算机系统,2005,26(4):694-696.

[4] Michael Wooldrighe.多Agent系统引论[M].石纯一,张伟,徐晋晖,等译.北京:电子工业出版社,2003.

上一篇:模糊控制器的研究与改进 下一篇:计算机网络的安全管理与维护