第4章 离散事件仿真基础
系统工程4-2 离散事件仿真
电话呼唤
提货单 到达机场的飞机 驶入港口的货船 ……
通话
提取货物 降落 装(卸)载 ……
交换机(接线员)
邮局工作人员 跑道 码头(泊位) ……
仿真研究排队系统统计性能(略)
◦ 稳定平均延误时间,Di为第i个实体的延误时间
d lim Di / n
n i 1
n
◦ 平均滞留时间w, Si为第i个实体接受服务时间
9:43 时间表
20
— —
队长:在调整仿真时间时统计出的到达时间小于仿 真时间的客户数。
一些需要计算的统计数据
◦ 平均队长、最大队长 ◦ 系统中平均客户数
◦ 平均等待时间、平均逗留时间
◦ 服务台总闲期 ◦ 闲期所占比例
◦ 总服务顾客数
库存(存储)系统:
◦ 水库的蓄水 ◦ 工厂的原料存货 ◦ 商店的商品库存
各种费用之间的关系(略)
◦ 存储费用,单位存储费用是常数c1,R为需求速度: 1 t 1 c1 RTdt c1 Rt 2 0 2 ◦ 订货费用:单位费用递减
C c0 c(t) c1Rt/2 c2/t T 0 t0
(2)影响存货量的因素
◦ 平均消耗速度:单位时间的平均消耗量; ◦ 订货提前期:从订购到入库所需的时间; ◦ 最低存货量:为了安全生产用,以备采购延误或用量突增, 也成安全库存; ◦ 订货点:存货至某一库存量时应订货的基点。平均用量× 输补时间+最低存量; ◦ 最高存货量:特定时间存货的最高限额,订购点+购买量
共性:
◦ 需求:系统的输出,包括间断需求、连续需求、确定性需 求和随机需求
◦ 补充:系统的输入,补充策略根据系统的目标和需求方式 来确定
《离散事件仿真》课件
离散事件仿真的应用场景
离散事件仿真在交通、供应链、生产、物流等领域广泛应用,用于有效评估 系统的性散事件仿真包括问题建模、模型开发、实验设计、仿真运行和结果分析等步骤,每个步骤都需 要仔细进行。
离散事件仿真的关键技术
离散事件仿真关键技术包括事件排序算法、随机数生成、实验设计和验证方法,这些技术能够提 高仿真的准确性和效率。
《离散事件仿真》PPT课 件
探索离散事件仿真的定义、原理、应用场景、步骤、关键技术,以及介绍相 关工具,最后分享一个离散事件仿真的案例。
离散事件仿真的定义
离散事件仿真是一种计算机模拟技术,用于模拟离散事件的发生与演变,以评估系统的行为和性 能。
离散事件仿真的原理
离散事件仿真基于事件驱动的模型,模拟系统内部事件的离散发生与相互作 用,通过事件的排序和处理来模拟系统的演化。
离散事件仿真工具的介绍
介绍一些常用的离散事件仿真工具,如AnyLogic、Simio、Arena等,它们提供了丰富的功能和可视 化界面,方便建模和仿真操作。
离散事件仿真案例分享
分享一个实际应用的离散事件仿真案例,比如物流中心的优化、生产线的调度等,展示离散事件 仿真的效果和应用前景。
离散事件系统仿真
•
• •
(2) 产生u(i+1) 服从 U(0, 1)
(3) 令p(i+1)= p(i) /(i+1) , F(i+1)=F(i)+p(i+1) (4) 若F(i) u(i+1), 则x=i+1, 否则, i=i+1 , 并返回到第(3)步。
2.3 典型随机变量的产生
• MATLAB stats工具箱中提供的随机数发生器(1)
1.1 基本概念
• 活动
用于表示两个可以区分的事件之间的过程, 它标志着系统
状态的转移。顾客的到达事件与该顾客开始接受服务事件之间可称为 一个活动。
• 进程
进程由若干个事件及若干活动组成, 一个进程描述了它所
进 排队 活动 程 服务 活动
包括的事件及活动间的相互逻辑关系及时序关系。
顾客到达事件 服务开始事件 服务结束事件
2.1 随机变量模型的确定
•(2)
比例参数
决定密度函数在其取值范围内取值的比例尺。参数的改 变只压缩或扩张分布函数, 而不会改变其基本形状。
2.1 随机变量模型的确定
•(3) 形状参数 确定分布函数的形状, 从而改变密度函数的性质。
Hale Waihona Puke 2.2 随机数发生器• 产生随机变量的基础是产生[0, 1]区间上均匀分布的随机变量, 亦称为随机 数发生器。其它各类的分布,例如,正态分布,指数分布等都可以用某 种方法通过对均匀分布的随机变量进行变换后得到。 • 严格地说,随机数发生器不是在概率论意义下真正的随机数, 而只能称为
伪随机数,因为无论哪一种随机数发生器采用的都是递推算法。如果算
法选择得合适, 由这种算法得到的数据统计检验后能具有较好的统计特性 (如均匀性, 独立性等), 则将这种伪随机数用于仿真仍然是可行的。 • 目前使用最多的随机数发生器是线性同余发生器,它是Lehmer在1951年 提出的。另一类是组合发生器。下面介绍这两种发生器的原理。
4.离散事件仿真
计算机仿真技
接受服务的顾客 服务员
顾客离开
临时实体
排队活动
永久实体
接受服务活动
顾客到达事件
顾客开始接受 服务事件
顾客服务完毕 离去
4. 进程(Process)
顾客超市结帐服务进 程
进程是由若干个事件和若干个活动组成,它描述了事件及活动之 间的相互逻辑关系及时序关系。
排队论方法 网络图或事件图法
形式语言与自动机法 随机过程描述法(如Markov过程和CSMP过程) 抽象代数法(如双子代数、极小代数、极大代数)
计算机仿真技术基础 15
离散事件建模的步骤
1. 明确仿真目的 建模之前,必须根据仿真目的,确定所需要获取的某一事 件或系统的信息、模型类型、资料及数据。目的不同,所 建立的模型也不同,衡量仿真结果的逼真性准则也就不同。 甚至对某一仿真目的,模型是有效的,而对另一仿真目的, 模型可能就是无效的。 比如,[例4.2]中的船闸运行系统中,如果仿真目的是了解 船闸服务时间长短对船闸利用率的影响,这种情况属于排 队论模型。如果还要分析闸门的开关控制和动力学特性, 以及注水放水过程特性,系统应视为连续-离散混合型系统。
对于离散事件构成的离散事件系统或连续-离散混合系统的研究, 逐渐成为仿真技术应用的一个重要分支领域。
计算机仿真技术基础 5
4.1.1 离散事件系统的基本要素
离散事件系统的一些基本要素包括:实体、活动、事件等. 以超市购物系统为例:
[例4.1] 华联超市济南大学分店,共有10个服务台供顾客结帐, 营业时间为9:00 – 21:00,顾客选购完商品到服务台结帐的 时间是随机的,而且各自独立,每位顾客接受服务的时间长短 也是随机的。描述该系统的状态,可以是:
第四讲 离散事件系统仿真
(1)产生随机变量
(2)确定仿真建模策略。事件调度 法:面向事件建立仿真模型;活 动扫描法:面向活动建模;进程 交互法:面向进程建模;三阶段 法:结合活动扫描与事件调度; 图形仿真方法:Petri网 建立仿真模型:定义状态变量、定义系统 事件及有关属性、活动及进程、设计仿 真时钟的推进方法等。 仿真程序设计及运行:(1)仿真语言或高 级语言(2)长期运行或多次运行 仿真结果分析:统计结果、可信度分析等
离散事件系统仿真的方法
随机数与随机变量的产生
产生随机数的方法
随机数表
1927年,4万随机数表,以后有100万随机数表(可以输 入内存,随时调用)
硬件设备 从真实物理现象的随机因素中产生随机数,放射性粒 子的放射源,电子晶体管的固有噪音等,单位时间内 放射出的粒子数是随机的。 优点:真正的随机数;缺 点:外部设备,无法重复。
离散事件系统仿真的基本要素
系统:一些具有特定功能、相互之间以一定的规律联系着 的物体所组成的总体。
系统边界:为了限制所研究问题涉及的范围,用系统边界 把所研究的系统与影响系统的环境区分开来。
离散事件系统仿真的基本要素
实体:系统的对象、系统的组成元素都可以称为实体,是仿 真系统中可单独识别和刻划的构成要素。 如:工厂中的机器,商店中的服务员,生产线上的工件,交 通道路上的车辆等。在仿真建模人员看来,实际系统就是由 相互间存在一定关系的实体集合组成的,实体间的相互联系 和作用产生系统特定的行为。
h ym1 ym 2 ( K1 K 2 ) K1 f (tm , ym ) K f (t h, y K h) m m 1 2
二阶RK法公式
离散系统仿真基础
随机排队系统的三个组成部分:
到达模式——指含个类型的动态实体按怎样的 规律到达。
TIME=TIME+1
输出统计结果 结束
N
这是种“面向时间”的时钟(TIME)处理。通过多次运 行程序(试验)统计得到结果。程序每做一次循环,就增 加一个时间单位。此时不论系统是否有时间发生,程序总 是要查询系统状态,如发现没有时间发生就跳过该事件的 处理程序。
对队列进行度量通常考察两个量:
队列长度 排队时间
3.5 设备利用率和服务质量
对系统做假设:动态实体数量是无限的,其 到达速率不受排队长度的影响,并且所到达的 实体不会中途离去;到达模式为泊松分布,服 务设备利用率ρ<1时,服务系统的动态实体平均 数(L)为: 服务时间为常数分布
L=ρ(2-ρ)/(2(1-ρ)) 服务时间为指数分布
Pw (t ) e (1 )t
其中:t——指定的时间长度,ρ——设备利用率, μ平均服务速度。
例:对某个系统,平均服务时间为10秒,规定 服务质量:
在4个请求中至少有一个请求应立即给予响应 而且等待时间超过30秒的请求不应超过请求总
数的20%。
分析:对第一个要求
Pw(0)=0.75 => ρ≤0.75 对第二个要求
动态实体——这类实体在系统中总是要求得到 某些设备的服务。在系统的运行中,它们不断 得以某种到达率“生成”。当从某一设备得到 服务后,又流向其他设备以求服务。
第4章 离散事件系统仿真16
5
4.2 离散事件系统仿真的时钟推进机制
Dep——t时刻已经起飞的飞机数(包括正在跑道上的飞 机) Arr——t时刻已经着陆的飞机数(包括正在跑道上的飞 机) t——时钟 Runw——着陆或起飞结束的时钟时间,即跑道开始空闲 的时间(模型控制变量) (2)仿真时间间隔设为一分钟 (3)由已知每小时起飞和着陆飞机的到达率都为每小时8架, 故一分钟有飞机到达的概率为8/60,没有飞机到达的概率 为52/60
调用定时子程序
调用i类事件子程序
否
仿真结束否??
是
调用输出 报告子程序 结 束
图4-3 事件调度法程序结构
10
4.3 离散事件系统仿真策略 4.3.2 活动扫描法(Activity Scanning)
活动扫描法的基本思想 ◊ 系统由实体组成,实体要产生活动,它标志系统状态的转 移。 ◊ 活动扫描法中的任一活动都可以由开始和结束两个事件来 表示,每一事件都有相应的活动例程。 ◊ 例程中的操作能否进行取决于一定的测试条件,该条件一 般与时间和系统的状态有关、而且时间条件须优先考虑。 ◊ 确定性事件的发生时间事先可以预计,因此其活动例程的 测试条件只与时间有关;条件事件的例程测试条件与系统 状态有关。
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 离散事件系统仿真策略 仿真策略:离散事件系统中,一般都存在诸多的实 体,这些实体之间相互联系,相互影响,然而其活动 的发生却统一在同一时间基上。采用何种方法推进仿 真时钟,建立起各类实体之间的联系称之为仿真策略。 将系统模型转换为计算机模型需完成三部分工作: 设计仿真策略,确定仿真模型的控制逻辑和仿真时 钟推进机制; 构造仿真模型,即确定模型的具体操作; 仿真程序设计与实现,即采用某种程序设计方法及 语言,实现仿真策略和仿真模型。
第4章 离散事件仿真的基本方法 计算机仿真技术课件
第4章 离散事件仿真的基本方法
离散事件系统与模型 (基本概念) 离散事件仿真(仿真模型、仿真策略)
排队系统的仿真
离散事件仿真应用
在对象的行为不能做分析性的解释,或数据无法直接 收集的情况下,建模者可以用某种方式间接地模拟其 行为,试验所研究的供选择的各种方案,以估计它们 怎样影响对象的行为,然后收集数据来确定哪种方案 是最好的.例如,为了得到一艘拟建造的潜艇受到的 阻力,造一个原型是不可行的,我们可以按比例建一 个模型,去模拟实际的潜艇的行为.又如,在风洞里 利用喷气飞机的比例模型可以估计高速飞行对飞机各 种设计方案的影响。
Discrete Event Dynamic Systems
3. 活动(Activity) : 用于表示两个可以区分 的事件之间的过程, 它标志着系统状态的转移。
• 顾客的到达事件与该顾客开始接受服务事件之间 可称为一个活动-排队活动
3. 进程(Process):进程由若干个有序事件及 活动组成。
随机现象的模拟
均匀随机数是产生其它随机数的基础。例如,抛 硬币、抽签、统计经验分布都可以由它产生。
产生随机数的方法:
(1)随机数表 : 1927年,4万随机数表,以后有100万随机数表(可
以输入内存,随时调用);
(2)硬件设备: 从真实物理现象的随机因素中产生随机数,
放射性粒子的放射源,电子晶体管的固有噪音等, 单位时间内放射出的粒子数是随机的。
Discrete Event Dynamic Systems
5. 仿 真 钟 (Simulation clock): current value of
simulated time
– 离散事件动态系统的状态本来就只在离散时 间点上发生变化,因而不需要进行离散化处 理。
离散事件仿真
离散事件仿真基本原理赵问道浙江大学信息与通信工程研究所目录一、离散事件仿真的基本概念 (3)1. 基于事件的(event-based)离散事件仿真 (3)2. 基于活动的(activity-based)离散事件仿真 (3)3. 基于进程的(process-based)离散事件仿真 (3)4. 三阶段(three-phase)离散事件仿真 (3)二、离散事件仿真系统的组成 (4)1. 时钟(Clock) (4)2. 事件列表(Events List) (4)3. 随机数发生器(Random-Number Generators) (5)4. 统计(Statistics) (5)5. 结束条件(Ending Condition) (5)三、仿真引擎逻辑(Simulation Engine Logic) (5)1. 开始(Start) (5)2. 循环(“Do loop” or “While loop”) (6)3. 结束(End) (6)离散事件仿真基本原理一、离散事件仿真的基本概念在离散事件仿真中,系统的操作通过按时间顺序排列的一组事件序列来表示。
每个事件发生在某一时刻,表示系统的状态改变。
例如,如果仿真电梯,那么事件可以是“6层的按钮按下了”,随之系统状态改成“电梯移动”,并且最后到达状态“电梯位于6层”i。
学习如何建立离散时间仿真的一个普通例子是仿真一个队列(queue),如顾客到达银行接受出纳员的服务,这里的系统实体是“顾客队列”(CUSTOMER-QUEUE)和“出纳员”(TELLERS)。
系统事件是“顾客到达”(CUSTOMER-ARRIV AL)和“顾客离开”(CUSTOMER-DEPARTURE)(事件“出纳员开始服务”(TELLER-BEGINS-SERVICE )可以是到达和离开事件逻辑的组成部分) 。
可以由这些事件改变的系统状态有“队列中的顾客数量”(NUMBER-OF-CUSTOMERS-IN-THE-QUEUE (是一个从0到n的整数) )和“出纳员状态”(TELLER-STATUS (忙或空闲))。
离散事件动态系统仿真
仿真程序的流程管理 事件表
事件表是一个有序的记录表,每个记录包括事件发生的时间、 事件表是一个有序的记录表,每个记录包括事件发生的时间、 事件类型等内容; 事件类型等内容; 在某些离散事件的仿真中,采用事件表的形式进行调度; 在某些离散事件的仿真中,采用事件表的形式进行调度;
同时事件管理方法
同时同类事件管理 混合同时事件管理: 混合同时事件管理:一步法和解结法
时钟推进子程序:根据事件表决定 时钟推进子程序: 仿真时钟:仿真时间的当前值; 仿真时钟:仿真时间的当前值; 下次事件, 下次事件,然后将仿真时钟推进到 事件表:有关未来事件表, 事件表:有关未来事件表,包括 事件名称和时间; 事件名称和时间; 系统状态变量:描述系统状态的 系统状态变量: 变量; 变量; 初始化子程序:用于模型初始化; 初始化子程序:用于模型初始化; 析的子程序; 析的子程序; 事件子程序: 事件子程序:每一类事件的服务 程序; 程序; 调度子程序: 调度子程序:将未来事件插入事 件表中的子程序; 件表中的子程序; 统计计数器: 统计计数器:用来存放与系统性能 分析有关的述各子程序并完成 仿真任务的全过程。 仿真任务的全过程。 该事件发生的时刻; 该事件发生的时刻; 随机数产生子程序:产生给定分布 随机数产生子程序: 的随机数的子程序; 的随机数的子程序; 输出函数子程序:用于系统性能分 输出函数子程序:
离散事件系统简介
与传统的物理系统不同,这类系统中 均存在着大量的离散事件过程,其运行规 律难以用物理定律加以描述,而是服从于 一些人为的规则。系统普遍投资巨大,运 行费用昂贵,如何提高系统的利用率和运 行效率是决策者、设计者与使用者普遍关 注的研究课题,迫切需要在理论方面进行 深入的研究。
简单的离散事件例子
系统建模与仿真第四章_离散事件仿真基础解析
济南大学控制科学与工程学院
计算机仿真技术
6
顾客进入系统
顾客排队
接受服务的顾客 服务员
顾客离开
超市系统 临时实体
永久实体
1. 实体(Entity)
• 临时实体:只存在一段时间,由系统外部到达和进入系统. 如超 市系统里的顾客,该临时实体随机到达系统,经过服务员的服务, 然后离开系统. 那些已经在超市选购但并未到服务台结帐排队的 不能称为该系统的实体.
济南大学控制科学与工程学院
计算机仿真技术
3
连续系统与离散事件系统仿真的 区别
• 在连续系统数字仿真中,时间通常被分割成均等或非 均等的时间间隔,并以一个基本的时间间隔计时.
• 而离散事件仿真通常是面对事件的,时间指针不是固 定增值推进,而是由事件的推动而随机递进.
• 连续系统仿真中,系统的动力学模型是由表征系统变 量之间的关系的方程来描述的,仿真的结果表现为系 统变量随时间变化的历程
济南大学控制科学与工程学院
计算机仿真技术
10
[例4.2] 在一个有较大水位落差河段上的船闸运行系统, 从上游新来的船只到达船闸时,进行排队,排到时,船 闸打开,船只过闸,最后船只离开船闸. 该系统的实体、 事件、活动和进程,它们之间的关系?
第四章 离散事件仿真基础
• 前面所讨论的系统,其状态变量是连续变化的,这类 系统的仿真成为连续系统仿真.
• 离散事件系统受事件驱动,系统的迁移发生在一系列 离散事件点上,系统状态是跳跃式变化的,在时间和 空间上都是离散的,与连续系统在性质上完全不同. 比 如:生产调度管理、库存系统、计算机通讯网络等.
接受服务活动
系统建模与仿真第4章离散系统建模.ppt
即:
t A 1 5 t1 b1 : t 1 0 1
t1 150
到达事件, 且 Z0 0 变为 Z0 1。
, 若立即服务, 即 D 1 0 服务台状态由 Z0 0
3 , 则其为: 预定该顾客的离去时间:服务时间为 S 1 4
进程 排队活动 服务活动
顾客到 达事件
服务开 始事件
服务结 束事件
• 仿真钟
(临时实体及永久实体): 1)离散事件动态系统的状态本来就只在离散时间点上发生变化, 因而不需要进行离散化处理; 2)由于引起状态变化的事件发生时间的随机性,仿真钟的推进 步长则完全是随机的 ; 3)两个相邻发生的事件之间系统状态不会发生任何变化,因而 仿真钟可以跨过这些“不活动”周期,仿真钟的推进呈现跳跃性, 推进速度具有随机性 ; 4)时间控制部件是必不可少的,以便按一定规律来控制仿真钟 的推进。 在仿真模型中,需要有一个统计计数部件, 以便统计系统中的 有关变量。
(2)组成:顾客源、排队结构、服务机构.
4.2.2排队系统的基本要素
到达模式、排队规则、服务机构、服务过程。
1. 到达模式(系统输入过程) 描述随机地来到服务机构,要求某种类型服务的顾客的分布模式 2. 排队规则(排队律) 服务员完成对当前顾客服务时,从队列中选取下一个顾客的规则。
• 常见的排队律: (1)先到先服务律,以FIFO表示。 (2)后到先服务律,以LIFO表示。 (3)优先服务律。 (4)随机律。 (5)其他。 3. 服务机构 可提供特定服务的一定数量的服务员、服务台之间的配置形 式。如几台服务台并行、串行或其他连接方式。通常:有单队-单服 务台排队系统,单队-多服务台并行排队系统等。 4. 服务过程 对各个顾客服务所需要用时间形成的服务过程,描述了服务过程 的统计特性,同样具有一定的分布特性。
离散事件系统仿真基础
比例参数β
决定分布函数在其取 值范围内取值的比例 尺 的改变只压缩或扩张 分布函数,不改变基 本形状 例:指数分布函数 EXPO(β ),密度函 1 x e , 数 f ( x) 0,
x0 x0
形状参数
确定分布函数的形状, 从而改变分布函数的 性质 例:韦伯分布 Weibull(α,β ),密 度函数:
位置参数 比例参数 形状参数
Hale Waihona Puke 位置参数γ
确定了一个分布函数 取值范围的横坐标 当改变时,分布函数 仅平移而无其它变化, 又称位移参数 例均匀分布函数 U(a,b),密度函数 1 , a xb f ( x) b a 其它 0,
其中a,b均可定 义为位置参数
事件、活动、进程的关系图
进程 排队活动 顾客到达事件 服务活动
服务开始事件 服务结束事件
仿真时钟
离散事件动态系统的状态本来就只在离散时间点上 发生变化,因而不需要进行离散化处理。 离散事件系统一般不以时间推动,但事件间有时序 关系,仿真中仍必须有控制时间的部件 由于引起状态变化的事件发生时间的随机性,仿真 钟的推进步长则完全是随机的 两个相邻发生的事件之间系统状态不会发生任何变 化,因而仿真钟可以跨过这些“不活动”周期, 仿真钟的推进呈现跳跃性,推进速度具有随机性。
x ) 1 ( ,x 0 f ( x) x e x0 0,
分布参数的估计
常用方法
最大似然估计(maximum likelihood estimation)
4-离散事件系统仿真
否 仿真是否结束? 是
报告产生 程序
1、输出有关的统计值 2、输出报告
事件和系统状态
1. 2.
1. 2.
事件 顾客到达系统(属性:到达时间) 顾客离开系统(属性:离开时间) 系统状态 顾客排队的队长 服务员忙闲状态
顾客到达
到达事件
预定下一个 到达事件 否
服务员是否空闲
1.该顾客等待时间为0 2.完成服务的顾客数加1 3.置服务员为忙 4.预定本顾客的离开事件 返回
随机库存模型(1)
一个库存系统中最基本的两个概念是“需求” 和“订货”。 需求:这是库存系统的输出。由于需求,使存 储量不断减少。需求量有确定性的和随机性的 两种。 订货:这是库存系统的输入。由于订货,使存 储量得以补充,以满足要求。一般从订货到货 物进入仓库,往往需要一段时间,这段时间称 为滞后时间。由于存在滞后,所以对管理者来 说,需要提前一段时间订货,也就是提前时间。 提前时间也有确定和随机两种。
排队系统
排队系统的主要要素是顾客和服务员 主要因素 到达模式 服务模式 服务员数目 系统容量 排队规则(FIFO、LIFO、PR、SIRO)
1. 2. 3. 4平均顾客数
时刻t系统内的顾客总数为L(t) m
ˆ L=
∑R
i =1
i
T
式中,T为统计的总时间,Ri=时间区间[bi-1,bi]上排队的人 数乘以区间长度,m是在T内发生的事件总数
Simlib的全局变量(1)
sim_time: float型,表示仿真时间,由 timing函数更新 next_event_type:int型,下一事件的类型, 由timing函数更新 transfer:float数组(1…10),用于传递 数据到列表中或者从列表中取出数据。 maxatr:int型,每条纪录的最多属性数, 最少为4,最大为10
第4章 离散事件系统仿真方法
第4章离散事件系统仿真方法4.1离散事件系统仿真一般概念4.1.1 一般概念离散事件系统:系统中的状态只在离散时间点上发生变化,而且这些离散时间点一般是不确定的。
系统状态是离散变化的,而引发状态变化的事件是随机发生的,因此这类系统的模型很难用数学方程来描述。
随着系统科学和管理科学的不断发展及其在军事、航空航天、CIMS和国民经济各领域中应用的不断深入,逐步形成一些与连续系统不同的建模方法:流程图、网络图等。
离散事件系统建模与仿真的基本概念:⑴实体:是描述系统的三(四)要素之一,是系统中可单独辨识和刻画的构成要素。
如:工厂中的机器,商店中的服务员,生产线上的工件,道路上的车辆等。
从仿真角度看,实际系统就是由相互间存在一定关系的实体集合组成的,实体间的相互联系和作用产生系统特定的行为。
实体可分为两大类:临时实体和永久实体临时实体——在系统中只存在一段时间的实体。
一般是按一定规律由系统外部到达系统,在系统中接受永久实体的作用,按照一定的流程通过系统,最后离开系统。
临时实体存在一段后即自行消失,消失有时是指实体从物理意义上退出了系统的边界或自身不存在了;有时仅是逻辑意义上的取消,意味着不必再予以考虑。
如:进入商店的顾客、路口的车辆、生产线上的工件、进入防空火力网的飞机、停车场的汽车等。
永久实体——永久驻留在系统中的实体。
是系统产生功能的必要条件。
系统要对临时实体产生作用,就必须有永久实体的活动,也就必须有永久实体。
可以说临时实体与永久实体共同完成了某项活动,永久实体作为活动的资源而被占用,如:理发店中的理发员、生产线上的加工装配机械、路口的信号灯等。
临时和永久是相对的属性和行为相同或相近的实体可以用类来描述,这样可以简化系统的组成和关系。
如:理发店服务系统可以看成是由“服务员”和“顾客”两类实体组成的,两类实体之间存在服务与被服务的关系。
⑵属性是实体特征的描述,一般是系统所拥有的全部特征的一个子集,用特征参数或变量表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)离散事件系统的仿真模型
1.仿真程序的主要成分 采用步长法仿真的程序主要由以下部分组 成:
– ①仿真时钟:提供仿真时间的当前值; – ②事件表:由策划和事件调度生成事件名称, 时间的二维表,即有关未来事件的表; – ③系统的状态变量:描述系统状态的变量; – ④初始化子程序:用于模型初始化; – ⑤事件子程序:每一类事件的服务子程序; – ⑥调度子程序:将未来事件插入事件表中的子 程序;
顾客到达
忙
理发员忙否
排队等待
否 服务 服务完毕 (顾客离去) 置理发员闲
(1)实体(Entity) 实体是描述系统的三个基本要素之一.连 续系统一样,离散事件也是由实体组成的. 在离散事件系统中的实体可以分为两大类: 临时实体和永久实体.
– 临时实体:在系统中只存在一段时间的实体称为 临时实体.这类实体是由系统的外部到达并进 人系统的,然后通过系统,并最终离开系统. 例4-1中的顾客显然是临时实体. – 永久性地驻留在系统中的实体称为永久实体. 例4-1中的服务员就是永久实体.
(3)活动(activity) 离散事件中的活动,通常用于表示两个可 以区分的事件之间的过程,它标志着系统 状态之间的转移.把实体所做的,或对实 体施加的事件称为活动,它是实体在两个 事件之间保持某一个状态的持续过程. 在例4-1中,顾客的到达事件与顾客的开始 接受服务事件之间的过程可以称为一个活 动,该活动使系统的状态(队长)发生变化, 从顾客开始接受服务到对该顾客服务完毕 后离去的过程也可以被看成是一个活动, 它可能使队长减1或使服务员由忙转闲.
(二)离散事件系统仿真策略
因为离散事件模型的特点,实体活动,进 程都是以事件为基础构成的,所以从事件, 活动,进程三个层次来组织事件构成了处 理离散事件模型的三种典型的处理方法: 事件调度法,活动扫描法和进程交互法, 相应地要采用三种不同的仿真策略,在复 杂系统仿真中,按进程来组织事件可以使 众多的事件条理清晰,因而成为最通用的 仿真方法.
–离散事件系统与模型 –离散事件仿真 –排队系统的仿真 –随机数和随机变量的生成
一,离散事件系统与模型
概述 描述离散事件系统的基本要素 离散事件系统模型的建立
(一)概述
离散事件系统大量地存在于我们周围,如: 超级市场管理系统,银行服务系统,公交 管理系统,车间加工调度系统等,其中到 大市场和银行的顾客,上下车的旅客,等 待加工的工件,都是影响系统变化的"事 件".事件是在离散时刻随机发生的,利 用仿真技术对这些系统进行研究分析,可 以了解它们的动态运行规律,从而帮助人 们做出是否需要增加新的市场和银行的决 定,可以帮助人们合理地调度车辆和安排 工序.
排队活动
过闸服务活动 过闸服务结束事件
船只到达事件
过闸服务开始事件
(5)仿真钟(simulation clock) 仿真钟用于表示仿真时间的变化,在连续系统中, 仿真时间的变化基于仿真步长的确定,可以是定 步长,也可以是变步长.在离散事件动态系统中, 引起状态变化的事件的发生时间是随机的,因而 仿真时钟的推进步长完全是随机的,而且,在两 个相邻发生的事件之间系统状态不会发生任何变 化,因而,仿真钟可以跨过这些"不活动"周期, 从一个事件发生时刻直接推进到下一个事件发生 时刻,仿真钟的推进呈现跳跃性,推进的速度具 有随机性,可见,仿真模型中时间控制部件是必 不可少的,以便按一定的规律来控制仿真钟的推 进.
(2)事件(Event) 引起系统状态变化的行为称为事件.它是在某一时 间点的瞬时行为,从某种意义上来说,系统是由事 件来驱动的.事件不仅用来协调两个实体之间的同 步活动,还用于各个实体之间传递信息. 例如,在例4-1中就可以把"顾客到达"称为一类 事件,因为正是由于顾客的到达,系统的状态—— 服务员的"状态"才能由闲变忙(如果无人排队的 话),或者使系统的状态——排队的顾客人数发生变 化(队列人数加1). 一个顾客接受服务完毕后离开系统,也可以定义为 一类事件,因为服务员由忙变为闲,或者等待的队 列发生变化.
– ⑦时钟推进子程序:根据事件表决定下次(最早 发生的)事件,然后将仿真事件推进到事件发生 时刻; – ⑧随机数产生子程序:产生给定分布的随机数 的子程序; – ⑨输出函数子程序:用于系统性能分析的子程 序; – ⑩统计计数器:用来存放与系统性能分析有关 的统计数据的各个变量值; – ⑩主程序:调用上述各子程序并完成仿真任务 全过程.
(2)事件表:应用于变步长法仿真. (3)同时事件管理
– 同类同时事件的管理:发生在同一时刻且隶属于同一类型 的几个事件叫同类同时事件.同类同时事件的发生会导致 模型的下一状态出现多种可能值,即可能出现几种排队顺 序.为此,我们需要先定好条件,以使状态取值成为惟一, 也就是要规定一种排队规则来管理这些同类同时事件.例 如,先进先出〔或先到先服务)规则,后进先出(或后到先 服务)规则,随机规则以及优先服务规则. ) – 混合同时事件的管理:发生在同一时刻但不属于同一类型 的几个事件叫混合同时事件.确定这些混合同时事件所造 成的状态的变化,通常有一步法与解结法.一步法就是直 接确定混合同时事件所形成的结果状态;解结法却是把几 个同时事件分解成多个单独事件的序列进行处理.对于简 单的情况,一步法与解结法将会得到相同的结果.但一步 法不易写成通用的形式,且流程管理中的通道选择较复杂; 而解结法通用于各种仿真语言中,是因为使用该counter) 连续系统仿真的目的是要得到状态变量的动态变化过程并 由此分析系统的性能.离散事件系统的状态变量随事件的 不断发生也呈现出动态变化过程,但仿真的主要目的不是 要得到这些状态变量是如何变化的.因为这种变化是随机 的,所以某一次运行得到的状态变化过程只不过是随机过 程的一次取样,因而,如果进行另一次独立的仿真运行, 则所得到的变化过程完全是另外一种情况,所以它们只有 在统计意义下才有参考价值. 在例4-1中,由于顾客到达的时间间隔具有随机性,服务 员为每位为顾客服务的时间长度也是随机的,因而,在某 一时刻,顾客排队的队长或服务员的忙,闲情况是完全不 确定的.从系统分析的角度看,感兴趣的可能是系统的平 均队长,顾客的平均等待时间,或者是服务员的利用率等. 在仿真模型中,需要有一个统计计数器,以便统计系统中 的有关变量
– 事件步长法:事件步长法是以事件发生的时间为增量,按照时 间的进展,一步一步地对系统的行为进行仿真,直到预定的仿 真时间结束为止. – 事件步长法与时间步长法的主要区别: ①事件步长法与时间步长法都是以时间为增量来考察系统 状态的变化的.但在时间步长法中,仿真时钟以等步长前 进,而在事件步长法仿真中,仿真时钟的步长取决于事件 之间的时间间隔. ②时间步长法在一个步长内,认为系统所处的状态相同, 因而所选的步长的大小将影响仿真的精度.而在事件步长 法中,每个事件的发生均有确切的时刻,不需要人为地选 取步长,步长的大小对仿真的精度影响较小. ③时间步长法每步进一个步长就要对整个系统进行一次全 面的考察,即使状态没有发生变化时也要进行扫描.而事 件步长法只是在某一事件发生时才进行扫描.无论采用哪 种方法仿真,在仿真过程中每一个时间点上总是要判断相 比较事件是否出现,因此,一般地讲,当判断比较的数目 较大或事件变化呈周期性特点时,用时间步长法可以节省 用机时间,而当相继两个事件出现的平均间隔较长时,更 适合于采用事件步长法.
2.仿真程序的流程管理 仿真流程管理(即仿真调度)是仿真建模的核心,在此 主要讨论事件进程管理,同时事件管理等.这个过 程主要用到了仿真时钟和事件表两个概念. (1)仿真时钟:注意与仿真机时之间的区别. – 时间步长法:在进行系统仿真的同时,可以把整 个仿真过程分为许多相等的时间间隔,时间步长 的长度可根据实际问题分别取秒,分,小时等, 程序中按此步长前进的时钟就是仿真时钟.选取 系统的一个初始状态作为仿真时钟的零点,仿真 时钟每步进一次,就对系统的所有实体,属性和 活动进行一次全面的扫描考察,按照预定的计划 和目标进行分析,计算和记录系统状态的变化, 这个过程一直进行到仿真时钟结束为止.
船只到达 排队等候 查询闸闲? Y 船闸服务 船只离开 置船闸为闲 船闸服务系统流程图 N
开始 置仿真开始时 间和结束时间 船只到过时间 间隔70min 系统流程 大于结束时间? Y 结束 船闸服务系统仿真模型图 N
二,离散事件仿真
离散事件系统的仿真模型 离散事件系统仿真策略 离散事件仿真研究的一般步骤
(4)进程(process) 进程由若干个事件及若干个活动组成,它 描述了事件及活动之间的相互逻辑关系及 时序关系. 例4-1中的"顾客到达系统--排队--开始接受 服务一服务完毕的过程"就构成了一个进 程.
[例4-2] 在一个有较大水位落差河段上的船闸运行系统, 从上游新来的船只到达船闸或当原有的船只完成过闸运行 时,系统的状态就发生了变化,我们把船只到达,过闸完 毕这一类引起系统状态变化的行为称为事件,当船只尚在 船闸内(忙态)而又有新的船只到达时,则新到的船只就进 入到等侯的队列(排队的队长加1),把排队过程,船只过闸 过程称为活动,把船只到达→进入排队队列一开闸门→过 闸服务→出闸门这三个事件和两项活动称为过闸进程. 船只过闸服务进程
离散事件的建模型步骤
– (1)明确仿真目的 – (2)正确描述系统 组成成分:指对描述系统仿真目的有意义的实体, 这些实体的行为往往是随机分布的. 描述变量和参数:描述变量和参数是指系统各实体 的属性.描述变量包括内部变量和外部变量,除了 输入/输出变量外,其余均为状态变量.参数可以在 仿真前由用户设置或在仿真过程当中根据用户的命 令加以改变. 相互关系:相互关系规定了系统中不同变量的相互 关联,是指影响系统变化的各实体,变量和参数之 间的连接关系和作用关系.相互关系大部分反映在 各成分的活动之中,而活动又由事件所引发,所以 弄清事件,活动的关系是系统描述中极为重要的. – (3)仿真模型的建立 – (4)输出函数的确定