排队系统和离散事件系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6)模型验证(verification)
系统模型是否由准确地仿真模型(计算机程 序)表示。 方法:程序调试、程序逻辑流程图
7)模型确认(Validation)
是否模型代表实际系统?
仿真钟
用于表示仿真事件的变化 离散事件系统仿真中,由于系统状态变 化是不连续的,在相邻两个事件发生之 间,系统状态不发生变化,因而仿真钟 可以跨越这些“不活动”区域。从一个 事件发生时刻,推进到下一个事件发生 时刻。 仿真钟的推进呈跳跃性,推进速度具有 随机性。
Dynamic System)DEDS/DES: 指系统的状态在一些离散时间点上由于 某种事件的驱动而发生变化。其数学模 型很难用数学方程来表示。
例如?
生产系统是DES系统!
离散事件系统基本要素
实体:构成系统的基本元素。是系统中 有意义的一个物体。
有些实体在整个仿真过程中始终存在-永久 实体。 有些实体在一部分仿真过程中存在,有进入、 退出系统的情况-临时实体。 属性:是指某一实体的特性。例如,在银行 中,顾客是实体,其属性是帐户。
第二讲 排队系统、离散事件 系统基本概念
系统根据其模型表示可以分为: 连续系统 离散事件系统
连续系统
连续系统:其服从于物理学定律(电学、 力学、热学),其数学模型可表示为传 统意义上的微分方程或差分方程。 其系统的状态变量随时间而发生连续变 化。
例如:
?来自百度文库
离散事件系统
离散事件系统(Discrete Event
进程交互法的一般算法:
置初始时间t=t0,结束时间t=te; 设置初始化事件,并置于FEL中; 将FEL中有关的事件记录置于CEL中, 成分状态初始化:S=((s1,t 1 ), …,(sm,t m ), sm+1,…, sn); 设置系统仿真时钟TIME=t0; While(TIME<= t )则执行 1. CEL扫描 while (CEL中最后一个记录未处理完) 则 while (Di(S)= True有关成分未处理完) 则 执行该成分的活动 确定该成分的下一事件 end while end while 2. 推进仿真时钟 TIME = FEL 中安排的最早时间 if (TIME<= t )则 将FEL中所有在TIME时刻发生的事件记录转移到CEL 中 end if end while
设置条件处理模块
如果可激活成分集合为空,则将系统仿真时钟推进到下一最 早发生的活动生成时刻,即TIME=min(t FUTURE(S))
活动扫描法的典型算法:
置初始时间t=t0,结束时间t=te; 设置主动成分的仿真时钟t(i)(i=1,2,…,m); 成分状态初始化:S=((s1,t 1 ), …,(sm,t m ), sm+1,…, sn); 设置系统仿真时钟TIME=t0; While(TIME<= t )则执行扫描 for j=最高优先级 到 最低级 将优先级为j的成分置成 i, if ( t(i)<=TIME 且 Di(S)= True ) 执行活动子例程i; 退出,重新扫描该优先级的余下主动成分 end if end for TIME=min(t FUTURE(S)) end while
描述变量:成分的状态与属性 S为所有成分的状态变量,值域为S; P={p1, p2,… ,pK}为系统中的参数(属性)集合; t 为成分的状态的下一变化时刻,值域为{R+} D (S)表示成分在状态S时的条件是否满足, True/False TIME为模型仿真时钟的值,值域为{R+}成分间的 相互关系
事件:使系统状态发生变化的、实体的 瞬间行为。注:事件还可能触发新的事 件
DES中的事件具有三个特征:
1)离散事件是导致DES状态发生跃变和触发新 的离散事件的唯一因素。 2)事件交互影响系统状态的变化。 3)事件的发生时刻是异步的和不确定的。
状态:反映某一特定时间点的系统状态,如顾 客的等待状态,机器的当前状态(忙或闲)等 活动:实体在一段时间内持续进行的操作或过 程。通常表示两个可以区分的事件之间的过程。 标志着系统状态的转移。顾客的到达事件与该 顾客开始接受服务事件之间可称为一个活动。 如等待活动。 进程:由若干个有序事件及若干有序活动组成, 描述了它所包括的事件及活动的相互逻辑关系 及时序关系。
离散事件系统的仿真策略
仿真策略是仿真模型的核心,反映了仿 真模型的本质,从根本上决定了仿真模 型的结构。 仿真策略有三种:
事件调度法 活动扫描法 进程交互法
模型的非形式化描述术语
成分(Component):相对于系统中的实体,用于构造模型 中的各个部分,分为主动成分(Active-type Component) 与被动成分(Passive-type Component) C={1, 2 ,…,n}表示系统中n个成分; CA ={1, 2 ,…,m}表示系统中m个主动成分; CP ={m+1, m+2 ,…,n}表示系统中n - m个被动成分;
事件调度法(Event Scheduling)
基本思想:将事件作为仿真模型的基本单元, 按事件发生的先后顺序不间断地执行相应的 事件,每一事件可预先知其发生时间的确定 事件都带有一个例程。 实现方法:模型中所有待发生的事件都放于 事件表中,模型中设一个时间控制成分,从 事件表选择最早发生的事件,并将仿真时钟 推进到该事件发生的时刻;这样事件的选择 与处理不断进行直至仿真终止。
进程交互法(Process Interactive)
策略思想:采用进程描述系统,他将模型中的主动成 分所发生的事件及活动按事件顺序进行组合,从而形 成表,一个成分一旦进入进程,他将该进程可执行的 全部活动。 实现方法:系统仿真时钟的控制程序采用两张事件表, 其一是当前事件表(CEL),它包含了从当前时间点开 始有资格执行的事件的记录,但是该事件是否发生的 条件尚未判断;其二是将来事件表(FEL),它包含在 将来某仿真时刻发生的事件的事件记录。当仿真时钟 推进时,满足t<=TIME的所有事件记录FEL转移到 CEL中,然后对CEL中的每一事件进行扫描,若 D(S)=True,则发生该事件,只要条件允许该进程尽 可能推进直至进程结束;若D(S)=False或仿真时钟 要求其停止,则退出该进程。然后处理下一CEL中的 事件,直至CEL扫描完毕。继续推进仿真时钟,直至 仿真结束。
固定增量推进方法 按下一最早发生事件的发生时间推进-事 件调度法
固定步长时间推进机制的特点:
每次步长推进,都要进行事件检查,占用计算 和判断的时间,影响仿真效率。步长△t越小, 问题越严重。 该机制将发生在同一步长内的事件都视为发生 在该步长的末尾,即认为它们是同步的。由此 产生误差,影响仿真精度。步长△t越大,误差 越严重。 合理确定△t ,是固定步长时间推进机制中 的重要问题。
活动扫描措施:
设置系统仿真时钟TIME与成分仿真时钟t;显然有:
t>TIME 表示该活动将在将来某一时刻发生; t=TIME 表示该活动如果条件满足,则应立即发生; t<TIME 表示该活动按预定时刻早应发生,但因条件未满足,到目 前为止仍未发生;当前是否发生则要判断其发生条件; 令FUTURE(S)= {|t>TIME}, PRESENT(S)= {|t=TIME},PAST(S)= {|t<TIME};将满足下列条件: PRESENT(S)U PAST(S),且 D(S)=True的成分置于可激活(Activable)的成分集合中,此时仿真时 钟不推进,仅仅处理成分活动,修改成分仿真时钟;
离散事件系统仿真策略的比较
系统描述: 所有策略均描述主动成分与被动成分。在事件调度法中只有 主动成分CA才能施加作用;而其他策略中主动成分CA与被动 成分CP都可以施加作用。 事件调度法:事件;活动扫描法:活动;进程交互法:进程 建模要点: 事件调度法:只对无条件执行事件建模,条件测试与执行包 含于无条件事件执行例程中; 活动扫描法:对所有活动建模,专设条件初始模块; 进程交互法:将进程分若干步,每一步包括条件测试于执行 两部分;
思考:
1)文件处理系统是否属于DES系统? 分析其实体、状态、事件、活动。 2)银行系统是否属于DES系统?分析其 实体、状态、事件、活动。
排队系统
排队系统的基础
四、离散事件系统仿真步骤
1)问题提出 2)系统分析与描述:边界、约束、目标 3)建立系统的数学模型 4)数据收集 5)建模仿真模型:
仿真钟一般是仿真的主要自变量,仿真钟的推 进是系统仿真程序的核心部分。 仿真钟所显示的是仿真系统对应实际系统的运 行时间,而不是计算机运行仿真模型的时间。 仿真时间与真实时间将设定成一定比例关系, 使得复杂的系统,真实系统运行若干天、若干 月,计算机仿真只需要几分钟可以完成。
仿真钟推进方法
三、DES系统举例
理发店: 分析其实体、状态、事件、活动 Answer: 实体:顾客、服务员 状态:服务员个数、顾客数、服务员忙 闲 事件:顾客到达、服务完毕 活动:顾客等待、理发员服务
柔性制造系统:
请分析其实体、状态、事件
缓冲区 加工中心 缓冲区 加工中心
自动物料系统
自动仓库
Answer: 实体:工件、加工中心 事件:(待加工工件)到达 机床完成加工 状态:各加工中心的繁忙程度 各加工中心的等待队列 活动:工件等待 加工
下次事件时间推进机制:
仿真时钟按照下一个事件预计将要发生的时刻, 以不等的时间间隔向前推进。即仿真时钟每次 都要跳跃性地推进到下一个事件发生的时刻上 去。 该推进机制中,仿真时钟的增量不定,取决于 被仿真系统。 仿真时,需将事件按发生时间的先后次序排列, 仿真时钟时间则按事件顺序发生的时刻推进。 当某一事件发生时,需立即计算下一事件发生 的时刻,以便推进仿真时钟,直到仿真运行结 束。
事件调度方法-手工仿真
活动扫描法(Activity Scanning)
策略思想:系统由成分构成,而成分包含活动,这些 活动必须满足某些条件;每一主动成分均有一个活动 子例程;活动的发生时间也作为条件之一,而是较之 其他条件具有更高的优先权。 实现方法:设D(S)表示成分在系统状态S的条件是 否满足,t表示成分的状态下一发生变化的时刻。 活动扫描每一步要对系统中所有的主动成分进行扫描, 当t<=TIME且D(S)=True时执行该成分的子例程。 所有主动成分扫描一遍后,右按相同顺序继续扫描直 至仿真结束。
事件调度法的算法流程:
置初始时间t=t0,结束时间t=te; 事件表初始化,置系统初始事件; 成分状态初始化:S=((s1,t 1 ), …,(sm,t m ), sm+1,…, sn); 操作事件表: 取出具有t(s)=min{t| CA}事件记录; 修改事件表; 推进仿真时钟:TIME=t(s); While(TIME<= t )则执行 case 根据事件类型i: i=1 执行第1类事件处理程序; i=2 执行第2类事件处理程序; … i=m 执行第m类事件处理程序; end case 取出具有t(s)=min{t| CA}事件记录; 修改事件表; 推进仿真时钟:TIME=t(s); end while
仿真时钟推进:
事件调度法:主动成分的下一事件时间保存在事件表中, 定时模块不断从中取出最早发生的事件,推进仿真时钟到 该事件的发生时间,并中心该事件例程。 活动扫描法:每一主动成分设一个成分时钟,定时模块选 择那些成分时钟大于当前系统仿真时钟的主动成分中成分 时钟最小的成分时钟,然后推进系统仿真时钟到该时刻, 并开始活动扫描。 进程交互法:采用CEL与FEL,CEL扫描完后,取FEL中最早 发生事件置于CEL,仿真时钟推进到该时刻。一旦某进程被 执行,就尽量继续执行但并步改变系统仿真时钟,直至条 件或仿真时刻不满足进程中断或进程完成,若进程未完成 而终止,记下中断事件记入FEL。