当前位置:文档之家› 计算机仿真原理及应用第三讲

计算机仿真原理及应用第三讲



两个例子: Buffen投针实验求π 射击问题(打靶游戏)
蒙特卡罗方法概述---基本思想
Buffon投针实验(1777年) 求π :
2.针与平行线垂直方向夹角为α, 则相交概率为:
E ( cos ) cos f ( )d
0

2
M 2N E ( cos ) N M
0.1 命中7
环数 7 概率 0.1
8 0.1
9 0.3
10 0.5

0.2 命中8
用计算机作随机试验(射击)的方法为, 选取一个随机数ξ,按右边所列方法判断 得到成绩。这样,就进行了一次随机试验 (射击),得到了一次成绩g(r),作N次 试验后,得到该运动员射击成绩的近似值

仿真策略:要将系统模型转换为计算机模型,首先要从总 体上确定仿真模型的控制逻辑和仿真时钟推进机制,即确 定仿真策略。 仿真策略是仿真模型的核心,反映了仿真模型的本质,从 根本上决定了仿真模型的结构。 迄今为止,离散事件系统形成了三种基本仿真策略: 事件调度法(event schedule,ES) 活动扫描法(activity scanning,AS) 进程交互法(Process Interactive,PI)
蒙特卡罗方法概述---基本思想

基本思想: 针对待求问题,根据物理现象本身的统计规律,或人为 构造一合适的依赖随机变量的概率模型,使某些随机变量的 统计量为待求问题的解,进行大统计量(N→∞)的统计实 验方法或计算机随机模拟方法。

理论依据: 大数定理:均匀分布的算术平均收敛于真值 中心极限定理:置信水平下的统计误差
射击问题(打靶游戏)

1.设r表示射击运动员弹着点到靶心的距离,g(r)表示击中r处 相应的得分数(环数),f(r)为该运动员弹着点的分布密度函数, 它们反映运动员的射击水平。该运动员的射击成绩为: g g (r ) f (r )dr
0
2.用概率语言来说,<g>是随机变量g(r)的数学期望,即


活动:实体在一段时间内持续进行的操作或过程。通常用于表示 两个可以区分的事件之间的过程。标志着系统状态的转移。 状态:系统的状态是指在某一时刻实体及其属性值的集合。 事件:事件是引起离散事件系统状态发生变化的行为。 进程:由若干个有序事件及若干有序活动组成,描述了它所包括的事件及 活动间的相互逻辑关系及时序关系。

0.3 命中9
命中10
1 N g N g (ri ) N i 1
收敛性:大数定理 由前面介绍可知,蒙特卡罗方法是由随机变量X的简单子样X1, X2,…,XN的算术平均值: 1 N X N Xi N i 1

作为所求解的近似值。由大数定律可知,如果X1,X2,…,XN独 立同分布,且具有有限期望值(E(X)<∞),则 P lim X N E ( X ) 1 N 即随机变量X的简单子样的算术平均值 X N ,当子样数N充分 大时,以概率1收敛于它的期望值E(X)。
g Eg (r )
3.假设该运动员进行了N次射击,每次射击的弹着点依次为r1, r2,…,rN,则N次得分g(r1),g(r2),…,g(rN)的算术平均值
1 N g N g (ri ) N i 1
代表了该运动员的成绩
4.用N次试验所得成绩的算术平均值作为数学期望<g>的估计值。 例如,设射击运动员的弹着点分布为
仿真模型的总体结构图
主程序:仿真开始 INIT子程序:系统初始化
TIMEDV 子程序:时间推进,确 定下一个最早发生事件的类型 变量EVTFLAG的值。
EVTFLAG=1
EVTFLAG=2
执行到达事件子程序ARRIVE
执行离开事件子程序DEPART
N
仿真结束吗?
Y
REPORT子程序:打印报告
变量 系统状态 NUMQ NUMR 实体属性和集合 WQAT[Q] WQAT[1] Q 将来事件表 EVT[I] EVTFLAG




专用术语

系统:一些具有特定功能、相互之间以一定的规律联系着 的物体所组成的总体.
系统边界:为了限制所研究问题涉及的范围,用系统边界 把所研究的系统与影响系统的环境区分开来。 实体:系统的对象、系统的组成元素都可以称为实体,是仿真系统中可 单独识别和刻划的构成要素。
属性:属性反映实体的某些性质,是实体特征的描述,用特征参数或变量表示,它 可以是文字型、数字型或逻辑型。
蒙特卡洛法中的误差---中心极限定理
蒙特卡罗方法的近似值与真值的误差问题,概率论的中心极限定 理给出了答案。该定理指出,如果随机变量序列X1,X2,…,XN 独立同分布,且具有有限非零的方差σ2 ,即
事件调度法的仿真策略




(1)初始化 <1>置仿真的开始时间t0和结束时间tf。 <2>置实体的初始状态。 <3>置初始事件及其发生时间ts。 (2)仿真时钟TIME=ts (3)确定在当前时钟TIME下发生的事件类型Ei, i=1,2,…,n,并按规则排序。 (4)如果TIME≤tf,执行 {case Ei of E1:执行E1的事件例程,产生后续事件类型及发生时间; …… En:执行En的事件例程,产生后续事件类型及发生时间。 endcase} 否则,转(6)。

(5)将仿真时钟TIME推进到下一个最早事件发生时间。 这一步体现了仿真时钟的推进机制,是将仿真时钟推进到 下一个最早事件的发生时刻。它与连续系统仿真中的时间 推进方法――固定时间增量法不同,反映了离散事件系统 状态仅在离散时刻点上发生变化的特点,这种时间推进方 法在离散事件系统仿真中普遍采用,称为下一事件增量法, 简称事件增量法。来自(6)仿真结束。
离散事件系统仿真步骤




1.系统建模 由观测数据确定随机变量的分布和参数。 一般可用流程图或网格图的方式描述,反映临时实体在系统 内部历经的过程、永久实体对临时实体的作用以及它们相互 之间的逻辑关系。 2.确定仿真算法 两个方面内容:如何产生所需求的随机变量;采用什么方法 对离散事件系统仿真。 确定仿真策略。 3.建立仿真模型 仿真时钟在各种算法中的推进方法。 根据仿真算法建立仿真系统的计算机模型(变量定义及程序 流程)。 4.设计仿真程序 实现仿真模型。 5.仿真结果分析 每次仿真结果只是随机变量的一次取样,仿真结果的可信度?
说明 当前时刻等待队列中的机器数 当前时刻正在接受修理的机器数(0或1) 等待队列中第Q-1个机器的到达时间 现在正在接受修理的机器的到达时间 等待队列中元素索引
建 模 变 量 说 明
类型为I的下一事件发生时间,I=1,2 下一事件类型标志(1或2)
产生随机数的种子 到达间隔时间均值 修理时间均值 仿真停止时间 EVT[1]和EVT[2]的最小值(最早发生事件的时间值)
已知条件 SEED EATI ERT TIME FMIN
仿真变量 CLOCK 累积统计量 B TLE TLQ TVAL S ND 结果量 P=B/CLOCK W=S/ND WQ=TLQ/ND
仿真时钟当前时间
到当前时间为止修理台工作的总时间 上一事件发生时间 当前队列中机器数与时间区间的乘积(机器等待的总时间) 时间区间,当前时间与上一事件发生时间之差 到当前时间为止已离开的机器在系统中逗留的总时间 到当前时间为止已离开的机器总数 修理台利用率 机器在系统中平均逗留时间 机器在队列中平均等待时间


事件调度法的仿真策略



事件调度法由兰德公司在1963年提出。在美国广泛采用,欧洲不 很流行。 基本思想:将事件例程作为仿真模型的基本模型单元,按照事件发 生的先后顺序不断执行相应的事件例程。每一个有确定发生时间的 事件,都有一个事件例程,用事件例程来处理事件发生后对实体状 态所产生的影响,并安排后续事件。 事件调度法用事件的观点分析真实系统,通过定义事件及每个事件 的发生,引起系统状态的变化,按时间顺序,在每个事件发生时, 确定并执行有关的逻辑关系。 按这种策略建立模型时,所有的事件均放在事件表中,模型中设有 一个时间控制器,从事件表中选择最早发生的事件并将仿真时钟改 到该事件发生的时间,然后调用与该事件相应的事件处理模块。这 样,事件的选择与处理不断地进行,直到仿真终止或程序事件产生 为止。
等修机器 入口
队列等待区
被修机器 修 理 台 修理区 出口
系统描述





这是一个典型的单服务员单队列的排队系统仿真模 型。 这类排队系统主要包括两个要素:顾客(即服务对 象)和服务员(即服务设备)。 该系统由到达模式、服务模式、并行服务员数目、 系统容量、排队规则来表示。 由命题可知,被修理的机器为“顾客”,而修理台 为“服务员”。 该排队系统的到达模式用机器到达间隔时间的负指 数分布表示;服务模式由修理时间的负指数分布表 示;系统中并行服务员数目为1;系统容量足够大; 排队规则采用先进先出FIFO方式。
计算机仿真原理与应用
单位:物理电子学院 主讲人:王刚 Email: buncan_wang@
§3 离散事件系统仿真方法

离散事件系统示例 例:单人理发店系统,设上午9:00开门,下午 5:00关门。 顾客到达时间一般是随机的,为每个顾客服务的 时间长度也是随机的。 系统的状态:服务台的状态 (忙或闲)、顾客排队 等待的队列长度。 状态量的变化也只能在离散的随机时间点上发生。
实例:机器修理车间的仿真



已知的基本信息: 等待区足够大; 排队规则先进先出FIFO; 到达间隔服从负指数分布1=1/10(台/天); 修理时间服从负指数分布2=1/15(台/天); 仿真时间长度为365天。 编程序求解: 机器的平均等待时间; 机器的平均逗留时间; 修理台利用率。
相关主题