APP下载

Agent理论模型及开发方法研究

2011-03-14殷锋社

电子设计工程 2011年10期
关键词:编程语言体系结构信念

殷锋社

(陕西工业职业技术学院陕西咸阳712000)

对于Agent的理论研究,Wooldridge和Jennings认为,可以分为以下3个方面[1]:1)Agent理论模型:研究什么是Agent,Agent应具有什么样的特性,应该怎样形式化地表示和研究这些特性;2)Agent的体系结构:对人们所期望的特性,应该怎样构造以满足这些特性的Agent,什么样的软件或硬件是适当的;3)Agent编程语言:怎样对Agent进行编程设计,什么样的指令可用于描述Agent,怎样有效地编译和执行Agent程序。

1 Agent的理论模型

Agent的理论模型研究工作者从逻辑、行为、心理、社会等角度出发,试图对Agent的本质进行描述,从而为Agent系统创建和实现奠定理论基础。在Agent理论模型研究中,最具有典型代表意义的是Bradman提出的BDI模型[2]。Bradman提出了一种基于意向的观点来研究Agent的概念,所谓意向观点是指将应用于人类自身的一些意识思想和概念,如信念(Belief)、愿望(Desire)、意图(Intention)等应用于Agent,他认为信念、愿望、意图是Agent基本的思维属性。在此基础上,Cohen和Levesque用正规模态逻辑形式化地定义了Agent各种意识概念;Rao和Georgeff等用分枝时序逻辑和可能世界的模型来形式化地定义了Agent各种意识概念,重点研究了意图的逻辑特性,为BDI理论模型研究建立了很好的理论基础。

1.1 BDI理论模型

BDI模型主要的3个要素有信念(Belief)、愿望(Desire)、意图(Intention),其意义说明如下:

l)信念(Belief):是一个包括了对世界相关的信念、与其他Agent思维趋向相关的信念和自我信念的集合。信念是Agent对世界的认知,包含描述环境特性的数据和描述自身功能的数据,是Agent进行思维活动的基础。

2)愿望(Desire):是Agent的最初动机,是其希望达到的状态或希望保持的状态的集合。Agent希望达到的状态,可以激发系统的规划和行动。一般来说,可以表达为Agent对环境状态的一种期待和判断,也就是通过判断该状态是否成立作为Desire是否实现的标志。Agent可以拥有互不相容的愿望,而且也不需要相信它的愿望是绝对可以实现的。

3)意图(Intention):是承诺实现的愿望中选取的当前最需要完成或者最适合完成的一个,是当前Agent将要正在实现的目标,它是属于思维状态的意向方向。当前意图对Agent的当前动作具有指导性的作用。Agent的实际推理过程涉及到3个重要环节。

1.2 BDI模型的逻辑描述

使用Cripple提出的语义学表示的认知逻辑(episteme)已成为对Agent的逻辑描述研究的基础,它是嵌入了可能世界(possible worlds)的正规模态逻辑(normal mode logion)[3]。正规模态逻辑是经典命题逻辑中引入了两个算子后的扩充,它们是:必然算子“□”和可能算子“◇”。下面介绍其语法和语义:

1)语法

设有由可数的原子命题构成的命题集合Prpo={p,q,…},用如下的规则定义正规命题模态逻辑的语法:

①如果P∈Prop,那么P是公式。

②如果φ,ψ为公式,则┐φ,φ∨ψ为公式。

2)语义

两个算子的语义与“可达性”有关。如果公式中当前世界和可达到的所有世界中均为真,则公式P为真;如果在当前世界可达到的所有世界中,至少有一个世界为真,则公式P为真。在此基础上,根据对当前世界的“可达性”,形成了KDT45公理体系,Cohen和Levesque采用可能世界逻辑的语义进行形式化描述[4],给出了Agent信念的基本性质,并将意图定义为一种持续的目标,初步描述了意图在Agent行为中的作用。

1.3 BDI理论模型的局限性

综上所述,BDI理论模型是建立在实用推理理论的基础之上,具有深刻的认知心理学和哲学基础,因此,建立实现Agent的结构符合人工智能当前的发展趋势。但是,在Agent的实际构造中,对于表达信念、愿望、意图等反映思维状态的概念,并合理完成相应的推理转化还有很大的困难。Wooldridge指出,以模态逻辑加可能世界语义阐述的Agent理论只能进行抽象的描述,总的来说都无法以常规的方式来付诸实现。

2 Agent的体系结构

所谓Agent的体系结构就是指如何用软件或硬件的方式实现Agent,即所要解决的是Agent是由哪些模块组成,它们之间如何交互信息。Agent感知到的信息如何影响它的行为和内部状态,以及如何将这些模块用软件或硬件方式组合起来形成一个整体,真正实现Agent。正如Rusesn指出:Agent体系结构+程序[5]。不同功能的Agent将具有不同的体系结构和程序,但设计的Agent程序基本上具有同样的骨架,下面给出一个骨架程序的伪代码。

Function Skeleton一Agent(Percept)return action

static:knowledgebase/*Agent的知识库*/

knowledgebase←Update-KB(knowledgebase,percept)

action←Choose-Best-Action(knowledgebase)

knowledgebase←Update-KB(knowledgebase,action)

return action

根据Agent中是否利用符号性知识,可以将Agent的体系结构分为慎思型Agent、反应型Agent和混合型Agent 3种,它是属于混合型Agent结构一类,并详细分析了其智能特性。

2.1 体系结构

为了使Agent更好地适应动态复杂的环境,Agent必须具有学习、逻辑推理和通信的能力,同时在一定条件下还应具有响应的实时特性,故设计了如图1所示的一种混合型Agent结构[6],下面介绍各个模块的功能。

图1 混合型Agent结构Fig.1Structure of hybrid Agent

l)外部接口

外部接口由感知、通信和驱动器3个模块组成,该接口主要功能是负责与其他Agent以及环境的交互与通信,接收和发出消息,感知环境状态的变化或根据决策与规划对环境变化立即作出反应。

2)消息处理模块

消息处理模块处理从通信模块接收来的消息内容,即通信语言的处理过程消息处理模块包括语言理解、语言生成、物理通信,以及词法库、语法库、语义库等多个部分。

3)决策推理模块

决策推理模块是Agent体系结构的核心智能模块,相当Agent的“大脑”,它是一个层次结构。首先,行为层根据感知或通信得到的信息以及本身内部的信念知识进行规划决策是否能对紧急或简单的情况作出迅速反应产生立即执行的行为,通过行为层产生的动作具有最高的优先级。其次,为了使Agent系统能够更好地适应动态、复杂的环境,必须使Agent具有学习功能,学习层可以在动态变化的环境中自主地获取新的知识,从而对Agent知识库进行补充和完善。

4)信念知识库

根据推理决策、规划、通信以及学习的需要,需要一个完善的Agent的内部知识库系统。信念集和目标集是Agent对自身理解的知识,而效用函数和领域知识是Agent对外部世界认识的知识。

2.2 智能特性的实现机制[7]

1)Agent的推理机制

根据信念、愿望和意图等思维概念进行建模是Agent设计的基本思想,Agent具有的逻辑推理能力也是许多研究人员关心的焦点之一,下面讨论Agent的逻辑推理机制。

假定Agent的内部状态可以用古典一阶谓词逻辑公式构成的数据库来表示,设L为古典逻辑一阶逻辑句子的集合,D=P(L)为L数据库的集合,即L的幂集。这样Agent的内部状态就是D的元素,D中元素记为:△1、△2、……。Agent的决策过程可以通过一组演绎规则p描述。如果仅仅使用演绎规则p,就可以从数据库△中证明公式φ成立。根据Agent的领域知识,可以将Agent对环境的观测能力用感知函数see来表示。

2)Agent的学习机制

心理学家和哲学家们认为,学习的基本机制是设法把在一种情况下成功的行为应用于另一类相似的新情况中,也就是说学习是获取知识、积累经验、改进性能、发现规律、适应环境的过程。一般来说,学习活动包括下面几个特征:

①目的性:学习活动是一种有目的的变化,目标是改善Agent的问题求解能力和性能。

②信息来源:学习活动的输入信息包括外部环境信息和系统的经验两大类。

③记忆能力:学习活动的结果体现和保存于Agent中,不随学习活动的完成而消失。

④表示形式:一般包括显式知识获得、知识重组与重构、系统结构变化等。

3)Agent的通讯机制

多Agent系统是由多个松散藕合的Agent组成的,它们之间不是孤立的,而是通过Agent间的交互和协作来共同完成任务的。Firkin曾指出,Agent间有效的交互需要3个基本成分:

①共同的语言。

②对交换知识的理解。

③实现交换的能力。

也就是说,Agent间有效的交互是指Agent间有目的的交换双方都能理解的知识和信息。交互的目的由Agent的心智状态、协作方式和协作计划所决定的,而交互的效果则是由通信来实现的。通信是Agent了解其他Agent的途径和实现Agent间交互的桥梁。

3 面向Agent的软件开发方法[8]

美国Stanford大学的shoran教授在1993年首次提出了AOP(Agent-oriented Programming)的概念。他认为AOP是一种基于计算的社会观点的新兴程序设计风格和计算框架,其主要思想是利用Agent理论研究提出的表示Agent性质的意识态度来直接设计Agent和对Agent编程。

目前,AOP的含义更加广泛,己经不再局限于把意识态度作为Agent程序的核心,而是泛指将Agent作为原子实体的设计和构建Agent系统的各种软件技术和开发方法,包括各种开发工具和实验床。下面简单介绍其中具有代表性的一些开发方法:

1)Gaia方法学

Gaia方法学是把多Agent系统看作一个由相互作用的不同角色组成的计算组织,它不仅支持Agent的群体智能及其组织结构,而且支持Agent的内部结构。在Gaia系统中,角色是主要组成部分,角色有职责,权限,活动和协议等属性。

Gaia方法中Agent的体系结构:各种服务作为一个组件能够被动态的装卸,每个服务以两种角色存在,一种是协调者的角色,另一种是客户角色,服务部署层来决定唤醒那一个服务角色。系统管理服务发现在它附近的设备、协调设备加入系统和管理系统。事件服务管理系统中设备之间事件的通讯。本地服务融合系统中来自不同设备的本地信息,对整个系统提供设备的信息。安全服务主要由两部分组成:授权和存取控制。服务交互层被用作内部个人空间的通讯。

Gaia也存在一些缺点,比如Gaia没有处理系统中有多个Agents共享同一个目标的情况,对多Agent系统的处理有一定的困难。

2)Tropos方法学

Tropos方法学使用了代理(Agent)、目标(Goal)、规划(Plan)、Tropos把参与者和目标作为最基本的概念应用到了软件开发的全部过程中,它主要支持软件开发过程的以下5个阶段:①早期需求,这个阶段的输出包含相关参与者和它们对应的依存关系的组织模型;②后期需求,在运行环境、相关的功能和质量范围内描述未来的系统;③架构设计,根据子系统的概念定义全局架构;④详细设计,此阶段,根据输入、输出、控制和其他相关的信息更具体地定义每个架构部件;⑤实现,根据详细设计实现系统。

基于Agent技术的Tropos方法同样具有缺点,此方法缺乏对社会结构和环境的描述,而且因为支持工具的限制,其作为一种适合描述的概念更为合适。

3)扩展UML的方法

UML是面向对象建模的事实上的标准。当研究者寻求面Agent的建模语言和工具时,他们发现UML是一个显而易见的开始点,并因此而试图采用UML的符号来建模MAS。其中做得比较出色的是Odem和他的同事们,他们提出了多种扩展UML符号的方法。与此同时,OMG和FI队两个组织也正在致力于开发基于UML的符号来支持Agent系统的建模。Cassiopeia方法提供了一种从执行某项任务所需的行为开始的自底向顶的开发MAS的方法。它包括以下3个步骤:

①确定包含在整个系统任务中的基本元素的行为;

②确定基本元素行为之间的关系;

③确定系统的组织行为,如多个Agent如何形成一个小组。

3.1 Agent开发工具的选择[9]

Agent的开发工具可以是一个Agent开发环境或平台,也可以是一种适合的编程语言。下面介绍常用的一些关于Agent开发环境及Agent编程语言的内容。

1)Agent开发环境

Agent开发环境是Agent系统开发和运行的基础,同时还要提供Agent普遍具有的功能。一些研究机构开发了相关的Agent开发平台,以帮助Agent研究工作者特别是那些社会科学研究者便于建立自己的多Agent系统,下面简要介绍几个常用的Agent开发平台。

①Swarm

Swarm是美国圣菲研究所于1994年开始开发的用于多Agent模拟复杂系统的软件平台。它试图建立一个良好的,可以帮助进行多Agent系统建模的标准软件工具集。主要用于帮助科学家们分析复杂适应系统。

②Repast平台

Repast是由芝加哥大学的社会科学计算研究中心开发研制的是一种在Jvaa环境下设计实现Agent的模拟模型。Repast的设计目标主要是满足芝加哥大学一些研究者们对模拟软件使用方便性的要求。

③Ascape平台

Ascape是布鲁金斯研究所开发的基于Agent的建模平台,用来设计分析和分类基于Agent的模型。Ascape的开发主要是为了研究社会经济系统模型。

④TNG-Lab平台

TNG-Lab是由美国爱荷华州立大学的McFadden,Arewart和Teaaftsion共同研究开发的,是为了研究在一个多样化的市场环境下的商业网络构成而设计的一个特殊的可计算实验室,具有标准的组件,能够根据需要进行扩展,操作方便,适合于进行经济研究和教学。

2)Agent编程语言

由于Agent本身具有的特性,使得面向Agent的编程语言需要满足以下的一些要求:

①面向对象或直接面向Agent。Agent是一种更高级的对象,因此Agent编程语言至少是支持面向对象的模型。

②平台独立性。Agent运行于不同的软硬件环境下,因此,Agent言语需要具有高度的平台独立性,以便支持大范围的异构系统。

③通信能力。Agent语言必须能够提供用于实现Agent之间通信功能的构件。

④安全。安全问题是Agent系统设计中的一个重要问题,尤其对移动Agent,必须保证其绝对安全。常用的Agent开发语言有Java、e++等。

3)开发工具的选择

虽然对于多Agent系统开发平台的研究已经有了一定的进展,但是已有的平台各具优势和不足,通用性都不强,一般都仍处于理论或试验原型阶段,远未达到实用水平。由于Agent本身是一种复杂的计算实体,而且随着具体应用领域的不同而有不同的结构设计,要研究开发出一种成熟通用的面向Agent的编程语言,仍需要研究者们不懈地努力。要熟悉和掌握一种开发平台也需要付出很多时间和精力,并且要受到开发平台的一些限制。本文进行的一些开发工作选用C++和VC++6.0语言作为基本工具。

4 结束语

介绍了Agent基本理论主要3个方面的内容,即Agent理论模型、Agent的体系结构和Agent的开发方法。在Agent理论模型研究中,BDI理论模型最具有影响力,它是建立在实用推理理论的基础之上,具有深刻的认知心理学和哲学基础,但在实用性上还具有很大的局限性,并对Agent主要智能特性的实现机制进行了介绍。面向Agent的开发方法是目前软件开发方法发展的趋势,也为分布式复杂系统进行建模提供了新的思路,目前国内外试图建立各类Agent开发平台和开发语言,但要研究开发出一种成熟通用的面向Agent的编程语言,仍需要研究者们不懈地努力。

[1]Foudation of Intelligent Physical Agents.Foundation for intelligent physical agents[EB/OL].1997.http://www.fipa.org.

[2]Wooldridge M,Jennings N R.Agents theories,Architectures and languages:a survey,wooldridge and jennings,intelligent Agents[M].Berlin:Springer-Verla9,2005.

[3]Bratman M E.Intentions,plans,and practical reason[M].Harvard University Press:Cambridge,MA,2006.

[4]CohenER,LevesqueHJ.Intentionischoicewithcommitment[J].Artificial Intelligence,1990(42):213-261.

[5]Levesque H J,Pimi F.Logical foundations for cognitive agents[M].Berlin:Springer,2002.

[6]Gao A S,Mumay G.Multi·Agent mental·state recognition and its application to air-combat modellin9[C]//Proceedings of the l 3th International International Workshop on Distributed Artificial Intellinence,Seatle,WA,2004:283-304.

[7]Rao As,Georgeff M P.The semantics of intention maintenance forrationalAgents[M].California:MorganKaufmannPublishers,2005:74-79.

[8]Emerson E A.Temporal and modal logic[M].Cambridge:Handbook of Theoretical Computer Science,Edited by J.Van Leeuwen,2000.

[9]Georgeff M P,Ra0 A S.A profile of the australian AI institute[J].IEEE Expert,2006,11(6):89-92.

猜你喜欢

编程语言体系结构信念
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
为了信念
发光的信念
Java编程语言的特点与应用
信念
浅谈不同编程语言对计算机软件开发的影响
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
面向对象Web开发编程语言的的评估方法
基于DODAF的装备体系结构设计