基于Agent的建模与仿真设计模式及软件框架

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

V ol. 17 No. 4 系统仿真学报
Apr. 2005
JOURNAL OF SYSTEM SIMULATION·863·基于Agent的建模与仿真设计模式及软件框架
廖守亿, 戴金海
(国防科技大学航天与材料工程学院, 湖南长沙 410073)
摘要:提出了一种基于Agent的建模与仿真设计模式——ABMS设计模式,阐述了ABMS设计模式的主要内容。

该模式的提出有利于在建模与仿真领域以及软件开发界之间建立关于ABMS的对话联系与交流。

然后设计了一种包含仿真服务模型和Agent仿真模型的ABMS分布仿真软件框架,该框架将最大限度实现仿真重用,并将支持大规模的基于Agent的复杂系统的分布仿真,包括军事对抗以及空间作战系统的仿真。

该框架部分借鉴了HLA的思想,其中的ServerAgent提供底层的通用仿真服务。

关键词: 复杂系统;设计模式;软件框架;基于Agent的建模与仿真
文章编号:1004-731X (2005) 04-0863-04 中图分类号: TP391.9 文献标识码:A
Design Pattern and Software Framework for Agent-Based Modeling and Simulation
LIAO Shou-yi, DAI Jin-hai
(College of Aerospace and Material Engineering, National University of Defense Technology, Changsha Hunan 410073, China) Abstract: An Agent-Based Modeling and Simulation design pattern, ABMS design pattern, is proposed creatively. The ABMS design pattern will be helpful to build dialogue and communications between the domain of modeling and simulation and software development community. Based on the ABMS design pattern, a distributed simulation software framework for ABMS called ABDSF, including agent simulation service model (ServerAgent) and agent simulation model (ASM), is proposed. The framework uses HLA for reference. With this framework, one can share the models and simulation technologies, improve the reusability and interoperability of the models. And we can also conduct large-scale agent-based simulation for complex systems, including military systems and space operations under the framework.
Keywords: complex systems; design pattern; software framework; agent-based modeling and simulation (ABMS)
引言
复杂系统和关于复杂性的研究近几年来成为系统科学、计算机科学等领域的研究热点,复杂性科学更被称为“21世纪的科学”。

为了解决复杂性问题,人们提出了各种解决办法,例如钱学森先生提出的“从定性到定量的综合集成研讨厅”体系,复杂适应系统理论倡导的“基于Agent的建模与仿真(Agent-Based Modeling and Simulation , ABMS)”方法学等。

当前的基于还原论的建模方法难以解决复杂性问题[1]。

复杂性问题的解决,只能采用基于本体论的建模方法,例如ABMS就是这样一种方法。

ABMS在不同的学科领域得到了广泛的应用,包括在人工生命系统、社会系统、经济系统、军事对抗等方面的应用。

例如美国国防部(DoD)认为复杂性科学及基于复杂性的建模与仿真[2]有助于解决C4ISR 的开发问题,可以使得C4ISR真正在战场中起作用,使得美军在未来战争中具有对信息的全方位、瞬时的获取能力;美国的海军战场研发司令部NWDC(Navy Warfare Development Command)与Argonne国家实验室的复杂适应系统仿真中心开展合作,共同开发TSUNAMI(The Tactical
收稿日期:2004-03-12 修回日期:2004-09-04
基金项目:武器装备预研基金项目(51420010303KG0109)
作者简介:廖守亿(1974-), 男, 重庆人, 博士生, 研究方向为飞行器设计与先期技术演证, 复杂系统建模与仿真; 戴金海(1943-), 男, 河北昌黎人, 教授, 博导, 研究方向为飞行器设计, 虚拟飞行试验, 系统建模与仿真, 实时系统与计算机控制, 产品数据管理(PDM)及企业信息化。

and Ubiquitous Network Agent-Modeling Initiative),利用ABMS方法来对虚拟战场仿真中出现的关键问题进行研究[3]。

现今愈演愈烈的空间对抗(太空作战,也称天战),显然要比一般的军事对抗复杂得多,对天战的建模与仿真,同样需要先进的建模与仿真技术的支持,而ABMS将是首选[4]。

ABMS作为一种新的建模仿真技术和仿真方法学,目前的研究还远远不够,已有的研究工作还显得比较零散,尚未形成一个完备的体系,还没有一个支持ABMS的通用软件框架。

针对这这些情况,本文提出一种ABMS设计模式(也可以说是ABMS方法学),这将有利于系统研究ABMS的相关问题。

然后提出一种ABMS的通用分布仿真软件框架,在此框架下,将有助于对复杂系统进行基于Agent的仿真,提高建模与仿真软件的通用性、可重用性,同时可实现仿真模型的智能特征,特别是支持军事对抗仿真以及对空间作战系统的仿真[4]。

1 设计模式
1.1 模式
模式是一个高度抽象的概念,它最先由Alexander在其经典著作[5]中提出。

模式分为三部分:语境(Context),指模式在何种状况下起作用;动机(Forces),指问题或预期的目标;解决方案(Solution),指平衡各动机或解决所阐述问题的一个构造或配置(Configuration)。

他指出,模式是表示语境、动机、解决方案三个方面关系的一个规则。

模式描述了在一
V ol. 17 No. 4
系统仿真学报 Apr. 2005 ·864·
个特定环境下不断重复发生的问题,以及该问题解决方案的核心所在。

这样,你就能多次使用该方案而不必做重复劳动。

1.2 软件设计模式
1.2.1 软件设计模式的作用
Alexander关于模式的开拓性工作以城市规划和建筑为基础,后来被Gamma [6]等人引入到软件设计模式方面的应用中。

软件设计模式是从面向对象范式中涌现出来的软件工程问题求解方法,它的目标是建立支持设计与开发的通用框架体系。

软件设计模式的应用对软件开发产生了重大的作用,主要表现在:(1) 软件设计模式是人们在长期的软件设计开发与组织管理的实践中提炼和抽象出现的,是重用软件设计方法和过程管理经验的有力工具,它允许利用成功的解决方案来解决共性的问题,它提供了一系列软件开发中的思维套路。

(2) 软件设计模式为人们提供了一套简洁通用的设计、管理、组织方面的词汇和术语,同时也为我们提供了一个描述抽象事物的规范标准,可大大促进软件开发过程中人与人之间的交流。

“软件项目失败的原因最终都可追溯到信息没有及时准确地传递到应该接收它的人”。

1.2.2 软件设计模式的描述
软件设计模式的描述分以下几个部分:(1) 模式名。

模式名简洁地描述了模式的本质。

(2) 问题(Problem)或意图。

在特定的语境和动机下要达到的目标。

(3)语境(Context)。

问题及其解决方案产生时的前提条件。

语境告诉我们该模式的适用性。

(4)动机(Forces)。

描述相关的动机和约束,它们之间或与期望的达到的目标之间的相互作用(或冲突),通常需要对各期望的目标进行优先级排序。

动机阐明了问题的复杂性,定义了在相互冲突时所采取的各种权衡手段。

(5)解决方案(Solution)。

它是一些静态的关系和动态的规则,用以描述如何得到所需的结果。

通常是给出一组指令来说明如何构造所需的工作组成部分。

该说明可包括图表、文字,用以标示模式的结构、参与者及其之间的协作,从而表明问题是如何解决的。

(6)结果语境(Resulting Context)。

指在应用该模式后系统的状态或配置,包括模式发生作用后带来的后果,以及在新的语境下产生的问题、可应用的模式等。

它阐述了模式的后续状态。

(7)基本原理(Rational)。

对该模式中的解决步骤或采用的规则的解释、证明,解释该模式如何、为何能解决当前问题,它采用的方法为何能得到与期望相一致的结果。

(8)相关模式。

该模式与其它模式的关系,包括静态的或动态的。

(9)已知应用。

阐述该模式在已有应用系统中的实际应用情况,有助于验证该模式的有效性。

2 ABMS设计模式
ABMS为社会科学、人工生命、军事对抗等领域出现的新问题和新挑战提供了唯一的建模与仿真方案,这种方案呼唤新的软件设计模式的产生。

基于前节阐述的关于模式和软件设计模式的思想,我们提出一种基于Agent的建模与仿真设计模式——ABMS设计模式。

ABMS设计模式的意图在于发起关于ABMS通用特征、作为实现复杂系统建模与仿真研究的工具,以及建立系统科学、建模与仿真领域以及软件开发界关于ABMS的对话联系与交流,并且在一定程度上指导基于Agent的分布仿真软件框架的设计。

ABMS模式包括以下内容:
(1)模式名:基于Agent的建模与仿真(ABMS)。

(2)问题:为了对含有大量交互成分的复杂系统进行建模与仿真,采取什么样的建模与仿真方法。

(3)语境。

复杂系统中含有大量交互成分,其宏观行为具有涌现性,这种涌现性来源于系统中大量个体之间的交互。

(4)动机。

系统中单个个体之间的行为是仿真的目标之一,这称之为微观行为仿真;同时更重要的是通过仿真展现系统中个体之间的交互是怎样影响全局的行为的,整体展现出来的行为不是单个个体行为的叠加。

(5)解决方案。

解决的方法是创建基于Agent的模型(ABMs),并对该模型进行分布式仿真。

Agent抽象地反映出系统中的组成部分,通过感应器感知环境的变化,并能够根据变化做出反应,通过效应器作用于环境。

为清楚起见,设计的Agent模型应该具有相对简单的行为而不是复杂的行为,具有相对简单的规则推理系统而不是复杂的推理系统。

当然,Agent同时也必须具有足够的复杂度以便能够对系统进行有效的描述。

通过比较由于Agent的规则所产生的微观行为和涌现出的宏观行为与真实系统的行为进行比较来验证建模与仿真的有效性。

(6)结果语境。

如果构建的Agent模型是无效的或不能如实反映真实系统,则需要降低抽象层次,进一步细化Agent的模型。

(7)基本原理。

基于Agent的建模是对复杂系统的自然描述,是一种自顶向下分析、自底向上综合的建模方式,它通过对Agent的行为及其之间的交互关系、社会性进行刻画,从而达到描述系统整体行为的目的[7]。

(8)相关模式。

目前,相关的建模方式有元胞自动机模型、从定性到定量的综合集成方法等,但我们认为,ABMS才是最佳的解决方案。

(9)已知应用。

目前,有几种基于Agent的仿真平台,如Swarm[1]、StarLogo[8]、Repast[9]、Ascape[10]和Aspen[11]等,在人工生命、社会、经济领域有较多的应用,但都是小规模的应用。

虽然我们从模式、设计模式和软件设计模式的概念出发,但我们提出的ABMS设计模式不是一种软件设计模式,应该说它是一套基于Agent的复杂系统建模与仿真的方法学,用来指导建模与仿真过程。

限于篇幅的原因,关于ABMS设计模式的各个要素没有进行更为详细的阐述,ABMS方法学的内涵也需要进一步加以研究。

3 基于Agent的分布仿真软件框架ABDSF
软件框架是一个可重用的小型体系结构,它在一个给定的范畴内为一族软件抽象产物提供通用的结构和行为,它提供一系列固定的插口和配置点供使用者将其客户化后生成所需的应用软件。

框架总是针对特定应用领域可以实现代码重用。

目前,出现的几种支持ABMS的软件环境,例如Swarm、
V ol. 17 No. 4
Apr. 2005 廖守亿, 等:基于Agent的建模与仿真设计模式及软件框架·865·
StarLogo、Repast、Ascape 和Aspen等都只适合于小规模的复杂系统的仿真,原因在于:(1)Swarm等平台针对的是单机仿真方式,无法满足军事对抗、复杂工程系统如卫星系统等复杂系统的仿真。

(2)各个仿真对象之间不能实现并行,由于Swarm等平台采用基于下一事件的调度方法,将仿真事件放到队列中进行调度,不能充分仿真Agent间事件的并发性,因而不能真实反映Agent之间的关系。

(3)Agent的调度不灵活。

Swarm等平台采用的调度机制通常为预先定义的,在Agent创建时设置,因而灵活性不够。

鉴于现有软件平台的局限性,有必要开发这样一种基于Agent的建模与仿真平台,在该平台下,能够在网络环境下进行分布式仿真,同时领域开发人员不必重复开发与仿真有关的诸如底层通信、仿真管理与调度、时间管理、Agent通信等基本功能,而只需要关心怎样在这个框架下构建特定领域相关的基于Agent的仿真应用。

而完全基于HLA/RTI提供的服务作为Agent仿真平台还不够完备[12],其中最主要的是缺少对Agent之间通信的支持。

另外,HLA解决了仿真的互操作与可重用性问题,但没有解决仿真仿真系统的智能化问题和仿真成员之间的“协作”问题。

Agent需要跟踪远程Agent的能力和状态,与其它进行协调与合作,需要Agent 通信语言(ACL),如KQML来定义。

基于这样的考虑,我们提出这样一种基于Agent的分布仿真软件框架ABDSF (Agent-Based Distributed Simulation Software Framework),如图1所示。

ABDSF中涉及两大类Agent,一种是软件Agent,例如ServerAgent以及组成它的元Agent、结果统计Agent(ReStAgent)、人机接口Agent(HMIAgent),主要是从仿真软件开发的角度抽象出的Agent模型;另一种Agent是直接从目标系统中抽象出的实体Agent模型,并从仿真应用的角度构造出的Agent模型,称为Agent仿真模型,根据该模型生成的具体的应用模型称为仿真Agent,即SimAgent,例如空间作战仿真中的卫星Agent模型。

图1 基于Agent的分布仿真框架
3.1Agent仿真运行服务模型
Agent仿真运行服务模型主要指的是ServerAgent,它提供了仿真系统中诸如仿真控制逻辑、通信服务及仿真的通用基础功能,与具体的仿真应用无关。

ServerAgent是一个聚集Agent,由TimeAgent、InAgent、CommAgent和ManAgent 聚集而成。

ServerAgent的主要功能包括:
·时间管理:由TimeAgent提供,主要是保证仿真系统以适当的方式和顺序进行时间推进。

· Agent管理:由ManAgent提供,主要是提供Agent 的控制服务,Agent的声明、注册、撤消与退出等。

· 兴趣管理:由InAgent提供,主要是限制网络中Agent 交互的流量以及管理网络中Agent的交互和节点的触发。

· 通信服务:由CommAgent提供,主要是提供Agent 间通信的封装与解释,以及消息的转发。

3.2 Agent仿真模型
Agent仿真模型(Agent Simulation Model,ASM)通过描述仿真系统中的Agent及其交互关系来建立模型。

ASM描述了Agent的状态、行为及通信接口。

系统中的Agent仿真模型主要指的是SimAgent,它可以是一个单独的实体对象的Agent描述模型,根据ASM需要生成的Agent,满足分布式仿真的接口需要;也可以是多个Agent聚集成的聚合Agent,根据ASM需要生成的Agent仿真模型;也可以是纯粹的仿真应用,内部不包括其它的实体Agent模型,但整体具有仿真Agent模型的特征。

SimAgent之间的消息交换由ServerAgent负责接收与发送并进行解释,而SimAgent本身的状态与状态转换,则由自身的控制模块进行监控,这将实现Agent的自主性。

SimAgent工作原理是Agent通过自己内部的感应器获取外部信息。

在一般情况下,经过决策层,由决策层调用规划层,分析、判断感知到的信息,做出决策,决策结果传递到控制层,由控制层做出响应。

决策的结果包括:消息反馈、自身状态改变、行为输出等。

这其中,规划层的推理分析模块可嵌入智能算法(例如进化算法、人工神经网络、加强学习等),这将解决仿真模型的智能化问题。

而在紧急情况下(简单情况)下,则直接根据规则库中的规则做出反应。

SimAgent 的结构图如图2所示,它是一个反应型/慎思型的混合结构。

图2 仿真Agent结构
3.3基于Agent的分布仿真物理结构
基于Agent的分布仿真物理结构如图3所示。

其中
V ol. 17 No. 4
系统仿真学报 Apr. 2005 ·866·
Agent支撑库主要是支持SimAgent的创建和仿真结果的统计分析等基础组件模型。

整个仿真平台中只有一个全局ServerAgent,它的主要功能除提供系统时钟同步、时钟推进以及通信服务外,还提供各SimAgent全局的唯一标识、SimAgent的创建和消除以及基本属性管理。

每个节点机上布置一个局部ServerAgent,它负责本地时间推进、SimAgent 管理、所有权管理和节点内部的通信。

图3 基于Agent的分布仿真物理结构
3.4 仿真执行过程
图4是基于Agent的分布仿真框架ABDSF的仿真执行过程的UML序列图,它详细说明了调度程序和事件触发(以*表示)之间的顺序,包括循环扫描网络节点局部服务ServerAgent(以**表示)。

其中,FEL(Future Event List)为将来事件表;“控制”为ServerAgent的TimeAgent提供的控制服务,包括:查询下一事件、时钟推进、触发Agent引擎、触
图4 仿真过程的UML序列图发网络节点ServerAgent、执行与网络节点ServerAgent有关的代码、调度新事件和管理网络节点循环扫描等;“网络”为网络节点ServerAgent;“Agent引擎”为SimAgent提供的服务,包括:环境感知、记忆、推理规划、行为输出(改变环境)等。

4 结论
本文提出一种基于Agent的建模与仿真设计模式——ABMS设计模式,这有利于指导基于Agent的建模与仿真设计过程以及软件框架的研究,实现具体的仿真应用,同时有利于建立系统科学、建模与仿真领域和软件开发界关于ABMS的对话联系,加强交流,规范描述标准与相关术语。

然后提出了一种ABMS的分布仿真解决方案,该方案将最大限度实现系统级的仿真重用,并可能解决分布仿真的智能性问题,并且支持军事仿真,包括空间作战系统等复杂系统的仿真。

进一步的研究工作包括:仿真时钟的同步机制与算法;Agent间基于KQML的消息通信以及交互机制;动态兴趣管理与负载平衡;Agent之间的协调与合作;ABMS的开发过程及其模型VV&A;Agent仿真模型的定义与形式化描述;仿真平台的建立以及具体的仿真应用实例。

目前,这些工作正在开展,相关内容将有另文阐述。

参考文献:
[1] The Swarm Development Group [EB/OL].
[2] Hunt Carl W, Saias I. Complexity-Based Modeling and Simulation:
Modeling Innovation at the Edge of Chaos [EB/OL].
/Proceedings/DOCS/wcd00000/wcd000ec.htm [3] North M J, Rimmer M, Macal C M. Why the Navy Needs TSUNAMI
[EB/OL]./~swarm03/Program/Abstracts/NorthSwarm200
3.pdf
[4] 廖守亿, 戴金海. 基于多Agent的天战系统建模与仿真方法研究[J].
计算机仿真, 2003, 20(1): 18-21.
[5] Alexander C. The Timeless Way of Building [M]. Oxford, England:
Oxford University Press, 1979.
[6] Gamma E, Helm R, Johnson R, Vlissides J. Design Patterns: Elements
of Reusable Object-Oriented Software [M]. Wokingham, England: Addison-Wesley, 1994.
[7] 廖守亿, 戴金海. 复杂适应系统及基于Agent 的建模与仿真方法
[J]. 系统仿真学报, 2004, 16(1): 113-117.
[8] StarLogo on the Web [EB/OL]. /starlogo
[9] Repast
Agent Simulation Toolkit[EB/OL].
[10] Ascape [EB/OL]. /es/dynamics/models/ascape.
[11] New Economics Model Simulates U.S. Economy [EB/OL].
/tech_reports/rjpryor/
[12] 金士尧, 李宏亮, 党岗, 王召福, 刘晓建. 复杂系统计算机仿真的
研究与设计[J]. 中国工程科学, 2002, 4(4): 52-57.
恒润科技将在6月举办"第一届MATLAB中国用户大会暨技术论坛". 详情请登陆。

相关文档
最新文档