首页 理论教育 建模基础理论

建模基础理论

时间:2023-03-28 理论教育 版权反馈
【摘要】:模型与模型研究的概念由来已久,可以追溯到古代仿鸟飞行和按比例样板造船,只是在计算机出现之后才在此基础上产生了系统仿真科学与技术。就此而言,模型应具有考虑诸多条件折中下的精确性。建立系统模型时,应该考虑所收集的用以建立模型的信息的准确性,包括确认所对应的原理和理论的正确性和应用范围,以及检验建模过程中针对系统所作的假设的正确性。
建模基础理论_现代应急管理理论与技术

科学实验是人们改造自然和认识社会的基本活动与主要手段。科学实验有两种途径: 其一是在实际系统进行试验,谓之实物试验或物理试验; 其二是利用模型完成试验,叫做模型研究或系统仿真(即模拟)。

模型与模型研究的概念由来已久,可以追溯到古代仿鸟飞行和按比例样板造船,只是在计算机出现之后才在此基础上产生了系统仿真科学与技术。模型至今是科技工作者最常谈论的重要科学术语之一,它是相对于现实世界或实际系统而言的。在系统仿真中,被研究的实际系统或未来的假定系统叫做原型,而原型的等效替身则称之为模型。

在科学实验和理论研究中,基于如下主要两方面原因而产生了建模与仿真: ①由于某种原因,如系统过于复杂,实验现场有毒、有害、不安全、受限制、不经济等不宜或者不能在实际系统上进行试验; ②人们往往希望在产生实际系统(一般指人工系统)之前或对实际系统未来能够预测出它们的性能、功能和行为。

一个有效模型必须能够反映原型的主要表征、特性及功能,并具有如下基本性质: 普遍性(或等效性)、相对精确性、可信性、异构性及通过性。

(1)普遍性是指一个模型可能与多个系统具有相似性,即一种模型通常可以描述多个相似系统。

(2)相对精确性是指模型的近似度和精度都不可超出应有限度和许可条件。这是因为,过于粗糙的模型将失去原型的过多信息和特性,而变得无用; 太精确的模型则往往造成模型相当复杂而导致研究困难,甚至终不得其解。就此而言,模型应具有考虑诸多条件折中下的精确性。

(3)可信性表明模型必须经过校核、验证和确认,即进行所谓的VV&A活动,使之具有满意的可信度。

(4)异构性是指对于同一个系统,模型可以具有不同的形式和结构,即模型不是唯一的。

(5)通过性,即模型可视为“黑箱”,通常能够利用输入/输出实验数据辨识出它的结构和参数。

实质上仿真是对真实世界的模拟,所有的定义都有一个基本共同观点: 仿真是基于模型进行的。

8.2.1 建模基础

8.2.1.1 建模的一般原则

为了有效地进行计算机仿真,必须首先根据仿真的目的,对需要进行仿真的系统建立起可信的系统模型。系统模型是对现实世界中事物的抽象,对事物的过程进行数学或逻辑上的描述。在这种抽象的过程中需要经过一定程度的简化并依赖于部分假设。建立一个准确的系统模型是进行计算机仿真的前提和必要条件。

在模型建立中,一般要遵循以下基本原则。

(1)简单性。从实用的观点看,由于在建模过程中忽略了一些次要因素和某些非可测变量的影响,因此,实际的模型已是一个简化了的近似模型。一般而言,在实用的前提下,模型越简单越好。

(2)清晰性。一个复杂的系统是由许多子系统组成的,因此对应的系统模型也是由许多子模型构成的。在子模型之间除为了研究目的所必需的信息联系外,互相耦合要尽可能少,结构要尽可能清晰。

(3)相关性。模型中应该只包括系统中与研究目的有关的那些信息。例如,对一个空中调度系统的研究,只需要考虑飞行的方位航向,而无须涉及飞机的飞行姿态。虽然与研究目的无关的信息包括在系统模型中可能不会有很大危害,但是,因为它会增加模型的复杂性,从而使得在求解模型时增加额外的工作,所以应该把与研究目的无关的信息排除在外。

但是,实际系统中到底哪些信息是本质的,哪些信息是非本质的,这要取决于所研究的问题。例如,为了制定大型企业的生产管理计划,模型就不必反映各生产装置的动态特性,但必须反映产品质量、销售和库存原料量等变化情况。也就是说,各装置的动态特性对这种模型来说是非本质的。相反,为了实现各生产装置的最佳运行,模型就必须反映各装置内部状态变化的、详细的生产过程动态特性。这时,各装置的动态特性就变成本质的了。可见,模型所反映的内容将因其使用的目的不同而不同。

对实际系统而言,模型一般不可能考虑系统的所有因素。从这个意义上讲,所谓模型可以说是按照系统的建模目的所作的一种近似描述。研究者必须承认,如果模型的输出响应y(k)和实际系统的输出响应y(k)“几乎必然”处处相等,记作y(k) →—a.s.y(k),(a.s.意思是almost surely),那么应该说所建立的模型就是满意的了。当然,如果要求模型越精确,模型就会变得越复杂。相反,如果适当降低模型的精度要求,只考虑主要因素而忽略次要因素,模型就可以简单些。这就是说,建立实际系统的模型时,存在着精确性和复杂性这一对矛盾,找出这两者的折中解决方法往往是实际系统建模的关键。

(4)准确性。建立系统模型时,应该考虑所收集的用以建立模型的信息的准确性,包括确认所对应的原理和理论的正确性和应用范围,以及检验建模过程中针对系统所作的假设的正确性。例如,在建立导弹飞行动力学模型时,应将导弹视为一个刚体而不是一个质点,同时要注意导弹在高超声速运动中的特殊性。如果仅考虑导弹的射程问题,导弹在大气中的运动可以作相应的简化,如果是考虑导弹的命中精度问题,就不能作这样的简化。

(5)可辨识性。模型结构必须具有可辨识的形式。所谓可辨识性是指系统的模型必须有确定的描述或表示方式,而在这种描述方式下与系统性质有关的参数必须是唯一确定的解。若一个模型结构中具有无法估计的参数,则此模型就无实用价值。

(6)集合性。建立模型还需要进一步考虑的一个因素,是能够把一些个别的实体组成更大实体的程度,即模型的集合性。例如,对防空导弹系统的研究,除了能够研究每枚导弹的发射细节和飞行规律之外,还可以综合计算多枚导弹发射时的作战效能。

8.2.1.2 相似理论

相似理论是系统仿真学科的最主要的基础理论之一。相似现象是客观世界中普遍存在的一种现象。例如,在天体系统中,行星间的自转运动和轨道运动具有相似性; 在生物系统中,动物与动物之间、动物与人之间对应的器官结构与功能相似,信息获取和处理方法相似; 在建筑工程中,供水与供电系统间存在相似性。甚至在系统内部不同层次之间也可能存在相似性。

相似学是一门研究客观世界中相似规律及其应用的技术科学。它从系统科学角度研究相似问题,以客观世界中的相似现象以及不同类型、不同层次系统间相似特性的形成原理及应用为研究对象,寻求从本质上统一认识客观世界中各种相似现象的形成原理及内在联系,为相关的工程实践活动提供新的科学理论基础。

1. 相似原理

仿真依据的是相似性原理,而相似与否取决于所要研究的问题。相似方式主要有空间相似、时间相似、功能相似、动态特性相似和信息相似等。

(1)空间相似。根据序结构定律,当系统空间序结构存在共同性时,系统之间就表现出相似性。空间相似是一种最基本的相似方式。例如,几何学里的相似多边形之间的相似就属于空间相似。

仿真系统中对外形结构的仿真就是一种空间相似。例如,在坦克驾驶模拟器中,驾驶座舱的外形尺寸要尽量与实车相一致,各种仪表、开关、按钮的形状和空间位置也要尽量与实车相一致。

(2)时间相似。根据序结构定律,当系统时间序结构存在共同性时,系统之间也表现出相似性。例如,许多植物的生长都经历生根、发芽、成长、开花、结果等几个阶段,这种相似就是时间相似。

仿真中对时间相似的运用也比比皆是。以坦克射击模拟器为例,实车在炮手按动发射按钮与听到爆炸声之间有一定的时间间隔,那么在仿真中这个时间间隔就要尽量与实车相一致,过长或过短都会导致仿真的逼真度下降。

(3)功能相似。根据序结构定律,当系统功能序结构存在共同性时,系统之间也表现出相似性。例如,计算机根据预先编制的程序,可以完成数学运算、逻辑推理等人脑完成的工作,具备了人脑的部分功能,在计算机与人脑之间就形成了一定的相似性。这种相似就是功能相似。

从本质上讲,仿真就是对原型系统部分功能的模拟。仿真系统与原型系统的数学模型是相似的,这种相似决定了二者功能的相似性。计算机生成兵力(Computer Generated Force,CGF)与原型系统之间在智能方面的相似性也属于功能相似的范畴。

(4)动态特性相似。两种不同的物理系统,如果它们的动态方程相似,其运动规律就相似。例如,由刚体、线性弹簧和阻尼器构成的简单机械系统和由集中参数LRC元件构成的电系统是两个截然不同的物理系统,但它们的动态方程是相似的,都可以用二阶线性微分方程的形式来描述,两个系统之间就存在相似性。这种相似就是动态特性相似。

动态方程相似的系统,其动态特性就相似,这是控制系统仿真的理论基础。要对一个控制系统进行仿真,首先要建立该系统的数学模型,再通过某种算法将其转化为仿真模型,用计算机来解算,以此研究原型系统的运动规律。

(5)信息相似。根据信息定律,当系统信息作用存在共同性时,系统之间也表现出相似性。例如,许多种动物都靠发出不同的叫声向同伴传递不同的信息,信息传递方式的相似就决定了这些动物之间存在相似性。这种相似就是信息相似。

仿真中最典型的信息相似就是人在回路仿真系统人机(或人与虚拟环境)信息交互与原型系统人机(或人与真实环境)信息交互之间的相似,包括运动感觉信息相似、视觉信息相似、听觉信息相似、触觉信息相似等。

2. 相似方法

实现相似的方法也是多种多样的,下面给出几种常用的方法。

(1)模式相似方法。模式相似方法又包括统计决策法和句法(或结构)方法。

(2)模糊相似法。如果说概率统计是研究一级不确定性问题,那么模糊理论则是研究双重或多级不确定性问题。仿真系统在很多情况下确实存在模糊问题,需要用模糊相似方法来分析仿真系统与真实系统的相似程度(精度)。

(3)组合相似方法。在仿真系统中,即使各个部件和子系统均已获得精度足够高的相似处理,已经满足各自的性能指标,但未必能保证系统的整体性能满足要求,故有必要对各子系统建立组合相似模块并进行综合补偿处理,形成组合相似方法,以适应不同模态和不同情况的需要。在半实物仿真系统中,某些物理量的模拟由于需要的技术和投入比较大,可以采用数学相似加物理相似的方法进行处理。比如激光光斑特性仿真、红外成像特性仿真等需要通过数学相似建立目标本身的光学特性、大气传输特性数学模型实现物理相似,配合物理终端效应设备进行半实物仿真。还比如在进行导引头半实物仿真中,在需要满足弹体姿态运动、导弹运动、目标运动相似关系时,可以采用组合相似处理方法,如将导弹运动、目标运动复合为弹目运动。

(4)坐标变换相似方法。坐标变换相似法是研究空中运动体系统不可缺少的一种方法,经常用于飞行器状态数学模型中,在视景系统的相似变换中更是常用。比如转台的坐标系和转台上的测量器件的坐标系不一致时,需要对驱动转台的信号作坐标变换,因为在弹体方程中解算出的姿态角为欧拉系(偏航、俯仰、滚转的旋转关系),而随转台结构形式、测量器件在转台上的安装方式、工作原理的不同,驱动转台的角度需作相应坐标变换。

3. 相似方法的实现

(1)时间与逻辑相似。采用实时仿真算法和仿真计算机实现数学模型的实时解算,目前仿真步长可以到1ms。采用数字光纤通信网络实现仿真设备间的数字通信,确保仿真系统信号传输延迟控制在毫秒级。

(2)几何相似。即空间几何关系相似,如一个空间运动体有六个自由度,一般采用三轴转台实现三个姿态角运动仿真,在实现姿态角运动仿真时,需要根据转台结构形式采用合适的坐标转换方法。质心运动一般采用数学模型仿真,但也有让转台在一个、两个方向实现平动,从而实现二维的质心运动仿真; 对两个相对运动的空间运动体,一般来讲,姿态运动各自独立模拟,而两个三维质心运动可以组合为一个三维质心运动。

另外一个是仿真对象内的部件(也可以认为是独立的仿真子实体)的相对几何关系相似,一般静态的相对几何关系为安装关系,如运动体中陀螺、线加速度在运动体中的相对安装关系,这种关系会影响到部件的力学环境,即运动体和部件的力学环境不一样。

(3)环境相似。指使仿真对象在仿真空间所受的环境影响,与其在外部物理空间所受到的环境影响一致,这些环境因素包括了可以对仿真对象的状态、性能产生影响的各种因素。

①力学环境。一般包含惯性空间的重力环境、受力环境等; 重力环境不需仿真,直接由几何相似即可保证; 受力环境比较复杂,一般有运动体的动力学环境(空气、流体动力学)、运动体部件(力学环境敏感器件)的受力环境,如车辆发动机受的地面摩擦力矩、飞行器执行机构受的铰链力矩、飞行器气压表受的大气压力等。对于受力环境仿真一般要根据实际情况通过加载器来实现。而根据受力特性的不同分为主动加载和被动加载两种,被动加载指加载的大小与受力对象的状态有关,而受力对象的状态又受加载力影响。

②光学环境。指仿真对象或其部件和敏感到的光学环境。如人体、机器人视觉的光学环境,导弹光学导引头的光学环境,空间运动体的光学敏感器件的光学环境。按照光学敏感器件的不同,一般相应采用视景仿真器、电视图像目标/环境模拟器、红外目标/环境模拟器、红外成像目标模拟器、激光目标/环境模拟器等来实现光学环境相似。

③电磁环境。指仿真对象或其他部件和敏感到的电磁环境。如导弹射频导引头的电磁环境,鱼雷声呐的声学环境。一般采用相应的目标/环境模拟器技术来实现。

8.2.1.3 仿真三要素

从一般意义上讲,系统仿真可以被理解为对一个已经存在或尚不存在但正在开发的系统进行研究的过程中,为了了解系统的内在特性,必须进行一定的实验。而由于系统不存在或其他一些原因,无法在原系统上直接进行实验,只能设法构造既能反映系统特征又能符合系统实验要求的系统模型,并在该系统模型上进行实验,以达到了解或设计系统的目的。由此可以看出,系统仿真本质上是由三个要素构成的,即系统、系统模型和仿真。系统是问题的本源,是系统分析的目的; 仿真是解决问题达到目的的手段; 而系统模型则是连接系统和实验之间的桥梁。

显然,系统仿真是一项社会实践活动。凡是包含系统、系统模型和仿真三个要素的活动都可以广义地理解为系统仿真活动。联系这三个要素的有三个基本活动: 系统模型建立、仿真模型建立和仿真实验。图8-1描述了计算机仿真三要素及三个基本活动的关系。

图8-1 计算机仿真三要素及三个基本活动关系图

建模活动是通过对实际系统的观测和检测,在忽略次要因素及不可检测变量的基础上,用物理或数学的方法进行描述,从而获得实际系统的简化近似模型。仿真模型反映了系统模型同仿真器或计算机之间的关系,能为仿真器及计算机所接受并在其上运行。仿真实验就是将系统的仿真模型置于计算机上运行的过程。系统仿真是通过实验来研究实际系统的一种技术,通过仿真活动可以弄清系统内在结构变量和环境条件的影响。

1. 系统

系统仿真的研究对象是具有独立行为规律的系统。所谓系统是指相互联系又相互作用着的对象的有机组合。从广义上讲,系统的概念是非常广阔的,大到无垠的宇宙世界,小到分子原子。

根据系统的物理特征可以将系统划分为两大类,即工程系统和非工程系统。所谓非工程系统是指自然和社会在发展过程中形成的,被人们在长期的生产劳动和社会实践中逐渐认识的系统。例如社会、经济、管理、交通、生物系统等属于非工程系统。所谓工程系统是指人们为满足某种需要或实现某个预定的功能,利用某种手段构造而成的系统。工程系统的例子非常多,如机械、电气、动力、化工、武器系统等。

对于一个系统来说,不论它是大还是小,都必然存在三个要素,即实体、属性和活动。所谓实体是指组成系统的具体对象。例如,在商品销售系统中的实体有经理、部门、商品货币、仓库等。系统中的各个实体既具有一定的相对独立性,又相互联系构成一个整体。所谓属性是指实体所具有的每一项有效特性。例如,商品的属性有生产日期、进货价格、销售日期、售价等。所谓活动是指随着时间的推移,在系统内部由于各种原因而发生的变化过程。例如零售商品价格的增长等。

系统是在不断地运动、发展、变化的。由于组成系统的实体之间相互作用而引起实体属性的变化,使得在不同的时刻,系统中的实体和实体属性都可能会有所不同,这种变化通常用状态的概念来描述。在任意给定时刻,系统中实体、属性以及活动的信息总和称为系统在该时刻的状态。用于表示系统状态的变量称为状态变量。

系统不是孤立存在的。自然界中的一切事物都在相互联系和相互影响。任何一个系统都可能由于系统之外出现的变化而受到影响。这种对系统的活动结果产生影响的外界因素称为系统的环境。在对一个系统进行分析时,必须考虑系统所处的环境,而首要的便是划分系统与其所处环境之间的边界。系统边界包围系统中的所有实体。

系统边界的划分在很大程度上取决于系统研究的目的。例如在商品销售系统中,如果仅考虑商品仓库库存量的变化情况,那么系统只需包括采购部门、仓库以及销售部门即可。但若要研究商品进货与销售的关系时,系统中还要包括市场调查部门,因为商品销售状况及对进货的影响这部分职能是由该部门完成的。

同时,系统在某些条件下是可以分解的。也就是说,构成系统的某个实体本身也可以看成为一个单独的系统来进行分析研究,这个系统称为原系统的一个子系统或分系统。系统研究包括系统分析、系统综合和系统预测等方面。研究系统首先需要描述清楚所研究系统的实体、属性、活动及环境。因为系统的概念不仅与实体有关,而且与研究者的目的有关,只有在对实体、属性、活动、环境作了明确的描述之后,系统才是确定的。

2. 模型

系统模型可以定义为: 为了达到系统研究的目的,用于收集和描述系统有关信息的实体。

模型是对相应的真实对象和真实关系中那些有用的和令人感兴趣的特性的抽象; 是对系统某些本质方面的描述; 它以各种可用的形式提供被研究系统的信息。模型描述可视为是对真实世界中的物体或过程相关信息进行形式化的结果。模型在所研究系统的某一侧面具有与系统相似的数学描述或物理描述。从某种意义上说,模型是系统的代表,同时也是对系统的简化。另一方面,模型应足够详细,以便从模型的实验中取得关于实际系统的有效结论。一般来说,系统模型的结构具有相似性、简单性、多面性等性质。

3. 仿真

给出一个系统的数学模型之后,有时用分析手段就可以求解系统有关的信息,但是当不能应用分析法的时候,就需要应用仿真求解。

与应用数学分析方法求解问题相比较,仿真求解问题的缺点是很明显的,即它只能给出问题的特解而不能给出问题的通解。然而,能用数学分析法求解的问题的范围毕竟是有限的。用数学分析法求解问题时,要对系统加以抽象和近似处理,以使模型适于用数学分析方法求解。在许多方面,理想情况下是把仿真的应用作为已经得到的、但过于简化的数学分析解答的一种补充。

系统、模型与仿真三者之间有着十分密切的关系,系统是研究对象,模型是系统特性的抽象描述,仿真则包含建立模型及对模型进行试验两个过程,通过对模型的实验以达到研究系统的目的。

8.2.1.4 仿真分类

在模型研究中,为方便起见,需要对系统仿真模型进行分类,一般可以按如下原则分类:

(1)根据模型的类型,系统仿真可以分成物理仿真、数学仿真和物理—数学仿真。

物理仿真是按照实际系统的物理性质构造系统的物理模型,并在物理描述模型上进行实验的过程。

数学仿真是在对系统进行抽象,并将其特性用数学关系式加以描述得到系统的数学模型的基础上,对数学模型进行实验的过程; 数学仿真也称为计算机仿真。

半实物仿真是把系统的一部分写成数学模型,而另一部部分则构造其物理模型,然后将它们连接成系统模型进行实验,就称为物理—数学仿真,是数学仿真与物理仿真的结合甚至实物联合起来进行实验的过程,也称为半实物仿真。

物理仿真的优点是直观且形象化,但建模周期长、花费大。数学仿真的特点是经济、方便。计算机为数学模型的建立与实验提供了较大的灵活性,目前数学仿真一般就是在计算机上建立系统的数学模型并进行实验。因此数学仿真通常也称为计算机仿真。

(2)根据仿真中所用计算机的类型,计算机仿真又可以分为模拟仿真、数字仿真和混合仿真。

模拟仿真是基于数学模型相似原理上的一种方法,仿真的主要工具是计算机,模拟仿真的特点是直观、运算速度快,但精度较差。

数字仿真基于数值计算原理,仿真的主要工具是数字计算机和仿真软件。数字仿真自动化程度高,具有复杂逻辑判断的能力,而且可以获得较高的精度。混合仿真是将模拟仿真和数字仿真相结合的一种方法,仿真的主要工具是混合计算机系统。混合仿真兼备模拟仿真和数字仿真的优点,可以快速地进行多次仿真研究,因此特别适用于参数寻优、统计分析等方面的应用,尤其是在复杂系统的实时仿真方面体现出极大的优越性。

(3)从仿真实现的角度来看,系统模型特性可分为两大类,一类称为连续系统,另一类称为离散事件系统。由于这两类系统固有运动规律的不同,因而描述其运动规律的模型形式就有很大的差别。相应地,系统仿真技术也分为两大类: 连续系统仿真和离散事件系统仿真。

连续系统是指系统的状态随时间连续变化的系统。这里要注意有些连续系统如数据采集系统的状态数据是在离散时间点上获得的,是非连续的,但其状态本身则是连续变化的。连续系统的模型可以用一组连续的方程描述。

离散事件系统的特点是系统的状态变化只在离散的时间点上发生,且发生时刻往往是随机的,系统的状态变化是由随机事件驱动的。

(4)按仿真时间与实际时间的比例关系分为: 实时仿真(仿真时间标尺等于自然时间标尺)、超实时仿真(仿真时间标尺小于自然时间标尺)和亚实时仿真(仿真时间标尺大于自然时间标尺)。

实时仿真: 仿真时钟与实际时钟完全一致,也就是模型仿真的速度与实际系统运行的速度相同。当被仿真的系统中存在物理模型或实物时,必须进行实时仿真,例如各种训练仿真器就是这样,有时又称在线仿真。

亚实时仿真: 仿真时钟慢于实际时钟,对于仿真速度要求不苛刻的情况下均是亚实时仿真。例如大多数系统离线研究与分析,有时也称为离线仿真。

超实时仿真: 仿真时钟快于实际时钟,例如大气环流的仿真以及交通系统的仿真。

(5)按对象的性质分为: 宇宙飞船仿真、化工系统仿真、经济系统仿真等。

8.2.1.5 离散事件系统建模方法

离散事件系统建模方法有着与连续系统截然不同的特点。离散事件系统的时间不是连续变化的,而系统的状态仅在一些离散的时刻上由于随机事件的驱动而发生变化。由于状态是离散变化的,而引发状态变化的事件是随机发生的,因此这类系统的模型很难用数学方程来描述。随着系统科学和管理科学的不断发展及其在军事、航空航天、计算机集成制造和国民经济各领域中应用的不断深入,逐步形成一些与连续系统不同的建模方法,其主流是流程图和网络图。本章先介绍离散事件系统中常用的随机数的产生与检验方法,然后介绍离散事件系统建模方法的两种图示方法(实体流图法和活动周期图法)和一种网络图方法(Petri网法)。

在介绍方法之前,先简要介绍一下离散事件系统中要用到的一套建模术语和离散事件系统建模结构。

状态只是在离散时间点上发生变化,而且这些离散的时间点一般是不确定的(随机的),这类系统的仿真称为离散事件系统仿真。

离散事件系统和连续系统在性质上是完全不同的,这类系统中的状态在时间上和空间上都是离散的,像交通管理、计算机网络、各种通信系统和社会经济系统等都属于离散事件系统。该类系统中,各事件以某种顺序或在某种条件下发生,并且大都属于随机性的,或者是由于随机的输入,或者是由于系统元素的属性值作随机变化,使得难以用常规的方法去研究它们。

在连续系统的数字仿真中,时间通常被分割成均等的或非均等的间隔,并以一个基本的时间间隔计时; 而离散事件系统的仿真则经常是面向事件的,时间指钟往往不是按固定的增量向前推进,而是由于事件的推动而随机递进的。

在连续系统仿真中,系统模型是由表征系统变量之间关系的方程来描述的,仿真的结果表现为系统变量随时间变化的时间历程; 在离散事件系统仿真中,系统变量是反映系统各部分相互作用的一些事件,系统模型则是反映这些事件的数集,仿真结果是产生处理这些事件的事件历程。

由于离散事件系统固有的随机性,对这类系统的研究往往十分困难。经典的概率及数理统计理论、随机过程理论虽然为研究这类系统提供了理论基础,并能对一些简单系统提供解析解,但对工程实际中的大量系统,只有依靠计算机仿真技术才能提供较为完整的结果。

1. 离散事件系统建模与仿真的基本概念

(1)实体(entity)。实体是组成系统的个体,为系统的三要素(实体、属性、活动)之一。在离散事件系统中,实体可分为两大类: 临时实体和永久实体。

在系统中只存在一段时间的实体称做临时实体。这类实体由系统外到达并进入系统,然后通过系统,最终离开系统。疏散中的人员显然是临时实体,它们按照一定的规律经过安全门疏散,经过排队等候后即离开系统。永久性地驻留系统建模与仿真在系统中的实体称为永久实体。疏散中的建筑物是永久实体,只要系统处于活动状态,这些实体就存在,或者说,永久实体是系统处于活动的必要条件。

临时实体按一定规律不断地到达系统,在永久实体作用下通过系统,最后离开系统,整个系统呈现动态过程。

(2)属性(attribute)。属性是实体特征的描述,也称为描述变量,一般是实体所拥有的全部特征的一个子集,用特征参数或变量表示。

选用哪些特征参数作为实体的属性与仿真目的有关,一般可参照以下原则选取。

①便于实体的分类。例如,将疏散模型中的人员性别(男、女)作为属性考虑,可将“人员”实体分为两类。

②便于实体行为的描述。例如,将飞机的飞行速度作为属性考虑,便于对“飞机”实体的行为(如两地间的飞行时间)进行描述。

③便于排队规则的确定。例如,生产线上待处理工件的优先级水平有时需要作为“工件”实体的属性考虑,以便于“按优先级排队”规则的建立与实现。

(3)状态(state)。状态是对实体活动的特征状况的划分,其表征量为状态变量。如在理发店服务系统中“顾客”有“等待服务”、“接受服务”等状态,“服务员”有“忙”和“闲”等状态。状态可以作为动态属性进行描述。

(4)活动(activity)。离散事件中的活动,通常用于表示两个可以区分的事件之间的过程,它标志着系统状态的转移。例如,顾客到达事件与顾客开始接受服务事件之间可称为一个活动,该活动使系统的状态(队长)发生变化。顾客开始接受服务事件与顾客服务结束事件之间也可以称为一个活动,它使队长减1,使服务员由忙变闲。活动总是与一个或几个实体的状态相对应。

(5)事件(event)。事件就是引起系统状态发生变化的瞬间操作或行为。由于事件的发生会导致状态的变化,而实体的活动可以与一定的状态相对应,因此可以用事件来标示活动的开始与结束。

在一个系统中往往有许多类事件,而事件的发生一般与某一类实体相联系,某一类事件的发生还可能会引起其他事件的发生,或者使另一类事件的条件成立等。为了实现对系统中的事件进行管理,仿真模型中必须建立事件表,表中记录每一个已经发生的或者将要发生的事件类型、发生时间以及与该事件相联系的实体的有关属性等。

在仿真模型中,由于是依靠事件来驱动,除了系统中固有事件(又称为系统事件)外,还有所谓“程序事件”,它用于控制仿真进程。

图8-2 事件、活动、进程间的关系示意图

(6)进程(process)。进程由若干个有序事件及若干个有序活动组成。一个进程描述了它所包括的事件及活动之间的相互逻辑关系及时序关系。事件、活动、进程三者之间的关系可用图8-2表示。

(7)仿真钟。仿真钟用于表示仿真时间的变化。在连续系统中,将连续模型进行离散化而成为仿真模型时,仿真时间的变化基于仿真步长的确定,可以是定步长,也可以是变步长。在离散事件动态系统中,引起状态变化的事件的发生时间是随机的,因而仿真钟的推进步长完全是随机的; 而且,在两个相邻发生的事件之间系统状态不会发生任何变化,因而仿真钟可以跨过这些“不活动”周期。从一个事件发生时刻直接推进到下一个事件发生时刻,仿真钟的推进呈现跳跃性,推进的速度具有随机性。可见,仿真模型中时间控制部件是必不可少的,以便按一定规律来控制仿真钟的推进。仿真钟的推进方法如下。

①事件调度法(事件增量法)。按下一最早发生事件的发生时间推进。

在事件调度法中,事件表按事件发生时间先后顺序安排事件。时间控制部件始终从事件表中选择具有最早发生时间的事件记录,然后将仿真钟修改到该事件发生时刻。对每一类事件,仿真模型有相应的事件子程序。每一个事件记录包含该事件的若干个属性,其中事件类型是必不可少的,要根据事件类型调用相应的事件子程序。在事件子程序中,处理该事件发生时系统状态的变化,进行用户所需要的统计计算; 如果是条件事件,则应首先进行条件测试,以确定该事件是否能发生; 如果条件不满足,则推迟或取消该事件。该事件子程序处理完后返回时间控制部件。这样,事件的选择与处理不断地进行,仿真钟不断地从一个事件发生时间推进到下一最早发生事件的发生时间,直到终止仿真的条件或程序事件发生时停止仿真。

②固定增量法。早期的离散事件仿真中采用此方法,其类似于连续系统的等步长方法策略。现简要说明如下。

选择适当的时间单位T作为仿真时钟推进时的增量,每推进一步作如下处理: 若该步无事件发生,则仿真钟再推进一个单位时间T; 若该步内若干事件发生,则认为这些事件均发生在该步的结束时刻。为便于进行各类事件处理,用户必须规定当出现这种情况时各类事件处理的优先顺序。

这种方法的缺点是显而易见的。首先,仿真钟每推进一步,均要检查事件表以确定是否有事件发生,增加了执行时间; 其次,该步任何事件的发生均认为发生在这一步的结束时刻,如果T选择较大,则会引入较大的误差; 而且要求用户事先确定各类事件的处理顺序,增加了建模的复杂性。

固定增量推进法主要用于系统事件发生时间具有极强的周期性的模型,如定期订货的库存系统,以年、月为单位的经济计划系统等。

(8)统计计数器(counter)。连续系统仿真的目的是要得到状态变量的动态变化过程并由此分析系统的性能。离散事件系统的状态变量随着事件的不断发生也呈现出动态变化过程,但仿真的主要目的不是要得到这些状态变量是如何变化的,因为这种变化是随机的。某一次运行得到的状态变化过程只不过是随机过程的一次取样,因而如果进行另一次独立的仿真运行所得到的变化过程可能完全是另一种情况,所以它们只有在统计意义下才有参考价值。在仿真模型中,需要有一个统计计数部件,以便统计系统中的有关变量。

(9)队列(queue)。处于等待状态的实体序列。在离散事件系统建模时,队列可作为一种特殊实体对待。在售票处、入口、电梯等地方人群有时候自动出现排队行为。

2. 离散事件系统建模结构

任何一种仿真方法都必须提供一种描述模型动态行为的手段和方法,即建模结构,建模结构反映了仿真方法组织状态转移过程中执行的动作或操作的方式。每种仿真方法都决定了自己特有的建模结构,都要求建模人员把整个系统的操作(动作)划分成自己的基本构建块(或代码块)。传统的仿真方法与事件、活动、过程概念密切相关,每一种构建块都是一个与状态转移有关的动作(操作的程序块)。程序块的执行和交互由控制结构处理。根据建模机理的不同,目前离散事件仿真的建模结构主要可分为以下五类。

(1)事件建模。即事件调度(event scheduling,ES)建模方法,ES的基本构建块是事件子程序,ES首先要确定引起系统状态发生改变的事件,然后把与该事件有关的所有状态改变组织在一个代码块中,即事件子程序。它包括与这些状态改变有关的所有要执行的动作,所有条件测试均在相应的子程序内完成。包括状态改变所需资源的测试,以及事件发生所释放的资源等。

(2)活动建模。即活动扫描(activity scanning,AS)建模方法,AS的基本构建块是活动。AS首先确定系统要执行的活动,它描述系统由于状态的改变而执行的动作,描述分两部分: ①条件,即执行活动所必须满足的条件; ②动作,即描述活动所执行的操作集合。这些操作只有当条件满足时才能执行,因而活动的描述非常类似于AI中的规则。

(3)过程建模。即过程交互(process interaction,PI)建模方法,PI的基本构建块是过程,PI的基本思想是认为模型应描述一个实体流经系统的生命周期过程,按顺序描述一个实体在它的整个生命周期中所经历各个阶段,以及在每个阶段应执行的动作,每个过程都是一个单独的代码块,并与其他过程进行交互。交互由控制结构控制,在仿真中每个实体按自己的过程描述相继通过各个阶段。直到由于某些原因而被停止,从而产生一定的延迟,这时控制转移到其他过程,一旦满足某些条件,延迟被解除,控制又返回该过程,则实体继续向前移动,因此过程要详细地描述它的阻塞点和重新激活点,以便能正确地控制过程之间的交互。

(4)对象建模。即面向对象的(object oriented,OO)建模方法,在面向对象的建模方法中,建模的基本构建模块是代表系统中实体的对象,对象封装了实体的所有属性、特征、事件和行为,它们是现实中真实对象的一种计算机抽象。面向对象方法不仅仅是一种程序设计技术,而且是一种新的思维方式,是一种完全不同于传统功能设计的方法。面向对象的方法为离散事件仿真提供了一种新的建模途径,它试图使用户能够以应用领域熟悉的、直观的对象概念来建立仿真模型,建模观点与人们认识现实世界的思维方式一致。传统的仿真建模方法利用事件、活动或过程的概念建立仿真模型,面向对象的仿真则通过构成系统的对象来建立模型,在结构上对象的抽象层次更高,在概念上对象更接近于现实世界,而且对象具有模块性、封装性、局部性、可重用性等显著特点。因此,与传统的仿真方法相比,面向对象的仿真建模具有更大的灵活性,更强的建模能力,而且构造的模型容易理解、交流,便于修改、扩充和维护。面向对象的仿真一直是近些年仿真研究领域的热点之一。

(5)建模。即基于Agent(agent based,AB)的建模方法,它是随着DAI技术的发展而逐渐兴起的新建模分析技术。在这种建模结构中,Agent成为仿真模型的基本构成元素。Agent可以理解为具有完整计算能力的智能主体,它具有认知、推理、决策、规划、通信以及协作等行为能力和特征,是有别于对象的一种更高层次的建模概念。在基于Agent的仿真建模中,建模人员是以赋予知识与技能的形式来赋予Agent一定的行为特征和智能,并以Agent组织的形式来构筑模型; 在仿真中,通过Agent之间自主的交互、协作行为来模拟现实系统的行为。

基于Agent的仿真建模技术是一种新兴的面向智能体的建模与仿真技术,可以说,它继承了对象建模的一般形式和所有优点,并且由于建模元素具有更高的主动性和智能性,使得这种建模方法能够实现更加复杂、传统方法无法完成的仿真建模分析,例如对人类的学习、合作、协商等行为的模拟,对自然、生态中的演化行为的仿真等。另外,由于Agent本身具有完整的计算能力,所以仿真模型在结构上和控制方式上与其他方法有很大差别,具有更灵活的实现形式,并且能够充分利用计算机系统的并行计算和分布式计算能力,使仿真系统具有更强大的仿真能力。基于Agent的仿真建模技术,已经成为当前仿真技术领域的一个主要研究方向。

3. 离散事件系统仿真的一般步骤

离散事件系统仿真研究的一般过程类似于连续系统仿真,它包括系统建模、确定仿真算法、建立仿真模型、设计仿真程序、运行仿真程序、输出仿真结果并进行分析等。下面仅就离散事件系统仿真中的一些特殊问题进行讨论。

(1)系统建模。离散事件系统的模型一般可以用流程图或网络图的方式来描述。它们都反映了临时实体在系统内部经历的过程、永久实体对临时实体的作用以及它们之间的逻辑关系。系统建模方法: 实体流图法、活动周期图法、Petri网。

(2)选择仿真算法。离散事件系统的仿真算法包括两方面的内容,其一是如何产生所需的随机变量,其二是采用怎样的仿真方法对离散事件系统进行仿真,即仿真策略、仿真的方法,主要有事件调度法、活动扫描法、进程交互法、三阶扫描法(三阶段法)等。

(3)建立仿真模型。根据已确定的仿真算法,建立被仿真系统的计算机模型(变量定义及程序流程)。它是系统状态转移的动态描述,因此首先要定义系统的状态变量,这要根据系统的内部结构及仿真研究的目的来确定。即使是同一系统,仿真研究的目的不同,系统状态可能不同。

在离散事件系统中,状态的变化是由事件引起的,因此,要在定义系统状态的基础上定义系统事件及其有关属性。以事件调度法为例,事件类型及发生时间是必要的属性之一,其他还包括对事件处理的规则,是FIFO还是LIFO,或者是别的什么规则,以便按实际系统要求进行处理。在活动扫描法及进程交互法中,还要定义活动及进程,以便按活动或进程的观点来建立仿真模型。

仿真钟是仿真模型中必不可少的部件,它的推进方法决定于仿真算法。

(4)设计仿真程序。仿真程序是模型的实现,可以自己编写或采用仿真语言编程,如GPSS、SLAM、SIMAN。

(5)仿真结果分析。由于离散事件系统固有的随机性,每次仿真运行所得到的结果仅仅是随机变量的一次取样,那么仿真结果的可信性如何,如何提高仿真结果的置信水平,这些问题在这类系统仿真中占有突出的地位。

离散事件系统仿真结果分析可分为终止型仿真(仿真运行长度事先已确定)输出数据的分析、稳态型仿真(仅运行一次,但时间足够长)输出数据的分析和系统方案比较。

8.2.1.6 面向对象建模

面向对象技术与仿真相结合,形成了一种新的建模、仿真方法——面向对象的建模与仿真方法(Object Oriented Modelling&Simulation,OOMS)。它是一种框架化、层次化和模块化的建模与仿真方法,有利于提高模型的封装性、灵活性、重用性、可扩展性和可维护性,在各个领域得到了广泛的应用。

OOMS根据系统的对象及其相互作用关系来构造仿真模型。仿真模型的对象通常表示了实际系统的实体,从而弥补了模型与实际系统之间的差距,而且面向对象的仿真,其分析、设计和实现系统的观点与人们认识系统的自然思维方式极为一致,因而增加了仿真研究的直观性和易理解性。面向对象的仿真具有可扩充性和可重用性,为仿真大规模的复杂系统提供了极为方便的手段。面向对象的仿真容易实现与计算机图形学、人工智能、专家系统与决策科学的结合,从而可以形成新一代面向对象的建模仿真环境。

面向对象技术o Object-oriented technology)是20世纪90年代软件工程发展的关键及焦点技术。它精心选取并有机地集中了在它之前出现的系统层次分割法、自顶向下法、结构化程序设计方法、抽象数据类型法和结构数据类型法的精华,充分体现了软件工程的三种基本思想:模块化、信息隐蔽与抽象,较好地解决了软件部件化和重用性问题,从而提高了软件的可靠性、可维护性和生产率。

1. 面向对象概念

面向对象的思想首先出现在程序设计语言中,随着研究与应用的不断深入与发展,它以良好的机制和能力受到人们的普遍重视。现在面向对象技术已经渗透和应用到诸多复杂的工程领域,如面向对象软件工程、面向对象信息管理系统、面向对象操作系统、面向对象专家系统、面向对象开发工具、面向对象用户界面以及面向对象仿真。基于面向对象思想与方法的技术许多可以直接或间接地应用到面向对象仿真中,特别是面向对象软件工程中的OOA、OOD和OOPD作为面向对象仿真的有机组成部分。

(1)面向对象的基本概念。

①对象(object)。“对象”一词的含义很广,客观世界中的任何事物在一定的前提下都可以成为认识的对象。为了研究对象,必须用某种形式去表示对象。对象本身有动静两个方面的内容需要表示: 静的一面指的是对象的种类所属,动的一面指的是对象的行为活动。属性和活动是相互影响的,属性界定了对象的可能活动,而活动又能改变对象自身的属性状态。同时,对象之间存在相互作用与依存关系。因此,对象表示包括三个方面: 属性、活动、关联关系。在计算机内部,对象通常可用三元组来表示: 对象<接口,数据,操作>。

其中,接口描述对象与其他对象的关系,数据描述对象的属性,操作描述对象的行为活动。

②面向对象(object-oriented)。“面向对象”可从世界观、方法论和实现技术三个方面去理解。其一,“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界视为由许多对象构成的,每个对象都有自己的内部状态和运动规律,不同的对象间的相互联系和相互作用构成了完整的客观世界; 其二,“面向对象”是从结构组织描述客观世界的一种方法,该方法的基本着眼点是构或客观世界的基本成分——对象; 其三,“面向对象”是在计算机上实现模拟客观世界的一种技术。模拟的实现是将客观对象抽象为概念对象,再转换成相应的计算机对象。

从面向对象的观点去认识客观世界,用面向对象的方法去描述客观世界,用面向对象的技术在计算机上去实现客观世界,就构成了“面向对象”的完整含义。

③消息(message)。消息是描述对象间的相互作用的一种方式。在面向对象方法中,对象间的相互作用用对象间的收发消息来实现。当一个消息发送给某个对象时,该消息包含要求接受对象去执行某些活动的信息。接到消息的对象经过解释,然后予以响应。程序的执行是由在对象间传递消息来完成的。

④类(class)。类是一组相似对象的集合,它描述了该组对象的共同行为和属性。对象在软件运行过程中由其所属的类动态生成。一个类可以生成多个不同的对象,这些对象虽然内部状态的类型与名称相同,但它们可以有不同的内部状态值。

(2)面向对象的基本特征。上述对象、类和消息的程序设计范式的着眼点在于对象的封装性、继承性、实体的多态性以及动态联编等面向对象的四大特征。

①封装性(encapsulation)。将一个对象的数据和操作组合起来,然后将其封装并限定在一严格的范围内,只能被同类中的操作过程直接访问,不允许其他类的对象的介入。即将系统改变的影响限制在对象内。

②继承性(inheritance)。一个类可以有父类和子类,它们形成一种层次结构。这种层次结构的一个重要特点是继承性,即一个子类能继承其父类的全部描述,包括全部属性与操作。继承性是父类与子类共享数据和方法的机制。这种机制使人们可以在一个已存在的类的基础上,通过加入若干新的内容,来定义和实现一个新的类。

在面向对象仿真系统中,利用继承机制,可以使仿真系统引入新的数据结构、语义和模块,从而使仿真系统成为开放系统,能不断扩展其展模的能力。

③多态性(polymorphism)。在收到消息后,对象要予以响应。不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态性。应用多态性,用户可以发送一个通用的消息给多个对象,每个对象按自身的情况决定是否响应和如何响应该消息。

④动态联编(dynamic Binding)。在面向对象程序设计语言中,消息的传送用过程调用的方式来实现。联编是把一个过程调用和响应调用的执行码结合在一起的过程。如这个过程在编译时进行,叫做静态联编; 在运行时进行,则称动态联编。通常面向对象程序设计语言采用动态联编的方式,因为存在多态性,程序难以静态地确定要执行的代码,而只能在运行时根据条件动态地确定。

2. 面向对象分析

OOA将对象概念及面向对象的风格运用于系统分析。这种方法采用了实体、关系、属性等信息造型中的概念,同时采用了封装、类结构和继承性等面向对象程序设计语言的概念。在OOA中问题空间的映射是直接的。OOA通常包括以下一些步骤。

(1)识别对象。辨别问题空间包含哪些客观对象,并按研究目的将其抽象和表示出来。对一个复杂系统中的对象的识别,很大程度上依赖于具体的问题空间的特征和分析人员的经验,还没有普遍适用的规则。

(2)识别结构。结构指对象间的组织方式,用来反映问题空间中的复杂事物的关系。对象结构主要有两种: 分类结构用于描述事物类别之间的继承关系; 部分整体结构用于描述事物的部分与整体之间的组合关系。

(3)识别主题。主题是一种关于模型的抽象机制,它给出了系统分析结果的概貌,有利于读者理解对象和结构之间的关联关系。

(4)定义属性。属性是数据元素,记录对象的状态信息,为对象及结构提供更多的细节。

(5)定义方法。通常先应定义每一种对象和分类结构应有的行为,其次应定义对象的实例之间必要的通信,即定义实例间的消息关联。

3. 面向对象设计

OOD将系统的设计过程看成是把要求解的问题分解为一些对象及对象间传递消息的过程。从面向对象分析到面向对象设计是一个逐渐扩充模型的过程。面向对象分析主要描述问题域和系统任务,而面向对象设计是面向对象分析的扩充,主要是增加各种实现软件系统必须的组成成分。

在面向对象的系统开发方法中,分析和设计虽然是不同的活动,但两者密切相关; 分析得到对象及其相互间的关系,而设计则是解决这些对象及其相互关系的实现问题。设计阶段划分为两个步骤: 概要设计和详细设计。概要设计的主要任务是定义系统是如何工作的,因此,对于工作平台、计算能力和存储容量等不加限制。在详细设计阶段,要考虑这些问题,并进一步细化概要设计所生成的产品。概要设计的主要工作如下。

(1)对象行为和对象间交互作用的进一步细化,加入必要的新对象。由于系统的行为很大程度上体现在对象间的交互作用上,因此要给出交互作用的明确且完全的定义。

(2)类的认定。在分析阶段已经把对象组织成一定的结构形式(层次结构),在此基础上对类加以认定,以得到解空间的结构形式,为实现提供支持。

(3)对重用的支持。类认定以后,组成类库,用以支持重用。在应用时,在类库中选择所需要的类,实例化以后得到对象。

详细设计是紧接着概要设计进行的,其目的是为实现做好准备。编程所需要的主要是有关对象的描述,因此,详细设计阶段所给出的对象描述将是这个阶段的主要工作。

8.2.1.7 Agent建模

针对复杂系统问题研究的需求,[美]SFI(Santa Fe Institute)学者提出了一种新思想,这就是系统复杂性特别是涌现性的出现是自上而下的,并取决于构成系统的构件(building block)及其他相互间的非线性作用,这种构件被称之为主体(agent)。20世纪90年代以来,Agent已成为计算机和人工智能领域研究的重要前沿。与此同时,许多领域(如社会科学、经济系统、生物科学、生态科学、工程技术、仿真科学等)都依次展开了建模与仿真研究工作,并取得了重大成果。因为Agent和MAS(muti-agent systems)最初来源于分布式人工智能的研究,故本节起名为“基于智能技术的Agent/MAS建模方法与技术”。

1. Agent的概念

“agent”一词的译名有主体、智能体、智能主体、代理、代理体、代理人等,很多文献中都不加以翻译,直接采用“agent”或“Agent”来表达。Agent的概念源自于20世纪70年代,其标志为Hewitt的Actor模型。20世纪80年代后期,随着计算机网络技术的发展,Agent引起了科学界、教育界、工业界甚至娱乐界的广泛兴趣,成为DAI乃至整个计算科学的重要研究领域之一。

Agent的定义曾经一直比较模糊,Jacques为Agent总结了一个最基本的定义: Agent是一个物理的或虚拟的实体,它具有以下特点:

(1)能够在一个环境中活动。

(2)能够直接与其他Agent通信。

(3)受一组倾向(以个人目标或它试图优化的一个满足/生存函数的形式)的驱动。

(4)拥有自己的资源。

(5)能够感知它的环境(有限地)。

(6)对其环境仅有局部的表达(或者根本没有)。

(7)它拥有技能并能够提供服务。

(8)如需要,能够自我繁殖。

(9)其行为倾向于考虑它可用的资源和技能,并依赖于它的感知、表达和它收到的交流信息,来满足它的目标。

实际上,目前对Agent的定义还有很多,尚无一个公认的普遍性的定义。目前,专家们一致公认的是,Agent一般应该具有自主性、交互性、反应性和主动性这四条基本性质。

(1)自主性。Agent具有属于其自身的计算资源和局部于自身行为控制的机制,能在无外界直接操纵的情况下,根据其内部状态和感知到的外部环境信息,决定与控制自身的行为。

(2)交互性。能与其他Agent进行多种形式的交互,能有效地与其他Agent协同工作。

(3)反应性。能感知所处的环境,并对相关事件作出适时反应。

(4)主动性。能遵循承诺采取主动行动,表现出面向目标的行为。

由于Agent具有上述的各种性质和特征,因此,它与面向对象方法中的对象(object)具有明显的区别。

第一,Agent具有主动性,它有自己的目标及面向目标的行为,能遵循承诺采取主动行为,而且具有自学习、自适应的能力。而对象是被动的实体,其行为是指由消息(message)去调用对应的方法(method),完成方法所规定的工作。对象无法表现面向目标的动作和行为。

第二,Agent是一个自主的计算实体,能够在没有外界直接操纵的情况下,根据自身所处的环境、内部的状态与知识,以及外部事件来决定和控制自身的行为,而对象是受控的,没有信息执行的控制机构,对接受到的信息只是机械地执行信息所规定的动作,无法理解其含义。

第三,对象间是以消息传递方式通信的,因此需要明确对方的存在。而Agent间的通信既可以了解对方,直接通信,又可以不了解对方,间接通信。

2. 方法原理

(1)Agent建模。一个Agent的特性取决于它的结构和行为。Nwana从软件Agent的角度定义了Agent的三层概念结构: 定义层、组织层和合作层(如图8-3所示)。这个概念结构提供了一种描述Agent应用特征的框架。

图8-3 Agent的三层概念结构

定义层: 在这一层中,Agent被描述为一个自治的理性实体,包括Agent的推理学习机制、目标、资源、技能等。

组织层: 定义了Agent与其他Agent的关系,包括Agent在Agent团体中所扮演的角色,以及Agent之间的相互感知等。

合作层: 指明了Agent的社会能力,例如它的合作和协商技术。

图中的另外两层: 通信层定义Agent之间通信的更低一级的细节。API层将Agent与它的资源、技能的物理实现联系起来。

实际上,设计者对上述这些问题的不同观点反映了不同研究领域、不同需求对Agent的不同要求。因此,不同的研究领域所提出的Agent模型也是不尽相同的,但就普遍意义而言, Agent的内部功能模块大都包含了感知模块、通信模块、推理模块、执行模块、内部状态库及知识库等部分,其结构如图8-4所示。

Agent的结构也决定了它在感受外界环境的刺激或者与其他Agent协作时的内部工作模式。图8-5以具有推理能力的Agent为例,说明了Agent的内部工作原理。其中,Agent的推理模块能够完成对外来刺激或请求的建模描述、决策、规划等功能。

图8-4 Agent结构示意图

图8-5 Agent内部工作原理

在各个不同领域与学科中,Agent具有不同的含义。起初Agent仅作为构成系统的构件,后来被扩展为一种智能体,它可以是智能软件、智能设备、智能机器人或智能计算机,甚至可以是人。由此概念和定义出发,Agent不仅具有自治性、社会能力、响应性、能动性等行为特征,而且还有知识、信念、责任、承诺等精神状态特征。

可见,Agent是一个能够与外界自主交互并拥有一定知识和推理能力,能够独立完成一定任务的具有社会性的智能实体。这样,在复杂系统(如复杂工程系统、军事作战系统、社会系统、交通管制系统、电子交易系统等)建模与仿真中,便可能由许多Agent按一定规则结合成局部细节模型,并利用Agent间的局部连接准则构造出复杂系统的整体模型,最后借助计算机系统实现模型运行,进行仿真试验研究。在基于Agent的建模与仿真(ABMS)中,一般是在基于Agent的模型形式化框架下,采用形式化规范方法利用Z语言来构造Agent模型。

(2)MAS建模。目前MAS的设计与开发广泛采用自然语言、框图等非形式化描述方法。而形式化建模方法是以逻辑、自动机、代数和图论等数学理论为基础。图8-6给出了基于MAS的分布式仿真平台及其智能结构。

(3)技术特点。

①Agent建模是一种基于智能技术的新方法,对复杂系统建模有着普遍的重要作用。

②MAS是多个Agent构成的自适应柔性动态系统与典型分布式计算机系统,通常由三种组织结构模式: 完全集中式、完全分布式和混合式,可满足多种建模目标需求,有效地解决大规模复杂系统建模问题。

③Agent技术是一种先进计算机技术,特别适合用来解决具有模块化、分散化、可变性、不良结构、复杂性等特征的应用问题。

④Agent技术具有下列显然优势:

a. 与传统系统(如可用数学方程描述的系统,可求解的规范系统等)方法相比较,Agent技术不仅可提供建模方法,而且可给出问题的解,还可用演示系统演化全部动力学特征,这是传统分析方法或数值方法所无法达到的。

b. 对于无法求解,或当没有合适方法求解,或许多参数无法计算的系统和问题,采用Agent技术可详尽地研究系统多种特征,并对问题进行求解。

c. 对于无法采用形式描述和数学计算的问题,仍然可通过Agent交互来解决,而这类问题恰恰广泛存在于经济系统、社会系统和生物系统等复杂系统。

图8-6 基于MAS的分布式仿真平台及其智能结构

d. 已有基于Agent的建模和开发工具(软件)(如由SFI研制的Swarm等)被成功应用于复杂系统问题研究。

e. MAS已成为计算机及自动化领域一项关键性主流技术和研究分布式智能控制的主要工具。MAS形式化建模方法对于MAS进行描述和研究,以及对系统模型分析与验证是至关重要的,也是MAS理论的一个重要研究方向。

8.2.1.8 仿真建模步骤

系统仿真的一般步骤对于每一个成功的仿真研究项目,其应用都包含着特定的步骤。不论该研究的类型和目的如何变化,仿真的过程是保持不变的,大致经过以下几个步骤。其流程如图8-7所示。

1. 问题的阐述

问题的提出是系统研究的第一步,所提出的问题必须是清楚明白的,必要时可以对问题进行重复陈述。问题一般由决策者,或者是在获得决策者对问题的同意的情况下由系统分析人员提出。

2. 系统的分析与描述

在这一步中首先要给出系统的详细定义,明确系统的构成、边界、环境和约束。其次是根据问题确定系统的目标,以及目标能否实现的衡量标准。同时对解决问题的途径,可能的花费、预期的效益进行分析。

图8-7 系统仿真一般步骤

3. 建立系统数学模型

根据系统分析的结果,确定系统中的变量,依据变量间的相互关系以及约束调价,将它们用数学的形式描述出来,并确定其中的参数,即构成系统的数学模型。所建立的数学模型必须是对系统的那些与研究目的有关的基本特性的抽象,即利用数学模型所描述的变量及作用关系接近于真实系统。同时,数学模型的复杂度应当适中。模型过于简单,可能无法真实完整地反应系统的内在机制; 而模型过于复杂,可能会降低模型的效率同时又增加了不必要的计算过程。

4. 数据收集

构造数学模型和收集所需数据之间是相互影响的,当模型的复杂程度改变时,所需的数据元素也将改变。数据收集包括收集与系统的输入输出有关的数据以及反映系统各部分之间关系的数据。

5. 建立系统的仿真模型

仿真模型是指能够在计算机上实现并运行的模型。建立系统的仿真模型过程包括根据系统的数学模型确定仿真模型的模块结构,确定各个模块的输入输出接口,确定模型和数据的存储方式,选择编制模型的程序设计语言等。程序设计语言包括通用语言和专用仿真语言。专用仿真语言的优点是使用方便,建模仿真功能强,有良好的诊断措施等,缺点是模型格式确定,缺乏灵活性。

6. 模型验证

模型的验证需要回答下述问题,即系统模型(包括对系统的组成成分、系统结构以及参数值的假设、抽象和简化)是否准确地由仿真模型或计算机程序表示出来。验证与仿真模型及计算机程序有关,将复杂的系统模型转换成可执行的计算机程序不是容易的事,必须经过一定工作量的调试,若输入参数以及模型的逻辑结构在程序中是正确表达的,则模型验证通过。

7. 模型确认

确认是确定模型是否精确地代表实际系统,是把模型及其特性与现实系统及其特性进行比较的全过程。对模型的确认工作往往是通过对模型的校正来完成的,比较模型和实际系统的特性是一个迭代过程,同时应用两者之间的差异,以对系统和模型获得透彻的理解,从而达到改进模型的目的。这个过程重复进行直到认为模型足够准确为止。

确认模型就是建立模型的可信度。但是,现在还没有哪一种确认技术可以对模型的结果作出100%的确定。我们永远不可能证明模型的行为就是现实的真实行为。通过确认,我们可以判断模型的有效程度。假如一个模型在得到我们提供的相关正确数据之后,其输出满足我们的目标,那么它就是有效的。模型只要在必要范围内有效就可以了,而不需要尽可能的有效。在模型结果的正确性同获得这些结果所需要的费用之间总存在着权衡。

下面是判断模型有效性的一些指标:

(1)模型性能测度是否同真实系统性能测度匹配。

(2)如果没有现实系统来对比,可以将仿真结果同相近现实系统的仿真模型的相关运行结果作对比。

(3)利用系统专家的经验和直觉来假设复杂系统特定部分模型的运行状况。

(4)模型的行为是否同理论相一致? 确定结果的理论最大值和最小值,然后验证模型结果是否落入两值之间。

(5)改变输入参数,通过观察输出的变化方向来验证模型的有效性。

(6)模型是否能够准确地预测结果? 这项技术可用来对正在运行中的模型连续有效性进行验证。

(7)是否有其他仿真模拟器模拟过该模型? 假若有则可将两个模型的运行结果进行对比。

8. 试验设计

仿真试验设计就是确定需要进行的仿真试验的方案。方案的选择与系统分析设计的目的以及模型可能的执行情况有关,同时也与计算机的计算能力以及对仿真结果的分析能力有关。通常仿真试验设计涉及的内容包括初始化周期的长度、仿真运行时间、每次运行的重复次数等。

9. 仿真运行研究

仿真运行就是将系统的仿真模型放在计算机上执行计算。在运行过程中了解模型对各种不同的输入数据及各种不同的仿真机制的输出响应情况,通过观察获得所需要的试验数据,从而预测系统的实际运行规律。模型的仿真运行是一个动态过程,需要进行反复的运行试验。

10. 仿真结果分析

对仿真结果进行分析的目的是确定仿真试验中所得到的信息是否合理和充分,是否满足系统的目标要求,同时将仿真结果分析整理成报告,确定比较系统不同方案的准则、试验结果和数据的评价标准及问题可能的解,为系统方案的最终决策提供辅助支持。

从仿真技术上可以将上述步骤分为三个阶段: ①模型的建立阶段; ②模型的变换阶段; ③模型试验阶段。

模型建立阶段的主要研究内容是根据研究目的、系统的原理和数据建立系统模型,这一阶段的关键技术是建模方法学。

模型的变换阶段的主要研究内容是根据模型的形式、计算机的类型及仿真目的将模型转换成适合计算机处理的形式,这一阶段的关键技术是仿真算法。

模型试验阶段的主要任务是设计好仿真试验方案,将模型装载到计算机上运行,按规定的规则输入数据,观察模型中变量的变化情况,对输出结果进行整理、分析并形成报告,这一阶段的关键技术是仿真软件技术。

图8-8 计算机仿真的三个阶段

以上三个阶段划分的仿真过程如图8-8所示。

8.2.2 建模数学基础

8.2.2.1 仿真概率统计基础

在离散事件系统仿真中,系统内部实体的活动是不确定的,事件的发生具有随机的性质,对于这种随机的过程需要采用概率及统计的方法描述,离散事件系统模型一般与概率分布有关,因此建模者需要从已知的数据中选择合适的分布形式,作该分布的参数估计,然后进行检验以观察是否获得合适的拟合,最终得到离散事件系统的概率模型。随机变量在离散事件系统仿真中起着重要的作用,因此掌握随机变量的有关知识是非常必要的。

1. 确定事件和随机事件

(1)确定事件。确定事件是可以事先预言的,即在准确地重复一定的条件下,其变化的结果总是确定的,或者根据其过去的状态,相同的条件下可以预言将来的发展变化,我们把这一类事件称为确定性事件。确定性事件的主要特征是事件可以用一个确定的数学形式来描述: f (t)或是数学函数,或是数学图表等。在给定条件下进行的试验中,一定发生的必然事件或一定不发生的不可能事件都是确定事件。

(2)随机事件。在给定条件下进行的试验中,可能发生也可能不发生,而在大量重复试验中却具有某种规律性的事件,称为随机事件。

随机事件的变化结果是事先不可预言的,即在相同的条件下进行重复实验,每次结果未必相同,或者是知道其过去的状况,在相同的条件、未来的发展事先都不能确定,这一类事件我们称为随机性事件。它的主要特征是事件的描述可以通过数学统计的方法描述。

研究随机性事件所利用的数学工具是概率论及数理统计,但对实际系统中随机事件进行研究时,往往由于众多的随机因素使得数学描述和分析变得十分困难,这时我们往往求助于计算机仿真。仿真为这类复杂的随机系统的研究提供了一个方便有效的手段。

2. 随机变量与概率

(1)随机变量。如果试验的每个结果用变量ξ的一个值来表示,即ξ的值根据试验结果来确定,因而它取什么值是随机的,而且对任意实数x,ξ

0≤P(ξ<x)≤1

随机变量又可以分为离散型随机变量和连续型随机变量。

①离散型随机变量。若随机变量只取有限个数值或可列无穷多个数值,则称此类随机变量为离散型随机变量。

数学定义: 如果一个随机变量x的一切可能取值为x1,x2,…,xn,…,并且X取值xn的概率为Pn,则X为一个离散型随机变量,{p1,p2,…,pn,…}称为X的概率函数。其中Pn必须满足下列两个条件:

分布函数: 离散型随机变量X的累积分布函数定义,当X小于或等于某个给定值x的概率函数,记为P(X≤x) =F(x)。

设随机变量X可能取值x1,x2,…,xn,…则X的累积分布函数为

其中Pi为X取值的概率。

由定义可见当x<y时,F(x)≤F(y),即F(x)是个单调增加的函数。

②连续型随机变量。若随机变量可以取值于某个区间中的任一数,我们称为连续型随机变量。

数学定义: 若存在非负函数f(x),使得随机变量X取值于任一区间(a,b)的概率为

则称X为连续型随机变量,f(x)称为X的密度函数。

对于密度函数f(x)有

分布函数: 连续型随机变量的累积分布函数定义为随机变量小于或等于x的概率。它用F (x)表示,即

由累积分布函数定义可知,0≤F(x)≤1

当x1<x2,F(x1)≤F(x2)。

累积分布函数是单调递增函数。

(2)概率。如果对某项试验重复进行了n次,事件A发生了m次,则称A在这次试验中的频率为m/n。在大量重复某项试验时,就会发现事件的频率在试验次数很大而且不断增大的过程中呈现稳定性。这种统计规律性表明: 事件发生的可能性大小是事件本身固有的客观属性。称事件A发生可能性的大小为事件A的概率,记为P(A)。当试验次数n足够大时,可以用事件的频率作为事件概率的近似值,即:

P(A)≈m/n

概率是一个在区间[0,1]上取值的实数。

随机变量ξ取值小于实数x的可能性的大小,即随机事件{ξ<x}发生的概率,介于数0和1之间:

0≤P{ξ<x}≤1

3. 随机数和随机变量的产生

随机数是指具有确定分布和概率的、位于一定阈值内的一组数字。除了传统的均匀分布随机数之外,还有非均匀分布随机数,例如二项分布、Poisson分布和指数分布等。

在许多仿真过程中,事件的发生是随机的,或者事件的属性值的确定具有偶然性。例如,仿真中广泛应用的决策逻辑中,偶然性的影响和作用是非常大的。在一个系统的运行中,已知按照一条给定的路径运行有一定的可能性,在对系统的仿真中需要有一种方法能够选定这条路径,从而使仿真器的长期行为更加接近于真实系统。由于在多数情况下这个决策是不确定的,对路径的选择通常要基于概率关系。因此,几乎在所有的仿真模型中都需要有某种装备用来产生随机数。

由于这些随机因素的存在,在建模过程中就可能需要用服从各种分布的随机变量来描述系统中存在的随机性和偶然性问题。随机变量产生的基础是随机数,随机数可以通过对[0,1]区间上均匀分布抽样生成,曾经使用过的真正随机数的发生器包括: ①用袋装有小球,进行可放回抽样; ②微秒级时钟上的低阶数字; ③一个随机电子噪声源的周期性量化输出值。

这些方法都可以产生真正的随机数。但它们有一个共同的缺点,就是应用在仿真研究中时,用这些方法产生的随机数序列通常不能复现。而在很多情况下,系统决策需要进行多次仿真比较才能确定,因此重现性是非常必要的。

(1)伪随机数。大量的方法被应用于克服随机数序列所固有的不可重现性。在讨论这些方法之前,首先介绍对随机数发生器的要求。

①所产生的数必须服从均匀分布。至于拟合的优良程度,建议采用大样本量的χ2检验。样本容量N可以取1000至10000之间的数。

②所产生的数必须是统计独立的。随机数序列中一个数的值不能影响下一个数的值。如果随机数序列缺少独立性就可能被拒绝,但随机数序列被接受并不能证明它的独立性。

③所产生的随机数序列必须是可重现的,这样就允许仿真试验重复进行。

④所产生的随机数序列在任何需要的长度内必须是不重复的。这在理论上可能是做不到,但从实践的角度讲,通常是出现相当多的随机数之后出现周期性变化。这可近似地认为随机数是不重复的。随机数发生器的重复性循环出现的长度称为它的周期。

⑤随机数产生的速度必须快,因为在仿真运行中通常需要处理大量的随机数,如果随机数发生器速度慢,就必然大大增加仿真运行的时间和费用。

⑥用于产生随机数的方法应当占用尽可能小的存储空间,仿真模型通常需要大量的存储空间,而存储空间总是有限的,如此宝贵的资源在产生随机数的过程中占用得越少越好。一个随机数序列R1,R2,…,RN必须具备两个重要的性质: 即均匀性和独立性。所谓均匀性是指,如果把随机数的采样区间分成n个相等长度的子区间,那么在每一个子区间上观察到的随机数的期望数为N/n,其中N为观察总次数; 独立性是指一个数值出现在一个特定子区间的概率与前面已经取到的数值无关。

根据对随机数发生器的要求,就可以评价为了补偿随机数序列所缺乏的重现性而采用的方法。第一种方法是利用某种手段生成一个随机数序列并将它永久保存起来,例如,保存在计算机硬盘上。这种方法并不能使人满意,因为每次对随机数的需求都必须进行一次读操作,这种操作是非常浪费时间的,这种方法为了满足随机数重复周期的要求,必须存储一个很大的随机数序列。第二种方法是利用某种手段生成一个随机数序列并将其保留在计算机内存中。这种方法可以克服第一种方法中的速度问题,但是要满足多个仿真研究的需要就应存储一个相当大的随机数序列,这就要求有非常大的内存量。第三种也是最常用的一种方法,是利用某种算法根据指定的输入值来产生随机数。这种方法克服了速度和内存容量上的问题,但同时又带来了在独立性和可重复性方面的问题。运用某种算法产生随机数可能会破坏随机的基本性质,因此利用算法所产生的随机数被称为伪随机数PRN(Pseudo Random Number)。这些数满足一定的随机性准则,但它们的产生总是以某个称之为“种子”的确定初始值开始,并且是一个完全确定的、重复的过程。在仿真研究中对利用算法产生的伪随机数序列进行合理性检验也是非常重要的。

伪随机数中的“伪”字并不意味着产生了一个假的随机数或随机数序列。这里使用“伪”字是指由一个已知的方法所产生的随机数的真正作用是排除了真正的随机性。如果知道了产生随机数的方法,那么任何一个随机数序列便可以重复地产生出来,这样就会认为这些数不是真正的随机数。然而,不管采用什么方法,产生随机数的目的是使所产生的随机数序列能尽可能地接近均匀分布和独立性的理想性质。

当然,伪随机数会与理想随机性产生一定的偏差。例如所产生的数可能不服从均匀分布,数的均值太高或太低,数的方差可能太高或太低,可能存在一定的周期性变化等。为此,需要对所产生的伪随机数序列进行均匀性和独立性检验。如果检验出的偏差超出许可范围,就不能接受相应的伪随机数产生方法。

图8-9 平方取中法步骤

(2)随机数产生的方法。计算机产生随机数的通常方法是利用一个递推公式:

Xn=f(Xn-1,Xn-2,…,Xn=k)

给定了k个初始值Xn-1,Xn-2,…,Xn=k,就可以利用这个递推公式推算出第k+1个数Xk+1:

Xk+1=f(X1,X2,…,Xk)

递推公式有多种形式,其中最常见的有两种:平方取中法和同余法。

重复上述过程,可得二进制n为数序列X1,X2,X3…。令yn=Xi2-n,则Y1,Y2,Y3…就是所需要的(0,1)均匀分布随机数序列。

②同余法。同余法是将一组数据通过一系列特定的数字运算,最后利用一个数字的整除求余,所得的数值就是一个伪随机数。因为这个计算过程,则称该求随机数的方法为同余法。

同余法有三种: 加同余法、乘同余法和混合同余法。其中以混合同余法产生的随机数统计性质较好,因而获得了最为广泛的应用。

同余法具有计算简便的优点。

产生随机数的递推公式是: Xn+1=(a Xn+c)mod M

当a=1时,加同余法;

当c=0时,乘同余法;

当a≠1、c≠0时,混合同余法。

8.2.2.2 仿真系统的VV&A及可信度评估

模型是对包括系统、实体、现象、过程在内的真实世界的数学的、物理的或逻辑的描述,仿真则是建立系统模型应用模型运行预测未来、辅助设计和进行科学研究的全过程。它们既区别于真实客观事物又不同于传统的实物试验,而是基于相似理论采用建模和物理方法对真实系统(或过程)的抽象、映射、描述和复现。因此,建模与仿真必须严肃地回答及证实如下三个问题: ①模型是否正确地描述了实际系统的外部表征和内在特性? ②仿真是否有效地反映了模型数据、性状和行为? ③仿真结果是否实现了应用目标与用户需求? 这就是通常所说的可信性(credibility)、有效性(validity)和可接受性(acceptability)问题。由于仿真模型总是不可能完全准确地描述和复现真实系统(或过程),所以最大的问题是可信性问题; 缺乏可信性的模型和仿真系统是没有任何意义的,故仿真界专家们认为仿真可信度是系统仿真最重要的性能指标,也是仿真科学与技术发展的生命线。这不仅对于一般中、小仿真系统如此,而且对于大型复杂仿真系统尤为重要。

可见,为了保证获得有效的、可信的和可接受的仿真结果,必须对模型和仿真系统进行校核、验证和确认(verification validation accreditation,简称VV&A)。

大型复杂仿真系统VV&A是针对可信度评估而实施的一项活动,它贯穿于整个系统开发的全生命周期,其意义和作用是十分重大的,主要体现在如下六个方面:

(1)可以有效地提高仿真结果的正确性,增强应用仿真系统的信心。

(2)可以降低应用仿真系统的风险,尤其避免灾难性风险,从而做到缩短研制周期,提高开发效率。

(3)可能降低仿真系统的总投资,提高应用效率。

(4)有利于对科学研究问题进行全方位分析。

(5)扩大仿真系统应用范围,提高仿真系统的重用性。

(6)可以促进仿真系统的全面质量管理,提高管理水平和效率。

总之,建模与仿真的VV&A是系统仿真领域中非常重要的共用技术,是评估和确保大型复杂仿真系统特别是军用复杂仿真系统可信度必不可少的工作过程和方法。

1. 基本概念及相关概念

(1)基本概念。如前所述,仿真系统存在一个可信性问题,或者说可信度评估问题。仿真系统的可信度可以通过校核与验证加以测量和评判,通过确认来正式地加以认证,从而使仿真系统可以为某一特定的应用目的服务,这个过程就是仿真系统的校核、验证与确认。

美国DOD5000.61《国防部建模与仿真校核验证与确认》对校核、验证与确认进行了如下严格定义:

①校核(verification)。确定仿真系统准确地代表了开发者的概念描述和技术要求的过程。

②验证(validation)。从仿真系统应用目的出发,确定仿真系统代表真实世界正确程度的过程。

③确认(accreditation)。官方正式地接受一个仿真系统为专门的应用服务的过程。

进一步讲,校核、验证和确认要解决的问题分别是:

①校核是确定仿真系统模型及其仿真实现是否准确的表达了开发者需求的迭代过程,侧重于对仿真建模过程的检验,即检查仿真模型代码和逻辑是否正确,是否准确地完成了仿真系统的预期功能。

②验证是证实仿真系统的真实性,是对数学模型和逻辑模型输出进行的彻底检查,应用从真实世界或一个可信源数据与仿真系统的输出行为和结果进行比较而得到仿真系统是否逼真的结论。因此,验证的最根本方法是实验、观测和比较,最鲜明的目的是提供一组支持模型或仿真对特殊应用的可信性证据。

图8-10 校核、验证和确认之间的联系及效应

③确认是解决仿真系统是否适合特定应用的问题,由官方或权威机构作出仿真系统对某一特定应用是否接受的最终决策。它建立在上述VV&A结果的基础上,并与一个可接受性标准/规范进行比较来完成。

由此可知,校核涉及“是否正确地建立了仿真系统”的问题,验证涉及“是否建立了正确的系统模型”的问题,确认涉及“是否可以使用仿真系统”的问题,三者既独立又密切联系,且为仿真系统的功能评估、性能评估、有效性评估和可信度评估奠定了基础,提供了科学依据,如图8-10所示。

2. 可信性、可信度与逼真度

可信性与可信度是两个不同的概念。可信性是一个定性而非定量的术语,是指用户在模型中看到适合自己使用的性能,并且拥有对模型或仿真能够服务于他的目的的信心,即仿真系统使用者应用仿真解决具体问题和行为决策的信心。具体讲,如果决策者和其他关键项目人员承认模型或仿真及其数据是“正确的”,则该模型或仿真及其数据就具有可信性。

可信度是一个定量的术语,目前有多种定义,较为确切的是“仿真系统的使用者对应与仿真系统在一定环境、一定条件下仿真试验的结果,解决所定义问题正确性的信任程度”,或者说“仿真系统作为原型系统的相似替代系统在特定的建模与仿真的目的和意义下,在总体结构和行为水平上能够复现原型系统的可信性程度”。

所谓逼真度就是模型或仿真以可测量或可察觉方式复现真实世界对象的状态和行为的程度。逼真度分为模型逼真度和仿真逼真度。

模型逼真度是指“在研究目的的限定条件下,模型相对于仿真对象的近似程度”。

仿真逼真度则是“仿真对仿真对象某个侧面或整体的外部状态和行为的复现程度”。

3. VV&A的原则和工作模式

(1)仿真系统VV&A原则。建立和正确应用仿真系统VV&A原则,不仅是VV&A工作成功的保障,而且能够有效地利用资源。

仿真系统VV&A原则是关于VV&A基本观点和活动准则的总结,可简要归纳如下:

①完全的VV&A是不可能的。所谓完全的VV&A是指在所有可能的输入条件下,测试或检查模型或仿真,在实际工程中是不可能做到的。因此,VV&A活动范围应根据应用的可信性需求合理的确定。

②不存在绝对正确的模型。因为任何模型都是基于相似理论的真实系统(或过程)的替代物,总是近似的,因此只有相对正确的概念。自然,VV&A的目标不是要证明模型或仿真的绝对正确性,而是要保障它们对于应用目标充分地精确。

③VV&A应当贯穿于系统仿真的全生命周期。由于仿真系统开发的各个阶段都对M&S的可信性有重要影响,所以VV&A应该在系统仿真中是一个持续不断的过程,即VV&A工作应与仿真系统开发并驾齐驱,才能充分发挥VV&A作用。

④正确清楚地阐述问题是VV&A的基础。爱因斯坦曾指出“一个问题正确的阐述甚至比解决它更重要”。因此,对需求定义和仿真系统预期应用的清楚、准确阐述是VV&A工作的前提,否则VV&A活动将失去意义。

⑤仿真可信性是相对于仿真系统的应用目的而言的。由于仿真系统是一种仿真环境或仿真平台,它应该能适应相当广泛的一类仿真研究。这样对于同一个仿真系统若应用目的不同,逼真度要求就不同,自然会得到关于可信性的不同结论,因此校核、验证和确认都将是针对预期应用进行的。

⑥仿真系统的验证不能保证仿真系统对于预期应用的可接受性。因为影响系统可接受性的因素是多方面的,它不仅包括模型的有效性,而且与系统仿真的目标和需求有关。所以仿真系统的验证只是仿真系统具有可用性(usability)的必要条件,而不是充分条件。

⑦尽可能避免或减小VV&A中的三类错误。在仿真过程可能出现三类错误: a.Ⅰ型错误: 当仿真结果足够可信时却不接受(拒绝)所造成的错误; b.Ⅱ型错误: 无效的仿真结果被认为是有效而予以接受(不拒绝)所造成的错误; c.Ⅲ型错误: 由于问题描述与表达不正确或不准确而使仿真研究工作围绕非本质问题而进行,导致仿真试验结果不准确或与实际研究问题无关。应注意,犯Ⅰ型错误的概率称为对建模者的不信任风险,但不会造成VV&A费用的增加; 犯Ⅱ、Ⅲ型错误的概率分别称为模型用户风险和问题描述与表达风险,这种错误有可能导致严重后果。

⑧每一子系统的VV&A并不能保证整个仿真系统的可信性。这是显而易见的,因为每个子系统的可信性都是在特定范围内具有足够的可信性,其误差积累最终可能导致整个仿真系统的误差超出允许的范围,所以它并不能保证整个仿真系统是足够可信的。

⑨仿真系统的确认不是简单的肯定或否定的二值逻辑问题。确认的内涵应该是仿真系统的M&S在多大程度上与仿真目标相适应,是定量地评估描述,而不是简单说成“好”或“不好”。

⑩VV&A既是一门艺术,又是一门科学,需要创造性和洞察力。VV&A并不是一个简单的选择和运用VV&A技术的过程,而是每项工作都需要VV&A人员像艺术家那样精心设计和构思。VV&A是集系统工程、软件工程、计算机技术、建模与仿真理论和方法以及各类领域知识为一体的一门科学,因此是一项团队工作,需要发挥集体智慧和创造性及洞察力。

分析人员对VV&A的成功有着直接的影响。VV&A不仅需要通过测试获得数据,更需要进行深入细致地分析,尤其是对于无法通过测试来检验的问题。同时,分析人员还要参与VV&A的工作,因此他们对VV&A的成功有着直接影响。

VV&A必须做好计划和记录工作。计划在VV&A实施过程中起着导向作用,格式化的记录不仅是当前持续不断VV&A的必要写实,而且将为VV&A的下一步工作提供信息,作为重要参考或借鉴。

VV&A需要某种程度的独立,以便将开发者的影响减到最小,这就是相对独立性原则。这是因为VV&A工作类似于建筑工程中的工程监理,不仅需要与开发人员相互配合,更需要本身独立从事。

成功的VV&A需要对所使用的数据进行VV&A。这就是数据有效原则,为了保证数据的有效性,必须对VV&A所有用到的数据进行校核和验证。

(2)VV&A工作模式。VV&A工作是同仿真系统开发同步进行的,并贯穿于仿真系统全生命周期。与软件生命周期概念类似,仿真系统生命周期是指仿真系统从提出问题开始,通过完成需求分析、设计、实现、测试等开发工作,直到仿真系统运行(即使用)、维护及管理的全过程,如图8-11所示。

图8-11 仿真系统生命周期

VV&A工作模式就是上述仿真系统生命周期VV&A过程模型。它描述了VV&A活动的踪迹、内容和工作框架,如图8-12所示。

图8-12 仿真系统生命周期VV&A活动

①定义需求。需求是说明一个特定仿真应用的详细需要的功能、表达、条件、约束和假定的集合,它包括问题(系统)需求、用户需求和仿真需求。

②需求校核。需求校核亦称需求分析,其任务是确定需求是否是完全的、清晰的、可测试的,并且是相互一致的。

③制定VV&A计划。VV&A计划包括V&V计划和确认计划两大部分。V&V计划拟制了所有同仿真系统校核与验证有关的活动,而确认计划则规定了与系统确认有关问题和可接受性标准。

④概念模型验证。概念模型验证是要确定概念模型中显示的能力是否包括了满足需求所必需的全部能力。通常要完成如下两项主要工作: ⓐ确保需求在概念模型中得到了充分正确的体现; ⓑ检查概念模型是否充分满足了仿真的预期用途和仿真目标。

⑤设计校核。设计校核要解决的问题是仿真系统设计是否清晰、正确,是否与概念模型中定义和描述的需求相一致; 目的在于保证所有特征、功能、行为、算法以及交互作用被正确和完整地包含在设计表达和文件中。主要工作包括: ⓐ校核需求映射; ⓑ评估算法; ⓒ校核接口;ⓓ评估时间和空间; ⓔ校核数据转换方法; ⓕ校核已转换的数据; ⓖ校核测试计划。

⑥仿真实现校核。仿真实现校核要解决的问题是确定仿真实现与仿真运行是否符合设计要求。主要工作包括: ⓐ检查是否满足设计要求; ⓑ校核代码; ⓒ校核软/硬件的映射; ⓓ校核硬件; ⓔ校核初始数据; ⓕ校核系统性能。

⑦仿真结果验证。仿真结果验证亦称为运行验证,是VV&A工作中最重要的内容。它将通过仿真系统测试(包括功能测试、性能测试、互操作测试等)来检查仿真系统整体工作能力,并与真实系统(过程)进行比较,作出相应评估。仿真结果验证的主要工作包括: ⓐ将测试映射到需求; ⓑ验证必须的行为、表示法、算法及模型; ⓒ验证数据; ⓓ判定错误等。

图8-13 确认概念与VV&V的关系

⑧系统确认。确认过程是仿真系统VV&A工作过程的重要组成部分,它建立在V&V工作基础上,两者关系如图8-13所示。仿真系统确认过程包括如下工作:ⓐ制定确认计划; ⓑ收集和评估确认信息;ⓒ进行确认评估; ⓓ作出确认决定。其中前三项任务由确认代理完成,而第四项工作在确认代理做出建议的基础上由用户完成。

4. 仿真系统VV&A方法

(1)仿真系统校核方法。校核是VV&A的基础,实质是检验仿真系统开发者是否正确地实现了设计目标要求的过程。对于计算机仿真,最常见的是校核程序模型的逻辑和代码,因此校核方法基本上是将软件检验方法修改后用于仿真模型的校核。校核将从仿真模型建立过程中如下的不同环节和不同角度进行。

①仿真误差源校核。理论和实践证明,系统仿真误差源主要包括仿真模型误差、仿真方法误差、计算机计算误差和仿真硬件误差等。

仿真模型实际上是基于系统数学模型的二次简化模型,二次简化建模过程中将不可避免地引入各种误差,同时建模中受随机噪声干扰、数据长度限制和测试与采样系统精度影响,都会带来各种计算误差。仿真方法和算法误差来自截断误差、舍入误差和信号重构误差等方面。硬件误差对于计算机仿真来说主要涉及由于计算机字长有限而引起的舍入误差。总之,仿真误差源校核将主要针对上述二次建模误差、计算误差、截断误差、舍入误差等进行。

②仿真程序校核。原则上,软件工程领域的所有软件校核方法都可以用于仿真程序(即仿真模型)的校核。表8-1给出了目前仿真模型的各种校核方法。

表8-1 仿真模型校核方法分类

(2)仿真系统验证方法。验证是仿真系统VV&A最重要的内容,它总是同预期应用目标紧密相连的,将在很大程度上反映仿真系统的功能、性能、行为是否满足所有提出的可接受性标准,是否具有足够的精度和交互能力,以满足应用目标的需求。

验证主要包括如下两方面: 其一是检查概念模型是否正确地描述了原型系统(即实际系统); 二是检查数学模型(或实物模型)输入/输出行为是否充分接近原型系统的输入/输出行为。目前,用于仿真系统验证的方法很多,可视具体仿真对象和应用目标而选用,亦可采用它们相结合的混合方法。表8-2给出了仿真系统的验证方法及分类。下面仅重点讨论一般最大熵谱估计法和新的基于神经网络的最大熵谱估计法,供读者参考使用。

表8-2 仿真系统的验证方法及分类

5. 可信度评估方法

仿真可信度是由仿真系统与原型系统之间的相似性决定的,是仿真系统与仿真应用的相适应程度,在仿真系统开发和应用中占有举足轻重的作用。因此,仿真可信度评估方法的研究及应用一直是仿真界极为关注的问题。

仿真可信度评估包括仿真模型和仿真系统的校核、验证和验收,与前述VV&A是两个不同的概念。简单地说,仿真系统的可信度为VV&A提供了目标,而VV&A是仿真可信度评估的基础和重要内容。

随着仿真科学与技术的发展和应用领域的不断扩大,仿真系统特别是大型复杂仿真系统的可信度评估越来越重要,其评估方法与日俱增。目前,大型复杂仿真系统可信度评估方法除常用的层次分析评估法、模糊综合评判法和模糊层次分析评估法等外,还出现了灰色综合评估法、相似度辨识评估法、基于逼真度评估法等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈