第24卷 第12期
计 算 机 仿 真
2007年12月
文章编号:1006-9348(2007)12-0283-04
基于多Agen t 复杂系统仿真平台研究
倪建军,李建,范新南
(河海大学计算机及信息工程学院,江苏常州213022)
摘要:复杂性科学是研究复杂系统和复杂性的一门新兴的交叉学科。基于多主体(Agent )复杂系统仿真技术是研究复杂系统复杂性产生机制的有效手段之一,在众多领域得到广泛应用。为了使研究者从复杂的软件编程中出来,集中精力进行科学研究,开发高效的、易用的仿真平台成为推动基于多Agent 复杂系统仿真技术进步的关键。针对目前多Agent 仿真平台存在的局限性,进行仿真平台的结构设计,并开发了原型系统。最后,利用热虫(Heatbug )模型验证仿真平台的有效性。关键词:基于多主体仿真;复杂系统;仿真平台;热虫模型中图分类号:TP311152 文献标识码:B
A Com plex System S im ula tion
Pla tform Ba sed on M ulti -Agen t
N I J ian -jun,L I J ian,FAN X in -nan
(College of Computer &Infor mation Engineering,Hohai University,Changzhou J iangsu 213022,China )ABSTRACT:The comp lexity science is a rising interdiscip line which studies the comp lex system and comp lexity .
The comp lex system si mulation based on multi -Agent is one of the very useful methods for
researching the comp lexity p roducing mechanis m of comp lex system.This method is used in many fields w idely .In order to make the researchers released from the soft p rogramm ing and fix attention on their study,an effective and convenient si mulation p latfor m must be developed,which is a key job to i mp rove the comp lex system si mulation method based on multi -Agent .A i med at the li m itations existing in the si mulation p latfor m at p resent,a frame of si m ulation p latfor m is given out,and the p rototype system is developed .A t last a Heatbug model is used to confir m the validity of the si m ulation p latfor m.
KEYWO RD S:Si mulation based on multi -Agent;Comp lex system;Si mulation p latfor m;Heatbug model
1 引言
复杂性科学是研究复杂系统和复杂性的一门新兴的交
叉学科。虽然它还处于萌芽时期,但已被有些科学家誉为是“21世纪的科学”。如何对各类复杂系统的复杂性产生机制的研究成为复杂性科学的关键问题之一。国内外研究表明,传统的建模方法(诸如还原论方法、归纳推理方法等)已经不能很好地刻画复杂系统,需要采用新的建模理论与仿真方法。而基于多Agent 的建模理论和仿真技术是最具活力、最有影响的方法之一,适合于复杂系统的研究[1][2]。目前这种技术在人工生命、经济系统、自然现象、社会科学、人文科学等众多领域都得到了广泛的应用。
仿真平台是进行计算机仿真的软件环境,可以使研究者
从复杂的软件编程中出来,集中精力进行科学研究。目前,有较多的关于Agent 系统开发平台的研究,这些平台一般都能用于复杂系统多Agent 仿真,如Cly mer 等人利用仿真平台OPE MCSS 进行复杂交通系统的多Agent 仿真,Pathak 等人利用仿真平台MADKIT 进行复杂供应链的多Agent 仿真,Uhr macher 等人利用仿真平台JAM ES 进行多个协商Agent 的分布式并行仿真。其他有代表性的仿真平台还有美国圣菲研究所的仿真平台S war m 、美国B rookings 研究所的A scape 仿真系统、芝加哥大学的Repast 仿真平台、美国I O WA 州立大
学的T NG -L ab 软件系统[3]-[5]
等等,这些平台为研究者进行研究提供了很大的帮助,然而,由于开发者的局限性和计算机技术的发展,目前许多基于Agent 的仿真平台都存在着一定的局限性,如支持复杂适应系统理论研究的工具和环境———S war m,虽然应用的人很多,为研究者提供了很大的便利,但是它还只是一个简单的系统,对一些复杂问题的仿真
2 基于多Agen t仿真平台总体设计
2.1 基于多Agen t复杂系统仿真的需求分析
基于多Agent的复杂系统仿真,首先需要建立复杂系统的多Agent模型,包括建立Agent的个体模型和系统多Agent 模型。在一般情况下,复杂系统的模型是由多个Agent组成的,对这种系统的分析可以从三个方面来描述[6][7]:
1)Agent层:即系统中所有反映问题域和系统责任的Agent。
2)个体Agent层:即Agent的结构与特征,包括内部状态和行为规则(如函数、方法等)。
3)多Agent系统层:即组成系统的Agent群体所采用的体系结构,主要的问题是Agent之间的通信与协调问题。
从上述分析可以得知基于多Agent的复杂系统仿真需要解决的主要问题如下:
1)系统分析和个体Agent划分
首先,需要解决的问题是对所研究的系统进行分析,分析它是否复杂系统,如果是则对其进行分析,明确系统的界线,对系统的基本特征和功能,以及内部实体的活动要有所了解,从而确定系统仿真的目的等。对于给定的系统,个体Agent划分的任务就是解决这样的问题:将系统中的什么映射作为Agent?也就是对系统进行Agent抽象。在确定了实体Agent后,有时为了实现系统的目标,还要设计一些其他的辅助Agent,通常这类Agent被称为集中服务Agent。经过了上面的处理后,便可确定组成系统的所有Agent,形成系统的Agent类图。当然,在实际的分析与建模的过程中,可以根据需要反复地进行这一过程。
2)个体Agent的建模
建立系统的类图后,接着要进行的工作就是要建立每个Agent的模型,在这个方面,主要是处理以下两个问题:①每个Agent如何建立世界模型?任何一个变化的世界内起作用的Agent必须建立世界内部的模型。②如何构建Agent的内部结构?一个系统中不同的Agent可以是同质的、异质的或共享某些共同的模块,或在其他的模块中不同。
3)建立系统多Agent模型
为了建立由多个Agent组成的完整的系统模型,确定多Agent的体系结构,就是要处理好下面的5个问题:①系统有多少个Agent?根据系统的目标要求,确定各种单个Agent的总数以及系统运行时Agent数目是否可以改变,这是一个给定系统的重要特征。②Agent之间采用什么样的通信渠道?通常,在传输介质、访问、信息被发送后是否坚持和本地化等方面可能有所不同。③Agent之间采用什么样的通信协议?通常采用的通信方式有共享全局存储器、消息传递以及两者的结合。④怎样建立Agent与其相关的其他Agent之间的结构?这个结构可以是实现者预先设定好的且在系统运作期间保持不变,也可以在运行时Agent能够发现新的关系而进行自我重组。⑤Agent之间如何协调他们的行动?Agent是自治的他们不需要外界的激励就可以运行。但是,在一个实用的系统中,他们不是处于无主义状态,而是相互协调的。
4)实现和仿真
实现和仿真,就是根据系统的特征模型,对系统进行设计和编程。包括仿真平台的选择,并根据选定的仿真平台,对前面的系统特征模型进行必要的调整。接下来的任务就是对模型实施仿真。在仿真时,为了跟踪Agent的性能或整个系统的某些特性,需要在仿真程序中加入一些统计分析代码,如文本输出、图表曲线等。
2.2 仿真平台的框架结构和工作流程
根据上述需求分析,可以将整个仿真系统表示为以下的一个5元组,即:
ABS_Sys= 其中: Agents:主要指各种实体Agent模型,根据具体的仿真需要,可以具有不同的特性。所有的Agent组成一个Agent社会。 Environment:是指实体Agent的生存空间,或者叫物质基础。 Parameters:这里除了指一些仿真的参数,还包括预先定义的一些仿真规则和要求,如环境的设定、Agent的通信规则等等。 Interface:是指仿真系统和用户的接口,是用户控制仿真过程和观察仿真结果的唯一通道,一般可以通过辅助Agent 来实现。 Platfor m:是指仿真平台,这是仿真的基础。 根据仿真系统的组成,可以将整个仿真平台按功能划分为3个子系统,仿真平台的整体结构如图1所示 。 图1 仿真平台的整体结构 各模块的主要功能: 1)文件系统:主要包括文件编译和文件管理两个子系 统。文件编译子系统的功能主要是完成运行前对数据的处理,包括对用户输入的数据进行错误检查、编译以及和系统文件的组合,实现把用户输入的数据和系统的数据组合成一个整体,组合的依据是来自系统建模子系统反馈回来的系统结构关系等内容。文件管理子系统的功能主要是帮助用户管理仿真所需要的各种文件,包括新的仿真系统的产生和各种新算法、新模型的保存等等。 2)建模系统:主要包括系统管理、Agent 管理和算法管理三个子系统。其中系统管理子系统主要帮助用户系统层模型的建立,包括系统中各Agent 之间的组织结构以及通讯方式、系统的目标等。Agent 管理子系统是基于多Agent 复杂系统仿真平台的核心部分,主要帮助用户快速建立Agent 模型。算法管理子系统主要向用户提供复杂系统仿真常用的算法,如遗传算法、神经网络算法等,而且提供用户扩展的接口。 3)执行系统:主要包括初始化、运行控制和输入输出三个子系统。初始化子系统主要根据建模系统提供的系统模型,给用户提供一个初始化界面,由用户完成对系统初始参数(如系统中Agent 的个数、环境变量的初始值等)以及Agent 的属性中的某些初始值的设置等。运行控制子系统是仿真程序能够“动”起来的关键部分,它主要实现包括各类Agent 的活动控制、整个仿真程序的运行停止等功能。而输入输出子系统主要包括各种数据的图形表示接口以及和用户的人机交互界面等。 仿真平台软件工作流程如图2所示 。 图2 多Agen t 复杂系统仿真平台工作流程图 3 基于多Agen t 仿真平台原型系统 3.1 开发环境确定 和C 、C ++、PASCAL 、BASI C 等一样,Java 是一门程序设计语言,人们用它来和计算机交流,描述自然界的逻辑规律,指导计算机实现复杂的运算功能。从基本的语法和程序结构来看,Java 与其它程序设计语言(尤其是C ++)并无多大区别。Java 语言之所以在如此短时间内被广大软件开发人员所 接受,是因为它具有诸多其他编程语言所无可比拟的特性[8]。 概括的说,Java 是一种性能优异的、简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构的、中立的、可移植的、多线程的和动态的语言。基于多Agent 的复杂系统仿真平台需要建立的多Agent 系统是必须具有生存、计算、通信和迁移机制,具有很大的灵活性。另外对于大型的分布式复杂系统仿真,必须使得某些多Agent 子系统可以相对地在客户端执行,而某些公用Agent 必须在服务器端执行,因此仿真平台需要比较容易地支持分布式的功能。另外基于Agent 的仿真方法的实现同面向对象技术之间存在内在的联系和相似性,一个Agent 类可以用面向对象语言里的类来近似描述。根据上述分析,本课题选用Java 语言作为开发语言,开发环境为Jbuilder910。3.2 仿真平台原型系统 针对上述设计过程,利用Java 语言,开发了基于多Agent 仿真平台的原型系统, 系统的主要功能界面如图3所示。 图3 仿真平台原型系统主要功能界面 系统功能介绍:首先用户进入基于多Agent 的系统仿真 平台(ABS_Platfor m )主界面,根据菜单可以进行相应的操作,即可生成自己的基于多Agent 的仿真系统,并可以保存、修改等。比如进入文件系统用户可以生成新类、新对话、新界面和新框架等。根据系统生成的结构,可以进入Agent 的管理界面,提示用户输入各种Agent 的各种属性类型、名称、规则和方法等。整个系统可以使用户方便地完成其仿真系统的搭建,在该仿真平台上进行基于多Agent 的系统仿真任务,而不需要用户自己进行太多的编程,从而集中精力进行科学研究。 为了验证原型系统的功能,本文利用S war m 平台的典型示例程序———热虫(Heatbug )模型进行验证。Heatbug 模型主要是用来观察简单主体(Agent )如何通过局部信息上的动作产生复杂的全局行为结果。在Heatbug 这个模型中,每一个Heatbug 都是一个主体(是指个体Agent )。World (是指环境Agent )有一个特殊的属性———热量,热量经过一定的时间散发和消失。每一个Heatbug 都放射出一定的热量,并且都有 自己的一个适于自身生存的理想温度。Heatbug 在释放热量的同时,也在向着更接近于适合自己生存的理想温度的附近的点不断移动,因为单独一个Heatbug 并不能获得足够的热量继续生存,所以它们倾向于聚成一堆地生存,以便获得足够的热量,但是当一个地方的Heatbug 太多,温度太高时,它 们又会觉得太热而离开[6]。 利用开发的基于多Agent 仿真平台原型系统,得到Heatbug 模型的仿真结果如图4所示,其中图4(a )是系统的初始化界面 。 图4 Hea tbug 模型仿真结果图 结果分析: 在Heatbug 模型中,开始的时候,环境中随机地分布着一些Heatbug,随着程序的运行,Heatbug 会相对稳定地聚集在几个点,如图4(b )所示。它们的不愉快度也随着时间的推移而减小,如图4(c )所示。从仿真结果可以看出,利用仿真平台的原型系统,可以得到在S war m 平台中仿真完全类似的结果,即我们可以把Heatbug 模型看作一个最优化问题:每一个Heatbug 都试图寻找自己最理想的生存环境。每个Heatbug 完全根据自身的需要在移动,但是所有Heatbug 平均不愉快度呈下降趋势,也即整个系统在不断优化。 4 结束语 计算机仿真是研究复杂系统的一种有效和必要的手段, 而高效、可重用的仿真平台是目前进行仿真研究的关键问题。本文针对目前基于多Agent 复杂系统仿真平台存在的问题,进行仿真平台的设计,并开发了原型系统,实验表明了该系统的有效性。但是通用的仿真平台所要做的工作很多,目前该原型系统还存在很多问题,如算法管理系统还没有完成,Agent 管理系统也还需要进一步完善,从而使那些非计算机专业人士可以更容易使用该系统进行多Agent 的复杂系统仿真研究。下一步的工作重点是进一步提高系统的通用性,并向分布式仿真提供有效的平台。参考文献: [1] 罗批,等.基于Agent 的复杂系统建模仿真方法研究进展[J ]. 装备指挥技术学院学报,2003,14(1):78-82 [2] 王正中.复杂系统仿真方法及应用[J ].计算机仿真,2001, 18(l ):3-6. [3] J R C ly mer .Si mulation -based Engineering of comp lex system using extend +M FG +O PE MCSS[C ]. In:Proceeding of the 2002W inter Si mulation Conference,2002,(1):147-156[4] S D Pathak,D M D ilts .Si mulation of supp ly chain net works using comp lex adap tive system theory[C ]. In: IEEE International EngineeringM anagement Conference,2002,(2): 655–660. [5] 金士尧,等.复杂系统计算机仿真的研究与设计[J ].中国工 程科学,2002,4(4):52-57. [6] 王红卫.建模与仿真[M ].北京:科学出版社,2002. [7] 倪建军.复杂适应系统多Agent 建模仿真方法及其应用研究 [D ].徐州:中国矿业大学,2005-6. [8] 张洪斌编著.Jbuilder 9集成开发实例解析[M ].北京:机械工 业出版社, 2004. [作者简介] 倪建军(1978-),男(汉族),安徽黄山人,博士, 讲师,主要研究方向为复杂系统控制与决策、信息融合等。 李 建(1977-),男(汉族),山东潍坊人,硕士, 讲师,主要从事计算机仿真、智能通信系统的研究。 范新南(1965-),男(汉族),江苏宜兴人,博士,院长,副教授,主要 从事复杂系统仿真、智能信息系统的研究。