第3章 离散系统模拟_第1页
第3章 离散系统模拟_第2页
第3章 离散系统模拟_第3页
第3章 离散系统模拟_第4页
第3章 离散系统模拟_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、管理系统模拟管理系统模拟华中科技大学华中科技大学 肖人彬肖人彬 等等电子工业出版社,电子工业出版社,2008高等学校信息管理示范教材高等学校信息管理示范教材 第第3章章 离散系统模拟离散系统模拟3.1 离散系统模拟概述离散系统模拟概述3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑3.3 模拟模型性能评价模拟模型性能评价 3.4 离散系统模拟案例离散系统模拟案例 3.5 离散系统模拟工具离散系统模拟工具 3.6 Arena模拟工具模拟工具 3.1 离散系统模拟概述离散系统模拟概述n一、离散模拟的定义与分类一、离散模拟的定义与分类 n离散模拟模型按照工作机理的不同,或者按照分别侧

2、离散模拟模型按照工作机理的不同,或者按照分别侧重于处理事件、活动和过程的不同,可以分为以下三重于处理事件、活动和过程的不同,可以分为以下三类:类:n(1) 以事件为基础以事件为基础 (Event Orientation)的模拟的模拟n(2) 以活动扫描为基础以活动扫描为基础(Activity Scanning Orientation)的模拟的模拟n(3) 以过程为基础以过程为基础(Process Orientation)的模拟的模拟3.1 离散系统模拟概述离散系统模拟概述n1. 以事件为基础的离散模拟以事件为基础的离散模拟 n称为离散事件模拟。系统的建模是通过定义系统状称为离散事件模拟。系统的

3、建模是通过定义系统状态在事件时间的变化来实现的。态在事件时间的变化来实现的。n建模的任务在于确定导致系统状态改变的事件以及建模的任务在于确定导致系统状态改变的事件以及与各类事件相对应的逻辑关系。与各类事件相对应的逻辑关系。n在排队系统中,顾客到达事件和顾客离去事件是基在排队系统中,顾客到达事件和顾客离去事件是基本的事件。下图所示为排队系统的离散事件模拟模本的事件。下图所示为排队系统的离散事件模拟模型。型。3.1 离散系统模拟概述离散系统模拟概述 (a)顾客到达)顾客到达 (b)顾客离去)顾客离去3.1 离散系统模拟概述离散系统模拟概述n2. 以活动扫描为基础的离散模拟以活动扫描为基础的离散模拟

4、n模拟模型描述系统的实体所进行的活动,以及预定导致活动开模拟模型描述系统的实体所进行的活动,以及预定导致活动开始或结束的条件。活动开始或终止的事件由为活动规定的条件始或结束的条件。活动开始或终止的事件由为活动规定的条件所初始化。随着模拟时钟按一定的步长推进,需对每项活动的所初始化。随着模拟时钟按一定的步长推进,需对每项活动的开始或终止的条件进行扫描。开始或终止的条件进行扫描。n这种模拟尤其适宜于活动延续时间不定并且是由满足一定条件这种模拟尤其适宜于活动延续时间不定并且是由满足一定条件的系统状态来决定的情况。与以事件为基础的模拟相比,它的的系统状态来决定的情况。与以事件为基础的模拟相比,它的效率

5、低,因而目前应用不够广泛。效率低,因而目前应用不够广泛。 n在排队系统中,服务员为顾客提供的服务是基本的活动。下图在排队系统中,服务员为顾客提供的服务是基本的活动。下图所示为排队系统的以活动扫描为基础的离散模拟模型。所示为排队系统的以活动扫描为基础的离散模拟模型。3.1 离散系统模拟概述离散系统模拟概述3.1 离散系统模拟概述离散系统模拟概述n3. 以过程为基础的离散模拟以过程为基础的离散模拟 n所谓过程是由事件的时间序列以及若干活动所组成。它所谓过程是由事件的时间序列以及若干活动所组成。它描述了作为模拟对象的实体如何流经具有一定资源的过描述了作为模拟对象的实体如何流经具有一定资源的过程。譬如

6、,为了模拟排队服务系统,可以运用下述语句:程。譬如,为了模拟排队服务系统,可以运用下述语句:n(1) 每隔每隔T分钟产生一个到达的实体;分钟产生一个到达的实体;n(2) 实体排队等候服务;实体排队等候服务;n(3) 将模拟时钟以服务时间的步长向前推移一步;将模拟时钟以服务时间的步长向前推移一步;n(4) 当服务结束时当服务结束时“解脱解脱”服务员;服务员;n(5) 将实体从系统清除。将实体从系统清除。n下图所示为排队系统的以过程为基础的离散模拟模型。下图所示为排队系统的以过程为基础的离散模拟模型。3.1 离散系统模拟概述离散系统模拟概述3.1 离散系统模拟概述离散系统模拟概述n二、离散模拟的常

7、用术语二、离散模拟的常用术语n1. 实体实体n实体是描述系统的基本要素之一。实体是描述系统的基本要素之一。 n临时实体:在系统中只存在一段时间的实体。临时实体:在系统中只存在一段时间的实体。 n永久实体:永久驻留在系统中的实体。永久实体:永久驻留在系统中的实体。n临时实体按一定规律不断地到达(产生),在永临时实体按一定规律不断地到达(产生),在永久实体作用下通过系统,最后离开系统,整个系久实体作用下通过系统,最后离开系统,整个系统呈现出动态过程。统呈现出动态过程。 3.1 离散系统模拟概述离散系统模拟概述n2. 属性属性n属性指系统的实体和资源的特性。正确划定模拟的实体、属性指系统的实体和资源

8、的特性。正确划定模拟的实体、资源及其属性,是系统建模的重要组成部分。表资源及其属性,是系统建模的重要组成部分。表3.1列举列举了一个生产计划系统的实体、资源及属性。了一个生产计划系统的实体、资源及属性。 表表3.1 生产计划系统的实体、资源和属性生产计划系统的实体、资源和属性实体实体/资源资源属属 性性产品产品元件元件原材料原材料机器机器工人工人类型,需求量,生产量,库存量,交货期单价,工时定额类型,需求量,生产量,库存量,交货期单价,工时定额类型,需求量,生产量,库存量,单价,工时定额类型,需求量,生产量,库存量,单价,工时定额类型,需求量,库存量,订货点,订货批量,消耗定额类型,需求量,库

9、存量,订货点,订货批量,消耗定额类型,拥有量,作业时间,调整时间,役龄类型,拥有量,作业时间,调整时间,役龄工种工种,组别级别,数量,作业时间,工资,工龄组别级别,数量,作业时间,工资,工龄3.1 离散系统模拟概述离散系统模拟概述n3. 事件事件n事件就是引起系统状态发生变化的行为。从某种意义上说,事件就是引起系统状态发生变化的行为。从某种意义上说,这类系统是由事件来驱动的。一个系统中往往有多类事件,这类系统是由事件来驱动的。一个系统中往往有多类事件,需要建立事件表对系统中的事件进行管理,表中记录每一需要建立事件表对系统中的事件进行管理,表中记录每一发生了的或将要发生的事件类型和发生时间,以及

10、与该事发生了的或将要发生的事件类型和发生时间,以及与该事件相联的实体的有关属性等。件相联的实体的有关属性等。n系统事件:系统中的固有事件。系统事件:系统中的固有事件。n程序事件:用于控制模拟过程,当该事件发生时即结束模程序事件:用于控制模拟过程,当该事件发生时即结束模拟模型的执行。拟模型的执行。3.1 离散系统模拟概述离散系统模拟概述n4. 活动活动n离散事件系统中的活动,通常用于表示两个可以区分的离散事件系统中的活动,通常用于表示两个可以区分的事件之间的过程,它标志着系统状态的转移。事件之间的过程,它标志着系统状态的转移。n5. 进程进程n进程由若干个有序事件及若干有序活动组成,一个进程进程

11、由若干个有序事件及若干有序活动组成,一个进程描述了它所包括的事件及活动间的相互逻辑关系及时序描述了它所包括的事件及活动间的相互逻辑关系及时序关系。关系。n事件、活动、进程三者之间的关系可用图事件、活动、进程三者之间的关系可用图3.4进行描述。进行描述。3.1 离散系统模拟概述离散系统模拟概述 图图3.4 事件、活动、进程三者之间的关系示意图事件、活动、进程三者之间的关系示意图 3.1 离散系统模拟概述离散系统模拟概述n6. 模拟时钟模拟时钟n模拟时钟用于表示模拟时间的变化。模拟时钟用于表示模拟时间的变化。n在连续系统模拟中,将连续模型进行离散化而成为模拟在连续系统模拟中,将连续模型进行离散化而

12、成为模拟模型时,模拟时间的变化基于模拟步长的确定模型时,模拟时间的变化基于模拟步长的确定 。n离散事件模拟不需要进行离散化处理,离散事件模拟不需要进行离散化处理, 但模拟时钟的推但模拟时钟的推进步长则完全是随机的;两个相邻发生的事件之间系统进步长则完全是随机的;两个相邻发生的事件之间系统状态不会发生任何变化,因而模拟时钟可以跨过这些状态不会发生任何变化,因而模拟时钟可以跨过这些“不活动不活动”周期。周期。n从一个事件发生时刻推进到下一事件发生时刻,模拟时从一个事件发生时刻推进到下一事件发生时刻,模拟时钟的推进呈现跳跃性,推进速度具有随机性。钟的推进呈现跳跃性,推进速度具有随机性。 3.1 离散

13、系统模拟概述离散系统模拟概述n7. 统计计数器统计计数器n离散事件系统的状态随着事件的不断发生也呈现离散事件系统的状态随着事件的不断发生也呈现出动态变化过程,但由于这种变化是随机的,某出动态变化过程,但由于这种变化是随机的,某一次模拟运行得到的状态变化过程只不过是随机一次模拟运行得到的状态变化过程只不过是随机过程的一次取样,它们只有在统计意义下才有参过程的一次取样,它们只有在统计意义下才有参考价值。考价值。n在模拟模型中,需要有一个统计计数部件,以便在模拟模型中,需要有一个统计计数部件,以便统计系统中的有关变量。统计系统中的有关变量。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行

14、逻辑n定义系统的状态变量。对于一个系统来说,用一组状态变量定义系统的状态变量。对于一个系统来说,用一组状态变量S(矢量)来描述系统的变化特征,其中每一个状态变量(矢量)来描述系统的变化特征,其中每一个状态变量s用来表用来表达系统在某一方面行为的变化特征,达系统在某一方面行为的变化特征,S通常被称为系统的状态通常被称为系统的状态空间。空间。n在离散模拟模型中,系统的状态变化可以用一个阶梯函数来表在离散模拟模型中,系统的状态变化可以用一个阶梯函数来表达。换句话说,系统的状态变化是跳跃式的,仅仅在离散间断达。换句话说,系统的状态变化是跳跃式的,仅仅在离散间断的时间点上发生。的时间点上发生。n系统状态

15、的变化实际上是由一系列间断发生的事件所驱使的。系统状态的变化实际上是由一系列间断发生的事件所驱使的。一个事件的发生是外部因素或者内部因素作用的结果。一系列一个事件的发生是外部因素或者内部因素作用的结果。一系列事件的有序发生驱使着离散模拟过程有序地进行。事件的有序发生驱使着离散模拟过程有序地进行。 3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n定义一个事件时主要考虑那些对系统状态及行为变化和模拟分析定义一个事件时主要考虑那些对系统状态及行为变化和模拟分析结果有重要影响的事情。一个事件有两个基本属性:一是时间属结果有重要影响的事情。一个事件有两个基本属性:一是时间属性记载该事件

16、发生的时间;二是对应属性也即该事件的发生性记载该事件发生的时间;二是对应属性也即该事件的发生所对应着的系统某个状态变量的变化。所对应着的系统某个状态变量的变化。 n在模拟模型的运行中,当一个事件发生时,往往需要处理一系列在模拟模型的运行中,当一个事件发生时,往往需要处理一系列的事情,通常用一个专门的子程序来处理这些与事件发生相关的的事情,通常用一个专门的子程序来处理这些与事件发生相关的任务(通常叫做事件程序)。任务(通常叫做事件程序)。n模拟时钟模拟时钟(Simulation Clock) :跟踪并记录模拟时间。:跟踪并记录模拟时间。n模拟时钟与实际时间的差别:假设在某一时刻模拟时钟与实际时间

17、的差别:假设在某一时刻t1,系统中某种事件,系统中某种事件发生了,模拟时钟就会发生了,模拟时钟就会“停停”下来,直到事件程序处理完有关的下来,直到事件程序处理完有关的事情时钟才会继续走动;而这时的实际时刻已经是事情时钟才会继续走动;而这时的实际时刻已经是t2;然而不论有;然而不论有多少事情需要在事件发生时处理,实际时间总是从不间断的。多少事情需要在事件发生时处理,实际时间总是从不间断的。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n用两个简单例子来说明如何定义系统的状态及其变化。用两个简单例子来说明如何定义系统的状态及其变化。 n1. 单一排队服务系统(见图单一排队服务系统

18、(见图3.5)n图中圆圈代表前来购票的顾客(个体),而方块则代表提供服务的售图中圆圈代表前来购票的顾客(个体),而方块则代表提供服务的售票员(资源)。票员(资源)。 n定义两个状态变量:系统里总的顾客数量定义两个状态变量:系统里总的顾客数量N和服务员的状态和服务员的状态B。N通常通常是一个有限的正整数,而是一个有限的正整数,而B则是一个则是一个(0, 1)变量,变量,0代表空闲状态,而代表空闲状态,而1则代表工作状态。则代表工作状态。 n由此可以定义两个重要的事件:一是顾客的到达,二是顾客接受服务由此可以定义两个重要的事件:一是顾客的到达,二是顾客接受服务后的离去。说它们重要是因为这两种事件的

19、发生都会直接影响到系统后的离去。说它们重要是因为这两种事件的发生都会直接影响到系统状态变量的改变。状态变量的改变。 3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑 到达到达 排队排队 接受服务接受服务 离开(销毁个体)离开(销毁个体) 图图3.5 单一排队服务系统的概念模型单一排队服务系统的概念模型n2. 一个简单的工厂库存系统(见图一个简单的工厂库存系统(见图3.6) n定义一个系统状态变量为:库内现存的产品数量定义一个系统状态变量为:库内现存的产品数量M。n定义两个事件:制成产品的到达入库和用户购买产品之订单定义两个事件:制成产品的到达入库和用户购买产品之订单的到来。这两

20、种事件的发生都直接影响到系统状态的到来。这两种事件的发生都直接影响到系统状态M的变化:的变化:制成品到达会使制成品到达会使M增加,而用户订单的到来会使增加,而用户订单的到来会使M减少。减少。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n为为“入库入库”和和“取货取货”这两个操作过程定义各自的状态变量这两个操作过程定义各自的状态变量B(t)来反映其从空闲状态到工作状态(或相反)的变化。来反映其从空闲状态到工作状态(或相反)的变化。产品到达 等候入库 入库 销毁产品个体 订单到达 等候配量 取货 销毁订单个体图图3.6 简单的工厂库存系统的概念模型简单的工厂库存系统的概念模型3

21、.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n用事件图来描述被模拟系统的状态变化也是一种非常有效的方用事件图来描述被模拟系统的状态变化也是一种非常有效的方法。在这种方法中,每一个圆圈代表着某一种特定的事件,而法。在这种方法中,每一个圆圈代表着某一种特定的事件,而每一条有向的弧线(箭头)则代表着某一事件对其自己或其他每一条有向的弧线(箭头)则代表着某一事件对其自己或其他事件的未来影响。可以用事件图来描述图事件的未来影响。可以用事件图来描述图3.6中简单排队系统的中简单排队系统的逻辑原理(见图逻辑原理(见图3.7)。)。图图3.7 简单排队模拟模型的逻辑事件图简单排队模拟模型的逻

22、辑事件图个体到达个体离开模拟结束3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n从图中可以看出,这个模拟系统有两类事件:个体到达与个体离开从图中可以看出,这个模拟系统有两类事件:个体到达与个体离开(完成服务后);其中,每一次个体到达的发生就会决定下一次个(完成服务后);其中,每一次个体到达的发生就会决定下一次个体到达(同类事件)发生的时间,也可以决定下一次个体离开(非体到达(同类事件)发生的时间,也可以决定下一次个体离开(非同类事件)的时间。而每一次个体离开的发生则只会影响到下一次同类事件)的时间。而每一次个体离开的发生则只会影响到下一次个体离开的发生。个体离开的发生。 n还

23、必须定义个体到达事件的初始预置使整个模拟过程得以启动(图还必须定义个体到达事件的初始预置使整个模拟过程得以启动(图中带有部分破折线的箭头)。最后,如果模拟运行的时间有限,还中带有部分破折线的箭头)。最后,如果模拟运行的时间有限,还可以定义一个模拟结束事件,该事件的发生将停止整个模拟的运行。可以定义一个模拟结束事件,该事件的发生将停止整个模拟的运行。n整个模拟过程就是由这一系列事件的产生和有序发生来驱使运行的,整个模拟过程就是由这一系列事件的产生和有序发生来驱使运行的,这也就是为什么离散模拟又常常被称为这也就是为什么离散模拟又常常被称为“事件驱使型模拟事件驱使型模拟”。3.2 离散模拟的基本原理

24、和运行逻辑离散模拟的基本原理和运行逻辑n一、事件驱使型模拟一、事件驱使型模拟n计算机模拟的过程是以某些特定事件的离散发生而展开进行的。计算机模拟的过程是以某些特定事件的离散发生而展开进行的。这些离散事件的发生影响或改变系统的状态。这些事件的有序这些离散事件的发生影响或改变系统的状态。这些事件的有序发生驱使着模拟过程有序地进行,模拟系统状态的有序变化。发生驱使着模拟过程有序地进行,模拟系统状态的有序变化。模拟模型须确定那些在模拟的未来时刻发生的事件及其发生的模拟模型须确定那些在模拟的未来时刻发生的事件及其发生的时间和顺序,记录和跟踪这些事件,并且在每个事件发生时按时间和顺序,记录和跟踪这些事件,

25、并且在每个事件发生时按照要求更变系统的状态、收集有关的数据(更新有关的统计照要求更变系统的状态、收集有关的数据(更新有关的统计量),以及把模拟时钟从当前时刻量),以及把模拟时钟从当前时刻“跃进跃进”到下一事件的发生到下一事件的发生时刻。时刻。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n二、事件的排定与事件安排时间表二、事件的排定与事件安排时间表n实施离散计算机模拟的一条基本策略就是设置一个实施离散计算机模拟的一条基本策略就是设置一个“机构机构”来确来确定和控制以下与事件相关的问题以及事件发生时所涉及到的情况:定和控制以下与事件相关的问题以及事件发生时所涉及到的情况:n(1

26、) 确定新的事件:也即产生未来的事件,特别是确定未来事件的类确定新的事件:也即产生未来的事件,特别是确定未来事件的类型型 。n(2) 当一个事件发生时,有哪些事情需要得到处理?当一个事件发生时,有哪些事情需要得到处理?n(3) 哪一个事件应该被安排为下一个发生的事件?如何把模拟时钟从哪一个事件应该被安排为下一个发生的事件?如何把模拟时钟从当前的事件跃进到下一事件的发生?当前的事件跃进到下一事件的发生?n前两个任务可以由一个定时程序前两个任务可以由一个定时程序(Event Routine)来完成,而最后来完成,而最后一个任务通常是由一个事件程序一个任务通常是由一个事件程序(Timing Rout

27、ine)来完成。来完成。 3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n从图从图3.8可以看出,一个离散模拟模型的逻辑运行结构如下:可以看出,一个离散模拟模型的逻辑运行结构如下:n首先当模拟开始运行时,一个预置子程序最先启动。其功能是设定首先当模拟开始运行时,一个预置子程序最先启动。其功能是设定模拟模型的初始状态。模拟模型的初始状态。n预置程序启动后,一个定时程序预置程序启动后,一个定时程序(Timing Routine)接着开始运行。其接着开始运行。其主要任务是根据事件序列表中的排列确定下一个未来发生的事件主要任务是根据事件序列表中的排列确定下一个未来发生的事件(也即离(

28、也即离“当前时刻当前时刻”最近的事件),并且把模拟时钟从现在的时最近的事件),并且把模拟时钟从现在的时刻跃进到下一个事件的发生时刻。刻跃进到下一个事件的发生时刻。n接着运行的是一个事件程序,事件程序的任务包括三个方面:接着运行的是一个事件程序,事件程序的任务包括三个方面: 根据最近事件的发生更新有关的系统状态变量;根据最近事件的发生更新有关的系统状态变量; 更新有关的统计计数变量;更新有关的统计计数变量; 确定未来事件(的类型)及其的发生时刻并把确定的结果(新产确定未来事件(的类型)及其的发生时刻并把确定的结果(新产生的事件)加入到事件序列表。生的事件)加入到事件序列表。3.2 离散模拟的基本

29、原理和运行逻辑离散模拟的基本原理和运行逻辑n事件程序运行之后,模拟模型将按事件程序运行之后,模拟模型将按照某种预定的终止条件来决定是否照某种预定的终止条件来决定是否继续运行。如果需要继续,则返回继续运行。如果需要继续,则返回到定时程序开始下一个运行周期。到定时程序开始下一个运行周期。如果终止条件满足,则模拟将停止如果终止条件满足,则模拟将停止运行,计算有关的统计数值(输出运行,计算有关的统计数值(输出变量的估计值),并启动一个报告变量的估计值),并启动一个报告程序把模拟结果按照要求的格式形程序把模拟结果按照要求的格式形成报告。成报告。n整个过程如图整个过程如图3.8所示。所示。图图3.8 离散

30、模拟模型的运行逻辑流程离散模拟模型的运行逻辑流程3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n为进一步理解离散事件模拟的工作原理,在此把在第为进一步理解离散事件模拟的工作原理,在此把在第2章里用到的单一排队服务系统模拟例子进行详细地分章里用到的单一排队服务系统模拟例子进行详细地分解。解。n分解从时间分解从时间T0(T表示模拟时间)开始,跟踪每一表示模拟时间)开始,跟踪每一个事件的发生,及其发生时模拟所做的事情,一直到个事件的发生,及其发生时模拟所做的事情,一直到时间时间T25时停止。表时停止。表3.2给出个体(顾客)到达、离给出个体(顾客)到达、离开、服务以及等候的时间,注

31、意其中到达时间和服务开、服务以及等候的时间,注意其中到达时间和服务时间都是随机产生的变量。时间都是随机产生的变量。 3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑表表3.2 单一排队服务系统例子的有关数据单一排队服务系统例子的有关数据个体序号到达时刻服务时间离开时刻等候时间123502651103761744932085132227618224472332718273.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n(1) T0,首先启动预置程序来设定模型中所有的变量(状,首先启动预置程序来设定模型中所有的变量(状态变量和计数变量)的初始状况。例如,设定服务者的

32、初始态变量和计数变量)的初始状况。例如,设定服务者的初始状态为状态为0(闲置),排队人数为(闲置),排队人数为0,事件表为,事件表为0(还没有事件(还没有事件产生),产生),“上一事件上一事件”的发生时间为的发生时间为0,模拟时钟的时刻为,模拟时钟的时刻为0,模拟停止时间为模拟停止时间为25,所有的计数变量也等于,所有的计数变量也等于0。然后预置下。然后预置下一次一次“顾客到达顾客到达”的时间为的时间为022(由于系统开始时还没(由于系统开始时还没有顾客,所以下一次有顾客,所以下一次“顾客离开顾客离开”的时间预设为的时间预设为 )。接着)。接着启动定时程序,决定下一事件是启动定时程序,决定下一

33、事件是“顾客到达顾客到达”(2),于,于是把模拟时钟从此刻(是把模拟时钟从此刻(T0)跃进到下一事件)跃进到下一事件“顾客到达顾客到达”的发生时刻的发生时刻T2。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n(2) T2,第一位顾客到达。模拟系统首先启动一个,第一位顾客到达。模拟系统首先启动一个“到达程序到达程序” 来处理个体到达时需要完成的事情。例如,将服务员从闲置状态改来处理个体到达时需要完成的事情。例如,将服务员从闲置状态改变为工作状态,排队等候时间为变为工作状态,排队等候时间为0(第一位顾客不需要等候),随机(第一位顾客不需要等候),随机产生的下一次到达事件的时间等

34、于产生的下一次到达事件的时间等于“本次到达的时刻与下次到达本次到达的时刻与下次到达的时间间隔的时间间隔”为为246 ,而下一次离开事件的时间则为,而下一次离开事件的时间则为235。故下一个事件将是故下一个事件将是“顾客离开顾客离开”,模拟时钟跃进到下一事件发生时,模拟时钟跃进到下一事件发生时刻刻T5。n(3) T5,第一位顾客完成服务离开。模拟启动一个,第一位顾客完成服务离开。模拟启动一个“离开程序离开程序” ,检查有无个体在排队中等候,排队长为检查有无个体在排队中等候,排队长为0,将服务员状态由工作改为,将服务员状态由工作改为闲置闲置(B0),增加一个完成服务的顾客数量。系统中现无任何个体,

35、增加一个完成服务的顾客数量。系统中现无任何个体,所以下一次离开的时刻为所以下一次离开的时刻为 ,而下一次到达的时刻是,而下一次到达的时刻是T6(已经被(已经被确定),因此下一个事件将是确定),因此下一个事件将是“顾客到达顾客到达”,模拟时钟跃进到,模拟时钟跃进到T6。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n (4) T6,第二位顾客到达。到达程序:系统排队等候的为,第二位顾客到达。到达程序:系统排队等候的为0,资源闲置,所以该个体可直接进入服务,等候时间为,资源闲置,所以该个体可直接进入服务,等候时间为0,排队人数仍然为排队人数仍然为0,将资源状态改变为,将资源状态改

36、变为1(工作),下一次到(工作),下一次到达的时间为达的时间为617, 而下一次离开的时间为而下一次离开的时间为6511,所,所以下一个事件是以下一个事件是“顾客到达顾客到达”,模拟时钟跃进到下一个事件,模拟时钟跃进到下一个事件发生时刻发生时刻T7。n (5) T7,第三位顾客到达。资源正被占用,所以进入排队,第三位顾客到达。资源正被占用,所以进入排队等候,排队人数增加一个等候,排队人数增加一个(011)。下一次到达的时间是。下一次到达的时间是729,而下一次离开的时间是,而下一次离开的时间是11(已经被确定),所以预(已经被确定),所以预计的等候时间是计的等候时间是1174,而下一个事件是,

37、而下一个事件是“顾客到达顾客到达”,模拟计时钟跃进到下一事件发生时刻模拟计时钟跃进到下一事件发生时刻T9。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n(6) T9,第四位顾客到达。资源仍然被占用,所以加入排,第四位顾客到达。资源仍然被占用,所以加入排队,排队人数增加一个队,排队人数增加一个(112),注意第三位顾客仍在排,注意第三位顾客仍在排队中等候,所以第四位顾客将是排队中处于第二位的个体。队中等候,所以第四位顾客将是排队中处于第二位的个体。下一次的到达时间为下一次的到达时间为9413,而下一次离开的时间是,而下一次离开的时间是11,所以下一个事件是所以下一个事件是“顾

38、客离开顾客离开”,模拟时钟跃进到,模拟时钟跃进到T11。n(7) T11,第二位顾客完成服务离开。离开程序:完成服,第二位顾客完成服务离开。离开程序:完成服务离开的顾客增加一个,已经有顾客排队等候,所以不改务离开的顾客增加一个,已经有顾客排队等候,所以不改变资源现在的状态(工作变资源现在的状态(工作1),将排队等候的个体数量减),将排队等候的个体数量减少一个(第三位顾客进入服务)。下一次离开的时间是少一个(第三位顾客进入服务)。下一次离开的时间是11617,而下一次到达的时间是,而下一次到达的时间是13,所以下一个事件是,所以下一个事件是“顾客到达顾客到达”,模拟时钟跃进到下一事件的发生,模拟

39、时钟跃进到下一事件的发生T13。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n (8) T13,第五位顾客到达。到达程序:资源仍然被占用,第五位顾客到达。到达程序:资源仍然被占用,资源状态不改,排队中已经有一人(第四位顾客),所以进资源状态不改,排队中已经有一人(第四位顾客),所以进入排队(队中第二名)等候,排队人数增加一个。下一次到入排队(队中第二名)等候,排队人数增加一个。下一次到达时间为达时间为13518,而下一次离开时间是,而下一次离开时间是17,下一个事件,下一个事件是是“顾客离开顾客离开”,模拟时钟跃进到下一个事件的发生,模拟时钟跃进到下一个事件的发生T17。n

40、(9) T17,第三位顾客完成服务离开。离开程序:完成服务,第三位顾客完成服务离开。离开程序:完成服务的顾客增加一个,由于有顾客等待,资源工作状态不变(仍的顾客增加一个,由于有顾客等待,资源工作状态不变(仍然为然为1),将排队等候的人数减少一个(第四位顾客进入服),将排队等候的人数减少一个(第四位顾客进入服务)。下一次离开事件的时间是务)。下一次离开事件的时间是173=20,而下一次到达,而下一次到达的时间是的时间是18,所以下一个事件确定为是,所以下一个事件确定为是“顾客到达顾客到达”,模拟,模拟时钟跃进到下一事件的发生时钟跃进到下一事件的发生T18。3.2 离散模拟的基本原理和运行逻辑离散

41、模拟的基本原理和运行逻辑n (10) T18,第六位顾客到达。到达程序:资源在被占用,第六位顾客到达。到达程序:资源在被占用,排队中已经有一人等候,所以进入排队(队中第二名)等候,排队中已经有一人等候,所以进入排队(队中第二名)等候,排队人数增加一个排队人数增加一个112。下一次到达的时间为。下一次到达的时间为18523,而下一次离开事件的时间是而下一次离开事件的时间是20,所以下一个事件是,所以下一个事件是“顾客离顾客离开开”,将模拟时钟跃进到下一事件的发生,将模拟时钟跃进到下一事件的发生T20。n(11) T20,第四位顾客完成服务离开。离开程序:完成服,第四位顾客完成服务离开。离开程序:

42、完成服务的顾客增加一个,由于有顾客等待,资源状态仍然不变,务的顾客增加一个,由于有顾客等待,资源状态仍然不变,将排队等候的人数减少一个(第五位顾客进入服务,排队人将排队等候的人数减少一个(第五位顾客进入服务,排队人数数2-1=1)。下一次离开的时间是)。下一次离开的时间是20222,而下一次到达,而下一次到达的时是的时是23,所以下一个事件是,所以下一个事件是“顾客离开顾客离开”,将模拟时钟拨,将模拟时钟拨进到下一事件的发生进到下一事件的发生T22。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n (12) T22,第五位顾客完成服务离开。离开程序:完成服,第五位顾客完成服务

43、离开。离开程序:完成服务的顾客增加一个,由于仍有顾客等待,资源状态不变,将务的顾客增加一个,由于仍有顾客等待,资源状态不变,将排队等候的人数减少一个(第六位顾客进入服务,排队人数排队等候的人数减少一个(第六位顾客进入服务,排队人数110)。下一次离开的时间是)。下一次离开的时间是22224,而下一次到达,而下一次到达的时间是的时间是23,所以下一个时间是,所以下一个时间是“顾客到达顾客到达”,模拟时钟拨,模拟时钟拨进到进到T23。n(13) T23,第七位顾客到达。因为资源正被占用,所以进,第七位顾客到达。因为资源正被占用,所以进入排队等候,排队人数增加一个入排队等候,排队人数增加一个(011

44、),预计等候的时间,预计等候的时间是是1,下一次到达的时间是,下一次到达的时间是23427,而下一次离开的时间,而下一次离开的时间是是24,所以下一个事件是,所以下一个事件是“顾客离开顾客离开”,模拟时钟拨进到下,模拟时钟拨进到下一事件的发生一事件的发生T24。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑n(14) T24,第六位顾客完成服务离开。离开程序:,第六位顾客完成服务离开。离开程序:完成服务的顾客增加一个,由于有顾客排队等候,完成服务的顾客增加一个,由于有顾客排队等候,资源状态不变,将排队的人数减少一个(排队人数资源状态不变,将排队的人数减少一个(排队人数110)

45、,第七位顾客进入服务。下一次离开),第七位顾客进入服务。下一次离开的时间是的时间是24327,而下一次到达的时间是,而下一次到达的时间是27,所以下一个事件可选到达或者离开,这里选择所以下一个事件可选到达或者离开,这里选择“到到达达”,由于下一个事件的发生时间是,由于下一个事件的发生时间是T27大于模大于模拟结束时间拟结束时间T25,所以只能把模拟时钟拨进到,所以只能把模拟时钟拨进到T25。n(15) T25,这是停止模拟运行的时间。,这是停止模拟运行的时间。3.2 离散模拟的基本原理和运行逻辑离散模拟的基本原理和运行逻辑N(t)0510152025t图图3.9 排队长度排队长度N(t)的动态

46、曲线的动态曲线图图3.9所示是根据模拟结果绘制出的关于排队长度所示是根据模拟结果绘制出的关于排队长度N(t)的动态曲线。的动态曲线。3.3 模拟模型性能评价模拟模型性能评价n以排队服务系统为例介绍离散系统模拟的评价。排队理论已经广以排队服务系统为例介绍离散系统模拟的评价。排队理论已经广泛应用于各种管理系统。例如:仓库供应、企业生产、物资分配泛应用于各种管理系统。例如:仓库供应、企业生产、物资分配与流通、交通运输、计算机作业、银行服务、医院及保健服务、与流通、交通运输、计算机作业、银行服务、医院及保健服务、商店、餐厅、理发店等生活服务,都可以作为如图商店、餐厅、理发店等生活服务,都可以作为如图3

47、.10所示的排所示的排队服务系统进行处理。在系统模拟的应用中,尤以排队系统的离队服务系统进行处理。在系统模拟的应用中,尤以排队系统的离散型模拟最为普遍。散型模拟最为普遍。图图3.10 排队服务系统排队服务系统3.3 模拟模型性能评价模拟模型性能评价n构成排队服务系统的主要实体,是接受服务的各种形式的顾客以构成排队服务系统的主要实体,是接受服务的各种形式的顾客以及提供各种形式服务的服务者或服务设施。表及提供各种形式服务的服务者或服务设施。表3.3简要说明了多种简要说明了多种排队服务系统的实体。排队服务系统的实体。表表3.3 排队服务系统的实体排队服务系统的实体和和资源资源系统类型系统类型顾客顾客

48、服务者服务者物资仓库物资仓库货物储运站货物储运站机械加工工段机械加工工段计算机系统计算机系统航空公司售票处航空公司售票处银行银行医院医院商店、理发店商店、理发店餐厅餐厅领料人员领料人员待运货物待运货物加工工件加工工件待处理的作业待处理的作业旅客旅客存款户存款户病人病人男、女顾客男、女顾客食客食客仓库管理员仓库管理员储运人员及设备储运人员及设备加工设备、操作工人加工设备、操作工人计算机计算机售票员售票员出纳员出纳员医生、护士医生、护士服务员、理发师服务员、理发师服务员、厨师服务员、厨师3.3 模拟模型性能评价模拟模型性能评价n在分析排队服务系统时,通常要涉及的因素可能包括在分析排队服务系统时,通

49、常要涉及的因素可能包括以下的方面:以下的方面:n(1) 顾客到达的速率或相邻顾客到达的间隔时间,呈确定性或顾客到达的速率或相邻顾客到达的间隔时间,呈确定性或随机性;随机性;n(2) 服务速率或单位顾客的服务时间,呈确定性或随机性;服务速率或单位顾客的服务时间,呈确定性或随机性;n(3) 服务者或服务设施的数量;服务者或服务设施的数量;n(4) 顾客排队规则,有先进先出,后进先出以及其他优先规则顾客排队规则,有先进先出,后进先出以及其他优先规则等;等;n(5) 排队列数,有单列的和多列的;排队列数,有单列的和多列的;n(6) 队列容量,为有限的和无限的。队列容量,为有限的和无限的。3.3 模拟模

50、型性能评价模拟模型性能评价n评价排队服务系统性能的指标主要有以下三个:评价排队服务系统性能的指标主要有以下三个: n(1) 顾客在系统内的平均停留时间顾客在系统内的平均停留时间 : 式中,式中,d i为第为第i个顾客在系统内的停留时间,个顾客在系统内的停留时间,N为完成服务的顾客人数。为完成服务的顾客人数。n(2) 系统内的平均顾客人数系统内的平均顾客人数 式中,式中,qj为发生第为发生第j事件时的系统内的顾客人数,事件时的系统内的顾客人数,tj为第为第j事件的发生时事件的发生时间,间,tj1为第为第j1事件的发生时间,事件的发生时间,T为整个模拟时间,为整个模拟时间,m为在为在T期间期间发生

51、的事件数目。发生的事件数目。1niiddn1()mjjj 1jqttqT3.3 模拟模型性能评价模拟模型性能评价n图图3.11说明了说明了 的计算方法。的计算方法。n图图3.11中画有剖面线的面积之和等于上式右边的分子部分,即:中画有剖面线的面积之和等于上式右边的分子部分,即:n(3) 服务员负荷率,它等于服务员繁忙时间之和与整个模拟时服务员负荷率,它等于服务员繁忙时间之和与整个模拟时间之比。间之比。q 图图3.11 的的计算计算方法方法说明图说明图332554776887()()()()qttqttqttqttqTq3.4 离散系统模拟案例离散系统模拟案例 n此处采用此处采用Matlab对一

52、个对一个M/M/1排队系统进行计算机模拟。排队系统进行计算机模拟。n这个排队系统的服务员为一人。顾客到达系统的间隔时间为平均这个排队系统的服务员为一人。顾客到达系统的间隔时间为平均值等于值等于1min的指数分布随机变量。单位顾客服务时间为平均值等的指数分布随机变量。单位顾客服务时间为平均值等于于0.5min的指数分布随机变量。单列排队,采取先进先出的规则,的指数分布随机变量。单列排队,采取先进先出的规则,排队行列的最大容量为排队行列的最大容量为100。模拟的终止条件为有。模拟的终止条件为有1000个顾客服个顾客服务结束离开系统。务结束离开系统。n1. 系统的实体、属性和事件系统的实体、属性和事

53、件n系统的实体是顾客、以及资源是出纳员系统的实体是顾客、以及资源是出纳员 n用相应的属性来表征实体用相应的属性来表征实体n决定有两类事件:决定有两类事件:第第1类事件类事件顾客到达事件;顾客到达事件;第第2类事件类事件顾客在服务结束后离开系统。顾客在服务结束后离开系统。3.4 离散系统模拟案例离散系统模拟案例n2. 系统模拟程序系统模拟程序n利用利用Matlab编制模拟程序。除了主程序外,还在编制模拟程序。除了主程序外,还在M文件中编制了一文件中编制了一系列的子程序,它们的功能如表系列的子程序,它们的功能如表3.4所示,表所示,表3.5列举模型的变量的列举模型的变量的名称和定义。名称和定义。表

54、表3.4 排队服务系统模拟的子程序和函数排队服务系统模拟的子程序和函数子程序(函数)名子程序(函数)名称称 功能功能 INIT 系统初始化子程序系统初始化子程序 TIMING 定时子程序定时子程序 ARRIVE 处理处理l类事件的子程序类事件的子程序 DEPART 处理处理2类事件的子程序类事件的子程序表表3.5 本模型的变量本模型的变量变量名称变量名称 定义定义输入参数:输入参数:MARRVT顾客到达间隔时间的平均值顾客到达间隔时间的平均值MSERVT顾客服务时间的平均值顾客服务时间的平均值TOTCUS进行观测的结束服务的顾客总数进行观测的结束服务的顾客总数模拟变量:模拟变量:ANIQ排队系

55、统中顾客数目的时间积分值排队系统中顾客数目的时间积分值DELAY 顾客排队等待时间顾客排队等待时间NEVNTS事件类型数目,本例中为事件类型数目,本例中为2NEXT下一事件的类型下一事件的类型NIQ排队等待的顾客数目排队等待的顾客数目NUMCUS系统中已经结束服务的顾客数目系统中已经结束服务的顾客数目RMIN定时子程序用于确定最近事件时间的变量定时子程序用于确定最近事件时间的变量STATUS服务员状态变量,空闲时它为服务员状态变量,空闲时它为0,繁忙时它为,繁忙时它为1TARRVL(I)在排队系统中等待的第在排队系统中等待的第i个顾客的到达时间个顾客的到达时间TIME模拟时间模拟时间TLEVN

56、T上次事件的时间上次事件的时间TNE(I)下一次事件下一次事件I(I=1,2)的发生时间的发生时间TOTDEL已经结束服务的所有顾客的停留时间总数已经结束服务的所有顾客的停留时间总数U(0,1)间均匀分布随机变量)间均匀分布随机变量3.4 离散系统模拟案例离散系统模拟案例3.4 离散系统模拟案例离散系统模拟案例n(1) 模拟主程序模拟主程序 图图3.12是排队服务系统模拟的主程序,它的主要功能如下:是排队服务系统模拟的主程序,它的主要功能如下:n(1) 读入输入参数值;读入输入参数值;n(2) 调用调用INIT子程序对系统进行初始化;子程序对系统进行初始化;n(3) 调用调用TIMING子程序

57、,安排事件的类型和时间;子程序,安排事件的类型和时间;n(4) 调用调用ARRIVE子程序或子程序或DEPART子程序以处理顾客到达子程序以处理顾客到达事件或顾客离开系统事件;事件或顾客离开系统事件;n(5) 输出模拟结果。输出模拟结果。n主程序的功能是判断事件的类型并对相应的事件进行调度,主程序的功能是判断事件的类型并对相应的事件进行调度,并最终统计并输出模拟结果。并最终统计并输出模拟结果。3.4 离散系统模拟案例离散系统模拟案例MARRVT=1; /到达间隔时间为1MSERVT=0.5; /服务时间为0.5TOTCUS=1000; /结束服务顾客总数1000NEVNTS=2; /事件类型为

58、出队入队两种TNE=0,0;DELAY=0.0;for i=1:100 TARRVL(i)=0.0;endTIME,STATUS,NIQ,TLEVNT,NUMCUS,TOTDEL,ANIQ,TNE(1),TNE(2)=INIT();RMIN,NEXT,TIME=TIMING(TNE,TIME);If NEXT=1STATUS,TOTDEL,NUMCUS,ANIQ,NIQ,TLEVNT,TNE(1),TNE(2)=ARRIVE(TIME,STATUS,TOTDEL,NUMCUS,ANIQ,NIQ,TLEVNT,TARRVL);elseNIQ,STATUS,ANIQ,TIME,TLEVNT,DEL

59、AY,TARRVL,TOTDEL,NUMCUS,TNE(2)=DEPART(NIQ,STATUS,ANIQ,TIME,TLEVNT,DELAY,TARRVL,TOTDEL,NUMCUS);endif NUMCUSTOTCUS RMIN,NEXT,TIME=TIMING(TNE,TIME); if NEXT=1STATUS,TOTDEL,NUMCUS,ANIQ,NIQ,TLEVNT,TNE(1),TNE(2)=ARRIVE(TIME,STATUS,TOTDEL,NUMCUS,ANIQ,NIQ,TLEVNT,TARRVL); elseNIQ,STATUS,ANIQ,TIME,TLEVNT,DELA

60、Y,TARRVL,TOTDEL,NUMCUS,TNE(2)=DEPART(NIQ,STATUS,ANIQ,TIME,TLEVNT,DELAY,TARRVL,TOTDEL,NUMCUS); endelseend图图3.12 排队服务系统模拟的主程序排队服务系统模拟的主程序3.4 离散系统模拟案例离散系统模拟案例n(2) INIT子程序子程序nINIT子程序的目的是对系统参数实施初始化。如图子程序的目的是对系统参数实施初始化。如图3.13所示,还通所示,还通过过TNE(1)= TIME +exprnd(1) 语句确定首次顾客到达时间,设定语句确定首次顾客到达时间,设定TNE(2)= 1000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论