引 言
This title
01
作者:王子才, 王 勇( 哈尔滨工业大学控制与仿真中心)
引 言
This title
01
复杂系统是目前研究的热点, 由于复杂系统的不可再现性及各种复杂性(高阶次、多回路、非线性、多时标、层次性、开放性、不确定性、病态结构, 以及涌现等) , 传统的观察、实验等方法不能有效地对其进行研究, 仿真技术成为研究复杂系统的重要手段, 而仿真技术的核心是模型。
模型是用某种工具对某一事物或某一现象的描述。模型从某一个建模观点出发, 抓住事物最重要的方面而简化或忽略其他方面。模型包含语法语义学和表示法, 可以采用图形和文字等多种不同形式来表现模型。
对系统进行首次抽象所建立的模型称之为概念模型。在数据库领域, 概念模型也叫信息模型, 是按用户的观点来对数据和信息建模, 主要用于数据库设计。在软件工程领域, 概念模型建立于需求分析阶段, 用来作为和用户进行沟通的公共参考框架。概念模型在气候学, 地质学等领域也得到广泛的应用。
概念模型在仿真领域里起源于模型的评估。随着仿真技术及模型评估理论的发展, 在 70 年代中期, 美国计算机仿真学会成立了模型可信度技术委员会, 专门研究模型可信度相关的概念、术语和规范, 1979年, 该委员会为仿真模型的可信度评估研究提供了一个概念框架, 在这个概念框架中提出了概念模型。
随着分布式仿真的发展, 在仿真领域里关于概念模型的研究越来越多, 到 90 年代, 美国国防部建模与仿真办公室在建模与仿真 主计划里提出任务空间概念模型( Conceptual Model of Mission Space, CMMS) ,以及在校核、验证与确认建议指导规范中提出仿真概念模型( Simulation Conceptual Model, SCM) , 将仿真领域里关于概念模型的研究带入高 潮。目前仿真领域里的概念模型主要用于对作战过程或军事行动进行描述。
随着对复杂系统研究的深入, 仿真技术成为研究复杂系统的有效措施。对复杂系统进行仿真面临着四个问题: 信息获取问题、人员沟通问题、资源重用问题和评估问题, 为了解决这些问题及对复杂系统有更加清晰的认识和理解, 提出了复杂系统仿真概念模型( Complex System Simulation Conceptual Model, CSSCM ) 。
CSSCM 是在仿真复杂系统时, 对复杂系统的组成和行为进行首次抽象所建立的模型, 用来指导仿真系统的开发和评估。CSSCM 为用户、领域专家、建模人员、设计人员、开发人员、测试人员和评估人员提供了一个公共的参考框架, 是各种相关人员之间进行交流的基础。本文概述了 CSSCM 的发展过程及研究现状, 提出了评价CSSCM 建模方法优劣的标准, 总结了关于CSSCM 的五个研究内容: 建模语言、描述方法、建模过程、验证方法和辅助工具, 并分别探讨了研究方向及研究方法。
CSSCM的发展及现状
This title
02
锡拉丘兹大学的Robert Sargent 教授, 是建议应用概念模型来支持仿真系统VV&A 评估的倡导者。在 80 年代, Sargent 在研究仿真模型的评估时, 描述了问题领域、概念模型和计算机模型之间的关系, 他强调计算机模型的验证和应用概念模型的仿真系统的评估, 并把概念模型定义为概念模型是为具体研究而开发的关于问题实体的数学的逻辑的口头的描述(模拟) 。
在1992 年, 兰德公司的 Paul Davis 在研究仿真系统评估时也对概念模型进行了阐述。他把概念模型描述为正式的列出理论和算法, 从而形成执行独立的规范。Davis 认为一个详细的概念模型将会导致编码人员定义更多的模型。从70 年代末到 90 年初, 仿真领域里的概念模型研究主要是探讨概念模型的内容、应用等一些基础的问题, 并且这个时期的概念模型主要用来指导仿真系统的评估。美国国防部建模与仿真办公室从 1995 年 8 月开始研究探索任务空间概念模型(CMMS) , 到 1997年11 月基本完成。CMMS 是与仿真执行相独立的,而与特定任务相关的真实世界的过程, 实体和环境的描述。CMMS 后来改名为 FDMS( 任务空间功能描述) 。
CMMS 技术框架提供了仿真项目中概念模型集成所需的技术标准, 管理方法和操作基础结构, 它包括描述任务空间的通用语义语法, 开发和维护概念模型的过程, 以及概念模型交互的数据转化格式,CMMS 重点在于对军事任务的描述, 强调数据的管理。CMMS在JSIMS( Joint Simulation Systems) , WARSIM( War Simulation) 和 JWARS( Joint Warfare System)等几个系统中得到了应用 。
美国国防部建模与仿真办公室从 1996 年开始发布校核、验证与确认建议指导规范( VV&A RPG) ,在2000 年发布了修改版, 其中专门论述到仿真概念模型(SCM) , 定义仿真概念模型为开发者把需求翻译为详细设计框架的方法, 认为仿真概念模型是信息的集 合, 这些信息描述了开发者关于仿真的理解, 包括假设、算法、关系、数据等。SCM 力求更加全面的描述复杂系统, 指导仿真系统的开发与评估。美国国防部建模与仿真办公室发起的 CMMS 和SCM 研究, 以及分布式仿真的发展, 把仿真领域里关于概念模型的研究带入高 潮。从 90 年代中期到现在, 仿真领域里对于概念模型的重视越来越高, 对概念模型的研究也从早期的定义、作用、应用等发展到为详细的描述方法、建模语言、开发过程以及概念模型验证等, 由于仿真对象的复杂化, 概念模型在指导仿真系统设计时的作用被重视起来。
除美国国防部外, IEEE 在发布分布式仿真标准时, 也对概念模型进行了论述。例如: IEEE 在 1997年发布的 1278. 4( IEEE TrialUse Recommended Practice for Distributed Interactive Simulation Verification,Validation, and Accreditation) 标准中, 定义概念模型为: 一个仿真执行独立的、关于演习对象, 需求和环境的演习体系结构的理解的描述。模型包括逻辑的和算法, 以及明确的公认的假设和限制。以及 IEEE 在2003 年发布的1516. 3(IEEE RecommendedPractice for High Level Architecture Federation Development and Execution Process) 标准中, 定义概念模型为真实世界的抽象, 用来作为联邦开发的参考框架, 通过文档化重要实体和它们的关键活动和交互的仿真中立的观点。IEEE 定义的概念模型主要是为相关协议服务, 不具有通用性。除了 CMMS 和 SCM 外, 还有其它的概念模型, 如联邦概念模型( Federation ConceptualModel, FCM) 、邦员概念模型( Federate Conceptual Model) 、用户空间概念模型( Conceptual Model of UserSpace, CMUS) 、综合描述概念模型( ConceptualModel of Synthetic Representations, CMSR) 等等。其中联邦概念模型将联邦目标信息转化为功能和行为描述, 为联邦目标转到联邦的设计实现提供依据, 其重点是确定联邦中将包含的对象, 以及这些对象之间的静态和动态关系, 确定每一个对象类的行为特性。邦员概念模型是对联邦中邦员的功能和行为描述。用户空间概念模型是对用户需求的描述。综合描述概念模型是对任务空间概念模型中所有的算法、公式的描述。跟据不同的原则, 可以对概念模型进行不同的分类。根据应用方法, 概念模型分为基础概念模型和支撑概念模型, 基础概念模型是建立在支撑概念模型之上的, 基础概念模型必须采用直观的描述形式表现出来。
目前有三个重要的支撑概念模型: 用户空间概念模型、任务空间概念模型和综合描述概念模型; 基础概念模型有邦员概念模型、联邦概念模型、仿真概念模型等。如图 1 所示。根据应用目的, 分为面向领域的概念模型和面向设计的概念模型。面向领域的概念模型又可以称为任务空间功能描述( Functional Descriptions ofthe Mission Space, FDMS) , 面向设计的概念模型又可以称为系统概念模型( Conceptual Models of Systems,CMoS) 。用户空间概念模型、任务空间概念模型和综合描述概念模型以及仿真概念模型都是面向领域的概念模型, 而邦员概念模型和联邦概念模型都是面向设计的概念模型。如图 2 所示。
美国最早开始研究仿真领域里的概念模型, 随后其他国家如瑞典、澳大利亚、日本和韩国等也都开始了对概念模型的研究。我国从九十年代末开始有单位系统的研究仿真领域里的概念模型, 如哈尔滨工业大学、国防科技大学、北京航空航天大学、军械工程学院、装甲兵工程学院、北京系统工程研究所等。不同院所单位对仿真概念模型的命名有所差别, 有的称为仿真概念模型, 有的称为军事仿真概念模型, 有的称为军事概念模型, 有的称为任务空间概念模型等等, 虽然名称不同, 但是多为美国国防部建模与仿真办公室提出的 CMMS 的跟踪性研究, 也有的是在 VV&A RPG 有关 SCM 的讨论的基础上进行研究。
到目前为止, 仿真领域里的概念模型主要用于军事领域, 针对复杂系统方针面临的信息获取问题、人员沟通问题、资源重用问题和评估问题, 我们提出更加通用的复杂系统仿真概念模型( CSSCM) 。
CSSCM是对复杂系统进行的首次抽象, 它为用户、领域专家、设计人员、开发人员和评估人员提供关于复杂系统的行为、构成、假设、算法等数据的一致规范的描述。CSSCM 对复杂系统的构成及行为进行详细描述, 用来指导仿真系统的设计和评估, 解决仿真系统开发与评估的所有相关人员之间的沟通问题, 如用户、领域专家和软件设计、开发人员之间的沟通; 不同部门合作解决同一个问题时的沟通; 领域专家、设计人员、开发人员和评估人员之间的沟通等。
CSSCM 通过组件重用技术提高仿真系统开发的效率。目前, 无论国外国内, 仿真领域里的概念模型的相关成果都不成熟, 还不能达到实际工程应用, 究其原因在于没有形成统一的观点, 概念模型的建模语言、描述方法以及验证等都没有切实有效的方法。通过本文的研究, 希望讨论形成关于 CSSCM 的统一的观点, 来推动复杂系统仿真的发展, 从而为研究复杂系统提供有效的方法, 最终促进仿真技术的完善。
CSSCM的内涵发展及现状
This title
03
作为指导仿真系统开发和评估的CSSCM, 需要描述的最主要的内容是复杂系统的构成和行为, 同时作为完整的指导规范, CSSCM还需要描述系统边界(即系统的环境) 、模型采用的假设、理论依据, 以及为了保证CSSCM数据可追溯性的人员。除此之外, CSSCM还需要对将要开发的仿真系统进行描述, 包括仿真系统的软硬件组成以及应该具有的功能等。因此, CSSCM包含的内容可以划分为三部分: 背景空间, 系统空间和仿真空间, 如图3 所示。
背景空间描述模型属性、假设、理论依据、人员、模型的评估情况, 以及了复杂系统的环境等; 系统空间描述复杂系统的构成和行为; 仿真空间是对所要建立的仿真系统的需求描述, 包括功能需求和软硬件需求。在这三部分中, 背景空间为系统空间和仿真空间设立了边界, 对复杂系统及其仿真系统进行约束。CSSCM的建模过程实际上就是对复杂系统进行分解-重构的过程。在分解-重构的过程中, 需要对分解原则、分解的最小单位、以及重构原则等进行规范, 即CSSCM建模语言的语义语法。我们把建模语言、描述方法、建模过程、验证方法统称为CSSCM的建模方法。CSSCM用来指导仿真系统的开发和评估, 提高仿真系统的开发效率。
CSSCM建模方法的好坏, 将直接影响CSSCM能否得到广泛的应用。衡量CSSCM 建模方法好坏的指标有以下几个: 重用性、低成本、高效率、易接受性。
重用性是衡量 CSSCM 建模方法的最重要的指标。这个指标主要是针对 CSSCM的建模语言,使CSSCM 的组件能够重用。提高仿真系统开发效率的一个重要措施就是组件重用。重用具有三个不同层次:(1) 简单重用。实体 E、原子作业 T( 不可再分的作业) 在不同任务中的重用。( 2) 复杂重用。过程 P、任务M 在不同任务中的重用。(3) 高级重用。对于在 CSSCM 中的组件 C( 可能为 E、T、P、M 等) , 相应的设计为 CS, 相应的开发为 CK, 相应的评估为 CP, 都可以进行重用。
当然我们所指的重用并不是拿来就用, 组件在重用时往往需要进行少量适当的修改。而且组件重用还需要考虑很多的问题, 如高分辨率的组件模型可以重用到低分辨率的模型中, 而低分辨率的模型往往不能重用于高分辨率的模型。低成本是开发 CSSCM 建模方法始终追求的目的之一, 传统仿真系统的开发并不包括 CSSCM 的建立,因此在引入 CSSCM 后, 整个开发仿真系统及评估系统的成本不应该增加太多。传统仿真系统开发过程包括需求开发、系统设计、系统开发、系统测试和系统评估五个阶段, 设其总成本为 C , 由于 CSSCM 的引入, 仿真系统开发过程变为需求开发、CSSCM 开发、系统设计、系统开发、系统测试和系统评估六个阶段, 设其总成本为 CC, 则 CC 与 C 的关系如下:
CC= C - △C + CT+ △CC
其中 C 为由于 CSSCM 的引入, 对于传统系统设计、系统开发、系统测试和系统评估所节省的成本; CT为由于CSSCM 的引入, 对相关人员进行CSSCM 建模方法培训所需要的成本; CC 为开发 CSSCM 的成本。低成本也就是指 CC 不应大于C 太多, 即 CT+ △CC- △C 不应该太大。
高效率是指 CSSCM 的开发和评估不应该使仿真系统的开发周期变长, 甚至可以说, 当 CSSCM 资源库的规模达到一定程度时, 应该使仿真系统的开发周期变短, 使仿真系统的开发和评估进入流水线作业程度, 从而真正提高仿真系统的开发效率。
易接受性是衡量 CSSCM 建模方法好坏的另一个重要指标。易接受性包括 CSSCM 的语义语法和描述方法是否易于理解, 是否容易掌握, CSSCM 的验证是否具有可信性, 操作是否简单等, 其中最重要的就是 CSSCM 的描述方法是否容易理解, 是否清晰, 是否无二义等。易接受性对 CSSCM 的广泛使用具有重要的作用。除了上面的四个指标, CSSCM 辅助开发和验证工具也对 CSSCM 的应用起着重要的作用。CSSCM的使用离不开工具的支持, 因此工具的界面友好、功能齐全也是很重要的衡量指标。
CSSCM的研究内容及方向
This title
04
CSSCM的研究内容包括五个方面:CSSCM建模语言、CSSCM描述方法、CSSCM开发过程和CSSCM验证, 以及CSSCM辅助开发和验证工具。
4. 1 CSSCM 建模语言研究
CSSCM 建模语言研究如何对 CSSCM包含的信息进行分解- 重构, 包括语法研究和语义研究。目前 CMMS 语义语法是较为完备的关于概念模型语义语法, CMMS 采用的是 EATI语义语法结构, 该方法能够较好的支持组件的重用。CSSCM 建模语言不应太复杂, 并且需要具有一定的灵活性。传统 CSSCM 建模语言都是用自然语言描述, 在培训人员学习 CSSCM 容易产生歧义, 采用形式化方法描述建模语言的语义语法不仅消除了歧义, 还为 CSSCM 验证提供自动化实现的前提。
4. 2 CSSCM 描述方法研究
描述方法对于 CSSCM 能否得到广泛的应用具有重要的影响。传统 CSSCM 的描述方法有四类 : 专用方法, 设计融合法, 开发范例法和科学报告法。
专用方法是针对特定的领域, 并且针对此次仿真, 应用各种方法对要仿真的复杂系统进行描述。专用方法的优点在于对具体情况具体分析, 从而达到描述此次仿真的全面性和灵活性; 专用方法的缺点为不支持重用。
设计融合法采用支持仿真设计的描述方法来描述 CSSCM, 往往具有可视化支持。该方法的优点在于其支持仿真设计, 保证仿真系统设计、开发的追溯性, 提高仿真系统设计开发的效率; 设计融合法的缺点也在于其支持仿真设计, 即该方法在开发 CSSCM 时, 过早的考虑设计问题, 例如采用面向对象技术等进行设计, 这样做带来的后果就是不利于仿真系统的评估, 对于获得 CSSCM 中的假设与限制比较困难, 而且复杂系统的某个子系统( 或实体) 有可能被分散到 CSSCM 中的很多部分, 这对于执行 CSSCM验证的SME 来说, 要从 CSSCM 中收集有关该子系统( 或实体) 的信息是相当困难的。
设计融合法有 ER 图, IDEF 图,UML 图等。开发范例法是采用类似模板( 如 EATI) 的组件来描述CSSCM, 这类方法关注仿真实体, 活动, 作业和交互的信息集,强调信息在数据库里的组织管理结构,其代表是 CMMS。
开发范例法的优点在于数据结构清晰, 便于数据管理。XML 描述属于该类方法。科学报告法使用科学报告的标准结构, 通过运用数学和技术标准使得描述更清晰、假设更完备、规范约束更严格。该方法的优点在于信息描述的完备, 以及描述的灵活性, 对人工评估有较好的支持;科学报告法的缺点在于其往往采用自然语言描述,导致容易产生歧义, 不利于重用。
最近几年, 随着对 CSSCM 研究的深入, 一些在软件工程、数据库等领域应用成熟的概念模型描述方法被用来描述 CSSCM, 如知识工程方法、形式化方法等, 其中形式化方法是当前研究的热点及趋势。
形式化方法采用基于数学的概念、方法和工具来描述目标系统的一种技术, 使用形式化方法可以克服CSSCM的歧义、含糊、矛盾、不完整以及层次混乱等缺点, 并可以实现自动化验证。形式化方法的缺点在于过于抽象, 难以理解,成本较高等, CSSCM 完全形式化成本高, 并且也是没必要的, 因此 CSSCM 采用部分形式化的轻量级形式化方法描述。
CSSCM 文档应该具有直观、无二义、完整、易用以及低成本等特点。上面介绍的这些方法各有优缺点, 采用任何一种方法都很难满足对 CSSCM 文档的所有要求。CSSCM 文档应该综合各种方法对 CSSCM 进行描述, 既要能全面地完整地描述本次仿真( 以通用框架作保证) , 又要能够使组件重用( 以语义语法作保证) ; 既要便于数据的管理( 以语义语法作保证) , 又要使模型表现直观( 以图形化描述作保证) ; 并且要使 CSSCM 描述无二义( 以形式化描述作保证) 。
4. 3 CSSCM 开发过程研究
规范CSSCM 的开发过程, 可以避免CSSCM 的一些错误, 如信息冗余、信息遗漏等; VV&A RPG 把概念模型开发过程分为四步: 收集权威信息; 分解任务空间; 提取仿真元素( 实体、作业等) ; 提取仿真元素之间的关系。
可以看出, 这四步主要是针对系统空间进行的, 在此基础上, 我们对这个过程进行扩展及完善, 把 CSSCM 的开发过程分为六个步骤:( 1) 收集权威信息;(2) 提取复杂系统环境信息, 收集相关人员信息, 建立背景空间;(3) 分解复杂系统的组织结构和行为过程, 确定仿真粒度;(4) 提取实体信息和作业信息, 确定仿真精度;(5) 确定实体或作业之间的关系,建立系统空间;(6) 提取仿真系统需求, 建立仿真空间。
CSSCM 的开发是多人参与的过程, 在这个过程中, 必须进行明确的分工, 必须遵守相同的原则。CSSCM 对于复杂系统的分解原则有七条。(1) 对于每一个在仿真需求和仿真目的中提到的实体, 在CSSCM 中必须有一个具体的实体与之对应。(2) 对于每一个在仿真系统评估中提到的实体, 在 CSSCM 中必须有一个具体的实体与之对应。(3) 对于每一个在仿真需求和仿真目的中提到的事件和过程, 在 CSSCM 中必须有一个具体的作业与之对应。(4) 对于每一个在仿真系统评估中提到的事件和过程, 在CSSCM 中必须有一个具体的作业与之对应。(5) 对于每一个在 CSSCM 中的实体, 都应该有真实的实体与之对应。对于每一个在 CSSCM 中的作业, 都必须有真实的事件或过程与之对应。并且CSSCM 中的实体与作业, 应尽可能符合常理、易于理解。(6) 对于每一个在 CSSCM 中的实体, 必须至少执行一个作业。反之, 对于每一个作业, 必须有相应的执行实体。(7) 在 CSSCM 中, 不应出现孤立的作业, 即不应该出现没有通过交互和序列与任何其它作业相连接的作业。
CSSCM 系统空间的粒度依赖于实体的划分, 根据上面的七条原则, 可以确定系统空间的粒度, 并且保证不出现实体丢失和实体冗余的情况。规范CSSCM 建模过程, 可以提高 CSSCM 的开发效率, 有利于CSSCM 合作开发时的任务分工, 减轻CSSCM 的验证工作, 从而提高 CSSCM 的可信度。
4. 4 CSSCM 验证方法研究
CSSCM 对仿真系统的设计开发和 VV&A 评估具有重要的意义和作用, 其前提条件是 CSSCM 的正确性。因此在使用 CSSCM 指导仿真系统开发和评估前, 必须对 CSSCM 进行验证。
CSSCM 的正确性包括两部分内容: 一是所建立的CSSCM 符合语法规范, 没有语法错误, 即正确的建立了 CSSCM; 二是所建立的 CSSCM 符合需求, 没有语义错误, 即建立了正确的 CSSCM。目前, CSSCM 的验证方法多为定性的、主观的专家验证方法。
基于形式化描述的验证方法是在形式化描述的基础上, 进行形式化推理, 从而得出部分指标。该方法的优点在于其可以实现自动化,从而大大提高工作效率。由于 CSSCM 采用的是轻量级形式化方法描述, 不能实现完全的自动化验证,尤其对于第二项正确性验证难以实现, 因此 CSSCM评估还应该采用专家评估方法。专家评估的缺点在于其主观性比较强, 而将通过形式化验证得到的部分指标提供给专家, 可以减弱主观性的影响, 并充分发挥专家评估方法的灵活性。
4. 5 CSSCM 辅助开发与验证工具开发
开发CSSCM辅助工具的目的是为了实现对CSSCM进行快速开发、有效管理、自动化验证和组件重用等。
CSSCM辅助开发与验证工具主要包括三大功能:CSSCM开发, CSSCM验证和CSSCM管理。
由于 CSSCM 的开发将是分布式的合作开发, 因此辅助工具必须支持 CSSCM 的网络化开发和验证。辅助工具可以实现半自动化建模, 由于 CSSCM 采用图形化和形式化两种方法描述, 因此辅助工具开发功能支持 CSSCM 可视化开发, 以及由图形化描述到形式化描述的自动化转换; 由于目前形式化验证不能完全取代专家验证, 因此辅助工具的验证功能包括专家验证和自动化验证两个部分; 辅助工具的管理功能除了存储、读取等功能外, 最重要的就是安全管理, 安全管理是贯穿于存储、读取、修改和传输的整个过程的, 需要通过用户标识与鉴别、存取控制、审计和数据加密等多种手段来保证模型数据安全。辅助工具的体系结构如图 4 所示。
辅助工具是CSSCM能在实践中得到应用的前提, 因为CSSCM包含的信息太多, 无论采用何种描述方式, 人工处理效率都将非常低下, 因此必须开发友好的工具来辅助CSSCM 的开发、验证和管理。
结 论
This title
05
由于复杂系统的不可再现及各种复杂性, 人们用传统方法认识理解复杂系统时非常困难, 采用仿真技术来研究复杂系统是行之有效的办法。CSSCM描述了复杂系统的组成和行为, 用来指导仿真系统的开发和评估。CSSCM 包含大量的信息, 如何对这些信息进行分解- 重构、描述、建模和验证是CSSCM的必须研究的内容。CSSCM 对于复杂系统仿真的设计、开发和评估具有重要的意义和作用。
CSSCM为用户、领域专家、设计人员、开发人员、测试人员和评估人员提供了一致的规范, 作为交流的基础和共识, 用来指导仿真系统的设计和评估。CSSCM从仿真系统开发的初期就对复杂系统的分解- 重构进行规范, 为实现高级组件重用提供了可能。
CSSCM 的规范使用将极大地提高仿真系统开发效率。国内对于CSSCM 的研究还处于探索阶段, 和国外具有较大的差距, 要达到实际应用还有很多的工作要做。
通过本文的讨论, 希望能引起人们对 CSSCM 的重视, 投入更大的研究力量, 形成关于 CSSCM的统一认识, 推动复杂系统仿真的发展, 加深对复杂系统的认识, 进而完善系统仿真技术。