e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  CAE

基于Agent的建模与仿真方法及仿真平台浅析

2020/8/5    来源:互联网    作者:张俊瑞  王秀华      
关键字:Agent  建模  仿真  RePast  
本文简要介绍了CAS理论,着重介绍了基于Agent的建模和仿真的两个方面——基于Agent的建模和基于Agent的仿真,简要介绍了该建模仿真方法的仿真平台RePast,介绍了RePast中的Demo程序的类结构和RePast仿真平台对应的程序运行界面。

0 引言

    传统的建模方法(如还原论方法、归纳推理方法等)不能很好地刻画复杂系统,如煤矿井下矿工所构成的复杂系统。对这样的复杂系统进行研究,需要采用新的建模与仿真方法,基于Agent的建模与仿真方法(AgentBased Modeling and Simulation,ABMS)是最具活力、最有影响力的方法之一,适合于复杂系统的研究。

1 CAS理论

    霍兰在《Hidden Order》(《隐秩序》)一书中首先提出了CAS(Complex Adaptive System,复杂适应系统)理论,在这之后,CAS理论逐渐成为了基于Agent的建模与仿真方法的理论基础。霍兰指出:CAS中的组成成员称为Adaptive Agent(即具有适应性的主体)。“具有适应性”是指CAS中的Agent能够与环境和其他的Agent进行沟通和交流,并在此过程中“学习”和“积累经验”,进而改变主体的结构或行为方式。CAS中的Agent具有多种不同的含义,最早是由Minsky(明斯基)在其专著《The Society of Mind》(《意识社会》)中提出的,在计算机领域中多将Agent翻译为“智能体”或“主体”。

2 基于Agent的建模与仿真

    ABMS是CAS理论与分布式人工智能技术二者相结合后产生的一种新的建模仿真方法学,为描述和研究复杂系统提供了一种新的建模框架和方向。

    基于Agent的建模与仿真包括“基于Agent的建模”和“基于Agent的仿真”两个方面,这两个方面既独立又联系,研究内容和含义各有不同,同时这两个方面又互相交叉,不可分割。

    2.1 基于Agent的建模

    基于Agent的建模是一个“自下而上”的过程。Agent间的交互是分散的,没有一个Agent的行动与其它Agent的行动有关。对整个系统来说,从宏观来看,系统是由这些Agent共同产生的,没有集中的控制者和决策者,整体和个体之间体现的是辩证统一的关系。在整体的相互作用中,个体之间从平等到分化,系统从简单到复杂,宏观和微观有机地联系在一起。

    软件工程的观点认为:基于Agent的建模是面向对象范式的自然继承、扩充与发展。相对于Agent的定义而言,将Agent称为“主体”比“简单的、活的对象”更加准确,Agent具有一定的智能性和自主性,这是它的主要特点。

    传统的科学研究主要是利用归纳与演绎的方法来实现研究。基于Agent的建模和演绎过程非常相似又有所不同,它是在假设公理的基础上产生Agent的行为及模型中Agent之间的交互情况,基于Agent建模的目的是要研究交互的本质模式并为相应的决策人员提供帮助。

    2.2 基于Agent的仿真

    基于Agent的仿真包括Agent、环境以及相互规则、通讯方式等方面。复杂适应系统中的Agent可以实现自治,可以自己适应环境、进行相互通信和自己学习,仿真系统中的Agent也具有这些特点。在这样的定义下,仿真系统中的Agent就可以看做是一个计算机进程,就可以编制程序实现计算机的仿真。

    在具有Agent的仿真系统中,其Agent的类型多种多样,环境、矿井、矿工、行人等都可以看作是Agent,他们都具有Agent的特性。其中,环境Agent受到规则的约束和限制,并能够随着规则进行演化和发展,因此,环境Agent就可以和别的类型的Agent相互作用,进行通信和联系。

    目前,基于Agent的仿真都是用面向对象的编程实现的。编程时,需要将Agent设定成具有变量和方法等的类对象,将环境看成是空间对象(Space),Agent之间的联系通过特定的规则加以实现,当环境发生变化时,Agent会受到影响,Agent也会对环境产生影响。通过这样的设定,就可以编程的方式实现对复杂系统的仿真。

3 ABMS的仿真平台

    ABMS的仿真平台较多,较具代表性的是美国Santa Fe研究所的SWARM和Sourceforge的RePast项目、EINSTein、ASPEN、NetLogo等。本文只介绍RePast仿真平台。

    RePast(Recursive Porous Agent Simulation Toolkit)是一个开源的仿真工具,它支持Java语言,在Java语言的开发平台上导入RePast的类包即可进行RePast开发。目前比较流行的版本为Repast J(Repast 3)。官方最近推出了Repast Simphony 2.0 Beta,在Repast J上增加了许多新的特性。另外也有适合企业和大型科研单位的Repast for High Performance Computing 1.0.1 Beta版本。为了方便编程人员,RePast提供了API文档,具有Java语言基础的RePast使用者可以利用这个文档在Eclipse平台上建立各种不同的仿真模型。

    RePast由芝加哥大学社会科学计算研究中心开发研制,非常容易进行学习和扩展。RePast有6个类库,可以生成、运行Agent主体以及显示和收集模型中的一系列数据,RePast还能够记录某一个“tick”时模型当前的状态,生成模型运行过程中的各种不同的状态,是一个与“Swarm”相类似的模拟软件构架。一个RePast的Demo程序类结构如图1所示。

Demo程序的类结构

图1 Demo程序的类结构

    Repast含有时间序列(Scheduling Mechanism)和显示(Display Mechanism)两个内部机制。时间序列机制负责所有用户定义的状态变化,显示机制用来实现正在运行模型的实时显示。RePast的仿真界面如图2所示。在这个仿真界面中,包括了RePast中的显示界面、图表、参数设置、数据统计等窗口。

RePast的仿真界面

图2 RePast的仿真界面

4 结束语

    本文主要介绍了基于Agent的建模与仿真方法,详细介绍了基于Agent的建模和基于Agent的仿真两个方面以及对应的仿真平台RePast。利用ABMS可以实现对复杂系统的仿真,因此在研究复杂系统方面是很好的研究工具之一。

责任编辑:程玥
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐