入输出链接起来,通过耦合关系将各个子系统组成一个完整的离散事件系统。
并行离散事件系统模型的特点是它允许多个组件同时处于活动状态并将输出值发送到其他组件。并行离散事件系统的状态迁移是由各子系统自发完成的,不需要选择函数来顺序选择完成迁移的子系统。 1.3.2. 离散事件系统仿真
建立好离散事件系统模型后,便可进行模型仿真。离散事件系统模型仿真是指利用离散事件系统模型对真实或假想的系统进行进行动态研究。它的理论依据是相似论,相似论的核心思想是将描述物理现象的微分方程进行相似变换后,便能够得到确定的无因次数群之间的关系式。也就是说只要物理条件相似,那么就能够推演出不同输入的结果。
由于离散系统的状态是由一些离散时间点上的事件而改变的,因此可以说离散系统仿真模型是由这些离散事件驱动的。对于给定的离散事件系统,可能发生的所有事件的集合应该是明确的。系统依据所有事件应发生的时间先后构成一个序列。一个先后处理不同事件的通常不能颠倒的序列。仿真的关键就是确定这个事件发生的时间序列。有了这个序列,所有的离散事件才能按真实的结构组织起来。而通过这个序列将所有离散事件组织起来,是离散事件系统建模的核心。
因此离散系统仿真的研究主要集中在仿真程序流程管理(即仿真调度)上和事件组织方法上(也称为系统的仿真策略)。
经典的仿真程序流程管理有:时间进程管理、同时事件管理 经典的仿真策略有:事件调度法、活动扫描法、进程交互法 1.3.3. 离散事件系统仿真数据分析
经典的离散事件系统仿真假设可以获得对于系统足够详细准确的信息(如输入过程的参数,系统中随机变量的概率分布等)来对实际的离散事件系统进行准确的描述、建模。但这在通常的建模仿真中是一个十分苛刻的要求。故对仿真系统所得出的数据进行必要的分析,处理不准确的信息,成为离散事件系统仿真的一个值得研究的问题。
离散系统仿真的数据分析研究可以分为以下几个层次,各层次逐步深入,难度也逐步增大:
a.单系统仿真输出分析。
即针对某个实际问题,利用某种方法对模型输出的仿真数据进行统计分析,以估测模型真实特性,分析系统性能。在此方面研究上,已经有许多非常成熟的方法来分析输出数据。这些方法的目的可以归结为:对某个研究所关心的输出变量进行统计估计, 构建出尽可能小的置信区间。
b.多系统性能比较
多系统性能比较是指从课题需要的多种不同方案中选出最佳的或可行的方
6
案,以此对多个系统的性能进行比较。
c.基于仿真的系统优化
多系统性能比较是在已经给定的一些系统中进行选择,而系统优化则是在一个模拟空间(通常包含若干参数和非参数维度)中搜寻最优系统,需要结合一定的优化算法进行综合研究。
2. 离散事件系统建模与仿真介绍
2.1. 基本概念
首先要理解这方面理论的一些概念。 2.1.1. 实体(Entity)
实体即构成系统的各种成分,它们是系统边界内的对象。如:售票大厅中的旅客,马路上的汽车,工厂中的机器,医院里的医生等。
一般实体可以分为两大类:临时实体和永久实体。
临时实体是指只在系统中存在一定时间的实体。一般来说,这类实体是按一定规律从系统外部到达系统,按一定流程通过系统,接受系统中永存实体的作用,最终离开系统。如:旅客、汽车等。
永久实体是指永久驻留在系统中的实体。它是系统对临时实体产生功能的必要条件,作为系统活动的资源而被占用。如机器、医生等。
临时实体一般都是主动产生活动,具有主动性;而永久实体往往是被动的,具有从动性。
在仿真中我们把属性或活动行为类似的实体归结为一个类,建立模型时,只需要描述类与类之间的关系即可。 2.1.2. 属性(Attribute)
属性是对实体特征的描述,以此确定实体的一些性质。在仿真中不需要将实际实体的所有属性都描述出来,而只需要描述出与研究相关的属性即可。如:汽车的速度、车型等 2.1.3. 状态(State)
状态是指某一对象在某一时刻或时间段内,通过系统中其他对象属性以及自身属性的集合所得到的一种特征状况划分。它通过状态变量来描述。如:在购票过程中,有顾客行走的状态,在队列中等待的状态,接受服务的状态等。
7
2.1.4. 事件(Event)
事件是指导致对象状态变化的行为。可以认为系统的运行是由不同的事件来驱动的。在仿真中事件是在一个时间点上发生完成。它不仅可以实现实体之间的同步,也可以达到实体间传递信息的目的。如:旅客判断是否换队这一事件,有可能会触发旅客状态由在队列中等待状态变为换队的行走状态。 2.1.5. 活动(Activity)
活动是指实体在两个事件间保持一个状态的持续过程。它的开始和结束均有事件引起。如:旅客结束服务事件与到达系统出口事件之间的行走状态的持续过程。
2.1.6. 进程(Process)
进程是由与某个实体相关的若干事件与活动组成的一个完整的过程。它包括事件与活动间的相互逻辑与时序关系。 2.2. 离散事件系统建模仿真研究的一般步骤
离散事件系统的建模仿真是一个复杂、庞大的工作,因此需要按照科学的工作步骤来完成这项工作,每部分工作都要达到各自的指标,这样不仅可以提高工作效率,同时也能保证仿真研究工作的总体质量。一般仿真模型科学的工作步骤是
a.系统建模
系统模型一般用流程图或网络图的方式来描述。反映了临时实体在系统内部历经的过程、永久实体对临时实体的作用以及它们之间的逻辑关系。
b.确定仿真算法
要确定两方面内容,一是如何产生所需求的随机变量;二是采用怎样的方法进行仿真,即仿真策略。
c.建立仿真模型
根据已经确定的仿真算法,对变量进行定义,确定详细流程图,完成仿真程序实现。
d.仿真结果分析
离散事件系统具有固有的随机性,因此要多次运行模型得到仿真结果,采用一定方法对结果进行分析,才能得到较为科学的结论。
8
2.3. 系统建模
仿真研究的首要工作就是对离散事件系统进行建模,在建模过程中我们也要遵循科学的建模步骤
一般的离散事件系统模型的建立由以下四个步骤组成 2.3.1. 确定仿真目的
建立模型首先要做的工作就是确定系统仿真的目的。根据仿真目的的不同,通过不同的方法,建立不同种类的模型。唯有这样才能满足之后仿真及仿真结果分析的需要。 2.3.2. 正确描述系统
描述系统又可分为3个步骤:
a.确定系统组成的成分。即离散事件系统中的实体。可以分为两大类: 主动成分:所谓主动成分,即可以主动产生活动的成分,如售票系统中的旅客,他在到达后会产生排队、换队、服务等活动。
被动成分:所谓被动成分,即本身不能激发主动活动的成分,只有在主动成分作用下才能产生状态的变化。
例如:在北京西站售票大厅离散事件系统中,实体就旅客,窗口的服务人员以及咨询台的调度人员等。这些实体状态的改变往往发生在某些离散时间点上,而实体的行为往往符合随机分布。
b.确定描述变量和参数:所谓描述变量是指系统中各个实体的属性。主要种类有:实体的内部变量、外部变量。实体通过外边变量的输入,内部变量的输出来到达实体与外部环境的相互影响。而除输入、输出变量外,其余的均是主动成分或被动成分的状态变量。
c.建立实体的变量间的相互关系:两个变量间的相互关系是指这两个变量如何相互影响、相互联系、相互作用的。建立起这种关系后两变量间便形成了一种有方向的或形成回路的相关链。这种相关链如果在实体内部,那么它就描述了实体中由输入变量到输出变量的转换;如果这种相关链在实体外部,链接了两个实体,那么它就描述出两个实体间的相互关系、相互影响的行为。而当系统中各个实体间存在的相互关系都建立好后,便能够描述出一个或多个覆盖了整个系统的相关联系网。通过联系网,每个实体就能完成与系统的相互联系、相互影响。这种相关链大部分反映在各成分的活动中,而所有活动又是由事件所引发,因此弄清事件、活动的关系对于正确描述系统这一步骤来说,极为重要。
9
2.3.3. 确定输出函数
这一步要做的工作就是确定仿真模型运行后所得到的结果,以及怎样能够得到这些结果。 2.4. 确定仿真算法
2.4.1. 随机数和随机变量的生成 2.4.1.1. 随机数的产生
由于客观世界具有随机性,因此我们的系统仿真也需要有其随机性,我们获得随机性的方法是产生一个随机数,将此随机数作为模型中一些算法的输入参数。随机数不同导致模型得到结果也不同,以此来实现模型的随机性。
产生随机数的方法有很多,这些方法被称为是随机数发生器。随机数发生器按照随机数得到方法又可分为物理性随机数发生器和伪随机数发生器。 a.物理性随机数发生器是利用物理现象产生随机数,如:掷骰子、使用电子元件的噪音、核裂变现象等。这些发生器产生的是真正的随机数,然而它们的缺点是技术要求比较高。
b.伪随机数发生器是利用一些使用者不知道的、固定的、用重复计算的计算方法计算出来随机数的发生器。他们产生的数列看似是随机数,其实是可以推算出来的,因此他们不是真的随机数,称为伪随机数。 2.4.1.2. 随机变量的产生方法
在仿真模型中光有随机数依然不能实现仿真中实体行为的随机。因此我们需要有一个能够描述实体行为随机性的规则,通常这种规则是一个概率分布。例如:我们想仿真出工厂的流水线,那么我们就需要知道工厂流水线中各个工位的加工时间的概率分布,将其输入计算机,计算机会产生一个有N个数的数组,该数组的每个元素的数值严格符合概率分布。之后从数组中抽取一个数作为该工位加工时间,抽取的这个数在数组中的编号有随机数确定。 2.4.2. 离散事件系统仿真策略
所谓离散事件系统仿真策略即组织离散事件的方法。它与程序流程管理不同,流程管理是对时钟推进的管理办法;而仿真策略是仿真模型怎样描述真实系统进而得到事件逻辑序列表的方法。典型的处理方法有三种,分别是事件调度法、活动扫描法、进程交互法。
10