仿真引擎-文献总结笔记一

2023-11-03

  • 文章题目
    A Simulation Engine for Stochastic Timed Petri Nets and Application to Emergency Healthcare Systems

  • 文章结构

      第二节介绍了随机时间Petri网及其激发策略,特别是多重使能性。

      第三部分讨论了所提出的仿真引擎,包括其架构和算法。

      第四部分介绍了一个应用模拟工具在一个紧急医疗系统资源需求分析的案例研究。

      最后一部分对全文进行总结。

  • 常规Petri网的建模能力

1.顺序执行
在这里插入图片描述
      事件序列可以用如图1所示的Petri网结构建模,其中转换用步长顺序连接到彼此。当位置p1获得一个令牌时,三个转换将从转换t1开始一个接一个地触发。

2.并发执行
在这里插入图片描述

      在图2中,t1、t2、t3是三个平行跃迁。t0触发后,p0中的一个令牌被删除,p1、p2、p3各添加一个令牌,因此所有t1、t2、t3都被启用并可以独立触发。

3.竞争
在这里插入图片描述

      在图3中,所有的t1、t2和t3都被启用。然而,它们在p0中竞争同一个资源(token)。当一个过渡启动时,其他两个过渡将被禁用。不过每个过渡都可以被选择启动,这就是Petri网的可解性。当过渡与随机发射时间相关联时,以最小发射时间采样的过渡将被选择发射。

4.同步
在这里插入图片描述

      图4中,t3模型同步。只有当p3和p4至少有一个令牌时,才启用T3。

  • 多启用和多服务器

      在单服务器的情况下,每个转换只能有一个实例,因此它一次只能执行一个操作。图5说明了单服务器处理三个输入的情况。p1中有三个令牌。假设t1是单个服务器。然后t1需要发射三次,每次都需要指定的发射时间才能完成。也就是说,如果触发时间是一个固定值,比如3个时间单元,并且转换在时间0开始触发,那么第一个标记在3个时间单元内从p1移动到p2。第二个令牌和第三个令牌分别在6个时间单位和9个时间单位内移动到p2。
在这里插入图片描述
      在多服务器的情况下,每个转换代表k个服务器,因此它可以一次执行k个操作。例如,假设图6中的过渡t1是一个三重服务器,并且在初始标记的时间为0时p1中有三个令牌。T1可以同时发射并消耗这三个令牌。也就是说,所有这三个令牌都将以三个时间单位从p1移动到p2。这里的三重服务器转换相当于三个单服务器转换。
在这里插入图片描述

  • 仿真引擎

1.仿真引擎架构
在这里插入图片描述
      1)模拟引擎。该系统是一个基于随机时间Petri网的状态转换系统,支持非马尔可夫状态转换触发时间、race和preselection状态转换触发策略以及单服务器和多服务器状态转换。

      2)STPN编辑器。它是一种图形化的工具,供用户构建STPN模型。

      3)一个STPN银行。它以JSON文件格式存储使用该工具构建的所有STPN模型。

      4)资源配置器。它手动或自动地指定和调整由STPN建模的服务系统的资源分配。

      5)算法。它为仿真引擎提供了不同的算法。每种算法代表一种仿真策略。目前有单服务器和多服务器两种情况。

      6)事件数据。它存储事件名称和所有时间参数。事件数据可以独立于STPN结构进行编辑。

      7)结果。模拟结果存储在MS Excel电子表格中。

2.类图

      多服务器STPN模型仿真引擎的总体设计如图8中的类图所示。下面解释了10个主要的类及其功能。
在这里插入图片描述
      PNModel类用于导入STPN模型的外部文件,并将模型存储在内部数据结构中。

      PNElement类定义了Petri网模型中的元素。Arc、Place和Transition继承自PNElement类的公共属性和方法。在Arc类中,我们定义了两种类型的圆弧,一种是从位置到转换,另一种是从转换到位置。在Transition类中,我们为每个转换定义一个优先级队列,以节省其实例的触发时间。在Place类中,我们为每个位置设置了标记的数量。

      ResourceMgr类指定资源类型和资源数量。

      RandomNumGenerator类从不同的随机分布中生成随机数。对于指数分布,我们只需要平均时间就可以得到一个随机数。对于均匀分布,我们需要两个数字分别定义最小值和最大值r。

      TranFiringTimeMgr管理每个转换的优先级队列中的转换触发时间。

      Petrinet类用于计算Simulation类的可触发转换列表。在Petrinet类中,我们定义了一个全局数组列表来保存可触发的转换并在Simulation类中更新它们。

      Simulation类管理STPN模型的操作,并保存仿真结果。

3.实现多服务器

      像在任何典型的离散事件模拟系统中一样,我们在我们的工具中使用一个全局时钟来记录时间。时钟时间随模拟步骤的增加而增加。仿真步长可以是固定的也可以是动态的。在固定步长情况下,步长设置为1。在动态步长情况下,步长由当前时钟时间和下一个过渡的绝对触发时间之间的差距决定。我们实现了两种选择。

      当启用转换时,从其分布函数中采样转换触发时间。如果它是一个单一的服务器,那么在模拟的每一步,全局时钟增加和过渡的持续发射时间减少的模拟步骤的长度。当触发时间减少到0时,将触发转换并更改令牌分布。当然,并不是所有启用的转换都会触发。如果已启用的转换在其触发时间减少到0之前被禁用,则该转换无法触发。这是由竞赛点火政策决定的。如果在转换触发之前,更多的令牌到达其输入位置,这些令牌足够使转换启用两倍或三倍,那么转换的触发行为将不会发生改变。在发射过渡器之后,它将在新的标记处重新采样。

      如果新启用的转换是一个多服务器的转换,我们将遵循以下三个步骤来处理它的触发:

      阶段1:在启用转换时,将令牌从传入的位置删除。对转换触发时间进行采样并插入到队列中。

      阶段2:当全局时钟滴答作响时,发射时间减少,直到它下降到0,

      阶段3:将令牌添加到输出位置。

      如果在阶段1之后和阶段3之前,再次启用转换,我们将遵循相同的三相过程来处理新实例。也就是说,我们将维护一个队列,用于存储每个多服务器转换实例的剩余触发时间。

4.绩效评估
在这里插入图片描述
在这里插入图片描述

      图9显示了典型服务系统的外部视图。过渡A是一个源过渡,它模拟客户的到来,或者一般来说,服务请求。在i处的标记代表一个客户。请注意,A和i构成一个自循环,模拟客户的连续到达。汇聚位置o的代币数量计算了系统所服务的顾客数量。图10模拟了系统的单次执行。D1, D2, …, Dk是水槽转换,它们模拟客户离开服务系统的不同方式。STPN盒子模拟了服务工作流程。为了验证正确性(没有死锁,没有悬空过渡等),我们可以在图10的模型中添加一个过渡,并将o连接到它作为输入,同时将i连接到它作为输出,然后检查新的STPN是否处理所有我们想要的属性。

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

仿真引擎-文献总结笔记一 的相关文章

  • STM32 软件仿真失败 ***** error 65: access violation at 0x40021000 : no ****'read' permission******

    在使用STM32进行软件仿真时 可能会遇到很多问题 最常见的当然如标题所示 STM32 软件仿真失败 no read permission 还有其他很多问题比如 error 35 undefined line number BS Templ
  • Cadence新建仿真文件出现Cannot Initialize Profile错误的解决方法和步骤

    元器件和器件PSpice模型都准备好了 仿真原理图也画好了 但是在新建仿真配置文件的时候 提示Cannot Initialize Profile的错误 当时忘了截图了 问题解决了也没有出现这个错误 重启软件 重启电脑都没有再出现 因为之前都
  • keil5仿真错误:Encountered an improper argument 原因及解决办法

    报错如图 现象 仿真结束 退出仿真时报错 无法正常关闭keil软件 只能通过任务管理器强制结束进程关闭 解决办法 清除所有断点再关闭
  • Verdi 之配置及波形打开

    目录 写在前边 1 verdi的配置 2 波形的产生及打开 写在前边 本部分内容主要对Verdi的学习进行总结 大概分三篇文章进行叙述 1 verdi的配置 1 首先打开 bashrc文件进行环境配置 2 Verdi 配置如下 verdi
  • 自动驾驶仿真平台Carla从入门到放弃

    一 Carla的基本概念 人工智能 5G和V2X技术的不断发展使得自动驾驶成为可能 近几年 自动驾驶发展迅速 在科技新闻上经常可以看到自动驾驶的身影 而从事自动驾驶相关软 硬件研究的高效研究所和公司也越来越多 既有传统的汽车巨头 也有新兴的
  • 使用SimPY进行离散事件仿真

    使用SimPY进行离散事件仿真 SimPY是一个Python下的第三方库 可以方便的进行离散事件的仿真 仿真速度比较快 下面记录一下我的一点心得 不保证完全正确 供参考 安装 pip install U simpy 学习资源 可爱的PYTH
  • 【设计】低压差稳压器(LDO)的设计分析

    本简短教程介绍了一些常用的LDO 相关术语 以及一些基本概念 如压差 裕量电压 静态电流 接地电流 关断电流 效率 直流输入电压和负载调整率 输入电压和负载瞬态响应 电源抑制比 PSRR 输出噪声和精度 同时 为了方便理解 文中采用了示例和
  • Python探索Raspberry Pi机器人平台

    随机轨迹 第一代机器人吸尘器在一个无限循环中使用了一种非常简单的算法 直行直到撞到障碍物 转一个随机角度 如果您担心这种行为的清洁质量 那可能是对的 但是从数学角度来看 如果给定无限的时间 只要机器人可以物理上到达 该算法将覆盖整个清洁区域
  • 仿真引擎-文献总结笔记一

    文章题目 A Simulation Engine for Stochastic Timed Petri Nets and Application to Emergency Healthcare Systems 文章结构 第二节介绍了随机时间
  • ModbusSlave安装及使用指南正式版带序列码

    ModbusSlave是一个从站设备仿真软件 它用于接收主设备的命令包 并回送数据包 可用于测试和调试Modbus主站设备 便于观察Modbus通信过程中的各种报文 ModbusSlave支持ModbusRTU ASCII TCP IP等协
  • 国产CAE的涅槃-岩土行业高性能离散元软件MatDEM

    作者 刘春博士 一 导读 2019年9月11日 ANSYS公司公开宣称 收购LSTC公司 一举获得其旗下拥有LS DYNA 结构 流体 电磁的多物理场求解器 LS PrePost 前后处理器 LS OPT LS TASC 参数优化 拓扑优化
  • VCS基本选项命令介绍

    一 如何执行 编译执行 1 编译链接生成二进制可执行文件 vcs source file compile time options 例如 vcs v2k filename v debug all 2k指2001版本 compile time
  • 仿真4. 仿真平台架构设计

    背景 1 业务背景 我司对仿真系统的需求日渐增加 比如道路交通的仿真 船舶港口仿真 车联网 ad hoc 仿真 以及运营商承载网的仿真等 2 回顾 什么是仿真时钟 用于描述仿真时间的变化 在连续系统中 仿真时间的变化基于仿真时钟步长的确定
  • 电磁仿真:十年磨一剑!基于HFSS、ADS微带滤波器仿真与设计

    作者 stone 仿真秀平台作者 CAE工程师如何提高仿真实力 冲击高薪 戳此了解详情 导读 自毕业至今 从事微波射频相关工作已经十年了 回想这个行业的点点滴滴 有一些个人的学习心得体会和大家分享一下 实践是检验真理的唯一标准 这句话一直伴
  • 1_simulink简单入门_simulink仿真PID控制

    1 simulink简单入门 simulink仿真PID控制 2 simulink搭建RCL 电阻电感电容模块 毕业前想去做物联网还是或者linux 结果玩了一年多的电机控制 早就深知matlab simulink绕不过的 拖到现在 下班晚
  • Netlist与RTL仿真结果不匹配

    Netlist 仿真和RTL比匹配主要是因为Netlist会存在不定态以及传播不定态 导致仿真不正确 不定态的来源 大多数设计在上电时不能保证cell的特定的逻辑状态 flip flop或memory根据环境因素 芯片间的工艺差异等可能会有
  • 工业软件系列之仿真篇:正向研发的加速器

    已剪辑自 https mp weixin qq com s 0VVwg08JH PZhKpvcoRYTA 仿真是通过模型来模拟现实系统中发生的过程 其本质是将物理化学公式模型进行代码化表示 并借助计算机实现计算求解 仿真在离散制造和流程制造
  • python离散事件仿真库SimPy官方教程

    参考 SimPy Discrete event simulation for Python 建议先简单了解仿真原理 离散事件仿真原理DES 简单介绍 simpy的实现关键在于生成器的使用 通过例子说明一下 生成器function use y
  • Sigrity高速信号仿真之直流压降仿真

    1 简介 本文主要介绍直流压降仿真分析 电源直流压降的仿真 又称电源直流跌落仿真 DC IR Drop 或IR Drop HyperLynx软件中集成了电源完整性电源电压跌落仿真功能 DC Drop Simulation PowerScop
  • 在multisim14上完成数码管的显示(0-9)

    提前说说 前几天给西电的同学做了一个小的线上课程设计 用到数码管 没想到我们课程设计也是关于数码管 所以在这总结一下如何仿真实现数码管 目标 完成一个数码管的显示 从0 9分别显示 一 首先 确定使用的是共阴极数码管 在元器库中找到 二 接

随机推荐

  • Python 3.11.3在Windows 11下的简易安装教程

    撰写时间 2023年4月6日 本文目的 帮助电脑小白快速安装最新版本的Python 并通过控制台输出第一个Python语句 Hello World 前言 Python是一种高级编程语言 具有简单易学 代码简洁 功能强大 可移植性佳等特点 由
  • 《30天自制操作系统》harib09c的编译和调试

    今天是 30天自制操作系统 学习的第12天 今天的工程目录是harib09c 我起的目录名称是day12 boyC 我们一起来调试一下 在day12 boyC目录下直接运行make命令就开始编译了 如下图所示 编译的结果如下 部分截取 E
  • Java Interface

    Java接口中的成员变量的修饰符都是 public的 static的 final 的 类这么写错的 一个类不能既是final 又是abstract的 因为abstract 因为类被继承使用 而 final却不允许类被继承 这是自相矛盾的 p
  • 从零开始学WEB前端——VUE脚手架

    项目介绍 先做个自我介绍 本人是一个没人写前端所以就自学前端的后端程序员 在此项目中我会和大家一起从零基础开始学习前端 从后端程序员的视角来看前端 受限于作者的水平本项目暂时只会更新到前端框架VUE 不会涉及node js 该项目适合零基础
  • Nginx安装、配置

    一 Nginx概述 特点 Nginx engine x 是一个轻量级的 高性能的 基于Http的 反向代理服务器 静态web服务器 具有以下特点 1 高并发 一个Nginx服务器在不做任何配置的情况下并发量可达1000左右 在硬件条件允许的
  • unity hub突然打不开,解决记录

    1 情况 管理员身份运行无效 从unity cn下载安装无效 从unity com下载安装无效 2 失败原因 安装的时候一直用的之前的安装路径 始终打不开 3 解决 换了新的安装路径 成功解决
  • 开源进展|WeCross v1.3.0发布,支持适配FISCO BCOS v3.0

    WeCross是微众银行自主研发并完全开源的区块链跨链协作平台 致力于促进跨行业 机构和地域的跨区块链信任传递和商业合作 有助于实现异构区块链系统之间安全可信的互操作 WeCross v1 2 0自发布以来 得到了众多社区伙伴的支持和反馈
  • BlogTest1

    常见数据结构题 SparseArray SparseBooleanArray HashMap
  • 安防监控视频云存储平台EasyNVR出现内核报错的情况该如何解决?

    安防视频监控汇聚EasyNVR视频集中存储平台 是基于RTSP Onvif协议的安防视频平台 可支持将接入的视频流进行全平台 全终端分发 分发的视频流包括RTSP RTMP HTTP FLV WS FLV HLS WebRTC等格式 近期有
  • 【全教程】Pycharm运行深度强化学习代码(pytho与matlab混编)

    记录自己运行的第一个深度强化学习项目的全过程 配置环境花了4h 代码终于跑起来啦 配置环境 下面是具体的配置流程 首先报的第一个错误是 ModuleNotFoundError No module named matlab engine ma
  • Arduino和LabVIEW射频灾害紧急报警系统

    该项目将在发生灾难时生成紧急警报 该系统分为两部分 传感器节点和 2 服务器 连接该开关阵列以在处理端生成紧急信号 然后将其发送到传感器节点 图1给出了系统框图 物料清单 接线 原理图 代码 传感器节点端代码 处理端代码 仿真模型 LabV
  • 【实验五】【创建视图并通过视图操作表数据】

    文章目录 视图 原表 一 创建视图 二 插入数据 三 更新数据 四 删除数据 Reference 视图 简介 视图可以看作定义在SQL Server上的虚拟表 视图正如其名字的含义一样 是另一种查看数据的入口 常规视图本身并不存储实际的数据
  • 渗透第一步之DNS信息收集技巧。

    正向查询 首先 最简单最快速的是 使用ping命令输入域名来获取其ip地址 或者 使用nslookup命令来指定域名获取ip地址 Server 192 168 90 83 DNS服务器 Address 192 168 90 83 我们解析到
  • Redis实现用户签到

    目录 一 BitMap用法 1 介绍 2 用法 3 练习 二 签到功能 1 需求 2 代码实现 三 签到统计 1 分析 2 接口实现 一 BitMap用法 1 介绍 我们完全可以通过数据库签到表来实现签到功能 但是假如我们的用户达到千万 每
  • 关于VS2019出现“const char *“ 类型的实参与 “char *“ 类型的形参不兼容错误的解决方法

    解决办法 法1 在VS2019中依次点击项目 gt 属性 gt C C gt 语言 gt 符合模式 将原来的 是 改为 否 即可 法2 这种问题也有可能是因为局部变量没有进行初始化内存 也就是new和delete操作符的运用 include
  • 算法通关村-----链表中环的问题

    环形链表 问题描述 给你一个链表的头节点 head 判断链表中是否有环 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置 索
  • 关于UTF-8、GBK编码以及编译时charset的指定的一些总结

    首先分清两个概念 C文件中 转换为16进制 汉字的编码 编译后bin文件中汉字的编码 gcc的 finput charset 和 fexec charset 两个选项的存在就是为了实现这两者的转换 1 默认情况下 gcc使用UTF 8 ch
  • OpenGL设计房间 (虚拟现实大作业)

    嘿嘿 课内虚拟现实课程的大作业 做了一个基于opengl房间 参考网上的一些资料 再进行一些扩充 还有一个unity3d的大作业将在之后上传 项目说明 本项目基于OpenGL实现 编辑器VS 使用gl glut h库 实现up键前进 dow
  • 【Spring】spring.main.allow-bean-definition-overriding,允许Bean覆盖

    1 概述 今天在运行我们主版本的主类 想启动任务 然后报错spring main allow bean definition overriding 然后我就查了一下这个是为什么 spring main allow bean definiti
  • 仿真引擎-文献总结笔记一

    文章题目 A Simulation Engine for Stochastic Timed Petri Nets and Application to Emergency Healthcare Systems 文章结构 第二节介绍了随机时间