第4章 离散事件仿真基础
离散事件系统仿真方法讲解
2021/4/18
Su Chun, Southeast University
29
仿真时钟推进机制
下次事件时间推进机制:仿真时钟按照下一个事件预计将要发 生的时刻,以不等的时间间隔向前推进。即仿真时钟每次都跳 跃性地推进到下一事件发生的时刻上去。
该推进机制中,仿真时钟的增量不定,取决于被仿真系统。
仿真时,需将事件按发生时间的先后次序排列,仿真时钟时间 则按事件顺序发生的时刻推进。当某一事件发生时,需立即计 算出下一事件发生的时刻,以便推进仿真时钟,直到仿真运行 结束。
2021/4/18
Su Chun, Southeast University
15
离散事件系统仿真策略
面向活动仿真模型总控程序的算法结构包括: ① 时间扫描 ② 活动例程扫描
由于事件直接影响系统状态,活动扫描要反复进行,包括确 定事件和条件事件。
2021/4/18
Su Chun, Southeast University
16
离散事件系统仿真策略
③ 进程交互法(Process Interaction)
事件调度法和活动扫描法的基本模型单元分别是事件处理和 活动处理。它们都针对具体事件而建立,各处理相对独立。 进程交互法的基本模型单元是进程。进程针对某类实体的生命 周期而建立,一个进程包含了实体流动中发生的所有事件。
以单服务台排队服务系统为例,顾客生命周期的进程为:
Su Chun, Southeast University
19
离散事件系统仿真策略
顾 客 排 队 进 程 模 型
模型说明:
• 服务员两名, 队列一条
• “∆”表示某顾客产生的时刻,也为相应进程开始的时刻;
• “□”表示某顾客离去的时刻,也为相应进程撤销的时刻;
第4章 离散事件仿真基础
(一)离散事件系统的仿真模型
1.仿真程序的主要成分 采用步长法仿真的程序主要由以下部分组 成:
– ①仿真时钟:提供仿真时间的当前值; – ②事件表:由策划和事件调度生成事件名称, 时间的二维表,即有关未来事件的表; – ③系统的状态变量:描述系统状态的变量; – ④初始化子程序:用于模型初始化; – ⑤事件子程序:每一类事件的服务子程序; – ⑥调度子程序:将未来事件插入事件表中的子 程序;
顾客到达
忙
理发员忙否
排队等待
否 服务 服务完毕 (顾客离去) 置理发员闲
(1)实体(Entity) 实体是描述系统的三个基本要素之一.连 续系统一样,离散事件也是由实体组成的. 在离散事件系统中的实体可以分为两大类: 临时实体和永久实体.
– 临时实体:在系统中只存在一段时间的实体称为 临时实体.这类实体是由系统的外部到达并进 人系统的,然后通过系统,并最终离开系统. 例4-1中的顾客显然是临时实体. – 永久性地驻留在系统中的实体称为永久实体. 例4-1中的服务员就是永久实体.
(3)活动(activity) 离散事件中的活动,通常用于表示两个可 以区分的事件之间的过程,它标志着系统 状态之间的转移.把实体所做的,或对实 体施加的事件称为活动,它是实体在两个 事件之间保持某一个状态的持续过程. 在例4-1中,顾客的到达事件与顾客的开始 接受服务事件之间的过程可以称为一个活 动,该活动使系统的状态(队长)发生变化, 从顾客开始接受服务到对该顾客服务完毕 后离去的过程也可以被看成是一个活动, 它可能使队长减1或使服务员由忙转闲.
(二)离散事件系统仿真策略
因为离散事件模型的特点,实体活动,进 程都是以事件为基础构成的,所以从事件, 活动,进程三个层次来组织事件构成了处 理离散事件模型的三种典型的处理方法: 事件调度法,活动扫描法和进程交互法, 相应地要采用三种不同的仿真策略,在复 杂系统仿真中,按进程来组织事件可以使 众多的事件条理清晰,因而成为最通用的 仿真方法.
4.离散事件仿真
计算机仿真技
接受服务的顾客 服务员
顾客离开
临时实体
排队活动
永久实体
接受服务活动
顾客到达事件
顾客开始接受 服务事件
顾客服务完毕 离去
4. 进程(Process)
顾客超市结帐服务进 程
进程是由若干个事件和若干个活动组成,它描述了事件及活动之 间的相互逻辑关系及时序关系。
排队论方法 网络图或事件图法
形式语言与自动机法 随机过程描述法(如Markov过程和CSMP过程) 抽象代数法(如双子代数、极小代数、极大代数)
计算机仿真技术基础 15
离散事件建模的步骤
1. 明确仿真目的 建模之前,必须根据仿真目的,确定所需要获取的某一事 件或系统的信息、模型类型、资料及数据。目的不同,所 建立的模型也不同,衡量仿真结果的逼真性准则也就不同。 甚至对某一仿真目的,模型是有效的,而对另一仿真目的, 模型可能就是无效的。 比如,[例4.2]中的船闸运行系统中,如果仿真目的是了解 船闸服务时间长短对船闸利用率的影响,这种情况属于排 队论模型。如果还要分析闸门的开关控制和动力学特性, 以及注水放水过程特性,系统应视为连续-离散混合型系统。
对于离散事件构成的离散事件系统或连续-离散混合系统的研究, 逐渐成为仿真技术应用的一个重要分支领域。
计算机仿真技术基础 5
4.1.1 离散事件系统的基本要素
离散事件系统的一些基本要素包括:实体、活动、事件等. 以超市购物系统为例:
[例4.1] 华联超市济南大学分店,共有10个服务台供顾客结帐, 营业时间为9:00 – 21:00,顾客选购完商品到服务台结帐的 时间是随机的,而且各自独立,每位顾客接受服务的时间长短 也是随机的。描述该系统的状态,可以是:
第四章 离散事件系统仿真方法1
第4章离散事件系统仿真方法4.1离散事件系统仿真一般概念4.1.1 一般概念离散事件系统:系统中的状态只在离散时间点上发生变化,而且这些离散时间点一般是不确定的。
系统状态是离散变化的,而引发状态变化的事件是随机发生的,因此这类系统的模型很难用数学方程来描述。
随着系统科学和管理科学的不断发展及其在军事、航空航天、CIMS和国民经济各领域中应用的不断深入,逐步形成一些与连续系统不同的建模方法:流程图和网络图。
离散事件系统建模与仿真的基本概念:⑴实体:是描述系统的三(四)要素之一,是系统中可单独辨识和刻画的构成要素。
如:工厂中的机器,商店中的服务员,生产线上的工件,道路上的车辆等。
从仿真角度看,实际系统就是由相互间存在一定关系的实体集合组成的,实体间的相互联系和作用产生系统特定的行为。
实体可分为两大类:临时实体和永久实体临时实体——在系统中只存在一段时间的实体。
一般是按一定规律有系统外部到达系统,在系统中接受永久实体的作用,按照一定的流程通过系统,最后离开系统。
临时实体存在一段后即自行消失,消失有时是指实体从屋里意义上退出了系统的边界或自身不存在了;有时仅是逻辑意义上的取消,意味着不必再予以考虑。
如:进入商店的顾客、路口的车辆、生产线上的工件、进入防空火力网的飞机、停车场的汽车等。
永久实体——永久驻留在系统中的实体。
是系统产生功能的必要条件。
系统要对临时实体产生作用,就必须有永久实体的活动,也就必须有永久实体。
可以说临时实体与永久实体共同完成了某项活动,永久实体作为活动的资源而被占用,如:理发店中的理发员、生产线上的加工装配机械、路口的信号灯等。
属性和行为相同或相近的实体可以用类来描述,这样可以简化系统的组成和关系。
如:理发店服务系统可以看成是由“服务员”和“顾客”两类实体组成的,两类实体之间存在服务与被服务的关系。
⑵属性是实体特征的描述,一般是系统所拥有的全部特征的一个子集,用特征参数或变量表示。
选用那些参数作为实体的属性与建模目的有关,一般按以下原则:便于实体分类:如按理发店顾客的性别;便于实体行为的描述:如飞机的速度便于排队规则的确定:如生产线上待处理工件的优先级水平。
第四讲 离散事件系统仿真
(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法公式
离散事件系统仿真方法
离散事件系统仿真方法离散事件系统仿真方法(DES)是一种表达系统行为的数学模型,在计算机科学和工程领域中得到广泛应用。
DES主要用于对系统的离散事件进行建模和模拟,离散事件是系统中可以显著影响系统行为的事件,这些事件的发生时间是离散的,它们之间是分开的。
下面介绍几种常用的离散事件系统仿真方法:1. 事件列表驱动(Event List Driven):事件列表驱动方法是最基本的 DES 方法。
在这种方法中,所有可能发生的事件都被列在一个事件列表中,事件按照发生的时间顺序排列。
仿真器会检查事件列表中最早发生的事件,并将系统状态更新到该事件发生的时间点。
然后仿真器会触发该事件,并处理该事件引发的状态变化。
2. 过程导向(Process Oriented):过程导向方法是一种更高级的DES 方法。
在这种方法中,系统被分解为一系列并发的过程,每个过程负责处理一类事件。
过程之间通过消息传递进行通信和同步。
仿真器会根据系统的当前状态选择一个过程,并将事件分发给该过程进行处理。
过程在处理事件时可以触发其他事件。
3. 状态类(State-based):状态类方法是一种根据系统状态的改变来驱动仿真的方法。
在这种方法中,系统的状态由一组状态变量来表示,仿真器会根据系统当前状态和一组状态转移规则来选择下一个事件的发生时间和类型。
状态类方法更适合描述那些状态随时间变化比较复杂的系统。
在进行离散事件系统仿真之前,需要确定系统中所有可能发生的事件和它们的发生时间。
一般来说,确定事件和发生时间是根据系统的规范和需求来完成的。
此外,仿真器还需要记录和输出仿真结果,以便进行分析和评估。
离散事件系统仿真方法在很多领域都有应用。
例如,在运输领域,可以使用DES方法来优化交通流量和路网规划。
在制造业中,可以使用DES 方法来优化生产线的布局和调度。
在通信领域,可以使用DES方法来评估无线网络的性能和信道分配策略。
综上所述,离散事件系统仿真方法是一种用于模拟和分析系统行为的重要工具。
离散系统仿真基础
随机排队系统的三个组成部分:
到达模式——指含个类型的动态实体按怎样的 规律到达。
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 离散事件系统仿真策略 仿真策略:离散事件系统中,一般都存在诸多的实 体,这些实体之间相互联系,相互影响,然而其活动 的发生却统一在同一时间基上。采用何种方法推进仿 真时钟,建立起各类实体之间的联系称之为仿真策略。 将系统模型转换为计算机模型需完成三部分工作: 设计仿真策略,确定仿真模型的控制逻辑和仿真时 钟推进机制; 构造仿真模型,即确定模型的具体操作; 仿真程序设计与实现,即采用某种程序设计方法及 语言,实现仿真策略和仿真模型。
离散事件系统的建模及仿真
离散事件系统的建模及仿真离散事件系统(DES)是由一组离散的事件组成的系统,这些事件发生的时间是不连续的,而是符合某些随机分布的。
其中最典型的例子就是计算机网络系统和制造业系统。
为了研究系统的行为和性能,需要进行建模和仿真。
一、离散事件系统模型离散事件系统模型主要分为:1. 离散时间模型离散时间模型将时间视作离散的时间点,系统状态在各个时间点之间发生变化。
变化是由离散事件引起的。
2. 连续时间模型连续时间模型将时间视作连续的时间流,系统状态是在时间流中按照连续方式演化的。
如具有阶段性和可重复性的工业生产过程。
3. 混合时间模型混合时间模型同时兼具离散和连续的特点。
如涉及到无线网络时,用户的驻留时间属于连续时间,用户数量的变化属于离散事件。
二、离散事件系统仿真离散事件系统仿真一般采用事件驱动的方法。
将系统分为若干模块,在每个模块中,定义被模拟的事件,并计算事件发生的时间和所带来的影响。
事件驱动仿真的主要思路是:1. 仿真的初期,将系统的状态初始化为所设定的状态,用“时钟”来模拟时间。
2. 仿真系统通过时钟来不断加倍地运行,等到仿真过程中需要出现事件的时候,就跳出当前仿真的运动,而声明事件的发生时间。
3. 标记事件后,仿真系统可以基于某种策略对事件进行排队,然后按照时间的先后顺序进行运行。
4. 在仿真的过程中,会根据发生的事件得出相应的结果,保存在仿真结果的数据结构中,用于后续的仿真分析。
离散事件系统仿真时要注意的地方:1. 对于大型系统,由于其状态空间太大,会导致模型的运行时间过长,从而影响仿真的效率。
2. 因为模型已经不仅仅是数学模型而是物理模型,所以需要考虑仿真结果的表示方法。
3. 仿真结果的分析是非常必要的,而且分析需要进行统计,统计方法必须要掌握。
三、离散事件系统的应用1. 计算机网络系统计算机网络系统中涉及到的很多问题都可以使用离散事件系统模型进行仿真。
如路由选择问题、网络拥塞问题、网络性能评估等。
第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. 服务过程 对各个顾客服务所需要用时间形成的服务过程,描述了服务过程 的统计特性,同样具有一定的分布特性。
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
现代仿真技术与应用-第四章离散事件系统仿真
调度子程序: 调度子程序:将未来事件插入事 件表中的子程序; 件表中的子程序;
真Байду номын сангаас序的流程管理
初始化
真时钟的推进方式
时间步长法
时间步长加 1
考察实体或活动
N 发生事件或变 化 Y 处理事件子程序 v 改变各种状态,记 录各种数据 N 是否仿真完毕 Y
真程序的流程管理
真时钟的推进方式
初始化
事件步长法
真程序的流程管理
件表
事件表是一个有序的记录表,每个记录包括事件发生的时间、 事件表是一个有序的记录表,每个记录包括事件发生的时间、事 件类型等内容; 件类型等内容; 在某些离散事件的仿真中,采用事件表的形式进行调度; 在某些离散事件的仿真中,采用事件表的形式进行调度;
时事件管理方法
同时同类事件管理 混合同时事件管理: 混合同时事件管理:一步法和解结法
.4排队系统仿真 .4排队系统仿真
队系统的性能的性能指标
服务台排队系统
结束
仿真时钟:仿真时间的当前值; 仿真时钟:仿真时间的当前值;
事件表:有关未来事件表, 事件表:有关未来事件表,包括 事件名称和时间; 事件名称和时间;
系统状态变量: 系统状态变量:描述系统状态的 变量; 变量;
初始化子程序:用于模型初始化; 初始化子程序:用于模型初始化;
事件子程序:每一类事件的服务 事件子程序: 程序; 程序;
)服务机构:指同一时刻有多少服务台可以接纳临时实体,他们的服务要多 服务机构:指同一时刻有多少服务台可以接纳临时实体,
长时间; 长时间;
)排队规则:先到先服务、后到先服务、随机服务、优先权服务。 排队规则:先到先服务、后到先服务、随机服务、优先权服务。
离散事件动态系统仿真
活动(Activity):任何使系统状态发生某种变 化的过程或行为。一般活动具有一定的持续 时间,如顾客在银行中接受出纳员服务的过 程称为服务活动; 事件(Event):改变系统状态的某一瞬时事变 称为事件。事件通常发生在活动的开始或结 束时刻; 进程(Process):实体的进程是由若干个该实 体若干事件及活动构成的,它包含了这些事 件和活动的逻辑关系和时序关系,例如,顾 客的到达,排队、再经过出纳员服务到离去 构成了一个进程。
4.3.2离散事件系统仿真策略 4.3.2离散事件系统仿真策略 事件调度法
用事件的观点分析真实系统,通过 用事件的观点分析真实系统, 初始化事件表, 初始化事件表,设置系统初始事件 定义事件及每个事件引起系统状态 的变化, 的变化,按时间顺序确定并执行每 个事件发生时有关的逻辑关系; 个事件发生时有关的逻辑关系; 2)操作事件表 3)推进仿真时钟TIME =t(s) 结束时间) While(TIME<结束时间) 修改事件表 根据事件类型执行相应的事件处理程序 取出具有t(s)=min{t ∈ }}事件记录 取出具有t(s)=min{ta|a CA}}事件记录 置仿真时间TIME =t(s) 取出具有t(s)=min{t 取出具有t(s)=min{ta|a∈ CA}}事件记 录 成分状态初始化 1)执行初始化操作 1)执行初始化操作 初始时间和结束时间设置
《离散事件仿真》课件
离散事件仿真的应用场景
离散事件仿真在交通、供应链、生产、物流等领域广泛应用,用于有效评估 系统的性散事件仿真包括问题建模、模型开发、实验设计、仿真运行和结果分析等步骤,每个步骤都需 要仔细进行。
离散事件仿真的关键技术
离散事件仿真关键技术包括事件排序算法、随机数生成、实验设计和验证方法,这些技术能够提 高仿真的准确性和效率。
《离散事件仿真》PPT课 件
探索离散事件仿真的定义、原理、应用场景、步骤、关键技术,以及介绍相 关工具,最后分享一个离散事件仿真的案例。
离散事件仿真的定义
离散事件仿真是一种计算机模拟技术,用于模拟离散事件的发生与演变,以评估系统的行为和性 能。
离散事件仿真的原理
离散事件仿真基于事件驱动的模型,模拟系统内部事件的离散发生与相互作 用,通过事件的排序和处理来模拟系统的演化。
离散事件仿真工具的介绍
介绍一些常用的离散事件仿真工具,如AnyLogic、Simio、Arena等,它们提供了丰富的功能和可视 化界面,方便建模和仿真操作。
离散事件仿真案例分享
分享一个实际应用的离散事件仿真案例,比如物流中心的优化、生产线的调度等,展示离散事件 仿真的效果和应用前景。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章离散事件仿真基础前面两章所讨论的系统,其状态变量是连续变化的,这类系统的仿真称为连续系统的仿真。
近年来,系统仿真技术的应用已经逐步扩大到非工程和非数值计算领域,诸如生产调度管理、库存系统、计算机通讯网络等等。
通常把这类系统的仿真称为离散事件系统的仿真。
离散事件系统通常是指受事件驱动、系统状态跳跃式变化的动态系统,系统的迁移发生在一串离散事件点上。
离散事件系统和连续系统在性质上是完全不同的,这类系统中的状态在时间上和空间上都是离散的。
这种系统往往是随机的,具有复杂的变化关系,难于用常规的微分方程、差分方程等方程模型来描述,一般只能用流程图或网络图来描述,如果应用理论分析方法难于得到解析解,甚至无法解决,那么仿真技术就为解决这类问题提供了有效的手段。
为了合理地、有效地、经济地进行生产、管理、销售、服务,对各种各样的离散事件系统进行仿真研究是十分必要的。
本章首先介绍离散事件系统仿真的基本概念,然后重点介绍几种典型的离散事件系统的仿真。
4.1 离散事件系统与模型4.1.1 概述离散事件系统大量地存在于我们周围,如:超级市场管理系统、银行服务系统、公交管理系统、车间加工调度系统等,其中到大市场和银行的顾客、上下车的旅客、等待加工的工件,都是影响系统变化的“事件”。
事件是在离散时刻随机发生的,利用仿真技术对这些系统进行研究分析,可以了解它们的动态运行规律,从而帮助人们做出是否需要增加新的市场和银行的决定,可以帮助人们合理地调度车辆和安排工序。
在连续系统数字仿真中,时间通常被分割成均等的或非均等的时间间隔,并以一个基本的时间间隔计时;而离散系统的仿真则通常是面向事件的,时间指针往往不是按固定的增值向前推进的,而是由于事件的推动而随机递进的。
在连续系统仿真中,系统的动力学模型是由表征系统变量之间关系的方程来描述的,仿真的结果表现为系统变量随时间变化的事件历程;在离散事件的仿真中,系统变量是反映系统各部分相互作用的一些事件,系统模型则是反映这些事件的数集,仿真结果是产生处理这些事件的事件历程。
对离散事件的研究,最早可以追溯到对排队现象和排队网络的分析,排队论最早由A. K.Erlang于1918年提出,在管理通信和各类服务系统中有着广泛的应用。
离散系统大量地存在于客观现实中,如交通管理系统、库存管理系统、加工系统、能源规划、电话通信系统、人口管理等,而排队论、网络分析、数学规划和调度排序等方法是解决这类问题的主要数学方法。
但是,利用仿真技术对离散事件系统进行研究,在国内还是近二十年才开始的,随着计算机技术、信息处理技术、控制技术、人工智能技术等新技术在军事指挥、军事训练、现代通讯、制造等领域的发展和应用,出现了一大批存在着离散事件过程的人造系统,例如:武器群指挥控制决策系统(其中影响其决策的因素很多,如攻防双方兵力损毁的概率事件等)、计算机/通信网络系统、柔性制造系统等。
对这些错综复杂且相互作用的离散事件构成的离散事件系统或连续—离散混合系统的研究,逐渐成为仿真技术应用的重要领域,不难看到,离散事件系统仿真发展中的一个显著特点是,更加依附于实际背景和贴近实际应用。
正因为发展比较晚,所以还是一个不十分成熟的技术分支。
目前尚缺乏能为大家所公认的、通用的数学模型,这类问题的求解又难于用解析的方法,而且所需要的真实系统的数据源受到限制致使其模型验证也存在一定的难度。
总之,该领域所要探讨的问题还很多,其技术也正得到进一步发展。
4.1.2 描述离散事件系统的基本要素为了正确地对系统建模,有必要弄清楚离散事件系统的一些基本要素:实体、活动、事件等。
下面结合一个具体的例子来说明。
例4.1一个单人理发馆系统,理发馆在工作时间中,有且仅有一个工作人员为客人服务,营业时间为9:00—19:00,顾客到达时间一般是随机的,而且是独立的,每位顾客接受服务的时间长短也是随机的。
描述该系统的状态是服务台的状态(忙或闲)、顾客排队等待的队长等等。
1.实体(Entity)实体是描述系统的三个基本要素之一。
所以,与连续系统一样,离散事件也是由实体组成的。
在离散事件系统中的实体可以分为两大类:临时实体和永久实体。
在系统中只存在一段时间的实体称为临时实体。
这类实体是由系统的外部到达并进入系统的,然后通过系统,并最终离开系统。
例4.1中的顾客显然是临时实体,他们随机地到达系统(理发馆),经过服务员的服务(可能要排队等待一段时间),然后离开系统。
那些虽然到达但未进入理发馆的顾客则不能称为该系统的实体。
还有计算机系统中的待处理信息、电话交换系统中的电话呼叫、加工系统中的等待加工的工件以及在商店等待服务的顾客等都是临时实体。
永久性地驻留在系统中的实体称为永久实体。
例 4.1中的服务员就是永久实体,前面提到的计算机设备、电话交换机、加工设备和商店营业员也是永久实体。
只要系统处于活动状态,这些实体就存在,或者说,永久实体就是系统处于活动的必要条件。
临时实体是按一定的规律不断到达,在永久实体的作用下通过系统,最后离开系统。
系统状态的变化主要是由实体的状态变化而产生的。
2.事件(event)引起系统状态变化的行为称为事件。
它是在某一时间点的瞬时行为,从某种意义上来说,系统是由事件来驱动的。
事件不仅用来协调两个实体之间的同步活动,还用于各个实体之间传递信息。
例如,在例4.1中,可以把“顾客到达”称为一类事件,因为正是由于顾客的到达,系统的状态——服务员的“状态”才能由闲变忙,(如果无人排队的话),或者使另一系统的状态——排队的顾客人数发生变化(队列人数加一)。
一个顾客接受服务完毕后离开系统,也可以定义为一类事件,因为服务台由忙变为闲,或者等待的队列发生变化。
在一个系统中往往有许多类事件,而事件的发生一般与某一类实体相联系,某一类事件发生还可能引起其它事件的发生,或者促成另一事件的条件等等。
为了实现对系统中的时间的管理,仿真模型中必须建立事件表,表中记录每一发生了的或将要发生的事件的类型,发生的时间以及与该事件相联系的实体的有关属性等等。
在仿真模型中,由于是依靠事件来驱动的,所以除了系统中的固有事件(又称为系统事件)外,还有所谓的“程序事件”,它用于控制仿真进程,例如:如果要对例4.1的系统工作时间内(9:00—19:00)的动态过程进行仿真,可以定义“仿真时间达到12小时后终止仿真”作为一个程序事件,当该事件发生时,即结束仿真模型的执行。
3.活动(Activity)离散事件中的活动,通常用于表示两个可以区分的事件之间的过程,它标志着系统状态之间的转移。
把实体所做的或对实体施加的事件称为活动,它是实体在两个事件之间保持某一个状态的持续过程。
在例4.1中,顾客的到达事件与顾客的开始接受服务事件之间的过程可以称为一个活动,该活动使系统的状态(队长)发生变化,顾客开始接受服务到对该顾客服务完毕后离去的过程也可以看成一个活动,它可能使队长减1或使服务员由忙转闲。
4.进程(Process)进程由若干个事件及若干个活动组成,它描述了事件及活动之间的相互逻辑关系及时序关系。
例4.1中的“顾客到达系统—排队—开始接受服务—服务完毕的过程”,就构成了一个进程。
这里再举一个排队服务系统的例子来说明建模的内容和方法。
例4.2在一个有较大水位落差河段上的船闸运行系统,从上游新来的船只到达船闸或当原有的船只完成过闸时,系统的状态就发生了变化,我们把船只到达、过闸完毕这一类引起系统状态变化的行为称为事件,当船只尚在船闸内(忙态)而又有新的船只到达时,则新到的船只就进入到等候的队列(排队的队长加1),把排队过程,船只过闸过程称为活动,把船只到达—进入排队队列—开闸门—过闸服务—出闸门这三个事件和两项活动称为过闸进程。
图4-1描述了船只从到达到离开所发生的事件、活动和进程之间的关系。
图4-1 事件、活动与进程之间的关系示意图5.仿真钟(Simulating clock)仿真钟用于表示仿真时间的变化,在连续系统中,仿真时间的变化基于仿真步长的确定,可以是定步长,也可以是变步长。
在离散事件动态系统中,引起状态变化的事件的发生时间是随机的,因而仿真时钟的推进步长完全是随机的,而且,在两个相邻发生的事件之间系统状态不会发生任何变化,因而仿真时钟可以跨过这些“不活动”周期,从一个事件发生时刻直接推进到下一个事件发生时刻,仿真钟的推进呈现跳跃性,推进的速度具有随机性,可见,仿真模型中时间控制部件是必不可少的,以便按一定的规律来控制仿真钟的推进。
6.统计计数器(Stat. Counter)连续系统仿真的目的是要得到状态变量的动态变化过程并由此分析系统的性能。
离散事件系统的状态变量随事件的不断发生也呈现出动态变化过程,但仿真的主要目的不是要得到这些状态变量是如何变化的。
因为这种变化是随机的,所以某一次运行得到的状态变化过程只不过是随机过程的一次取样,因而如果进行另一次独立的仿真运行,则所得到的变化过程完全是另外一种情况,所以它们只有在统计意义下才有参考价值。
在例4.1中,由于顾客到达的时间间隔具有随机性,服务员为每位为顾客服务的时间长度也是随机的,因而在某一时刻,顾客排队的队长或服务员的忙、闲情况是完全不确定的。
从系统分析的角度看,感兴趣的可能是系统的平均队长,顾客的平均等待时间,或者是服务员的利用率等。
在仿真模型中,需要有一个统计计数器,以便统计系统中的有关变量。
总之,离散事件系统和连续系统有着本质的区别,因此对这类系统的仿真所采用的方法以及所研究的内容同连续系统有很大的区别。
4.1.3 离散事件系统模型的建立离散事件系统研究和仿真中最基本的问题就是系统的建模。
那么采用什么方式来概括和抽象化分析处理这些离散事件呢?自80年代初期,美国哈佛大学著名的学者Y.C.Ho教授倡导对离散事件动态系统DEDS(distributed Event Dynamic System)理论进行研究以来,这个问题受到了足够的重视,许多学者围绕着这个问题从不同的层次或用不同的数学工具进行了描述,形成了许多的方法体系,并出现了多种形式的DEDS模型设计方法。
例如:对所考虑对象演变过程的分析,根据事件发生的时间是否有必要纳入研究范围,可以划分为:1)不带时标的DEDS模型:有限状态自动机模型、Petri网络模型、过程代数模型、时序逻辑模型等。
2)带时标的DEDS模型:赋时Petri网络模型、TIM/RTIL模型,双子代数模型、排队网络模型,Markov链与CSMP模型等。
还可以根据系统输入信息及状态演变的确定性/不确定性,分成确定性DEDS模型和随机性DEDS模型,也可以根据状态变化的量化特征,分成逻辑(定性)模型与数量(定量)模型等。
从现已见诸于文献的各类DEDS系统的描述形式来看,DEDS建模与模型分析研究尚处于发展阶段。