管理系统模拟2.ppt
管理系统模拟,系统研究的有效方法,哈尔滨工业大学管理学院 马维忠副教授,管理科学与工程系列课程,管理系统模拟 马维忠,2,方差缩减技术,对仿真的输出结果进行统计分析的主要目的是获得系统状态变量的高精度的统计特性,以便能够对仿真结果加以正确的利用。但获得高精度的代价便是计算时间和存储空间的巨大耗费。,管理系统模拟 马维忠,3,尤其是对复杂而庞大的系统来说,为进行统计分析而要求的计算能力和存储空间无法被满足,在这种情况下就不得不降低仿真结果的精度,甚至可能降到无法接受的程度。为了消除这个矛盾,有必要采用方差缩减技术,即在相同的仿真运行次数下获得较小方差的仿真输出结果。,管理系统模拟 马维忠,4,1 公用随机数法(CRN),公用随机数法是最有用且最普通的方差缩减技术,它可以应用于对两个或几个不同的系统模型进行比较的情况。,管理系统模拟 马维忠,5,对于不同系统模型来说,所观测到的仿真运行结果是有差异的。造成这种差异的原因可能有两个,一个是系统模型构造上的差异;另一个是环境因素,这主要表现在对于系统的同一个随机特征不同的模型所取的随机变量值不同。,管理系统模拟 马维忠,6,采用公用随机数法的目的就是在其它环境条件完全相同的情况下,尽量消除选取随机数造成了仿真运行结果的差异,而使所观测到的差异仅起因于系统模型本身的差异。,管理系统模拟 马维忠,7,公用随机数法的思想就是,在不同模型的仿真运行过程中,采用相同的单位均匀分布种子随机数流。,管理系统模拟 马维忠,8,管理系统模拟 马维忠,9,为了实施公用随机数法,需要使各个模型中的随机数同步,即在一个模型中使用于一个具体目的的随机数,在所有其它模型中也应使用于这同一目的,管理系统模拟 马维忠,10,在仿真中达到这种同步的一般原则为:(1)如果能够有几个可同时工作的不同随机数发生器,则可用一个发生器专门为一个指定的随机变量产生种子。不同的随机变量用不同的随机数发生器。(2)事先产生出所需的随机数并存储,在对每个模型仿真运行时按需要取用它们。(3)尽量使用逆变换法产生随机变量,因为这种方法每产生一个随机变量仅需要一个单位均匀分布随机数。,管理系统模拟 马维忠,11,2 对偶变量法(AV),对偶变量法是一种应用于单个系统模型仿真运行时的方差缩减技术。对于同一个系统模型,每次仿真运行中得到的观测数据是存在差异的,同样,这种差异可能是由于随机数的选取引起的。采用对偶变量法的目的就是尽量消除这种差异。,管理系统模拟 马维忠,12,对偶变量法的中心思想就是在系统模型的两次仿真运行过程中,设法使第1次运行中的小观测值能够被第2次运行中的大观测值补偿,或反之。,管理系统模拟 马维忠,13,这相当于采用两次运行中观测值的平均值作为分析的基准数据点,而这个平均值与所估计的观测值的期望更接近。一般情况下,对偶变量法使用互补的随机数驱动系统模型的两次仿真运行。,管理系统模拟 马维忠,14,管理系统模拟 马维忠,15,五、仿真模型校验,校验的概念校验过程和方法,管理系统模拟 马维忠,17,1 基本概念,国际仿真界已达成一种共识,与模型和仿真(Modeling and Simulation,M&S)有效性有关的主要工作包括模型的验证和确认(Verification and Validation,V&V)版本管理(Configuration Management,CM和认定(Accreditation)。,管理系统模拟 马维忠,18,美国军事运筹学会关于这些概念的定义如下:,管理系统模拟 马维忠,19,模型验证是一个过程,它确定模型的计算机实现是否准确地表示了模型开发者对系统的概念表达和描述。,管理系统模拟 马维忠,20,模型确认是一个过程,它从预期应用的角度来确定模型表达实际系统地准确程度。,管理系统模拟 马维忠,21,模型版本管理是一种制度,它应用技术上和行政上的监督、控制手段,辨明模型的功能需求和能力并编写相应的文本。然后,监控模型能力的变化,将这些变化写入文本并发布相应的报告。,管理系统模拟 马维忠,22,模型认定是一项相信并接受某一模型的权威性决定,它表明官方已认可模型适用于某一特定的目的。,管理系统模拟 马维忠,23,以上工作一般统称为模型验证、确认和认定(VV&A),国内习惯称为模型校验,管理系统模拟 马维忠,24,VV&A工作的目的是评价对M&S的信任度(Credibility),评估信任度的过程称为可信度评估(Confidence Assessment)。目前,信任度还没有定量的度量方法,仅表示用户对M&S主观上的信任程度。,管理系统模拟 马维忠,25,管理系统模拟 马维忠,26,2 模型校验管理方法,2.1 组织管理 1 组建模型校验的管理机构,明确各单位的责任,详见下表。没有严密的组织措施,模型校验工作是无法开展的。,管理系统模拟 马维忠,27,管理系统模拟 马维忠,28,管理系统模拟 马维忠,29,2.2 过程管理 模型校验是贯穿仿真系统全生命周期的一个工作过程,需要细致周到的过程管理。模型校验过程可以依照以下步骤进行(称为十步校验法),管理系统模拟 马维忠,30,1 组建模型校验管理办公室由模型校验办公室负责建立模型用户、建模单位、校模单位之间的合作关系,并与上级主管部门及其它有关部门建立联系。,管理系统模拟 马维忠,31,2 编制、发放校验指南、计划和文本规范向参加模型校验的有关单位发放(或提交)模型校验指南和模型校验计划。在模型校验指南中明确模型校验的背景、名词术语和所采用的方法;在模型校验计划中明确各单位的职责(参见表7.1),模型校验的步骤、重点和详细计划,以及要求达到的模型可信度指标。然后,按照模型校验文本化方法,编制、发放模型确认文本规范和模型验证文本规范。,管理系统模拟 马维忠,32,3 模型预审理论模型完成后,可以组织专家进行评审,并写出模型预审报告。如果评价值高于某一指标,可转入编程阶段;否则,明确模型存在的问题,责令建模单位修改模型后再提交评审。,管理系统模拟 马维忠,33,4 提交模型、仿真程序以及模型确认文本和模型验证文本对建模单位提交的模型确认文本和模型验证文本要进行严格审查,不满足规范者,必须责令重写。,管理系统模拟 马维忠,34,5 模型验证(a)代码会审完成仿真模型的详细设计方案或计算机代码调试通过后,组织代码会审。(b)静态分析和动态测试由模型校验管理办公室组织模型校验单位、模型用户和建模单位,编写程序分析方案和程序测试方案,并组织专门人员进行仿真程序的静态分析和动态测试。,管理系统模拟 马维忠,35,(c)实例测试由用户单位或用户指定的其它单位提供实例,并在模型校验管理办公室的组织下进行测试。验证过程完成后,由模型校验单位编写模型验证报告。如果发现程序还存在必须修改的问题,则交建模单位修改后再对修改部分和可能引起变动的部分进行分析和测试,并修改模型验证报告中的有关内容。,管理系统模拟 马维忠,36,6 可信度指标分配与确认方法选择如果实际系统/参考系统的实验数据无法获取,则根据模型组成、研制单位情况和模型校验要求,将模型分解成M个便于校验、相对独立的子模型,并根据各子模型在总体模型中的相对重要程度,给各子模型分配模型可信度指标。重要度越高的子模型,可信度指标越高。在人力和经费有限的情况下,可以根据子模型在总体模型中的相对重要程度来决定各子模型的确认方法,重要度高的模型(I类模型)尽量采用运行有效性方法,重要度低的(II类模型)可采用主观有效性方法。,管理系统模拟 马维忠,37,7 灵敏度分析通过灵敏度分析,可以得到I类子模型的关键输入/输出变量。注意,6中要求的子模型在总体模型中的相对重要程度,也可以通过子模型的输出对总模型输出影响的灵敏度分析得到,但实现起来有一定的限制。,管理系统模拟 马维忠,38,8 数据获取根据具体要求,由模型校验单位确定在运行有效性确认中所采用的统计检验方法,并编写、发放数据需求手册。手册中:(1)对I类模型,明确建模单位、用户单位分别应提供的模型、实际/参考系统的实验数据及其实验条件设置;(2)对II类模型,明确建模单位所应完成的、用于主观有效性确认的各种检验和测试结果。对建模、用户单位分别提交的数据手册(一)、数据手册(二)要进行严格审查,不满足要求者,必须责令重写。,管理系统模拟 马维忠,39,9 模型确认包括3部分内容:(1)运行有效性确认;(2)主观有效性确认;(3)加权可信度评估。模型的加权可信度可作为M&S项目信任度评定的主要依据。确认过程完成后,由模型校验单位编写模型确认报告。如果发现模型还存在必须修改的问题,则变由建模单位修改后再对修改部分和可能引起变动的部分进行分析或确认,并修改模型确认报告中的有关内容。,管理系统模拟 马维忠,40,10 M&S有效性认定将以上过程中形成的各种文本和结果提交上级主管部门,并提交模型校验总结报告和M&S项目认定申请报告。由上级主管部门组织认定工作,并发放认定证书。,管理系统模拟 马维忠,41,3 模型验证方法,3.1 验证方法综述 模型验证是针对仿真模型与程序进行的,目的是证实从实际系统的描述模型到其计算机程序之间的转换是正确的,简单地说就是检查仿真程序有无错误。,管理系统模拟 马维忠,42,原则上讲,软件工程领域提出的所有软件验证方法都可用于仿真程序验证,只是各种方法的实用价值不同。下面的两张表2给出了可用于模型验证的各种方法及其分类,并对这些方法进行了比较,管理系统模拟 马维忠,43,管理系统模拟 马维忠,44,管理系统模拟 马维忠,45,管理系统模拟 马维忠,46,3.2 模型验证方法 前面给出的方法中,符号分析、约束分析和理论证明是模型验证的高级手段;虽然效果好,但实施起来困难较大,对于某些复杂程序甚至是不可能的。下面给出的是适用性较强的仿真模型验证方法及步骤。,管理系统模拟 马维忠,47,1 代码会审 代码会审是非正规分析方法的一种。代码会审可以在程序代码形成之前或之后进行。代码会审通常以会议的形式进行,会审小组由组长、程序验证人员和2-3名程序作者组成,管理系统模拟 马维忠,48,会审小组在充分阅读待审程序文本、控制流程图及有关要求、规范等文件的基础上,召开程序审查会议。程序员讲解程序的逻辑及执行过程,并展开讨论甚至争论,以揭示错误的关键所在,管理系统模拟 马维忠,49,也可以为程序选择一些有代表性的测试用例和数据,进行概念执行,即在纸面上把程序走一遍,观察是否得到预期的结果。,管理系统模拟 马维忠,50,概念执行着重于从流程的角度考察程序,借助流程图来进行数据流和控制流的分析。流程图以节点表示程序段,有向边表示控制路径。利用测试用例执行控制流程图,可以分析程序的行为、定位断点、辨识路径、完成代码检查。流程图对检测不合法的编码和控制转移、不恰当的嵌套和重入以及多入口-多出口结构的问题非常有用。,管理系统模拟 马维忠,51,比流程图更进一步的是调用图,它用节点表示程序单元(语句、主程序段、过程、子程序及函数等),有向边表示程序单元间的控制和调用,从语义角度而非语法角度考察程序的控制路径。调用图可以检查变量的说明和使用、全程变量、参数表误用等问题,并为动态测试用例设计提供可靠的依据。,管理系统模拟 马维忠,52,2 静态分析和动态测试静态分析通常在程序代码形成之后进行。静态分析针对程序代码进行,旨在分析程序的结构、数据流和一致性等。,管理系统模拟 马维忠,53,与代码会审不同的是,静态分析的过程更加具体、规范和重点分明,而且可以部分地借助CASE工具完成,管理系统模拟 马维忠,54,利用CASE工具,以程序代码作为CASE软件的输入,可以得到程序的逻辑流图、模块结构关系图、函数/模块/子例程的交叉引用表以至状态过程图。,管理系统模拟 马维忠,55,动态测试的基本思想是,将程序视为函数,取函数定义域中诸元素的各种组合情况作为输入,实际运行程序,判定程序的输出是否在定义域内。这种穷举法是全面保证软件质量的唯一方法,但也是一种不切实际的方法。,管理系统模拟 马维忠,56,我们可以从函数定义域中合理、有效地选取具有代表性的子集,这些子集尽可能覆盖整个定义域而又能使测试付诸实施。动态测试过程中,可以分析模型的动态输出结果,也可进行图形、动画显示,直觉判断程序的正确性。,管理系统模拟 马维忠,57,动态测试可分为结构测试功能测试两种。,管理系统模拟 马维忠,58,(a)结构测试结构测试是根据对模型内部逻辑结构的分析,选取测试数据集(即测试用例)。测试数据集对程序逻辑的覆盖程度决定了测试完全性的程度。,管理系统模拟 马维忠,59,常用的覆盖指标有语句覆盖 用足够多的测试用例使程序的每一语句至少被执行一次。分支覆盖 用足够多的测试用例使程序的每一判断分支至少被通过一次。条件覆盖 用足够多的测试用例使程序的每一判断条件下的结果至少取到一次。多重条件覆盖 使用足够多的测试用例,既使每一判断分支至少被通过一次,又使所有判断条件下各种可能结果的每种组合至少出现一次。,管理系统模拟 马维忠,60,(b)功能测试功能测试是根据对程序功能的分析,推演出由函数定义域中有代表性的元素组成的测试数据集,这些数据应包括对程序有效和无效的输入,或极端的、正常的和特殊的数据元素(可有简单值,也可以有复杂的数据结构)等。,管理系统模拟 马维忠,61,功能测试可以进行定性检查和定量测试。对于某些定性的指标,可以上机实际运行,作定性的检查;对于定量的指标,则需选取一定的测试方法。如某一个输入变量X,输入值范围为1.0X2.0,不可能将l.0到2.0的所有数值都作为输入进行测试,可以采取如下的测试方法:,管理系统模拟 马维忠,62,等价分类测试:根据程序的I/O特性,将程序的定义域划分为有限个等价区段,使得从每个区段内抽取的代表性数据进行的测试等价于该区段内任何数据的测试。对于每个输入条件,存在着对程序有效输入的有效等价类和对程序错误输人的无效等价类。例如,对1.02.0,从中取典型数值进行测试。,管理系统模拟 马维忠,63,等价类的划分取决于程序的功能要求、定义域和测试人员对问题的理解力和创造力。随着软件开发的进展,系统的总体功能在各个阶段上自顶向下不断细化和求精,从而为相应级别上的等价划分和功能测试用例的选择提供了很大的指导作用;确定等价类后,先选取尽可能多的测试用例覆盖所有有效等价类,然后选取覆盖所有无效等价类的测试用例。,管理系统模拟 马维忠,64,等价分类测试可以检查出控制流方面的错误,以及对错误的处理能力。,管理系统模拟 马维忠,65,边值分析测试:根据I/O等价类边界或紧靠边界的条件选择测试用例,用于检查边界上的错误。,管理系统模拟 马维忠,66,错误猜测测试:基于人们的经验和直觉,猜测可能发生的某些错误类型,并依此选择测试用例去发现错误。,管理系统模拟 马维忠,67,4 模型确认方法,模型确认的目的是检验和评估模型的有效性(Validity)。模型有效性一般通过在给定实验条件下检验仿真模型,评价其在预期的应用目的下是否满足一定的精度要求来实现。关于模型有效性的检验和评价,以下几个概念须明确:,管理系统模拟 马维忠,68,1)模型的正确性和精度模型精度是关于模型结果正确性的度量值。判断模型结果是否正确的最终办法是“通过实践来检验”,即通过比较模型结果与实际系统的运行结果的偏差来计算模型的精度,称为运行有效性(Operational Validity)。仿真模型的精度一般用可接受的精度范围(ARA,Acceptable Range of Accuracy)来表示。,管理系统模拟 马维忠,69,2)模型有效性模型有效性是模型可用性的度量,与实验条件、应用目的、精度要求和用户有关。模型有效性的度量值可以用模型可信度来表示。如果实际系统的结果无法获取,可以用参考系统(Reference System)的数据取代实际系统数据进行近似的精度计算,并以此作为可信度评估的依据。特别情况下,参考系统数据也无法得到,只有通过主观评价得到模型的可信度,称为主观有效性。这就是采用有效性而非精度作为模型确认结果的主要原因。,管理系统模拟 马维忠,70,3)应用目的和实验条件模型有效与否是相对一定的应用目的及相应的实验条件而言的。同一模型在某一实验条件下有效,在另一实验条件下则可能是无效的。评估时模型和实际/参考系统的实验或运行条件应当是相同的。实验条件的设定很大程度上取决于应用目的。模型精度是否满足要求也与应用目的有关。,管理系统模拟 马维忠,71,模型确认的方法可谓五花八门,下面列举其中较有代表性的方法:,管理系统模拟 马维忠,72,图灵测试法询问对实际系统比较熟悉的人,看他们是否能分辨出哪些是模型结果,哪些是系统的实际数据,管理系统模拟 马维忠,73,主观有效性评价由熟悉实际系统的专家评价模型及其输出结果是否合理,管理系统模拟 马维忠,74,理论比较法将模型结果与理论计算结果进行比较,以判断模型的正确性,管理系统模拟 马维忠,75,手算法模型的所有输大值和内部变量都采用规定值,看模型结果是否与手算结果相同,管理系统模拟 马维忠,76,模型比较法将模型结果与已普遍认为有效的模型的结果进行比较,根据其偏差评价模型的有效性,管理系统模拟 马维忠,77,事件有效性检验将仿真过程中出现的事件与实际系统发生的事件比较,看它们是否相同,管理系统模拟 马维忠,78,局部测试法移走模型的某些部分,或设定适当的输入参数值,然后测试模型的结果,看其是否符合一定的规律,管理系统模拟 马维忠,79,历史数据法利用历史数据中的一部分来建立模型,而用另一部分来检验模型的正确性,管理系统模拟 马维忠,80,内部有效性评价通过多次运行模型来确定模型内部随机可变性的大小,并尽可能减小其可变性,管理系统模拟 马维忠,81,参数有效性检验改变模型的内部参数值和输大值,观察对模型输出结果的影响,并判断这种影响关系与真实系统是否一致,管理系统模拟 马维忠,82,极端条件测试法采用极端条件或对各种不同层次的影响因素进行特殊组合,看模型的输出结果是否合理,管理系统模拟 马维忠,83,跟踪测试法对模型中不同类型实体的行为进行跟踪,以确定模型逻辑上是否正确,管理系统模拟 马维忠,84,灵敏度分析方法用灵敏度分析技术确定模型的输入输出关系,并检查其合理性,管理系统模拟 马维忠,85,多阶段确认法分三个阶段,首先提出模型假设,然后检验假设的有效性,最后检验模型输入输出关系的正确性,管理系统模拟 马维忠,86,子模型有效性分析根据一定的原则将模型分解成若干个子模型,通过对子模型的确认得到对总模型有效性的认识,管理系统模拟 马维忠,87,预测有效性方法把模型的预测值与实际系统的输出结果进行比较,看它们是否相同,管理系统模拟 马维忠,88,统计检验法使用数理统计方法检验和评估模型的有效性,管理系统模拟 马维忠,89,曲线法比较模型结果曲线和实际系统结果曲线之间的吻合程度,管理系统模拟 马维忠,90,动画法将模型的输出结果进行动画显示,凭直觉判断模型的正确性,管理系统模拟 马维忠,91,5 模型校验文本化方法,模型校验文本(简称模型文本)是根据一定的规范对模型、程序及VV&A需求的文字描述。建立模型文本规范、编写模型文本及根据模型文本对建模过程进行控制的过程,称为模型文本化。,管理系统模拟 马维忠,92,在模型开发的过程中,通过编写模型文本,可以加深建模者对模型的认识,有助于消除模型的不完全性、不明确性和不一致性,提高M&S的规范化程度。对于那些规模庞大、内容复杂、开发周期长、需要多个单位共同合作的仿真模型,编写规范的模型文本,既可以供建模者自己查阅,又可以作为协作人员的参考资料,便于模型开发过程的协调统一。,管理系统模拟 马维忠,93,模型文本是模型开发者与使用者之间信息交流的依据。完善的、规范化的文本能够帮助用户迅速、清晰地了解模型的结构、功能、使用方法和适用范围,而不必重复建模者的所有工作。,管理系统模拟 马维忠,94,模型文本化是VV&A的基础。非建模者为了对模型进行校验,或对模型作进一步的确认和验证,首先需要掌握VV&A的有关信息,如模型应用背景、开发目的、理论依据、假设条件、使用数据、被仿真系统的性质等。建模者在开发模型的同时,以模型文本提供VV&A所需的完备信息,将为模型校验奠定必要的基础。,管理系统模拟 马维忠,95,一个M&S项目开始时,由模型校验者参照一定的标准制定文本规范。它应满足如下要求:1)充分反映用户的要求;2)能够提供充分的VV&A所需的信息;3)对建模人员来说是可行的。,管理系统模拟 马维忠,96,建模人员在建模的同时,根据下达的规范化文本格式编写模型文本。建模者在提交模型的同时,提交完整的合乎文本规范的模型文本。用户和模型校验者在建模人员的合作下,对规范的执行情况和文本编写情况进行检查,完成对模型文本的验收。,管理系统模拟 马维忠,97,模型文本中一般应提供以下信息:1)模型的有关信息包括模型开发目的,模型的理论依据和假设条件,模型的结构和功能,模型描述,模型适用范围等。,管理系统模拟 马维忠,98,2)计算机程序的有关信息包括计算机软、硬件配置,编程语言,程序框图,软件工程方法,数值计算方法等。,管理系统模拟 马维忠,99,3)模型确认的有关信息包括模型的关键输入/输出变量,重要模型参数,主要随机变量,模型简化情况,实际系统或参考系统的有关情况,实验条件设置,实验数据获取方法等。,管理系统模拟 马维忠,100,4)模型验证的有关信息包括软件质量保证措施、测试实例及结果等。,六、仿真语言与集成环境,GPSSSLAM II其它,管理系统模拟 马维忠,102,GPSS,全名为General Purpose Simulation System,是一种以过程为基础的离散事件系统模拟语言。用GPSS语言描述系统是将系统看作是由许多静态元素与动态元素组成。,管理系统模拟 马维忠,103,在GPSS模型中,动态元素称作流动实体(Transaction),静态元素也对应着各种GPSS实体,此外还附加了一些有关统计和计算的实体。GPSS还提供了一系列变量,它们分别和各实体有关,其中数字类型的,称GPSS的标准数字属性SNA(Standard Numerical Attributes);逻辑类型的,称GPSS的标准逻辑属性SLA(Standard Logical Attributes);字符类型的,称GPSS的标准字符属性SCA(Standard Character Attributes)。,管理系统模拟 马维忠,104,GPSS模型与实体流程图十分接近。一般来说,系统的实体流程图可以直接转换为GPSS的程序块语句,构成仿真模型;另外附加的控制语句可以对模型的参数和控制方式加以说明,形成完整的仿真程序。,管理系统模拟 马维忠,105,1 基本GPSS语句,GPSS支持简单的算术和逻辑运算,整数范围从-2,147,483,648到2,147,483,647,实数可以用小数形式和十进制整数形式E表示。算术运算包括+-*/分别表示加减乘除和模除求余,0可以作除数,结果为0。逻辑运算AND OR NOT。关系运算G GE L LE E NE。,管理系统模拟 马维忠,106,每行语句包括4部分,标号(行号),操作码(语句关键词),操作数(参数),注释;所有字符全部大写。实体或属性的命名有两种方式:符号名称,在保留字后通过$加相应的字符串,Q$ABC;顺序编号,在保留字后加数字,FI1。,管理系统模拟 马维忠,107,流动实体及其参数 Transaction每个流动实体可以有多种参数,每种参数可以有多个。流动实体的参数有以下四种:字节参数,PBj表示第j个字节参数,取值范围-128至127;半字参数,PHj表示第j个半字参数,取值范围-32768至32767;全字参数,PFj表示第j个全字参数,取值范围-2147483648至2147483647;浮点参数,PLj表示第j个浮点参数,取值范围同实数。,管理系统模拟 马维忠,108,服务单元 Facility服务单元在任一时刻只允许一个流动实体占用。和服务单元相关的属性有:Fj标准逻辑属性,表示第j个服务单元被占用的情况,占用时值为1,空闲时值为0;FNUj标准逻辑属性,表示第j个服务单元不被占用的情况,取值与Fj相反;FCj标准数字属性,表示进入第j个服务单元的流动实体总数;FIj标准逻辑属性,取值为1时表示第j个服务单元可以被强占使用(可以中断服务);,管理系统模拟 马维忠,109,FNIj标准逻辑属性,FIj的相反属性,取值为1时表示第j个服务单元不可以被强占使用(不可以中断服务);FVj标准逻辑属性,取值为1时表示第j个服务单元可以被占用(可以服务);FNVj标准逻辑属性,取值为1时表示第j个服务单元不可以被占用(暂停服务);FRj标准数字属性,表示第j个服务单元的平均利用率;,管理系统模拟 马维忠,110,FTj标准数字属性,表示流动实体在第j个服务单元中的平均停留时间。服务器 Storage服务器在同一时间可以容纳一定数量的流动实体并同时为其服务。和服务器相关的属性有:Rj标准数字属性,服务器j的剩余容量;Sj标准数字属性,服务器j中的当前流动实体数;,管理系统模拟 马维忠,111,SAj标准数字属性,服务器j中的平均流动实体数;SCj标准数字属性,进入服务器j中的流动实体总数;SEj标准逻辑属性,服务器j的空状态,1空,0非空;SNEj标准逻辑属性,服务器j的非空状态,1非空,0空;SFj标准逻辑属性,服务器j的满状态,1满,0非满;,管理系统模拟 马维忠,112,SNFj标准逻辑属性,服务器j的非满状态,1非满,0满;SMj标准数字属性,服务器j中的最大流动实体数;SRj标准数字属性,服务器j的平均利用率;STj标准数字属性,进入服务器j的流动实体的平均停留时间;SVj标准逻辑属性,服务器j的可使用状态,1表示可用,0表示暂停服务。,管理系统模拟 马维忠,113,队列 Queue队列是GPSS的统计实体,流动实体进入和退出队列时完成相关的统计工作,用队列的以下标准数字属性表示:Qj队列j的当前长度;QAj队列j的平均长度;QCj进入队列j的全部流动实体数;QMj队列j的最大长度;,管理系统模拟 马维忠,114,QTj队列j中流动实体的平均停留时间;QXj队列j中等待时间不为0的流动实体的平均停留时间;QZj队列j中等待时间为0的流动实体的总数。,管理系统模拟 马维忠,115,GPSS程序块语句,GENERATE 流动实体进入系统GENERATE a,b,c,d,e,f,g,h,Ia,b-流动实体产生的时间间隔为(a-b,a+b)上的均匀分布;a的缺省值0;b可省略;c-第1个流动实体到达时刻,缺省时按第1个随即数;d-最多产生的实体数;e-流动实体的优先级;f-i-流动实体各类参数的个数。,管理系统模拟 马维忠,116,TERMINATE 流动实体离开系统TERMINATE aa为流动实体进入时,终止计数器减少的值,默认0。,管理系统模拟 马维忠,117,QUEUE 流动实体开始排队DEPART 流动实体结束排队QUEUE a,bDEPART a,ba-流动实体进入的队列名称或编号b-加权系数,一个流动实体进入时队列长度改变的数目。,管理系统模拟 马维忠,118,SEIZE 流动实体占用服务单元RELEASE 流动实体释放服务单元SEIZE aRELEASE aa-服务单元名称或编号,管理系统模拟 马维忠,119,ENTER 流动实体占用服务器LEAVE 流动实体释放服务器ENTER a,bLEAVE a,ba-服务器名称或编号b-加权系数,一个流动实体占用(释放)服务器的服务单元数,管理系统模拟 马维忠,120,ADVANCE 流动实体延迟ADVANCE a,ba,b规定了延迟时间的概率分布,同GENERATE中的a,b,管理系统模拟 马维忠,121,控制语句,SIMULATE 仿真程序开始,管理系统模拟 马维忠,122,STORAGE 描述服务器的服务容量a STORAGE b STORAGE a1,b1/a2,b2/a-服务器名称或编号;b-整数值表达式,服务器容量。,管理系统模拟 马维忠,123,START 开始仿真START a,b,c,da-终止计数器的初值;b-输出控制,NP表示不输出,省略表示有输出;c-中间计数器的初值;d-链输出控制,1表示输出各种链,省略表示不输出。,管理系统模拟 马维忠,124,END 仿真程序结束CLEAR 系统状态初始化RESET 清除统计数据,管理系统模拟 马维忠,125,程序实例,例1 一个检验工对上工序到达的零件进行检验。零件到达的时间间隔为(12,24)上的均匀分布;检验时间为(12,20)上的均匀分布。建立GPSS模型,考察检验1000个零件的情况。,管理系统模拟 马维忠,126,SIMULATE GENERATE 18,6 QUEUE 1 SEIZE JYG DEPART 1 ADVANCE 16,4 RELEASE JYG TERMINATE 1 START 1000 END,管理系统模拟 马维忠,127,例2 理发店有3名技术完全相同的理发员为顾客服务。顾客到达的时间间隔为在(10,20)(分钟)上的均匀分布,理发的时间在(30,50)上均匀分布。理发店早8点上班,晚5点下班,中间不休息。建立GPSS模型,仿真一天的工作。,管理系统模拟 马维忠,128,SIMULATE STORAGE LFY,3 GENERATE 15,5 QUEUE 1 ENTER LFY DEPART 1 ADVANCE 40,10 LEAVE LFY TERMINATE GENERATE,540 TERMINATE 1 START 1 END,管理系统模拟 马维忠,129,例3 窗口服务系统:电话顾客到达(2,6),咨询时间(3,5),窗口顾客到达(1,3),售票时间(1,5)。建立模型,仿真为200个顾客服务的情况。,管理系统模拟 马维忠,130,SIMULATE GENERATE 4,2 QUEUE 1 SEIZE SPY DEPART 1 ADVANCE 4,1 RELEASE SPY TERMINATE 1 GENERATE 2,1,1 QUEUE 2 SEIZE SPY DEPART 2 ADVANCE 3,2 RELEASE SPY TERMINATE 1 START 200 END,管理系统模拟 马维忠,131,流动实体的流向控制,TRANSFER模块用于控制流动实体的流向,有以下3种模式:小数模式TRANSFER a,b,ca-形如.#的小数b,c-程序模块的标号(名称或数字名)一个流动实体进入TRANSFER模块时,根据随机数序列中产生的一个(0,1)上的r,当ra时,流动实体进入b指出的程序块,否则,进入c指出的程序块。即流动实体以概率a进入c,以概率1-a进入b。b可缺省,指下一程序块。,管理系统模拟 马维忠,132,零件到达本工序的时间间隔在(6,14)上均匀分布。30%的零件由甲设备加工,加工时间(6,18);其余由乙设备加工,时间(4,12)。,管理系统模拟 马维忠,133,SIMULATE GENERATE 10,4 TRANSFER.700,SB1,SB2SB1 QUEUE 1 SEIZE SBJ DEPART 1 ADVANCE 12,6 RELEASE SBJ TERMINATE 1SB2 QUEUE 2 SEIZE SBY DEPART 2 ADVANCE 8,4 RELEASE SBY TERMINATE 1 START 100 END,管理系统模拟 马维忠,134,BOTH模式TRANSFER BOTH,b,cb,c-程序模块的标号(名称或数字名)当流动实体进入TRANSFER模块时,首先试图进入b指出的程序块,若不允许进入则一直等到c指出的程序块允许进入位置。b可缺省,指下一程序块。,管理系统模拟 马维忠,135,上例中零件先送乙设备,乙设备占用时才送甲设备。,管理系统模拟 马维忠,136,SIMULATE GENERATE 10,4 TRANSFER BOTH,SB2,SB1SB2 QUEUE 2 SEIZE SBY DEPART 2 ADVANCE 8,4 RELEASE SBY TERMINATE 1SB1 QUEUE 1 SEIZE SBJ DEPART 1 ADVANCE 12,6 RELEASE SBJ TERMINATE 1 START 100 END,管理系统模拟 马维忠,137,无条件模式TRANSFER,bb-程序模块的标号(名称或数字名)当流动实体进入TRANSFER模块时,转向b指出的程序块。,管理系统模拟 马维忠,138,例 自选市场准备100个篮子。顾客到达的时间间隔(18,22)秒的均匀分布。取不到篮子的顾客直接离开。顾客中40%男顾客,选商品时间(240,360);60%女顾客,选物时间(540,660)。10%顾客不购物,直接离开;其余顾客到收款台交款。2人收款,时间(25,35)。建立GPSS模型。,管理系统模拟 马维忠,139,SIMULATELANZI STORAGE 100SKY STORAGE 2 GENERATE 20,2 TRANSFER BOTH,EXIT ENTER LANZI TRANSFER.400,NV,NANNV ADVANCE 600,60JIAOK TRANSFER.100,PASS QUEUE 1 ENTER SKY DEPART 1 ADVANCE 30,5 LEAVE SKYPASS LEAVE LANZI TERMINATE 1,NAN ADVANCE 300,60 TRANSFER JIAOKEXIT TERMINATE START 500CLEARLANZI STORAGE 120 START 500 END,管理系统模拟 马维忠,140,函数的使用,可用作函数自变量的属性:系统属性:AC1绝对时钟;C1相对时钟。随机数:RNj-(0,999)上的均匀分布随机数,用作函数自变量时(0,1);FRNj-(0,1)。流动实体属性:M1绝对时钟与流动实体标志时间的差;标志时间的初值为流动实体的产生时间;PR流动实体的优先级;程序块属性:Nj进入程序块的流动实体总数;Wj程序块中当前流动实体数。,管理系统模拟 马维忠,141,函数说明FUNCTION a,ba-指出自变量,可以是表达式;b-由一个字母和一个整数组成,字母表示函数类型:C连续值函数D离散值函数,整数表示后续的跟随语句中点对的个数。跟随语句的格式为x1,y1/x2,y2/x3,y3,管理系统模拟 马维忠,142,例如产生参数为1的指数分布的函数定义如下:FUNCTION RN1,C240,0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.504/0.5,0.69/0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7/0.9998,8,管理系统模拟 马维忠,143,产生标准正态分布的函数定义如下:FUNCTION RN1,C270,-3.5/0.0013,-3.0/0.0030,-2.75/0.0062,-2.5/0.0122,-2.25/0.0228,-2.0/0.0401,-1.75/0.0668,-1.5/0.1056,-1.25/0.1587,-1.0/0.2266,-0.75/0.3085,-0.5/0.4013,-0.25/0.5,0/0.5987,0.25/0.6915,0.5/0.7734,0.75/0.8431,1.0/0.8499,1.25/0.9970,2.75/0.9987,3.0/1,3.5,管理系统模拟 马维忠,144,例1