随着网络环境的日益开放,软件系统的规模大、系统环境复杂等特点对构造Agent系统的软件技术,特别是Agent的程序设计技术提出了更为严格的要求。而人们也希望尽快寻找出一种新的软件理念、概念和模型,不断丰富Agent系统,提高其服务性能,为支持软件开发和各类系统运行提供良好保障。
1、Agent程序简介
Agent是指驻留在环境中的自主执行动作,同时,与其他Agent进行交互合作从而达到设计需求的行为实体,其基本特征是驻留性以及自主性和社会性[1]。MAS即多Agent系统是由一组相互交互的Agent共同组成的综合性Agent系统,且此系统因Agent本身的驻留性和自主性,对不同的网络环境具有良好的适应能力。
2、MAS程序设计层次
2.1个体Agent层
软件Agent是AOP中目标软件系统的最基本的运行单元,由于Agent的自主性是其与其他程序设计实体相区别的最为主要特征,故如何实现并充分发挥Agent的自主性是面向Agent程序设计(AOP)的关键内容,包括Agent自助行为本质、Agent自主性变成的实现以及Agent的激励和模型等方面。
2.2Agent交互层
对MAS进行分析可知,其内部的每个单元Agent并不是单独存在和孤立封闭的,对不同的Agent单元来说,其所拥有的信息、资源以及知识等具有较强的局限性,因此,不同的Agent需要彼此进行交互方可实现MAS的软件设计目标。此外,由于Agent具有较强的自主性,而传统的OOP,即面向对象编程中,消息传递的机制难以对Agent单元的交互予以良好支持,所以,在交互层,AOP需要研究和解决的主要问题则是对Agent软件的交互及其相关工作,通过建立支持Agent的社会交互机制,从而建立起MAS系统的社会性交互、协作的理论体系。
2.3环境层
无论是单一的Agent单元,还是由众多Agent单元集成的MAS,其均会驻留在特定的环境当中,并通过同环境之间进行交互,实现对网络环境产生影响的功能。首先,环境为Agent提供了在MAS中的生存条件与上下文;其次,环境又可充当一阶的独立构造对MAS系统的内部结构搭建予以支持,最终实现网络环境内全部关注点的分离。
2.4多Agent组织层
由于Agent具有行为自主性,故为了保证MAS能够协调运行,且保持运行目标的一致性,AOP需要向其提供相应机制,并对自主Agent的行为进行有序组织和管理。AOP在组织层需要对MAS中的Agent单元行为进行约束,并在多个Agent组织层当中,设计出对单元个体的行为进行约束的语言结构和框架,确保MAS整体目标的实现[2]。
3、MAS抽象及模型
3.1个体Agent层
AOP程序在个体Agent层设计和模型研究中的主要目的是帮助Agent实现自主决策行为而提供决策描述软件,而Agent中构成的高层概念与抽象的核心是对Agent内部的决策部件进行描述,同时,建立起个体Agent的软件模型,本节主要对个体Agent软件模型中的认知型模型和知识型模型进行分析。认知型模型将Agent看作一个具体的认知系统,从目标、期望、规划和意图等认知科学与大众心理学等学科角度出发,对Agent软件的内部构成进行描述,通过姜恩柱BDI指数查询和KARO逻辑框架,为Agent软件个体行为的自主决策予以理论支持。知识型模型将Agent视为一个整体的知识系统,从信念、知识等AI领域中的抽象和概念出发,对Agent的内部构成进行描述,并通过借助逻辑工具以及知识推理与信念修改等相关办法对个体Agent软件的自主行为决策予以支持,帮助Agent实现决策的自主性。
3.2Agent交互层
AOP程序在Agent交互层的设计抽象与研究目的在于帮助个体Agent解决交互和协调的相关问题。核心是对Agent的交互进行正确的理解,并合理引用抽象与概念对不同Agent单元之间的交互予以支持。以基于事件和消息的Agent交互方式为例,对其交互过程进行说明。基于事件和消息的交互是指,Agent单元通过对相关事件和信息进行发送和接收进行的彼此交互,为实现此种交互,AOP语言特别提供了相应的语言结构来定义MAS中的事件和消息[3]。例如,ConcurrentMetate对Agent的显示定义个体进行说明,允许其接收和发送显示消息或时间,同时,借助广播的方式帮助不同的Agent实现消息与事件的通信。
3.3环境层
AOP在环境层的程序设计抽象和模型研究目的在于对Agent环境进行讨论,并分析构造Agent的环境和描述Agent与环境的交互关系。在MAS环境的抽象、模拟以及相关程序设计领域,可引入MAS规约语言和2APL等为Agent的环境构造和Agent与环境关系的交互予以支持。MAS规约语言,即Slabs以显示的方式对Agent环境进行定义,内容如下:MAS中同某一Agent相关的一组Agent的集合统称为Agent环境。而2APL则通过提出一种现实语言结构对MAS环境的描述予以支持,即对象状态是环境状态的具体描述,对象方法则描述了MAS中Agent能够实际对环境进行作用的相关操作。
3.4多Agent组织层
AOP在多Agent组织层中程序设计与抽象模型研究的目的在于,为MAS中Agent行为的协调组织与调整提供有效的概念,进而从整体上确保MAS协调的一致性。以MAS中的团队组织为例,对多Agent组织层的抽象设计展开分析。团队组织将彼此之间互相协作,共同完成一项复杂任务。多个软件Agent个体视为一个团队,团队模型通过将传统软件Agent的BDI模型进行扩展,在结合团队规划要素的基础上,对MAS的团队Agent模型进行建立与描述,以达到对Agent决策进行指导、约束的目的,从整体上实现不同Agent的合作。
4、结语
本文以面向Agent程序设计,即AOP作为研究对象,通过对Agent软件程序进行简要分析,在结合MAS程序设计的相关层次的基础上,分别从个体Agent层、Agent交互层以及环境层和多Agent组织层等方面对MAS的抽象和模型做出系统探究。研究结果表明,Agent具有自主性、社会性和驻留性等多种特点,因此,需要根据具体情况,结合Agent的特点针对不同层次开展面向Agent的程序设计工作。
作者:张莹 单位:辽宁公安司法管理干部学院