首页 理论教育 离散事件系统仿真技术——《系统工程》小结

离散事件系统仿真技术——《系统工程》小结

时间:2023-08-02 理论教育 版权反馈
【摘要】:离散事件系统仿真,是综合性很强的研究工作,它的主要技术内容覆盖了运筹学、系统工程、计算机科学以及概率统计学等方面。1)随机数发生器在离散事件系统仿真中,由于所反映的实际系统都包含多种随机因素的交互作用和影响,本质上属于复杂的随机过程,因此,在仿真过程中需要重复地处理大量的随机因素。

离散事件系统仿真技术——《系统工程》小结

离散事件系统仿真,是综合性很强的研究工作,它的主要技术内容覆盖了运筹学系统工程、计算机科学以及概率统计学等方面。下面将对涉及的4个重要技术做简要介绍。

1)随机数发生器

在离散事件系统仿真中,由于所反映的实际系统都包含多种随机因素的交互作用和影响,本质上属于复杂的随机过程,因此,在仿真过程中需要重复地处理大量的随机因素。无论是各种随机离散事件的发生时刻,还是产生流动实体的到达流与流动实体在固定实体中的逗留时间等,都是不同概率分布的随机变量,每次仿真运行都要从这些概率分布中进行随机抽样,以便获得每次仿真运行的实际参数。当进入系统的流动实体数量较多,每个流动实体流经的环节也较多时,仿真过程中就需要成千上万次地进行随机抽样,以使每个流动实体在每个环节上触发产生的离散事件都能得到规定概率分布的抽样时间,从而使原系统在运行中的随机因素和相互关系得以复现,并得到所需要的随机结果。因此,任何离散系统仿真过程都必须具备比较完善的、能够产生多种概率分布的随机变量的随机数发生器,这是仿真中不可缺少的组成部分。例如,在Q-GERT、SLAM、VERT和SIMAN等仿真语言中,都会在软件内部嵌入十余种概率分布的随机数发生器,当用户在程序中赋予某一离散事件或流动实体在某一环节上的随机变量以规定参数的概率分布时,仿真器即可自动调用和生成相应的随机数,以保证系统的随机特征在仿真中复现。

2)实体流技术

为了便于用户使用离散系统仿真技术,许多离散系统仿真语言,如GPSS、Q-GERT、SLAM以及SIMAN等,都将面向随机离散事件的用户接口改为面向实际过程的用户接口。在这种系统中,用户可以根据实际过程来规定仿真模型的框架结构和逻辑关系,并将仿真对象作为在系统框架中运动动态实体。例如,在简单排队系统的仿真模型中,排队队列和进行服务工作的服务台形成模型的框架结构,而顾客就是被仿真的对象。这些顾客按一定的概率分布进入系统,排入队列,当服务台空闲时占用服务台,使服务台变忙,经过一个随机的服务时间后离开系统。因此仿真模型与实际排队系统在形式上是一一对应的。

实体流技术就是基于上述过程的一种仿真技术。在面向实际过程的仿真中,通常都有两类实体,即固定实体和流动实体。固定实体以固定形态存在于仿真过程中,并起到一定的逻辑作用。流动实体是仿真所处理的对象,它以用户规定的概率分布从系统外部输入系统,在仿真时钟的驱动下,流动实体在仿真模型的框架结构中运动,每当流动实体到达或离开模型中某一固定实体时,就由该固定实体所固有的逻辑关系触发各项离散事件的产生或消失,建立未来事件表,进行数据统计和计算,从而实现离散事件仿真的功能。由此可见,面向实际过程的仿真与面向离散事件的仿真在本质上是完全相同的,用户可以直接面向实际过程进行建模,这具有明显的直观性。因为用户不必介入任何具体的离散事件,从而可以从烦琐的程序编码工作中解脱出来,把主要精力用于对实际系统的研究和建模工作,有利于提高仿真的质量。

实体流技术可以用于很广泛的实际系统。在机械加工生产线中,每台机床和机床间的在制品存放地、半成品仓库和热处理设备等,均可构成仿真模型中的固定实体,而零件则为流动实体。又如在交通运输系统中,道路、铁路、机场、信号灯、车站、停车场等均为固定实体,而车辆、飞机、顾客、货物等为流动实体。

3)汇集和输出统计数据(www.zuozong.com)

在仿真过程中对每一事件发生的时刻都需要进行数据汇集和计算,比如,记录离散事件发生的时刻、事件发生后状态变量的变化情况,并对流动实体的数量、在各个固定实体中的延迟时间以及整个系统的特性参数进行概率计算等。因此,在仿真运行结束时能够提供反映系统基本参数的数学期望、方差、标准偏差、最大值与最小值,以及概率分布曲线或直方图等。任何离散系统仿真软件都应具有自动汇集各种统计数据的功能,并能打印输出标准格式的系统参数,或按用户要求给出所需要的参数,以提供给领导或管理部门进行决策

4)事件调度/时间推进的仿真机制

上面提到的随机离散事件、仿真时钟、未来事件表、实体流技术、随机数发生器以及汇集和输出统计数据等都是离散事件系统仿真的基本组成部分,它们在仿真运行的执行过程中形成一个整体。在这些组成部分中,对离散事件的安排和处理以及仿真时钟的推进,是整个仿真过程的核心部分。因此,离散事件系统仿真具有事件调度/时间推进的基本仿真机制,这种机制的结构如图5-15所示。

在定义仿真模型和收集必要的输入数据以后,用户应根据仿真软件的要求读入数据,系统随即进入初始化处理程序,除了对仿真时钟和随机数发生器初始化以外,还要对累计统计计数置初值,设定系统的初始状态,并且产生初始的未来事件。当产生初始未来事件时,需要确定其随机发生时刻,故应调用随机数发生器,以便给出规定分布的抽样时间。对赋予已发生时间的未来事件,由事件安排程序按时间先后进行排序并建立未来事件表。于是系统进入时间推进程序,在未来事件表中扫描并搜索出当前紧接事件,即在最近时刻内将要发生的事件。与此同时,将仿真时钟推进到该事件的发生时刻上,从而实现了仿真时钟的首次推进。随后仿真系统自动调用事件处理程序,执行当前紧接事件所引起的操作,包括更新与该事件实现相关的状态变量,以改变系统的状态,同时根据仿真模型的逻辑,产生新的未来事件,包括确定这些事件的类别和在未来发生的时刻。与产生初始未来事件相似,事件处理程序也需要随机数发生器的支持,每产生一个未来事件都要调用相应概率分布的随机数发生器,以便给新未来事件赋予发生的时刻。此时,系统将自动检测仿真运行的终止条件,即仿真运行的当前时间TNOW是否已经等于或大于规定的仿真终止时间或用户规定的仿真终止事件{E}是否已经发生。如果仿真终止的条件已经满足,则系统将对全部仿真数据进行统计和计算,给出仿真运行的标准输出和用户定义的仿真输出参数等。如果未满足仿真运行的终止条件,则系统将自动返回事件安排程序,对新发生的事件进行排序和修改未来事件表,并进入时间推进程序,以扫描当前紧接事件和推进仿真时钟等。离散事件仿真就是在“产生事件—安排事件—时间推进—处理事件—再产生新的事件”这样的循环过程中实现的。

图5-15 事件调度/时间推进的仿真机制

面向实际过程的离散系统仿真,其仿真过程与离散事件仿真完全相同,只是面向用户的并不是具体的离散事件,而是各种类型的固定实体和流动实体。每当一个流动实体进入或离开某一固定实体时,它所触发产生的离散事件,就是新产生的离散事件,于是系统将按照与离散事件系统仿真相同的模式来安排事件,推进仿真时钟,处理流动实体,产生新的离散事件等。但是,在面向实际过程的离散系统仿真中,所有关于事件的操作,均由系统自动完成,无须用户介入,这对用户来说将是一种更为“友好”的仿真系统。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈

相关推荐