《仿真建模与分析》期末复习

1,969 阅读20分钟

题型:

  • 判断题 2/10 20分 错误改正
  • 填空题 2/10 20分
  • 名词解释 5/2 10分
  • 简答题 4道 30分
  • 分析计算 10/2 20分

第一章

系统仿真的概念、类别与各自特点(特点根据理解)

概念:建立计算机仿真模型模拟现实的动态系统,在仿真模型上执行各种实验,以评估和改善系统性能。

  • 离散事件系统仿真: 所模拟的系统的状态变量随一个个事件的发生而在特定的时间点离散变化,系统的状态变化是由(往往是随机发生的)事件驱动的。eg:排队系统中队列长度随顾客到达、顾客离开等事件离散变化。
  • 混合系统仿真: 所模拟的系统既有连续的部分,也有离散的部分。eg:生态系统仿真。在一个与世隔绝的生态系统种只有山猫和野兔两种动物。山猫吃野兔--野兔数量减少--山猫数量减少--野兔数量增加--山猫数量增加。。。。
  • 连续系统仿真: 所模拟的系统的状态变量随时间连续变化。eg:温控系统中的温度是连续变化的

模型概念、类别、特点

概念:系统各元素交互关系的简化表示,关系包括因果关系、流程关系、空间关系。

  • 物理(实体)模型: 实际系统的物理复制品或按比例缩放实物模型。
  • 逻辑模型: 以图符或数学方程式等表达的反映现实系统要素间逻辑关系的模型。进一步分类:
    • 符号模型: 利用一些图型符号,来描述一系列的活动或要素间的相关关系的模型。eg:流程图、设施布置图。
      • 优点:易于制作,易于理解
      • 缺点:无法利用它们对系统性能进行量化分析;另外,符号模型也无法把握系统动态行为。
    • 解析(分析性)模型: 利用数学方程式(含不等式)表达系统要素间关系的模型。它可以是简单的方程式,也可以是复杂的数学规划模型(由一个目标函数和一组约束方程组成)。
      • 优点:形式规范,通常能够求得确定的最优解
      • 缺点:通常只能解决静态的、规范性的、确定性的或简单几率性的问题,难以解决复杂动态随机问题。
    • 仿真模型: 利用计算机建立的模拟真实系统运行的模型。可以模拟和研究复杂动态随机系统,并且仿真模型进行实验通常比用实际系统进行实验成本低得多。

仿真项目研究步骤

  • 定义仿真研究的目的: 明确仿真研究目的,使未来进行系统调研和建模时抓住重点。而不是面面俱到、浪费时间甚至偏离系统方向
  • 收集数据、建立概念模型: 研究现有系统,收集相关数据,理解系统运作流程,在此基础上建立系统的概念模型。概念模型通常以图形表示系统运作流程。
  • 建立计算机仿真模型: 概念模型通过审核,利用仿真软件根据概念模型建立计算机仿真模型
  • 模型校验与验证: 模型校验:找出模型中的各种语法及逻辑错误。模型验证:考察仿真模型是否符合实际情况。
  • 试验运行和结果分析: 根据实验输出比较不同方案,或者进行敏感性分析以及最优化分析等。

仿真软件有哪些?(了解)

Arena、AutoMod、ExtendSim、Flexsim、Witness

第二章

排队系统的概念、特征、举例(如何研究排队系统)

由顾客和为顾客提供服务的服务台组成的系统,顾客先进入等待队列排队,然后就接受服务台提供的服务。

  • 拟到达总体: 潜在顾客的总体称为拟到达总体,也称为顾客源。
  • 系统容量: 系统队列可以容纳的最大顾客数量,可以是有限的,也可能是无限或近似无限的。
  • 顾客到达过程: 一般用到达时间间隔来表征,可分为确定性到达及随机性到达。顾客可能独自到达,也可能成批到达,每批到达的数目可能固定,也可能随机。
  • 服务时间与服务机制: 服务时间:指服务台为顾客服务的时间,可以是确定的,也可能是随机的。 服务机制:指服务台的数量及其连接形式(串联还是并联),顾客是单个还是成批接受服务。
  • 排队行为与排队规则:
    • 顾客的排队行为可以分为:
      • 拒绝进入:顾客到达系统时发现队列过长立即离开(不进入队列)。
      • 中途离队:顾客排队一段时间后未接受服务中途离开系统。
      • 换队:顾客排队一段时间后换队(换到较短的队列)。
    • 排队规则一般有:
      • FIFO:先到先服务,
      • LIFO:后到先服务,
      • 按优先级别服务:根据队列中实体的重要程度选择最优先服务者。

排队系统的符号表示(MM1是什么意思,什么类型)

完整的排队系统表达方式通常用到6个符号并取如下固定格式:A/B/C/D/E/F,其中后三个符号常常省略,变成A/B/C

  • A—表示顾客相继到达间隔时间分布,常用下列符号:
    • M——指数分布
    • D——常数
    • G——一般相互独立的随机分布
  • B—表示服务时间分布,所用符号与表示顾客到达间隔时间分布相同:
    • M——指数分布
    • D——常数
    • G——一般相互独立的随机分布
  • C—服务台个数:“1”则表示单个服务台,“s”(s>1)表示多个服务台。
  • D—系统容量,分有限与无限两种,∞表示顾客源无限,此时一般∞也可省略不写。
  • E—顾客源数目,分有限与无限两种,∞表示顾客源无限,此时一般∞也可省略不写
  • F—服务规则,常用下列符号
    • FCFS:表示先到先服务的排队规则
    • LCFS:表示后到先服务的排队规则
    • PR:表示优先权服务的排队规则

MM1: 顾客到达间隔时间指数分布,服务时间指数分布,1个服务台。

排队系统的排队行为种类

  • 拒绝进入:顾客到达系统时发现队列过长立即离开(不进入队列)。
  • 中途离队:顾客排队一段时间后未接受服务中途离开系统。
  • 换队:顾客排队一段时间后换队(换到较短的队列)。

离散型系统的基本组成元素有哪些(PPT)

  • 实体及其属性:
  • 资源: 对实体进行加工处理时需要的任何事物。eg:Resource pool、Resource Item。对零件进行加工,需要人员和机器。
  • 队列: 等待服务的实体集合。实体需要资源服务,该资源被占用,实体需在队列中等候。
  • 活动: 对实体执行的某种操作。多数情况下,完成一项活动还需要资源的参与。
  • 控制: 仿真模型运行要遵循各项逻辑规则或者控制规则。eg:Get、Set、Select、Equation。实体沿哪条路径移动、队列规则、工作计划
  • 系统变量: 方针涉及三种变量:输入变量、响应变量、状态变量
    • 输入变量: 不依赖于其他变量的变量,又称独立变量。eg:顾客到达时间间隔均值、某种资源数量、队列最大容量。
    • 响应变量(输出变量、性能变量): 绩效指标,用来测度系统性能,依赖输入变量。eg:队列平均队长、某个资源利用率。统计模块Mean、Variance
    • 状态变量: 反映某一特定时点的系统状态,取值依赖输入变量。eg:当前队长、机器当前状态、当前实体总数。

实体、属性的概念、特点(回答问题,举例)

  • 实体: 被加工、处理、服务的对象。在系统中移动、改变形态、影响其他实体及系统状态,并影响着系统性能。eg:洗车模型--汽车、运输物资模型--物资
  • 属性: 实体特性的描述,可以根据具体情况决定需要哪些属性,并为其命名、赋值、及时变更、以及适时使用。eg:产品实体类型、重量。

离散型事件系统仿真的特点、举例

所模拟的系统的状态变量随一个个事件的发生而在特定的时间点离散变化,系统的状态变化是由事件驱动的。如:排队系统中队列长度是随顾客到达等事件离散变化的

离散事件仿真过程中的一切活动都是围绕事件进行的。例如洗车系统

  • 到达---脏的轿车进入系统
  • 离开---轿车在洗车台上完成洗车后离开系统
  • 终止---仿真过程在第480min时停止

层级模块的概念、作用(到底为什么要使用,什么东西,有什么用)

将一些基本的建模结构(如一群连接的模块)封装为一个单个的、高级的结构。可以继续将这一类的高级结构封装为一个单个的更高级的结构。

作用: 将一个复杂的系统分解为不同的部分建模,从而降低模型的复杂性。

方程的概念与extendsim中的方程模块有哪些?

方程就是一系列用来对一个或者多个输入变量进行计算,输出一个或多个输出变量的命令

在需要编程进行复杂逻辑建模时,需要使用基于方程的模块,基于方程的模块可以根据在其对话框中输入的ModL代码来进行计算。有三种基于方程的模块:

  • Equation模块(Value库): 在离散事件模型中,当一个消息发送到其输入或者输出端口时执行计算。执行计算的频率也可以在模块的Options选项卡中自定义。
  • Equation(I)模块(Item库): 每次实体到达其item输入端口时执行计算。
  • Queue Equation模块(Item库): 每次实体到达或离开,或者有消息发送到value输入端口时执行计算。

第三章

仿真输入数据分析的概念、作用(理解)

采集输入随机变量的样本值并进行分布拟合,确定其概率分布的过程。

作用: 对于离散事件系统仿真中要使用的随机变量,需要通过数据采集与分布拟合过程确定这些随机变量的概率分布,以便在防真模型中能够使用他们。

数据检验有哪些

独立性检验、同质性检验、平稳性检验

独立性(3种)、同质性平稳性(怎么做)的工具及原理、作用(用自己的话说出来)

  • 独立性检验: 检验观察到的样本数据之间是否互相独立。如果数据之间没有影响,则称数据是独立的或随机的。工具:散点图、自相关图、趋势段测试,三种检验全部通过才能确认数据独立性。
    • 散点图:汇出所有相邻数据点坐标值的图。散点图显示某种趋势,则数据之间存在依赖性,不独立。反之独立。
    • 自相关图:反应数据间相关系数的图。若所有相关系数都接近0,则数据独立(随机),若某些相关系数接近1或-1,则数据存在自相关,不独立。
    • 趋势段测试:测试数据趋势的一种方法。趋势段过多过少,则认为数据不独立
  • 同质性检验: 检验数据是否服从同一分布。观察数据的频率直方图,若该图有两个或两个以上的峰值,则认为数据不同质。
  • 平稳性检验: 检验数据的分布特别是分布的参数(如均值)是否随时间变化而变化。如果数据的分布随时间变化,则称该分布是不平稳的。检验方法:将整个时间划分为若干个时段,然后分别计算各个时段的参数值(如均值),若各时段参数值变化不大,则可以认为数据是平稳的。否则认为数据是不平稳的

拟合优度检验(离散、连续,看PPT),哪个更好?

利用样本数据计算一些指标(即检验统计量),来检验拟合出的理论分布与样本数据拟合得是否足够好,如果拟合效果不够好,则不能认为数据服从该理论分布,否则,就可以接受该分布。

拟合优度检验步骤:

  • 假设随机变量服从选定的理论分布(这称为原假设)。
  • 利用样本数据计算检验统计量。
    • 对连续数据,一般要计算三种检验统计量
      • x^2检验的X^2统计量
      • 统计量Kolmogorov-Smirnov检验的KS统计量(科尔莫戈罗夫一斯米尔诺夫检验)
      • Anderson Darling检验的AD统计量(安德森一达林检验)
    • 而对离散数据
      • x^2统计量
      • KS统计量:少样本
  • 确定一个显著性水平\alpha
  • 将计算的检验统计量与查表得到的在显著性水平下\alpha下的该统计量关键值比较,若小于关键值则接受原假设,否则拒绝原假设。

关于三种统计检验量

  • 卡方统计量:将总体区间分成若干不重叠的小区间,然后小区间的实测频数和理论频数的差距。然后根据两者差距的平方,构造卡方统计量。
  • Ks统计量将理论分布下的累计频数分布与观察到的累计频数分布相比较,把它们之间的最大差异值作为统计量。
  • 安德森-达林检验在思想上与科尔莫戈罗夫-斯米尔诺夫检验相似。只不过安德森-达林检验是建立在更综合的差别度量(不仅仅是最大差别)上的。

当多个理论分布都能通过检验,这时就要根据P值进行选择。P值指其他分布比当前分布对样本数据拟合更差的概率。如果P值很小,说明很少有其他分布比当前分布对样本数据拟合更差,即当前样本和选定分布的拟合是很差的。反之,如果P值很大,说明拟合较好。

第四章

复杂排序需要什么模块

如果实体在队列中的排队规则比较复杂,会动态改变,那么可以用Queue Equation模块来完成

每当有实体到达或离开队列时,或者当模块的值输入端口有新值输入时都会触发模块进行程序计算,并根据计算结果排序实体或输出变量的值。

路由选择的模块

路由:即路径选择,指按一定规则从多个来源选择输入的实体,或者向多个目的之一发送实体。路由规则是重要的建模内容。

路径选择需要用到的模块:

  • Select Item In(路径合并)
  • select item out(将来自一个实体流的实体发往多个输出实体流)
  • Throw Item模块与Catch Item模块相结合(跨层级路径选择)。

活动模块的抢占

抢占(preemption):如更加优先的任务(实体)抢占正在执行的任务(实体),使其提前退出

首先在active里面设置允许抢占,这时active模块会出现PE输入端口和被抢占实体输出端口。根据抢占实体和当前处理实体的属性匹配来实现抢占操作。PE输入端口的输入确定了抢占的控制方法:

  • 值连接。选定实体会在PE输入端口收到真值(大于等于0.5)时被抢占
  • 实体连接。当一个抢占实体到达PE端口时,Activity模块会查看该实体相应的属性值,之后对当前正在处理的实体进行搜索,这些实体中相应属相与抢占属性相等则会离开Activity模块

抢占选项包括:

  • 距离处理结束最近的实体
  • 距离处理结束最远的实体
  • 优先级最低的实体
  • 当前正在处理的所有实体
  • 具有某项属性值的实体

停机类型、区别,停机建模

Active模块中断一段时间即为停机。进行停机建模的意义:避免对系统的过于乐观估计。

  • 计划停机建模: 用户在设定好的时间停止活动,如假期或者例行设备维护等等。通常使用creat模块对Active模块的停机时间进行计划。
  • 随机停机建模: 停机随机出现,如设备发生故障等。随机停机需要设定两个参数:故障间隔时间和修复时间来确定停机的频率和持续时间。Shutdown模块与Activity模块的SD输入端口协同工作,进行随机停机建模。
  • 条件停机建模: 根据某些条件进行停机,例如下游出现拥堵时停机。

合并、拆分运用模块与场景

在离散事件模型中往往涉及将原始实体与其他资源或其他实体暂时或永久性的合并,Batch模块。例如,在物流系统中,车辆和货物合并;在诊断系统中,医生会暂时与病人合并等。有时,又需要将实体分解,如车辆与货物分离,Unbatch模块。

合并允许来自不同源的多个实体联合成为一个新的实体。Batch会累积来自各个源的实体,到达指定数目之后会释放一个代表合并的单个实体。这个过程中,原始的输入实体会被销毁,取而代之的是一个新的输出实体。

拆分指将先前合并的实体分开或者对未合并过的实体进行复制分解。可能会用到拆分的例子

  • 将合并的资源实体返回到Resource Item模块
  • 将临时组合在一起的实体分开
  • 基于单个“种子”实体创建实体
  • 创建一个逻辑实体以触发模型中的某些行为,同时允许代表物理部件的实体继续进行处理。

第六章

什么是仿真输出分析及类型、步骤

仿真输出分析是对仿真产生的输出数据进行统计分析,以测量一个系统的各项性能或比较两个或多个备选系统方案的性能。

  • 终止型仿真输出分析。
    • 确定初始状态
    • 确定仿真运行的终止事件
    • 确定仿真重复运行次数
  • 非终止型仿真输出分析。
    • 确定预热期
    • 确定仿真运行事件长度
    • 确定仿真重复运行次数

仿真输出分析对应的模块有哪些

Value库--》statistics模块与简单统计。

Value库--》means & variance 模块与高级统计。

终止型(自然终结点)和非终止型仿真的区别(输入、输出、状态、决策四个变量)

  • 终止型仿真: 系统运行有一个自然的终止点,自然确定了仿真时间长度。终止点可能是:
    • 模型达到结束条件。如银行服务系统到达一天的结束时间结束,或者到达结束时间关门然后服务完最后一个顾客结束。
    • 调查期间完成。如超市的高峰期结束。
    • 完成指定任务。如生产计划完成,生产了指定数目的订单等。
  • 非终止型仿真: 系统没有一个自然的终止点确定仿真时间长度。
    • 对非终止型仿真,理论上仿真时间应该无限长,但是实际上还是要由建模人员确定一个仿真时间长度,只不过这个时间必须足够长,以反映系统的长期稳态性能。
    • 由于非终止型仿真长期运行后通常都会到达一个平稳的状态即稳态(稳态不是说输出变量不再变化,而是说输出变量的分布基本不再变化),而我们关心的往往是系统的稳态性能,因此非终止型仿真又称稳态仿真。

时间加权平均数与简单加权平均数计算、不同点

简单平均数就是简单的把所有时间加起来然后除以个数.

时间加权平均数是指将每个时间值乘以权重后所得的数求和,再除以个数

如何进行不同系统之间的比较(计算题)

成对t置信区间法:基本思想是建立样本差值的均值的置信区间。即对每一个系统分别独立的运行n次,各自得到同一性能的n个样本值,然后建立对应样本差值的置信区间。

样本均值

\overline{Z} = \sum_{j=1}^nZ_j/n

样本方差

s^2 = \frac1{n-1}\sum_{j=1}^n[Z_j - \overline{Z}(n)]^2

则置信区间为

\overline{Z}\pm t_{n-1,1-\alpha/2}\frac{s}{\sqrt{n}}
  • 如果计算得出的置信区间包含0,那么可以以100(1-\alpha)%的信心判断两个方案的结果(性能)没有显著差异。
  • 如果计算得出的置信区间完全位于0的左侧,那么可以以100(1-\alpha)%的信心判断方案1的结果小于方案2。
  • 如果计算得出的置信区间完全位于0的右侧,那么可以以100(1-\alpha)%的信心判断方案1的结果大于方案2。

第七章

仿真优化概念、步骤

仿真优化即最优化,是指寻找最佳的参数(决策变量)值,以使得目标性能(目标函数)最优。

仿真优化步骤:

  • 在模型中添加一个Optimizer模块(Value library)。
  • 定义目标函数的方程形式
  • 确定目标函数方程中所需要的变量,然后将它们克隆拖放到Optimizer模块上(注意决策变量和输出变量的区别)
  • 在Optimizer的Variables table中设置决策变量的范围(注意整型量和实型量范围输入的区别)
  • Optimizer模块中输入目标函数方程。
  • 添加约束方程
  • 设置Optimizer模块的运行参数,然后运行最优化

extendsim用什么来进行仿真优化,所使用什么算法

使用Optimizer模块进行优化操作,使用进化算法寻找最优解