事件调度法及仿真示例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Chapter4事件调度法及仿真示例IE2主要内容•事件调度法•剧院系统逻辑流程图•剧院系统仿真程序设计IE31.1事件调度法•事件调度法最早出现在1963年兰德公司的Markowtz等人推出的SIMSCRIPT语言的早期版本中。它的基本思想是:♪将事件例程作为仿真模型的基本模型单元,按照事件发生的先后顺序不断执行相应的事件例程。♪每一事先可预知其发生时间的确定事件都带有一个事件例程,用以处理事件发生后对实体状态所产生的影响,并安排后续事件;条件事件不具有事件例程,对它的处理隐含在某一确定事件的例程中。•因此,事件调度法中听说的事件是指确定事件。对实体流程法建立的概念模型,一般可采用事件调度法建立其仿真模型IE41.2事件调度法的仿真策略1初始化1)置仿真初始时钟T0,和结束时钟Tf;2)置实体的初始状态;3)置初始事件及发生时间Ts;2确定当前仿真时钟TIME3在仿真时钟TIME时,发生的事件Ei,(i=1,2,…,n),i由特定规则对同时发生的事件排序4如果TIMETf,执行:{Ei的事件例程,产生后续事件类型及发生时间i=1,2,…,n;}否则,转到step65将仿真时钟TIME推进到下一最早发生事件时刻,转到step36仿真结束IE51.3事件调度法仿真模型设计•层次1一总控程序;•层次2一基本模型单元的处理程序•层次3一公共子程序:♪仿真模型的最高层是它的总控程序,或执行机制。仿真模型的总控程序负责安排下一事件的发生时间,并确保在下一事件发生的时候完成正确的操作。即第一层对第2层实施控制。对于专用的仿真软件,总控程序已经隐含在程序的执行机制当中。而使用C++,Fortran等通用语言,就要自己编写一段仿真模型的总控程序。♪仿真模型的第2层是基本模型单元。描述事件与实体状态之间的影响关系及实体间的相互作用关系,是建模者所关心的主要内容。采用不同的仿真策略时,仿真模型的第2层具有不同的构造,也就是说组成仿真模型的基本单元各不相同,在事件调度法中,仿真模型的基本模型单元是事件例程,因此其第2层由一系列事件例程组成。♪仿真模型的第3层是一组供第2层使用的公共子程序,用于生成随机变量,产生仿真结果报告,收集统计数据等用途。IE61.4面向事件的仿真模型•其总控程序完成如下工作:•(1)时间扫描:确定下—事件发生时间并将仿真时钟推进到该时刻;•(2)事件辨识:正确地辨识当前要发生的事件;•(3)事件执行:正确地执行当前发生的事件。♪面向事件仿真模型的主控程序使用事件表(EventList)来完成上述任务;事件表可以想象为记录将来事件的”笔记”。在仿真运行中,事件的记录不断被列入或移出事件表。例如:在单服务台排队服务系统中,顾客的到达可能会导致一个服务完毕事件的记录被列人事件表。每一事件记录至少应由两部分组成:事件的发生时间、事件的标识,有时,事件记录中还会有参与事件的实体名称等信息。•使用事件表后,面向事件仿真模型总控程序的算法结构如下:•(1)时间扫描♪扫描事件表,确定下一事件发生时间;♪推进仿真时钟至下一事件发生时间;♪从事件表中产生当前事件表CEL,CEL中包含了所有当前发生事件的事件记录;•(2)事件执行♪依次安排CEL中的各个事件的发生,调用相应的事件例程。某一事件一旦发生,将其从事件表中移出。IE7IE82.0剧院售票电话服务系统分析•(1)该系统的事件:♪E1:购票顾客到达事件;♪E2:购票顾客服务完毕事件;♪E3:电话到达事件;♪E4:电话服务完毕事件;IE9E1购票者到达事件例程IE10E2售票结束事件例程IE11E3电话到达事件例程IE12E4电话服务完毕事件例程IE13模型实现过程示例IE14模型实现过程示例IE15模型实现过程示例IE16模型实现过程示例

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功