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

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个服务人员

  • 36
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值