Arena仿真-基于超市排队的建模分析

2023-11-01

Arena仿真作业

一、问题介绍

​ 位于沈阳的某大学的超市在晚上5点到7点处于高峰期,一些同学会来超市购买日用品,也有一些学生去自助贩卖机购买热咖啡或饮料,而该超市的关东煮比较火爆,关东煮需要煮一段时间才能食用,因此关东煮队伍总是比较长,在选择了商品后,在结算柜台统一结算,这两个柜台距离较近(因为方便学生出门就直接将食物带走了)。

1.1 模型假设

  • 人物假设
  1. 员工在该工作时间内一直工作
  2. 每名员工只为一名同学服务
  3. 同学进入超市分为两种情况,一人和两人一起进入超市,设置Batch_Size来处理这两种情况。
  4. 每名同学进入超市都会进行消费
  5. 顾客完成后自动离开系统
  • 时间假设
  1. 关东煮和结算柜台相邻,忽略关东煮柜台到缴费柜台的时间
  2. 自助柜台较多,且购买热咖啡时间很短,故不会出现排队现象

1.2 优化目标

  • 同学在缴费时的排队时间
  • 同学在关东煮的排队时间
  • 不同工作人员的利用情况(关东煮工作人员和收银员)

1.3 约束条件

  • 价格成本,我们希望尽可能少的工作人员来保证相对的人员利用率

二、模块设计

2.1 Create模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其中,student arrival分布为正太分布,而Batch_Size为泊松分布,其图像为

x1=0:1:50
x2=0:1:50
p1=poisspdf(x1,0.75)
p2=poisspdf(x2,1)
plot(x1,p1,'r')
hold on 
plot(x2,p2,'b')
legend('1','2')

在这里插入图片描述

2.2 Decide模块

在这里插入图片描述

其中,它们的选择概率分别设置为 79 % 79\% 79% 35 % 35\% 35% 10 % 10\% 10%

在这里插入图片描述

2.3 Assign模块

  • 购买日用品

假设服从(4,16,24)的三角分布,并且乘以系数Batch_Size

在这里插入图片描述

  • 购买咖啡

假设服从二项分布,而二项分布又可以近似成Beta分布(2 + 3 * BETA(0.532, 0.513)),并且乘以系数Batch_Size

在这里插入图片描述

  • 购买关东煮

假设服从(4,6,9)的三角分布,并且乘以系数Batch_Size

在这里插入图片描述

2.4 Process模块

前三种Process类型均为Delay,在分配后进行延时也就表示用了多少时间,而最后一种类型为Value Added,其表达式为1.24 + 2.07 * BETA(1.29, 1.05),以便于可以累加它处理实体的各种成本或时间等。

  • 购买日用品

在这里插入图片描述

  • 购买咖啡

在这里插入图片描述

  • 购买关东煮

在这里插入图片描述

  • 收银台
    在这里插入图片描述

2.5 Dispose模块

该模块为终点,起名字为Exit表示同学离开超市。

在这里插入图片描述

2.6 Entity

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7510x03-1610700483694)(C:\Users\孙昊一\OneDrive\随堂笔记\仿真系统\Arena仿真作业.assets\image-20210102172244605.png)]

2.7 Resource

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhv0QirM-1610700483699)(C:\Users\孙昊一\OneDrive\随堂笔记\仿真系统\Arena仿真作业.assets\image-20210102172316893.png)]

2.8 Variable

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6wfTOZAT-1610700483703)(C:\Users\孙昊一\OneDrive\随堂笔记\仿真系统\Arena仿真作业.assets\image-20210102172333409.png)]

2.9 Queue

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1uCQG1IF-1610700483707)(C:\Users\孙昊一\OneDrive\随堂笔记\仿真系统\Arena仿真作业.assets\image-20210102172355693.png)]

2.10 整体设计

在这里插入图片描述

三、仿真结果分析

我们设置Replication为10次,每天运行的时长为 2 2 2小时。

3.1 初始情况

首先查看一下Entity,我们可以看到学生进入整个流程需要约20分钟的时间,而大部分(17分钟)都用来了排队。

然后分析Resource后可以得到这样一个信息,制作关东煮的里利用率仅有 18 % 18\% 18%,利用率较低。

而查看Queue也印证了这一结论,在收银台要等待约2分钟,而关东煮平均几乎不需要等待时间(下图分别为Republication 1Republication 10的结果)

在这里插入图片描述

因此我们考虑一种改进方法,可不可以让关东煮的服务人员在不忙的时候来帮忙结算呢?(在假设中关东煮和结算位置相邻)

如果想提高利用率,如何设置关东煮服务人员的人数和收银员的人数呢?

3.2 改进方法–一个服务员干两种任务

首先考虑一个最基本的情况,这一个关东煮的服务人员在不忙的时候来帮忙结算如图所示。

在这里插入图片描述

那么运行后查看一下结果,首先查看一下Entity,我们可以看到学生进入整个流程需要约21分钟的时间,很显然,做关东煮的服务员在不忙的时候去干收银员的活了,学生等待时间就长了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y3CKaRot-1610700483714)(C:\Users\孙昊一\OneDrive\随堂笔记\仿真系统\Arena仿真作业.assets\image-20210102184536323.png)]

然后分析Resource后可以得到这样一个信息,由于让这个关东煮人员多干活,制作关东煮服务员的里利用率有 82 % 82\% 82%,远超过之前 18 % 18\% 18%

这说明了什么呢?让这个关东煮人员忙起来了,老板让员工多干活,实际上并没有带来更好的顾客体验。因此我们换一种思路去继续优化这个问题。

  • 增加收银员和服务员的人数

那么我们尝试一下增加它们的人数,将收银员的人数范围设置为 [ 1 , 5 ] [1,5] [1,5],且服务员的人数设为 [ 1 , 2 ] [1,2] [1,2],目标函数仍为服务员的利用率,可以看出来一个服务员利用率就已经达到 82 % 82\% 82%,而显然减少收银员的人数会让更多的服务员空闲时候过来帮忙干活,因此利用率会显著降低。

在这里插入图片描述

如果我们换一种优化函数呢,将目标函数设置为关东煮和收银台排队的平均排队人数进行优化。可以看出来考虑到价格最少的情况,雇佣两个收银员和两个服务员就可以实现让平均排队人数为 2 2 2左右,这样顾客的体验比较好。

在这里插入图片描述

3.3 改进方法–直接优化服务员和收银员的人数

直接雇佣更多的人而不是调用人员,会优化的更好,目标函数仍为关东煮和收银的平均等待人数。
在这里插入图片描述

在这里插入图片描述

可以看到,在设置4个收银员,2个服务人员时候的平均等待人数之和非常的小,远小于1个人。

而实际上还应该加一点点限制,即考虑成本因素

那我们在优化函数里做一点限制,从经验上来看,关东煮不需要太多技术,且空闲时间比较多,因此我们给它的工资低一些,而收银员比较忙,我们给的工资高一些,转换为权重系数后分别为0.2和0.8。我们可以看到此时设置2个收银员,2个服务人员时候效果较好。

此时的目标函数为 N u m 平 均 关 东 煮 排 队 人 数 + N u m 平 均 收 银 台 排 队 人 数 + 0.8 ∗ N u m 收 银 员 + 0.2 ∗ N u m 服 务 员 Num_{平均关东煮排队人数}+Num_{平均收银台排队人数}+0.8*Num{收银员}+0.2*Num{服务员} Num+Num+0.8Num+0.2Num

在这里插入图片描述

那么按照此设置运行后查看相关指标如下,学生的总时间由原来的 21 s 21s 21s平均减少到了 17 s 17s 17s,且结账排队时间也从原来的 2 m i n 2min 2min减少到 1.37 m i n 1.37min 1.37min,且结账的平均等待人数已经由 1.32 1.32 1.32减少至 0.39 0.39 0.39。尽管关东煮的平均等待人数从 0.39 0.39 0.39增加到了 1.95 1.95 1.95,但从某种角度说是一件好事,排队的人不多不少在 2 2 2人左右可以吸引更多的学生来围观排队,从而让销量更多一些。

在这里插入图片描述

这样的限制设计不太合理,经过查阅后可以在Constrain处加约束条件。假设收银员的工资为2000元,服务员的工资为1500元,超市老板希望一个月最多花费7000元在雇佣员工上,为了使得客户的总等待时间最少,应该如何雇佣呢?
在这里插入图片描述

在这里插入图片描述

这样设计后清晰合理,可以看到设置2个收银员,2个服务人员时候效果较好,平均总等待人数为1人,客户体验非常好。

四、总结

本次作业搭建了超市中的排队模型,学生在超市中有三种行为,分为购买日用品、自助贩卖机、关东煮,而排队时间主要集中在等待关东煮和最后结账的过程,针对过程过长的问题,采取两种思路进行优化,分别为

  • 方案一:服务员在空闲时帮忙结账提高服务员的利用率
  • 方案二:增加服务员和收银员的人数来减少平均等待人数

最终发现,方案一可以提高服务员的利用率,让服务员忙起来,但并不能减少平均等待时间,而方案二可以适当增加关东煮的人数,在控制成本的情况下,显著减少了收银员的排队时间,尽管关东煮的排队人数适当增加,这会吸引更多的学生来排队,从某种角度上说也带来了一定的经济效益,此外,校园同学的购物体验好,也会吸引更多的同学来超市购买,而不是选择网购等待很久或者去外面购买日用品等,因此最终采用改进的方案二作为最终方案,此时雇佣2个收银员和2个服务人员

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

Arena仿真-基于超市排队的建模分析 的相关文章

  • C# 系统应用之清除Cookies、IE临时文件、历史记录

    本文主要是项目 个人电脑使用记录清除软件 系类文章中关于清除浏览器Cookies IE临时文件 最近使用历史记录等内容 该篇文章的基本思想路线是首先了解上网历史记录的Windows中常用文件路径 再通过文件delete方法删除该文件下内容
  • leetcode86 分割链表

    题目 给你一个链表的头节点 head 和一个特定值 x 请你对链表进行分隔 使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前 你应当 保留 两个分区中每个节点的初始相对位置 示例 输入 head 1 4 3 2 5 2 x 3
  • LeetCode-216-组合总和Ⅱ

    题目链接 LeetCode 216 组合总和 解题思路 回溯算法 注意事项注释中有 代码实现 class Solution 和为 n 个数为 k 求的是组合 不要求顺序 递归的深度是 k public List
  • 2019.9.4 key-value stores 和 timestamps

    这一章先是将key value stores 其实这个就是对应的关系型数据库的以schema为基础的存储原理 一般的nosql就是用的这种 特点就是没有什么明显的schema 除了key以外就是一大坨的value 不需要有什么整齐的格式 讲
  • Leetcode刷题笔记:二叉树篇(下)

    1 Leetcode 110 平衡二叉树 难度 递归 迭代 给定一个二叉树 判断它是否是高度平衡的二叉树 本题中 一棵高度平衡二叉树定义为 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1 示例 1 给定二叉树 3 9 20 nu
  • Java类文件结构、Java类加载过程、类加载器(双亲委派模型)、Java对象实例化过程

    1 类文件结构 根据 Java 虚拟机规范 类文件由单个 ClassFile 结构组成 ClassFile u4 magic Class 文件的标志 u2 minor version Class 的小版本号 u2 major version
  • 【银河麒麟V10】【服务器】系统负载分析

    一 cpu负载 1 CPU基本概念 1 1 什么是物理cpu个数 物理cpu个数即主板上实际能够看到的cpu个数 也是cpu插槽数 1 2 什么是cpu核数 cpu核数指的是物理cpu个数 每个物理cpu的核心数 因为每个物理cpu可能包含
  • 深度学习笔记(八):目标检测性能评价指标(mAP、IOU..)

    一 mAP 这里首先介绍几个常见的模型评价术语 现在假设我们的分类目标只有两类 计为正例 positive 和负例 negtive 分别是 1 True positives TP 被正确地划分为正例的个数 即实际为正例且被分类器划分为正例的
  • iptables 规则管理

    参考 http www zsythink net archives 1517 有两台测试机 zk02 192 168 27 152 zk03 192 168 27 153 目录 1 增加规则 2 追加规则 1 增加规则 首先看一条命令 表示
  • C/C++

    文章目录 2 3 C语言内存空间的使用 数组 数组的定义及初始化 数组空间的初始化 空间的第一次赋值 和逐一赋值是一样的 代表空间的限制块 char strcpy 工程禁用 strncpy 推荐 非字符串空间 memcpy 指针与数组 指针
  • Genlovy_Hoo大神的杰作

    转 支持向量机学习笔记 支持向量机学习笔记 呕心沥血整理的SVM学习笔记 完整总结了SVM的思想和整个求解过程 里面有诸多本人在学习过程中的想法 希望对初学者有帮助 pdf下载地址 http download csdn net detail
  • 十大经典排序算法动画与解析

    排序算法是 数据结构与算法 中最基本的算法之一 排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 常见的内部排序算法有 插入排序 希尔
  • MFC常见问题以及解决方法_MFC下文本编辑框按下回车后窗口退出

    这里主要介绍遇到这种方法的解决方案 解决方法可能有多种 但这里只给出有效的一种 这里不会详细说明出现问题的原因以及为什么这样解决 想了解更多可以百度 写这个主要是防止以后忘记 做个简单的笔记 问题 MFC对话框程序 文本编辑框 Edit C
  • 学透JavaScript 你真的懂 Array 吗?

    前言 科普 JavaScript 揭开 JavaScript 神秘面纱 直击 JavaScript 灵魂 此系列文章适合任何人阅读 本文章内容为 标准化数组 数组与数组容器 ECMAScript 规范中 Array API 讲解 如果你想用
  • 【图像处理算法常用数据集】整理第一弹

    目录 一 通用 二 自己整理的一些数据集 Berkeley Segmentation Dataset BSDS Set14 Urban 100 Kodak dataset CBSD68 DIV2K 一 通用 可以在一些学术搜索引擎上查找关于
  • xctf-supersqli

    题目链接 1 首先打开题目链接是一个提交框 习惯性的先提交1看看返回什么结果 返回了一个数组 再来提交1 看看 根据回显可知这里可能存在sql注入 而且数据库为mysql 又根据报错提示提交1 看看能不能闭合 提交后回显正常 说明是单引号闭
  • 读书笔记:卓有成效的管理者

    德鲁克的著作堪称 经典 经得起时间的考验 值得人们一读再读 常读常新 而 卓有成效的管理者 是他的著作中我比较喜欢的一本 管理者必须卓有成效 卓有成效是可以学会的 管理者的卓有成效对个人的提高 对机构的发展 对现代社会生存和运作都是必不可少

随机推荐

  • 安卓性能测试(针对UE4发布的apk做性能分析)

    用UnrealInsights 抓取安卓设备性能 1 UE4官网Unreal Insights介绍 https docs unrealengine com 4 27 zh CN TestingAndOptimization Performa
  • 如何使用QString::arg()

    如何使用QString arg 在Qt Asistant中 QString arg的定义如下 QString QString arg const QString a int fieldWidth 0 const QChar fillChar
  • 一周AI回顾

    本期一周AI看点包括行业热点 投融资 业界观点 技术前沿以及应用等方面 行业 中科曙光研制出首款搭载寒武纪AI芯片的人工智能服务器 中科曙光近日成功研制出首款搭载寒武纪AI芯片的人工智能服务器 命名为 Phaneron 主要是面向深度学习的
  • 第十一届蓝桥杯单片机决赛总结

    先说结果 提前5天准备 11 14号下午2点结束比赛 11 15号下午13点出结果 很遗憾国三 关于决赛后的感想 1 吐槽 由于疫情的影响 无法去北京公费旅游实属遗憾 不过奖金的诱惑 也丝毫不影响我对比赛的热情 2 回归正题 比赛分为 客观
  • Java eclipse闪退原因,针对Eclipse闪退的两种解决方案

    闪退情况是 双击Eclipse登陆按钮 显示图标后 紧接着关闭 1 到eclipse文件夹中的eclipse ini打开编辑在最后加入下面代码保存即可 Dorg eclipse swt browser DefaultType mozilla
  • jar包解压后 再重新压缩成jar包的指令

    jar包解压后 再重新压缩成jar包的指令 lt lt jar cvf0M name jar gt gt 操作步骤如下 1 将jar包放在一个没有任何内容的文件夹中解压 注 解压时解压到当前文件夹即可 解压完成后如图 解压后将原jar包删除
  • android studio 预览问题 :java.lang.NoClassDefFoundError: com/android/util/PropertiesMap

    java lang NoClassDefFoundError com android util PropertiesMap android studio 预览时出现上述问题 把sdk改下 如下图
  • 为什么 list.sort() 比 stream().sorted() 要更快?测试结果把我惊呆了!

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 5 5 分钟 来自 juejin cn post 7262274383287500860 看到一个评论 里面提到了list sort 和list strem sort
  • 解决修改CSS文件后网页显示不生效问题

    刚开始学CSS HTML CSS Div虽说是上个世纪就有产生的发明 但我却不会 不过 不要紧 学就是了 问题是这样的 我编写HTML文件 并调用CSS文件实现布局美化 然后 经常出现明明已经修改过CSS文件 但 HTML页面却并没有产生变
  • java dialog居中显示_jdialog居中

    推荐 方法一 方法一 简单的办法 在Java中让JFrame和JDialog居中显示的方法 1 JFrame在屏幕中居中显示 只须在主类的构造方法里面加上一句 this setLocationRelativeTo null 2 若要让JDi
  • LeetCode-343.整数拆分、记忆化递归

    给定一个正整数 n 将其拆分为至少两个正整数的和 并使这些整数的乘积最大化 返回你可以获得的最大乘积 示例 1 输入 2 输出 1 解释 2 1 1 1 1 1 力扣 LeetCode 第343题 题目分析 暴力枚举 一个正整数 n 拆分成
  • 【图像处理】工业相机原理详述

    工业相机是机器视觉系统中的一个关键组件 其最本质的功能就是将光信号转变成有序的电信号 选择合适的相机也是机器视觉系统设计中的重要环节 相机的选择不仅直接决定所采集到的图像分辨率 图像质量等 同时也与整个系统的运行模式直接相关 欢迎关注微信公
  • jpa多表查询的简单方法——自写sql支持limit子句

    1 思路 使用自写sql进行查询不需要在实体上添加 ManyToOne等注解 清晰简单并且容易实现 由于本例中要使用到limit子句进行分页 而hql不支持limit 因此使用原生sql不能直接使用new语句 需将返回值设为Object 或
  • styleGAN记录

    前言 最近需要看一些gan相关的工作 所以写个博客记录一下开个坑 由于也不知道啥时候能写完 这里看到一篇写的还可以的博文 着急的朋友可以移步 从零带你入门stylegan stylegan3的技术细节 styleGAN v1 styleGA
  • 微软高级工程师:珍惜生命,远离C++

    众所周知 C 很难 有人会语重心长告诫后来者 珍惜生命 远离C 但仍然有小伙伴前赴后继挑战 当然是因为它有着独特的优势 C 是一种高效 通用的编程语言 广泛应用于系统开发 嵌入式 游戏开发 高性能计算和金融技术等领域 那C 学多久才算精通呢
  • C++ 纯虚函数和虚函数的区别

    在 C 中 虚函数 Virtual Function 和纯虚函数 Pure Virtual Function 都是用于实现多态性的机制 但它们之间有一些关键的不同 虚函数 Virtual Function 定义 在基类中使用 virtual
  • React路由基础

    React路由 路由使用步骤 编程式导航 路由使用步骤 安装 npm i react router dom D 引入并使用 1 引入路由 import BrowserRouter as Router Route Link from reac
  • 计算机网络实验路由器配置

    路由器配置实验 实验目的及要求 认识路由器的端口 型号 2 掌握路由器的路由配置 理解网络互联的基本原理 实验环境 Packet Tracer V6 实验内容 路由器接口的配置 静态路由配置 默认路由配置 动态路由配置 实验步骤 1 路由器
  • React 函数组件和类组件的优缺点

    React 函数组件和类组件的优缺点 React中的组件可以分为函数组件和类组件 它们各自有一些优缺点 下面是一些常见的观点 函数组件的优点 定义和使用较简单和直观 只需要一个函数即可 对于简单的组件 可以使用函数组件来提高性能和简化开发
  • Arena仿真-基于超市排队的建模分析

    文章目录 Arena仿真作业 一 问题介绍 1 1 模型假设 1 2 优化目标 1 3 约束条件 二 模块设计 2 1 Create模块 2 2 Decide模块 2 3 Assign模块 2 4 Process模块 2 5 Dispose