执行Agent位于现场层,实现参数采集及现场控制的功能;冲突消解Agent是该智能化系统的核心,其功能是通过对任务规划信息、故障信息、系统状态信息以及其他Agent的协作请求信息等的融合,对 Agent行为所产生的冲突进行消解;数据服务Agent的功能是为其他Agent提供统一、灵活的访问实时数据库的接口;软测量Agent的功能是通过易测变量与难测变量之间的数学关系,实现难测变量的测量;故障诊断Agent是一个专家系统,可对污泥膨胀、污泥解絮、曝气池泡沫等故障现象进行诊断,并提出解决对策。
Agent间相互交换信息、进行协调或合作、解决超出单个Agent能力或知识的问题,并真正具有社会性的关键是Agent间可以通信。因此, Agent通信是Multi-Agent系统研究的重要问题之一。
2 MAS的通信语言
Agent通信语言(Agent Communication Language,ACL)提供了Agent之间交换信息和知识的工具,使Agent之间相互作用达到求解问题的目的。ACL使Agent通信建立在知识级别(Knowledge Level)上,从而使Agent间的通信效率大大高于传统的分布式计算中的通信。
目前主要有两种ACL,一种是1993年美国ARPA的KSE 研究小组提出的KQML(Knowledge Query and Manipulation Language);另一种是1997年欧洲的FIPA(Foundation for Intelligent Physical Agents)协会制定的开放性标准FIPA-ACL。FIPA标准由一系列规范组成,用于规范一个应用程序内部Agent之间和不同应用程序Agent之间的互操作,并对多Agent应用程序互操作中相应的功能模块进行标准化。由于FIPA-ACL在构建新的原语方面具有很强的能力,并且采用SL(Semantic Language)作为它的内容语言来描述Agent的状态,所以,FIPA-ACL有逐渐代替KQML的趋势。
2.1 FIPA-ACL的系统组成
FIPA标准由一系列规范组成,每个规范对多Agent应用程序互操作中相应的功能模块进行标准化。FIPA-ACL规范集合在整个FIPA规范中的位置及其内部的功能规范组成结构如图2所示。
由图2可见,FIPA-ACL规范集合是整个FIPA标准中极其重要的组成部分,它与Agent管理规范集合、Agent消息传输规范集合构成了FIPA标准的主体部分。Interaction Protocols规范集合定义了FIPA-ACL可采用的互操作协议(如请求互操作协议);Communicative Acts规范集合则将Agent在使用FIPA-ACL进行通信过程中的各种语言行为单元(如:request、agree、refuse等)规范为一个CAL(Communicative Acts Library)库规范;Content Languages规范集合定义了应用在FIPA-ACL消息的内容上不同的表示方式(如:SL),它们可提供不同标准的编码形式。
2.2 FIPA-ACL通信机制
Agent之间的通信是通过构造、封装、传输ACL消息进行的,ACL消息的主要结构如表1所示。
Agent A为了和Agent B进行通信,首先应该构建ACL消息。如果B提供的服务应采用请求互操作协议,则ACL的Protocol参数就设为fipa-request。A是此次互操作对话的发起者,它与B的第一次通信应视为请求互操作协议的第一个请求动作,这在CAL库规范中描述为request行为,所以ACL的performative参数应为request。封装好整个ACL消息后,Agent A选用适当的编码方式将其编码,形成有效载荷(Payload),然后再添加信封,信封中包含A和B进行通信所使用协议对应的协议地址。最后,A采用此传输协议将信息传送给Agent B。Agent B收到A发送的消息并根据消息具体的内容加以判断后,按照请求互操作协议所规定的操作流程对A进行回答。
3 系统的通信技术与实现
基于FIPA-ACL的污水处理Multi-Agent智能化系统是在开源Java项目JADE(Java Agent Development Framework)提供的多Agent平台上实现的。JADE完全符合FIPA标准,为多Agent系统的开发者提供了一个功能强大的开发框架,使开发者无需亲自从头实现FIPA的具体规范就能开发出符合FIPA标准的多Agent系统。