第4章 离散事件系统仿真16
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
4.2 离散事件系统仿真的时钟推进机制
Dep——t时刻已经起飞的飞机数(包括正在跑道上的飞 机) Arr——t时刻已经着陆的飞机数(包括正在跑道上的飞 机) t——时钟 Runw——着陆或起飞结束的时钟时间,即跑道开始空闲 的时间(模型控制变量) (2)仿真时间间隔设为一分钟 (3)由已知每小时起飞和着陆飞机的到达率都为每小时8架, 故一分钟有飞机到达的概率为8/60,没有飞机到达的概率 为52/60
4.1 离散事件系统仿真建模的基本概念
1.实体(Entity)一个系统边界内部的客观对象称为实体。 • 永久实体 是指经常处于系统之内,其数量保持稳定的实 体。如排队系统中的服务员,交通系统中的道路设施等。 • 临时实体(Transaction)又称主动实体、活动实体, 是 指先进入系统并经过相应的环节以后再离开系统,在系统 中的数量经常变化的实体 2.属性(Attributes)是实体特征的描述,一般是实体所 拥有的全部特征的一个子集,用特征参数变量表示。 3.活动(Activity)活动是占用一定时间和资源导致系统 状态发生改变的一定过程。活动所占用的时间区段称为忙期 (duration),忙期(时间长度)可以是确定的或随机的。 4. 系统状态(System state)是描述在某时间点系统的所 有实体、属性和活动的变量集合
Δt 2Δt 3Δt 4Δt 5Δt t
0
e1
e2e3
e4e5
e6
4
4.2 离散事件系统仿真的时钟推进机制
固定时间增量步长法仿真模型算法步骤:
1)初始化 仿真时钟、系统状态变量、统计 计数器等置以初始值 2)仿真时钟增加步长△t 3)扫描事件表 若此时间间隔无事件发生, 则转 2),否则处理事件并更新系统状态 4)收集统计数据 5)判断是否满足仿真终止条件,否:返回 2),是:执行下一步 6)分析收集统计数据,产生输出报告
第4章 离散事件系统仿真建模方法
第4百度文库 离散事件系统仿真建模方法
4.1 4.2 4.3 4.4 4.5 离散事件系统仿真的基本概念 系统仿真的时钟推进机制 离散事件系统仿真策略 排队系统的建模与仿真 库存系统的建模与仿真
1
4.1 离散事件系统仿真建模的基本概念
仿真(simulation)是对客观世界实际过程或系统在一段时间 内运行的模仿。仿真要产生一个人为的系统的经历,然后观 察这个人为的经历,以便描绘推断出和实际系统有关的运行 特征。 系统状态 与特定时间和研究目的有关的描述系统所需变量 的集合。 连续系统 系统的状态变量随时间连续变化,就称为连续系 统。系统的动态特性可以用微分方程或一组状态方程来描述, 也可以用一组差分方程或一组离散状态方程来描述。 离散系统 系统的状态变化只在时间的离散时刻发生,而且 往往又是随机的,这样的系统称为离散系统。 系统仿真的术语 称状态的瞬间变化为事件,将发生事件的 时刻称为事件时间。如果事件时间是一些非均匀离散时点, 这样的事件称为离散事件,相应的系统称为离散事件系统
调用定时子程序
调用i类事件子程序
否
仿真结束否??
是
调用输出 报告子程序 结 束
图4-3 事件调度法程序结构
10
4.3 离散事件系统仿真策略 4.3.2 活动扫描法(Activity Scanning)
活动扫描法的基本思想 ◊ 系统由实体组成,实体要产生活动,它标志系统状态的转 移。 ◊ 活动扫描法中的任一活动都可以由开始和结束两个事件来 表示,每一事件都有相应的活动例程。 ◊ 例程中的操作能否进行取决于一定的测试条件,该条件一 般与时间和系统的状态有关、而且时间条件须优先考虑。 ◊ 确定性事件的发生时间事先可以预计,因此其活动例程的 测试条件只与时间有关;条件事件的例程测试条件与系统 状态有关。
9
4.3 离散事件系统仿真策略
4.3.1 事件调度法 事件调度法模型组成 1.系统状态 2.仿真时钟 3.事件表 4.统计计数器 5.初始化子程序 6.定时子程序 7.事件子程序 8.仿真报告子程序 9.主程序
4.3 离散事件系统仿真策略
主程序 输入仿真控制参数 调用初始化子程序 初始化子程序: (1)仿真时钟初始化 (2)系统状态初始化 (3)事件表初始化 (4)统计计数器初始化 定时子程序: (1)扫描事件表,确定下一最早 发生事件 (2)推进仿真时钟 第i类事件子程序: (1)修改系统状态 (2)修改统计计数器 (3)产生未来事件加入事件表中 输出报告子程序: (1)进行统计分析 (2)打印输出报告
b0 A1 b1 t1 b2 t2 A2 S1 b3 c1 A3 b4
t3
c2 S2
b5
t
7
4.2 离散事件系统仿真的时钟推进机制
图4-2 排队系统的事件发生与时钟推进关系 (a)固定步长时间推进机制 (b)下次事件时间推进机制
4.3 离散事件系统仿真策略 仿真策略:离散事件系统中,一般都存在诸多的实 体,这些实体之间相互联系,相互影响,然而其活动 的发生却统一在同一时间基上。采用何种方法推进仿 真时钟,建立起各类实体之间的联系称之为仿真策略。 将系统模型转换为计算机模型需完成三部分工作: 设计仿真策略,确定仿真模型的控制逻辑和仿真时 钟推进机制; 构造仿真模型,即确定模型的具体操作; 仿真程序设计与实现,即采用某种程序设计方法及 语言,实现仿真策略和仿真模型。
N Y
Q1>0? Q1=Q1-1 Arr=Arr+1 Test=1 Runw=t+3
Q2=Q2-1 Dep=Dep+1 Test=2 Runw=t+2
机场跑道利用仿真程序框图
4.2 离散事件系统仿真的时钟推进机制
下次事件推进法 仿真时钟按照下一个事件预计将要发生的时刻,以不等距的 时间间隔向前推进的,即仿真时钟每次都跳跃性地推进到下 一事件发生的时刻上去。
6
开 始 结束
Y
t≥M ?
N
Q1=0 Q2=0 Dep=0 Arr=0 t=0 Test=0
t=t+1 产生随机数z1 z1<8/60?
产生随机数z2
Y N
Q1=Q1+1
打印t,Test Q1, Q2, Arr, Dep,Runw
N
z2<8/60? t≥Runw?
N Y
Y N Y
Q2=Q2+1
Test=0 Q2>0?
4.2 离散事件系统仿真的时钟推进机制
例4.1 有一个只有一条跑道的飞机场供飞机起落。每架飞机 起飞需两分钟,着陆需三分钟,每小时有8架飞机起飞,也有 8架飞机着陆。飞机的到达是随机的,由于有延误,假定飞机 着陆优先于起飞,试建立模型,分析每一分钟的系统状态。 解:(1)分析 系统状态 :用变量test来描述跑道的状态 test=0:跑道空闲 test=1:一架着陆飞机占用跑道 test=2:一架起飞飞机占用跑道 Q1——队长,t时刻等待着陆的飞机数 Q2——队长,t时刻等待起飞的飞机数
8
4.3 离散事件系统仿真策略 4.3.1 事件调度法(event scheduling)
面向事件的仿真建模方法基本思想: 离散事件系统中最基本的要素是事件,事件发生引起 系统状态发生变化。 按事件调度法建立模型时,要建立一个未来事件表, 模型中设有一个定时子程序,它从未来事件表中选择具 有最早发生时间的事件,并将仿真时钟推进到该事件发 生的时间。 调用事件子程序处理事件,修改系统状态并生成新的 未来事件放入未来事件表。 事件的选择与处理不断地进行,直到仿真终止的条件 或事件产生为止。
4.3 离散事件系统仿真策略
4.3.2 活动扫描法(Activity Scanning) ◊ 一个实体可以有几个活动例程;协同活动的活动例程只 归属于参与的其中一个实体(一般为永久实体)。 ◊ 在活动扫描法中,除设置系统仿真时钟外,每一实体都 带有标志自身时钟值的时间元(time-cell)。时间元的 取值由所属实体的下一确定事件刷新。 ◊ 用各实体时间元的最小值推进仿真时钟;将时钟推进到 一个新的时刻点后,按优先序执行被激活实体的活动例 程,使测试通过的事件得以发生并改变系统的状态和安 排相关确定事件的发生时间。
11
4.3 离散事件系统仿真策略
4.3.2 活动扫描法(Activity Scanning)
活动扫描法仿真策略 ②置实体的初始状态, (1) 初 始 化 ① 置 仿 真 的 开 始 时 间 t 0 和 结 束 时 间 t f , ③ 置 实 体 时 间 单 元 tim e-cell[i] 初 值 ; i=1,2,… ,m ; m 是 实 体 个 数 。 (2) 仿 真 时 钟 TIM E t 0 ; (3) 如 果 TIM E t f , 转 (4) , 否 则 转 (6) ; (4) 活 动 例 程 扫 描 for j=1,n ( 优 先 序 从 高 到 低 ) 例 程 A j 属 于 实 体 E i; if(tim e-cell[i] ≤ T IM E then 执 行 活 动 例 程 A j; 若 A j 中 安 排 了 E i 的 下 一 事 件 则 刷 新 tim e-cell[i] endif 若 例 程 A j 的 测 试 条 件 D [j] = True , 则 {退出当前循环、重新开始扫描} ; endfor (5) 推 进 伤 真 时 钟 T IM E =m in{tim e-cell[i] | tim e-cell[i] > TIM E } ; (6) 仿 真 结 束 。
S S1 S2
S3 S4 S5 S6 E1 A1 E2 A2 E3 P A3 E4 E5 t
图 4-1 活动、状态、事件及进程(a)
4.1 离散事件系统仿真建模的基本概念
进程 排队活动 服务活动
顾客到达事件
服务开始事件
服务结束事件
图4-1 活动、事件及进程(b)
7. 队列 处于等待状态的实体序列。一般按新到的实体排 在队尾的次序组成队列。在离散事件建模中,队列可作为 一种状态或特殊实体对待。 8. 时钟(Clock)离散事件仿真中所研究的系统是动态的。 系统状态、活动的实体数和实体属性以及正在处理的活动 等都是时间的函数,时间是自变量,称之为时钟。 9. 统计计数器(Statistical Accumulators) 是全局变量, 为了对系统 性能进行测度,伴随仿真过程的进行,对统计 变量的变化进行记录
4.3 离散事件系统仿真策略
4.3.1 事件调度法 事件调度法的仿真策略
( 1)初始化; ①置仿真的开始时间 t0 和结束时间 t f ②置实体的初始状态 ③事件表初始化 (2) 仿真时钟 TIME t0 ; (3) 确定在当前时钟 TIME 下发生的事件类型 Ei ,i 1, 2, , n , 并按 逻辑规则排序; (4) 如果 TIME t f ,执行 case Ei of E1 :执行 E1 的事件例程;产生后续事件类型及发生时间; ……, En:执行 En 的事件例程;产生后续事件类型及发生时间。 endcase 否则,转(6); (5) 将仿真时钟 TIME 推进到下一最早事件发生时刻,转(3); (6) 仿真结束。
3
4.1 离散事件系统仿真建模的基本概念 10.系统环境(Environment)存在于系统周围的对 象和过程(即实体和活动)称为系统的环境 •产生于系统内部的活动称为内生活动 •发生于系统环境并对系统产生影响的活动称为外 生活动
4.2 离散事件系统仿真的时钟推进机制
固定增量时间推进法 固定增量时间推进法,也称之为周期扫描法。采用这种方 法,仿真时钟按着等步长△t时间单位来推进。仿真时钟每 次变化后,就要进行一次系统扫描,判定在相应的步距 (△t)内是否发生了事件,若有事件发生,则将事件移至 该区间的终点处,处理事件并更新系统状态,否则就继续 推进仿真时钟。如此不断从复下去。
4.2 离散事件系统仿真的时钟推进机制
(4)对应每一时间间隔产生两个随机数z1和z2,若z1<8/60 则有飞机着陆,排在Q1内,z2<8/60表示有飞机要起飞, 排在Q2内。 (5)检查跑道是否有空,否,打印当时的排队情况及有关变 量值;是,则先考查Q1,若Q1>0,允许其中排在第一位的 飞机着陆;反之考查Q2 (6)程序模型
例如,下次事件时间推进法用于单队列单服务台系统 ti 第i个顾客到达的时刻(t0=0) Ai 第i-1与第i个顾客之间的到达间隔ti=ti-1+Ai Si 服务员为第i个顾客服务的服务时间 Di 第i个顾客排队等待时间Di=ci-1-ti ci=ti+Di+Si 第i个顾客完成服务并离去的时间 bi 任何一种类型事件发生时间,仿真时钟取第i个值 (b0=0,b1=t1,b2=t2,b3=c1,b4=t3,b5=c2, t2=t1+A2,t3=t2+A3,D2=c1-t2,c2=c1+S2)
2
4.1 离散事件系统仿真建模的基本概念
5.事件(Event)是引起系统状态发生瞬间变化的事实。 •时间事件是依照系统的作业规则在预定时间发生的事件。 •状态事件是当系统状态符合某种条件而发生的事件。 6.进程(Process)进程由若干个事件及若干活动组成, 一个进程描述了它所包括的事件及活动间的相互逻辑关系 及时序关系