离散事件建模及仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章离散事件系统建模与仿真
离散事件系统指的是一组实体为了达到某些目的,以某些规则相互作用、关联而集合在一起。与连续事件系统不同,离散事件系统所包含的事件在时间上和空间上都是离散的。离散事件系统在生产和生活中是很常见的,例如一个超市就是一个离散事件系统,它由顾客和收银员组成。在离散事件系统中,各事件以某种顺序或在某种条件下发生,并且大都是随机性的,所以,其模型很难用某种规范的形式,一般采用流程图或者网络图的形式来定义实体在系统中的活动。这类系统在建模时,只要考虑系统内部状态发生变化的时间点和发生这些变化的原因,而不用描述系统内部状态发生变化的过程。本章将介绍几种常见的离散事件系统和离散事件系统建模方法。
7.1 离散事件系统模型
离散事件系统是指系统的状态仅在离散的时间点上发生变化的系统,而且这些离散时间点一般是不确定的。这类系统中引起状态变化的原因是事件,通常状态变化与事件发生是一一对应的。事件的发生没有持续性,可以看作在一个时间点上瞬间完成,事件发生的时间点是离散的,因而这类系统称为离散事件系统。首先看一个典型的离散系统的例子。
例7.1 超市服务系统
某理发店只有一名理发师。在正常的工作时间内,如果理发店没有顾客,则理发师空闲;如果有顾客,则为顾客理发。如果顾客到达理发店时,理发师正在为其他顾客服务,则新来的顾客在一旁排队等候。显然,每个顾客到达理发店的时间是随机的,而理发师为每个顾客服务的时间也是随机的,进而队列中每个顾客的等候时间也是随机的。
下面,结合例7.1介绍一下在离散事件系统仿真中所用到的一些基本概念。
(1)实体
实体是指有可区别性且独立存在的某种事物。在系统中,构成系统的各种成分称为实体,用系统论的术语,它是系统边界内的对象。在离散事件系统中,实体可分为两大类:临时实体和永久实体。临时实体指的是只在系统中存在一段时间的实体,这类实体由系统外部到达系统,在系统仿真过程中的某一时刻出现,最终在仿真结束前从系统中消失。例7.1中,顾客是临时实体,他们按一定的规律到达,经过理发师服务(可能要排队等待一段时间),最终离开系统。那些虽然达到,但未进入理发店的顾客则不能称为该系统的临时实体。永久实
体指的是永久驻留在系统中的实体,只要系统处于活动状态,这些实体就存在。例7.1中,理发师是永久实体,只要系统处于活动状态,这些实体就存在。可以这样说,永久实体是系统处于活动的必要条件。临时实体按一定规律出现在仿真系统中,引起永久实体状态的变化,又在永久实体作用下离开系统,如此整个系统呈现出动态变化的过程。
(2)事件
事件是引起系统状态发生变化的行为,它是在某一时间点上的瞬间行为。从某种意义上说,离散事件系统可以看作是由时间驱动的。例7.1中,可以定义顾客到达为一类事件。因为由于顾客的到达,系统的状态——理发师的“状态”可能从闲变到忙,或者另一系统状态——排队的顾客人数发生变化(队列人数加1)。一个顾客接受服务完毕后离开理发店系统也可以定义为一类事件——顾客离开,此事件可能使理发师的“状态”从忙变为闲。
(3)属性
实体的状态由它的属性的集合来描述,属性用来反映实体的某些性质。例如理发店服务系统中,顾客是一个实体,性别、身高、年龄、到达事件、离开事件等是他的属性。对一个客观实体,其属性很多,我们在仿真建模中,只需要使用与研究目的相关的一部分就可以了。顾客的性别、身高和年龄与理发店服务关系不大,则在理发店服务系统中不必作为顾客的一个属性,而到达事件、服务事件和离开事件是研究理发店服务效率的重要依据,是理发店服务系统仿真中顾客的属性。
(4)状态
在某一确定时刻,系统的状态是系统中所有实体的属性的集合。
(5)活动
实体在两个时间之间保持某一状态的持续过程称为活动。离散事件系统中的活动,通常表示两个相邻事件之间所经历的过程。活动因某一事件的发生而开始,因下一事件的发生而结束,活动的开始与结束都是由事件引起的,因此它标志着实体状态迁移的一个片段。在理发店服务系统中,在“顾客到达”与“服务开始”这两个事件之间存在着一个“排队等候”活动,而在“服务开始”与“服务结束”事件之间存在着一个“理发服务”的活动。从另一个角度来看,排队等候活动的开始和结束,都标志着顾客队列状态发生变化;而理发服务活动的开始和结束,都标志着理发师状态的变化。
(6)进程
进程由和某类实体相关的若干事件及若干活动组成,它用于描述一个临时实体从进入系统到离开系统所经历的完整过程,包括期间发生的若干事件和若干项活动,以及这些事件和活动之间的逻辑和时序关系。例7.1中,一个顾客到达理发店系统→排队→理发师为之服务→服务完毕后离开理发店系统的过程,可视为一个进程。事件、活动和进程三者之间的关系可用图7-1描述。
图7-1 事件、活动和进程三者关系示意图
(7)仿真时钟
仿真时钟用于表示仿真时间的变化,作为仿真过程的时序控制。它是系统运行时间在仿真过程中的表示,而不是计算机执行仿真过程的时间长度。仿真时钟推进的时间间隔称为仿真步长。将连续模型进行离散化后而成为仿真模型时,仿真时间的变化由仿真步长确定,可以是定步长,也可以是变步长。而在离散事件系统仿真中,在任何两个相邻发生的事件之间,系统的状态不会发生变化,因此仿真时钟可以跳过这段时间,从上一事件发生时刻直接推进到下一时间发生的时刻。仿真时钟的推进方式基本上有两种:固定步长时间推进机制和下次事件时间推进机制。由事件发生的随机性可见,离散事件系统仿真时钟的推进步长是随机的,它取决于系统的当前状态和事件发生的条件。
(8)统计计数器
离散事件系统的状态随着事件的不断发生也呈现出动态变化过程,但仿真的主要目的不是要得到这些状态是如何变化的。因为这种变化是随机的,某一仿真运行得到的状态变化过程只不过是随机过程的一次取样,因而如果进行另一次独立的仿真运行所得到的状态变化过程可能全是另外一种情况,它们只有在统计意义下才有参考价值。
7.2Petri网建模
Petri网是由德国学者Carl Adam Petri(卡尔·A·佩特里)发明的,它是研究信息系统及其相互关系的数学模型。Carl Adam Petri于1962年在他的博士论文“Kommunikation mit Automaten”(用自动机通信)中提出了一种用于描述事件和条件关系的网络,这就是最初的Petri网。
Petri网是一种用简单图形表示的组合模型,具有直观、易懂和易用的优点,它能较好的描述系统的结构,表示系统中的并行、同步、冲突和因果依赖等关系,并以网图的形式,