一、具体情境描述
患者到医院就诊,需要先挂号,再分流到对应的诊室就诊。在我们的模型中,有两种挂号方式:自助挂号机和人工窗口,以及两种诊室:内科和外科。患者根据不同的需求选择不同的挂号方式及诊室。
下边是我们模型搭建的最终效果展示:
图 1医院排队挂号整体框架
图 2 运行效果展示
图 3 3D效果图展示

二、模型搭建
2.1整体逻辑搭建:
基本逻辑框架如下,“面板”—“流程建模库”,选择相应模块。
图 4 基本逻辑框架

各模块的属性设置:
source:患者产生的条件。“定义到达通过”选择“速率”。

图 5 source属性设置
速率:每秒钟发生1个人;
间隔时间:每隔多长时间后会产生一个人;
数据库中的到达表:Anylogic自带的数据库;
速率/到达时间表:自定义时间、人数。eg:早上看病的人非常多,到了下午和晚上会比较少。具体操作:“流程建模库”-“时间表”,拖入一个“时间表”,并进行相应属性设置,然后将“source”的“到达通过”与该时间表关联即可。
图 6 速率、到达时间表具体操作方式
inject()函数调用:使用代码控制产生,没有代码则source没有人会产生。

selectOutput:分流。患者可能选择自助机器挂号(queue)或者人工窗口挂号(service)。
以指定概率:有百分之多少的概率会走第一/二条路;
如果条件为真:定义分流的条件。
这里我们使用指定概率,即有50%的人会选择到人工窗口挂号,50%的人选择自助挂号机挂号。
图 7 分流1
路径1
Queue:排队规则
Delay:延迟,即完成一次挂号所需要的时间。我们设置延迟时间为 triangular(0.5,1,1.5),即符合均值为1的三角分布,最多1.5s能完成挂号过程;
容量:1,即一个时间内只能处理1个人的挂号;
图 8 表示挂号过程的delay的设置
直至调用stopDelay含义为:只有发出调动命令时才会被调用,否则一直在队列中。

路径二
service:在这里表示人工窗口挂号。人工窗口挂号应该慢于自助机器挂号,所以将延迟时间设置为:triangular( 0.5, 1, 1.5 )*4。
自带queue和delay,但多了“资源集”概念。资源集:当调用service时,必须通过别的资源的辅助才能完成。Eg.仓储物流中,需要叉车将货运到货架上,即有叉车时才能完成该项服务,若没有叉车则等待。
图 9 人工窗口挂号的设置
在我们的情景中,通过service人工窗口挂号需要工作人员的辅助,所以还需要添加resourcePool。
“面板”–“流程建模库”—“resourcePool”。
图 10 建立resourcePool
定义容量:可自定义设置时间表或轮班,我们这里选择“直接”,容量选择3,即有3个人。然后将resourcePool关联到service中:点击service,选择资源集(替代)下的捕捉按钮,选择resourcepool,即可关联。
图 11 resourcePool关联到service

delay1:内科诊室。假设delay1为内科诊室,相对较慢,延迟时间设置为triangular( 0.5, 1, 1.5 )/分钟,容量设置为1,即每次只能处理一位患者。
图 12 delay1内科诊室设置
delay2:假设delay2为外科诊室,相对较慢,延迟时间设置为triangular( 0.5, 1, 1.5 )*2/分钟,容量设置为1,即每次只能处理一位患者。
图 13 delay2外科诊室设置
基本流程框架搭建完成。

2.2 可视化效果搭建
添加医院的布局、人的动画。
空间标记中的路径、点节点、矩形节点搭建图形,再使用面板-演示-文本,插入说明文本。
图 14 医院基本布局
人工挂号窗口中,矩形节点中的三个小符号是吸引子:如果不使用吸引子,人会乱跑。点击人工窗口挂号中的矩形节点,点击属性中的“吸引子”,在弹出的创建模式中选择“网格”,创建3X1为排列方式的吸引子。
图 15 吸引子设置

选择“面板”–“三维物体”–“超市”,拖入“自动柜员机”作为我们的挂号机器,选择“收银台”插入人工挂号窗口和内科、外科诊室中。
图 16 插入图形

可视化效果图与基本逻辑框架关联:queue与path(自助挂号机路径)相关联;delay与node(自助挂号机点节点)相关联;service与人工窗口的path1(路径)和node1(矩形节点)关联;queue1关联到内科path2,delay1关联到内科node2,queue2同理。
插入三维效果图
“面板”–“演示”–“三维窗口”
图 17 插入三维窗口
添加小人的形象:“Source”–“新智能体”–“创建自定义类型”,命名为“Person”。现在有“Main”和“Person”两个智能体。
图 18 新建Person智能体
对Person加一些参数,以区分不同的患者挂的是内科还是外科:“面板”–“智能体”,拖一个“parameter”进来,重命名为“type”。“type”等于1或2,1为内科,2为外科。
图 19 加入参数type

selectOutput1:分流。当智能体person的type为1时输出到queue1内科。图 20 挂完号的患者被分流到内科和外科
给智能体加入人的形象。“面板”–“三维物体”,选一个小人;添加文本标记,设置文本属性,文本:type的动态值。运行模型,检验是否type=1的人去了内科,type=2的人去了外科。
图 21 加小人

三、数据输出
在Person里添加两个参数:timeStart和timeStay。
source:离开时:agent.timeStart=time(),表示将离开source时的时间赋给timeStart;
sink,进入时:agent.timeStay=time()-agent.timeStart,将从进入到离开时的时间赋给timeStay。
输出excel:即在指定的excel表中能看到每个人的timeStay。
“工程”–右击文件夹–“打开”,打开我们模型存储位置所在的文件夹,新建excel表。
将excel关联到系统里:“面板”–“连接”–“Excel文件”,拖入一个excelFile,对excelFile属性进行设置,关联到刚才新建的excel表格。
添加一个函数row,类型为int,初始值为2.
设置sink,将数据输入到excel中。
agent.timeStay=time()-agent.timeStart;
excelFile.setCellValue(agent.type,1,row,1); 即将type值写入sheet1,第row行,第1列
excelFile.setCellValue(agent.timeStay,1,row,2); 将typeStay值写入sheet1,第row行,第2列
row++ 每写入一行后自动换行输入,这一行最后不加 ;
运行(运行前需先将要导入数据的excel关掉,否则无法运行)。Excel效果如图:

Anylogic模型搭建01:医院排队挂号模拟试验相关推荐

  1. ssm基于小程序的医院预约挂号系统毕业设计源码260839

    SSM医院预约挂号小程序的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以 ...

  2. UML——医院预约挂号系统(业务模型)

    UML--医院预约挂号系统(业务模型) 业务对象模型 业务用例模型 用例活动图 系统用例图 简单的小用例文档 用例名 选择预约信息 简要描述 注册用户通过该用例进行医院预约挂号 参与者 注册用户 涉众 ...

  3. 基于JAVA医院预约挂号系统设计与实现 开题报告

      本科生毕业论文 基于Java医院预约挂号系统springboot框架 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业 ...

  4. JAVA医院预约挂号系统毕业设计 开题报告

    本文给出的java毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的医院预约挂号系统,整个网站项目使用了B ...

  5. 【计算机毕业设计】医院预约挂号系统

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医院预约挂号系统当然也不能排除在外.医院预约 ...

  6. spring boot医院门诊挂号系统 毕业设计-附源码033123

    目  录 摘要 1 1 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2医院门诊挂号系统系统分析 3 2.1 可行性分析 3 2. ...

  7. (附源码)springboot 医院门诊挂号系统 毕业设计033123

    目  录 摘要 1 绪论 1.1研究背景及意义 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2医院门诊挂号系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据 ...

  8. (附源码)spring boot医院门诊挂号系统 毕业设计 033123

    目  录 摘要 1 绪论 1.1研究背景及意义 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2医院门诊挂号系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据 ...

  9. Java语言程序设计 :医院简易挂号管理系统 Java实验

    Java语言程序设计 :医院简易挂号管理系统 Java实验 1.课程设计目的 医院预约挂号管理系统是每一个医疗机构管理平常挂号业务流程不可或缺的一个管理信息系统,它的存在解决了病人挂号难.看病难等问题 ...

  10. python利器app怎么查文献-科研人必备:一个工具搞定文献查阅、数据分析、模型搭建...

    原标题:科研人必备:一个工具搞定文献查阅.数据分析.模型搭建 写论文有多难?这首诗形容得好: 进入学校先选题,踌躇满志万人敌:发现前辈都做过,满脸懵逼加惊奇. 终于找到大空白,我真是个小天才:左试右试 ...

最新文章

  1. commons-pool2-2.3 jar包_Java Jar包压缩、解压使用指南
  2. 2021年南通各高中高考成绩查询,2021年南通所有高中排名一览表
  3. 【项目实战】:Python 商铺地址分布数据分析
  4. qt 怎么设计个性化的滑块_小小滑块大大学问,你真的会用滑块了吗?
  5. HDU - 1002 A + B Problem II(大数)
  6. 单片机C语言中空语句,单片机C语言中的空语句.doc
  7. Maven详解(转)
  8. 漫步凸分析五——函数运算
  9. 记录MS SQL Server数据库
  10. always中的敏感变量
  11. 数据包接收系列 — 上半部实现(网卡驱动)
  12. 漫谈《大型网站技术架构》
  13. Android 视频缩放/放大
  14. 二项分布的期望方差证明_二项分布与负二项分布的均值与方差推导
  15. html css屏蔽右键,css右键菜单.html
  16. windows10怎么显示文件后缀(扩展名)?
  17. 用代码实现windows10下的虚拟桌面创建功能
  18. 一键steam挂卡linux,steam游戏挂卡工具(ArchiSteamFarm)
  19. Pandas学习——分组
  20. python爬今日头条组图_python 爬虫抓取今日头条街拍图片

热门文章

  1. python关于sjis编码的错误
  2. opencv学习笔记四十三:CamShift目标跟踪
  3. pdf论文中查看使用的字体
  4. opencv 指定分辨率_更改OpenCV视频文件的分辨率
  5. cmder的下载和使用
  6. 基于微信小程序的学生健康管理系统
  7. 锂离子电池容量计量之库仑计法
  8. 欺骗的艺术——第一部分
  9. 基于J2EE的门诊挂号收费系统设计与实现.rar(毕业论文+程序源码+数据库文件)
  10. 美赛论文格式基本要求