离散事件模拟

原创 2016年08月29日 15:57:43

1. 离散事件系统模拟

被模拟系统的行为:

  • 可以抽象为一些离散事件的发生;
  • 所发生事件可以引发新的事件(拓扑序);
  • 人们希望通过计算机模拟理解系统行为,评价或设计真实世界中实际的或所需的系统;

适用于这种模拟的系统,其行为特征是:

  • 系统运行中可能不断发生一些事件(带有一定的随机性)
  • 一个事件在某个时刻发生,其发生有可能导致其他事件在未来发生(关联性);

2. 一些说明

模拟中的事件经常需要排队,队列结构适用于记录事件
很多情况下还涉及到时间或其他排序因素,优先队列结构可能提供所需要的功能;

做这种模拟,其中的基本想法就是按事件发生的时间顺序处理;
在模拟系统里用一个优先队列保存已知在将来某些特定时刻(时刻也不太能确定,也可能依赖其他事件的执行)发生的事件;
系统的运行就是不断从优先队列里取出等待事件,一个个处理,直至整个模拟结束;

事件的具体处理(运行)由具体的模拟问题确定。在一些事件(触发事件)的处理中可能引发另一个或一些新的(将在以后的某个时刻发生的)事件,这些事件应该放入优先队列,在它们应该发生的时刻运行(也即被系统处理)。在模拟过程进行中,系统中始终维护着一个当前时间,也就是当时正在发生的那个事件的时间。

3. 一个通用的模拟框架的设计

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

离散事件模拟(银行业务模拟。实现算法3.6、3.7的程序)

// func3-3.cpp、algo3-12.cpp和algo3-13.cpp用到的函数及变量等 #include"c1.h" typedef struct // 定义ElemType为结构体类型 ...

Event事件控制

事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该...

离散事件模拟--银行排队时间模拟

在数据结构中有个讲述如何模拟银行排队,最终算出每个人平均的逗留时间。 这是需要数据结构的知识。将银行的每个窗口看成是一个队列,那么对于每次来一个人,都需要从最短的队列进行排队。(其实更优秀的做法是从最...

3.5离散事件模拟

3.5离散事件模拟

数据结构学习笔记 --- 队列的应用举例(离散事件模拟)

1. 引言  本文主要讲解一个队列和线性表的例子——离散事件模拟。 2. 离散事件模拟——银行业务模拟 #include "ds.h" #define F...
  • whz_zb
  • whz_zb
  • 2012年02月12日 21:46
  • 2983

离散事件模拟实现——数据结构(C语言版)

离散事件模拟——本题来自于“数据结构(C语言版)”第65页; 原题的解题思路是设计两个“事件”模型——客户到达银行(A)与客户离开银行(D)完成一天内所有业务的模拟;在我的理解中,我认为一个事件,即...

离散事件模拟

相当于一个时间轴,但是管着四个队列的进出情况。 第个队列的人员进入时,都要预报下一个人员进来的时刻,并登记下一个人员进来时刻到时间轴,同时将自己进来的时刻及逗留时间选择一个最短的队列进行注册...
  • cncnlg
  • cncnlg
  • 2015年03月05日 20:12
  • 531

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C语言 离散事件模拟

//离散事件模拟,模拟银行营业时的排队情况 //不考虑顾客中途离开,顾客到达事件随机,业务办理时间 //长度随机,选择最短的队排队,不再换队 //作者:nuaazdh //时间:2011年12...
  • nuaazdh
  • nuaazdh
  • 2011年12月10日 14:48
  • 4814

离散事件模拟实现——数据结构(C语言版)

离散事件模拟——本题来自于“数据结构(C语言版)”第65页; 原题的解题思路是设计两个“事件”模型——客户到达银行(A)与客户离开银行(D)完成一天内所有业务的模拟;在我的理解中,我认为一个事件,即...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:离散事件模拟
举报原因:
原因补充:

(最多只允许输入30个字)