离散事件仿真原理DES

2023-10-29

参考:SYSTEM SIMULATION AND OPTIMIZATION

目录​​​​​​​

1.系统仿真原理 

1.1系统,模型和系统仿真

1.2系统仿真分类

1.2.1 蒙特卡洛仿真(Monte Carlo Simulation)

1.2.2 离散系统仿真(Discrete Event Simulation DES)

1.2.3 连续系统仿真

 1.3系统仿真软件

2.离散事件仿真原理

2.1离散仿真术语和概念

2.2 列表处理(list processling)

2.2.1 顺序存储处理方式

2.2.2  索引存储处理方式

2.2.3 动态链接存储方式

3.excel模拟快餐店


1.系统仿真原理 

1.1系统,模型和系统仿真

1.2系统仿真分类

1.2.1 蒙特卡洛仿真(Monte Carlo Simulation)

又称随机抽样或者统计模拟方法,泛指所有基于统计采样进行数值计算的方法,适用于两类问题:本身具有随机性,能够转化为概率模型进行求解的确定性问题。如下图中的投针实验,假设在有多条平行线的桌子上扔一颗针,针穿过线的概率是多少,这个问题从数学角度可以通过计算面积得到概率,也可以通过蒙特卡洛仿真实验得到概率。

 MCS通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。当系统过于复杂,无法通过建立精确的数学模型时,可以用随机模拟法来近似计算预计值,随着仿真次数的增加,精度也会越来越高。

1.2.2 离散系统仿真(Discrete Event Simulation DES)

  • 离散系统属于动态类型仿真
  • 由事件驱动(event),事件的发生(occur)是离散且随机的,即系统状态变量(state)的取值是依时间轴离散且随机分布的
  • 此类系统无法用数学方程描述
  • DES使用两种事件推进机制:后续事件时间推进机制(next event time advance NETA);固定步长时间推进机制(fixed increment time advance FITA)

1.2.3 连续系统仿真

 1.3系统仿真软件

2.离散事件仿真原理

2.1离散仿真术语和概念

  • 随机性(randomness,stochastic,uncertainty):影响系统稳定性表现的干扰因素,也称噪音
  • 系统(system):由众多实体(entity)构成,例如顾客,机器和设备,实体之间相互作用,影响,系统状态随着时间变化而发生变化,往往具体某种目的和目标
  • 模型(model):对现实世界系统(real world system)的逻辑抽象,包含的指标和内容:系统状态,实体及其属性,集合,处理过程,事件,活动和时间延迟
  • 系统状态(system state):模型中所有变量的所有可能取值的集合
  • 实体(entity):存在于系统中,可相互区别的具体事物,如顾客,服务员等
  • 实体属性(entity attribute):实体具有的特征,如类型,加工时间,优先级等
  • 列表(list):列表有两种含义,一是清单,例如实体名单,事件列表,二是队列,例如排队顾客所形成的队列,且需要实现制定排队规则(FIFO)等
  • 事件(event):瞬间发生,能够改变系统状态的事情(occurrence)
  • 事件预告(event notice):记录事件发生时刻,事件相关数据的记录(record),例如事件类型和发生事件等
  • 事件列表(event list):由事件预告组成,记录将要发生事件的列表,按照事件顺序排列,也称为未来事件列表(future event list)
  • 活动(activity):活动是一个过程,持续时间长度大体确定,即适合于特定的统计分布和参数,如汽车加油等,会有相关的实体参与
  • 延迟(delay):延迟也是一个过程,与活动不同,延迟时间长度难以确定,例如顾客在队列中的等待时间,就有很大的随机性
  • 时钟(CLOCK):用于仿真模型及其模拟过程,具有跳跃性和不连续性,与现实世界的时钟不完全对应,采用大写以示区分
  • 事件调度(event scheduling):事件发生有事件顺序,事件调度是按照事件发生的事件顺序,建立未来事件列表(future event list FEL),仿真时钟(simulation clock)仅按照事件列表中的时刻推进,跳过那些没有事件和活动发生的事件段(duration)

DES中,仿真过程是面向事件的

  • 未来事件列表(future event list FEL)

如下图为银行系统的事件调度和未来事件列表,整个过程中有3位顾客到达,2位顾客离开,共5个事件,注意事件event是瞬间发生的,与activity(在python仿真库中称为process)不一样,此处顾客A1到达后触发事件e(A1),之后开启activity直到A2也就是顾客2到来,activity中又引入了新的事件,在FEL中只记录了接下来的两个事件而非全部。

  • 内生事件(endogenouse event):模型内部活动引起的状态变化而产生的事件,源于系统内部行为,不受系统外因素的影响,如顾客离去,机器故障等
  • 外生事件(exogenous event):事件的产生是由系统外部因素引起,系统只能承载事件的结果而不能影响事件的发生,如顾客到达,订单到达等
  •  时间推进机制(time advanced mechanism): DES中的时间并不是真实的时间流动,而是跳跃的,分成NETA和FITA,下图可以看到NETA是按照未来事件列表的发生时间推进的,而FITA是按照固定步长推进时间

2.2 列表处理(list processling)

列表处理有三种方式:顺序存储,索引存储,动态链接(此部分和数据结构中的顺序表,链表,循环队列等内容相似)

2.2.1 顺序存储处理方式

2.2.2  索引存储处理方式

例如顾客2的记录中第三个值即逻辑位置为4,因此排在第4个

2.2.3 动态链接存储方式

例如顾客2的记录中第三,四个值分别是5,6,表示顾客2前面是顾客5,后面是顾客6

3.excel模拟快餐店

 数据如下:顾客到达间隔事件服从指数分布,顾客服务时间服从正态分布

 以顾客3为例,B列顾客到达时间间隔,C列实际到达时间,D列顾客服务时间均为已经事先可以得到的数据,E列实际开始的服务时间为max(2G,3C),F列排队等待时间为3E-3C,G列服务结束时间为3E+3D,H列顾客在系统中的总时间3G-3C,I服务台空闲时间max(3C-2G,0)

 了解原理后在实现的时候还需要用到一些仿真软件或者仿真库来构建仿真环境,如matlab的simulink,python的simpy,salabim等

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离散事件仿真原理DES 的相关文章

随机推荐

  • 建表时出现10654错误the right syntax to use near‘NUL COMMENT‘

    创建表时 出现 10654 You have an err in your SQl sytaxy check the manual that corresponds to your MySQL sever version for the r
  • 从零开始搭建创业公司后台技术栈

    转自 http ju outofmemory cn entry 351897 编辑 公众号程序员面试 前言 说到后台技术栈 脑海中是不是浮现的是这样一幅图 图 1 有点眼晕 以下只是我们会用到的一些语言的合集 而且只是语言层面的一部分 就整
  • 服务器虚拟化方需求分析报告,服务器虚拟化解决方案报告书.doc

    WORD格式可编辑 专业知识整理分享 服务器虚拟化解决方案 Citrix XenServer服务器虚拟化解决方案 1 1 方案综述 1 1 1服务器虚拟化的业务及应用需求 随着企业业务的飞速发展 越来越多的业务系统依赖于数据中心的支撑 其中
  • 泛微移动表单校验手机号跟邮箱

    泛微移动表单校验手机号跟邮箱 var iphoneVal f phone val 获取表单字段 var checkIphone d 1 345789 d
  • h5上下滑动动画效果(vue)

    1 详情介绍 图片可以使用网络图片 根据请求过来的图片来获取高度要控制滑动的位置 可以换成视频 要实现滑动播放视频的效果 并且可以在上面添加一些其他的功能 白色背景区域可以展示对应的数据 具体效果看文章末尾 2 编码介绍 template部
  • UNIX环境高级编程 学习笔记 第十九章 伪终端

    终端登录是经由终端设备进行的 终端设备天然提供终端语义 在终端和运行程序之间有一个终端行规程 通过该规程我们能设置终端特殊字符 如退格 行删除 中断等 但当一个登录请求到达网络连接时 终端行规程并不是自动被加载到网络连接和登录shell之间
  • VSCode在linux服务器下launch.json和tasks.json等文件配置

    前言 用win下的VSCode远程连接linux服务器后 就可以用VSCode运行linux下代码了 在编译运行代码前 按照VSCode的要求 我们要给编译和执行操作分别配置一堆参数 这就是launch json和tasks json配置的
  • Android WebView加载优化,Android WebView 优化页面加载效果

    目前带有Web功能的APP越来越多 为了能够更好的使用WebView展示页面 可以考虑做相关的优化 WebView 缓存 资源文件本地存储 客户端UI优化 目前webapp越来越多 体验也越来越好 为了能够更好的使用WebView展示出流畅
  • 深入解析Spring使用枚举接收参数和返回值机制并提供自定义最佳实践

    Spring对应枚举传参 返回值默认是用字面量实现的 实际情况更复杂 而 阿里巴巴Java开发手册 规定接口返回值不可以使用枚举类型 包括含枚举类型的POJO对象 为此 本文探究了Spring内部对枚举参数的传递和处理机制 并提供了一套自定
  • JULES模型

    参考文献 1 2020 Calibrating soybean parameters in JULES 5 0 from the US Ne2 3 FLUXNET sites and the SoyFACE O 3 expe 流程 2 20
  • 排序算法详解

    概述 冒泡排序 应用1 把数组排成最小的数 应用2 移动零到数组末尾 排序算法是一类非常经典的算法 说来简单 说难也难 刚学编程时大家都爱用冒泡排序 随后接触到选择排序 插入排序等 历史上还有昙花一现的希尔排序 公司面试时也经常会问到快速排
  • 二维数组. 转置矩阵

    转自 二维数组 转置矩阵 知乎 二维数组 转置矩阵 Diamon 2 人赞同了该文章 867 转置矩阵 给你一个二维整数数组 matrix 返回 matrix 的 转置矩阵 矩阵的 转置 是指将矩阵的主对角线翻转 交换矩阵的行索引与列索引
  • 如何让“ChatGPT自己写出好的Prompt的“脚本在这里

    写个好的Prompt太费力了 在网上 你可能会看到很多人告诉你如何写Prompt 需要遵循各种规则 扮演不同的角色 任务明确 要求详细 还需要不断迭代优化 写一个出色的Prompt需要投入大量的时间和精力 甚至有一些公开的Prompt的开源
  • java前后端交互_Java之前后端数据交互

    1 前台发送数据到服务端 以及接受后台数据 前台发送数据到服务端 有两种方法 1 使用 表单发送同步请求 参数inputStr 参数intputInt 2 使用ajax发送异步请求 发送的数据为json对象 参数username 参数pas
  • 【报童模型】随机优化问题&&二次规划

    面对需求的不确定性 报童模型是做库存优化的常见模型 而标准报童模型假设价格是固定的 此时求解一个线性规划问题 可以得到最优订货量 这种模型存在局限性 因为现实世界中价格与需求存在一定的关系 本文假设需求q是价格p的线性函数 基于历史需求数据
  • 面试之你为什么从上家公司离职

    在上家公司 你为什么离职 请相信 百分之八十的面试官 要么是HR要么是技术负责人 或多或少都会问到的问题 如果问你这个问题 你该如何回答 举几个不太恰当的例子 大家尽量不要用下面的理由 我是感觉不太好 1 因为上家公司不能办公室谈恋爱 我就
  • centos7.0中搭建dhcp服务器

    一 dhcp 二 配置dhcp的方法 1 安装dhcp服务器 使用命令 vpm qa dhcp 查看一下dhcp有没有安装 如果没安装将不会有任何提示信息 如果安装好了 将会返回dhcp的版本号 可以看到我已经安装好了 在centos7的安
  • Swagger2介绍及使用

    项目中整合Swagger2 1 什么是swagger2 2 常用注解 3 项目中整合Swagger2 3 1 引入Swagger2依赖 3 2 编写swgger2配置类代码 3 3 在需要测试的模块中引入有swagger2的模块坐标 3 4
  • QT 智能提示设置

    关于QT的智能提示 有两点 一 默认只能在Ctrl Space或打 会自动转成 gt 的时候会出现 由于Ctrl Space默认在我电脑上是输入法的切换 所以一直以为没这个功能 敲代码时特别郁闷 于是在QT Creator中的Tool gt
  • 离散事件仿真原理DES

    参考 SYSTEM SIMULATION AND OPTIMIZATION 目录 1 系统仿真原理 1 1系统 模型和系统仿真 1 2系统仿真分类 1 2 1 蒙特卡洛仿真 Monte Carlo Simulation 1 2 2 离散系统