- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
同济大三下-超市仿真系统设计说明书.doc
超市仿真系统设计说明书
一、设计超市仿真系统的目的:
该系统通过模拟顾客在超市中的到达、购物、排队等待付款、离去等事件行为,以获得各服务台服务状况和有关顾客状态的各种指标,并据此对超市服务台的利用率等工作情况作出相应的评价,以此种类似于实验的方式来确定较为合理的服务台数目,进而做出调整优化改进的方案,一方面改善提高现有资源利用率,避免不必要的浪费,同时另一方面可提高超市运作效率,减少顾客等待时间,吸引更多顾客。
二、模型的建立:
1、假设超市的运行默认以下几条规则:
顾客到达后,立即通过入口进入售货区选购商品,选购完毕后随机选择服务台。
顾客对于服务台可以有多个选择,但每一个收款台每次至多只能为一位顾客服务。
如果顾客所选择的服务台空闲,则顾客立即接受服务;如果服务台正在为其他顾客服务,则该顾客应在加入到服务台前队列中排队等待,直到轮到该顾客去接受服务。
付款完毕顾客便离开服务台,路经出口直接离开超市系统,无逗留。
到达服从负指数分布,购物时间、付款时间服从正态分布
2、顾客的购物流程
超市仿真系统流程为:到达-购物-排队等待付款-离开。系统为了简化,把立即接受服务的情况视为排队时间为0的排队。
具体流程图如下:
系统的几大模块介绍:
1、随机数的产生:
(1)负指数分布随机数产生函数:
Public Function exp(n)
Dim x, y As Double
x = Rnd
y = -(Log(u)) / n
exp = y
End Function
(2)正态分布随机数产生函数:
Public Function normal(a, P)
Dim num(1 To 12) As Single
Dim X, Y, Z, N As Double
X = 0
For i = 1 To 12 Step 1
num(i) = Rnd
X = X + num(i)
Next i
Y = X - 6
Z = a * Y + P
normal = Z
End Function
排队付款
这个模块是仿真系统的关键,分以下几个步骤进行(假设有两个服务台):
第一步
顾客购物完毕后,立刻按购物结束时间排序。
Dim f(9)
For ii = 0 To b - 2
For jj = b - 1 To ii + 1 Step -1
If Val(sz(jj, 2)) Val(sz(jj - 1, 2)) Then
For iii = 0 To 8
f(iii) = sz(jj, iii)
sz(jj, iii) = sz(jj - 1, iii)
sz(jj - 1, iii) = f(iii)
Next iii
End If
Next jj
Next ii
第二步
采用二维数组中的一维作为服务台编号,另一维作为通过此服务台的顾客信息,记录其离开时刻。
1 2 1 0:00:01 0:00:04 2 0:06:31 0:09:28 3 0:09:55 0:22:46 ......
按上步骤排序的顺序先将2个顾客插入数组(因为前2个顾客不用排队,排队时间为0),并计算出他们的离开时刻。离开时刻=购物结束时刻+排队时间+付款时间。
第三步
第三个顾客购物完后在付款之前,系统利用循环先检查已知数组中每列元素,并记录下每列元素(代表离开时间)中离开时间大于该顾客到达时间的人数,存于另一数组。
Dim nn2 As Integer
For nn1 = ab + 1 To b - 1
For nn3 = 0 To ab
nn2 = 0
Do While Val(fwt(nn2, nn3)) 0
If Val(sz(nn1, 2)) fwt(nn2, nn3) Then
fwtrs2(nn3) = Val(fwtrs2(nn3)) + 1
End If
nn2 = nn2 + 1
Loop
For gg = 0 To ab
If Val(fwtrs4(gg)) Val(fwtrs2(gg)) Then
f wtrs4(gg) = Val(fwtrs2(gg))
End If
Next gg
Next nn3
第四步
在一维数组中找出最小值元素所在位置,即决定该顾客在哪个服务台排队付款。
fw
文档评论(0)