系统仿真报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统仿真实验报告
姚磊2013141084048
一、实验概述
本次实验是利用系统仿真软件Simio对现实的一些问题(诸如排队,车辆调度,医院就诊等)进行模拟,从相对接近实际的角度去观察所关注的系统的特定数据,从而实现对当前情况的优化。我们能够以非常低的成本对系统可能出现的状况进行观察,并对我们的优化方案进行测试,尤其是面对一些随机性很强的情况,我们可以通过多次的模拟实验来找到系统优化的最佳方案。
本次实验即为对服务窗口的排队以及相关问题进行模拟以及优化的实验,面对随机的顾客到来的数量,如何合理安排窗口的工作方式是这次实验主要着手解决的问题。通过对窗口效率,队伍的长度等数据进行分析从而得到最优结果。
二、实验操作
本次系统仿真实验主要用到的仿真软件为Simio。根据题目所描述的情景,我们建立一个Source(命名为Source1)表示顾客的到来,建立三个Sever表示(分别命名为Sever1, Sever2, Sever3),最后建立一个sink(命名为Sink1)表示顾客的离开。由于不考虑顾客行走的时间,因此使用connector将Source1于三个sever连接,同时三个sever与Sink1之间的连接也使用connector。新建一个entity(命名为DefaultEntity)表示顾客。接下来开始按照题目的描述对相关模块的参数进行调节。由于顾客到来按照2分钟/人的速率到达,因此Source1的表达式填写为2,下面的单位改成分钟;三个柜台的服务时间按照均值1.5指数分布,于是表达式填写为Random.Exponential(1.5),三个柜台的表达式相同。这样就完成了多队列的方案的建模。为了对系统的各项数据有直观的观察,我们在每个模块旁边建立status label来显示通过各模块的顾客的数量。建成后的模型如下图1所示
图1多队列方案模型
之后对模型中的一些参数进行更改使得该模型能够将单队列的情况包含进去。首先我们选择建立一个node list,新建的三个node为Input@Sever1, Input@Sever2, Input@Sever3。之后需要修改的就是顾客到达之后对柜台的选择方式,选择方式为在Sever1@Output的EntityDestination相应选项改为SelectFromList,在下面的选项中将listname设定为刚才的新建的nodelist即“nodelist 1”选择方式为随机,相应的结果如下图2所示
图2更改顾客选择柜台的方式
同时为了便于观察每个顾客所在的实时位置,在defaultentity旁边新建了一个计数框来表示每位顾客的ID。至此,按照题目要求建立好了所需的模型。
为了验证模型各部分关系的正确,我对这个模型进行了一次运行,运行结束的时候结果出现了一些和预计情况不符的问题,经过检查发现是没有更改每个柜台的进入选项,对应的是应该修改Sever@Input相对应的Inputbuffer对应的参数进行一些更改,更改后的结果如下图3所示
图3修改后的inputbuffer参数
再次进行验证运行之后得到的如下的结果,得到和预期基本相符的结果,最终得到的运行情况如下图4所示。
图4初步验证模型的结果
下面要进行的就是对两个实验进行数据的模拟,具体的步骤为在experiment新建两个具体项目对应题目出现的两种情况,两个情况的区别在于inputbuffer capacity的容量,单队列对应的是Scenario1,容量为0;多队列情况对应的Scenario2,容量为infinity(无限)试验次数均设置为20次,进行试验,如下图5所示
图5进行模拟实验
将最终报告生成并保存成excel可识别的格式,借助Excel软件对数据进行进一步分析。
三、数据分析及实验结果
首先,我们关注两种不同的情况下窗口的使用率的高低,各柜台在不同情况下的使用率如下表1所示:
表格1两种情况下柜台使用率的比较
从表中我们可以发现单队列的情况下柜台的平均使用率更高,通过安排叫号机使得柜台的服务效率提高了一个百分点。
提高了服务效率的同时对顾客逗留的时间又产生了怎样的影响呢,通过对数据报告的筛选能够得到如下表2所示的数据
表格2顾客逗留时间比较
Scenario Object Name Category Data Item Average(%) Minimum(%) Maximum(%)
Scenario1 Server1 Capacity ScheduledUtilization 98.22565263 94.65547516 99.71975382 Scenario1 Server2 Capacity ScheduledUtilization 98.1321641 95.60110424 99.63780695 Scenario1 Server3 Capacity ScheduledUtilization 98.17361041 95.10898467 99.75665795 Scenario2 Server1 Capacity ScheduledUtilization 96.16222548 87.97594614 99.76907166 Scenario2 Server2 Capacity ScheduledUtilization 97.38987423 94.3961055 100 Scenario2 Server3 Capacity ScheduledUtilization 97.48819285 92.04018079 99.97782983
Scenario Object Name Category Data Item Statistic Type Average Minimum Maximum
通过观察比较可以发现,20次重复试验得到的顾客逗留时间的平均时间的均值单队列
的方案比多队列方案降低了0.2小时;同时顾客的最长逗留时间单队列方案相比降低了1.24
小时,大约是多队列的方案的一半。
顾客逗留的时间的缩短是否意味着顾客排队的时间也得到了相应的增长呢?我们将顾
客排队时间筛选出来进行分析,相应的数据如下表3所示
Scenario Object Type Object Name Data Source Category Data Item Average(hour)
Scenario2 Server Server1 InputBuffer HoldingTime TimeInStation 0.460562905 Scenario2 Server Server2 InputBuffer HoldingTime TimeInStation 0.664761433 Scenario2 Server Server3 InputBuffer HoldingTime TimeInStation 0.566875251
根据数据我们可以看到顾客排队的时间单队列的平均值均低于多队列情况下三个柜台
的平均排队时间,即单队列方案下有效的减少了顾客排队等待的时间。
前面的数据分析集中在两种方案的各方面效率的问题,在实际的应用中,效率仅仅是决
定一个方案是否优秀的一个重要方面,用户体验则是另一个决定方案是否优秀的重要因素,
具体可以用顾客排队是队伍长度的相关数据进行比较从而判断方案的优劣。两种方案的排队
平均队长的数据如下表4所示
表格4平均排队长度
Scenario Object Type Object Name Data Source Category Data Item Statistic Type Average
Scenario1 DefaultEntity FlowTime TimeInSystem Maximum
(Hours)
0.84639132 0.463727167 1.38922608 Scenario1 DefaultEntity FlowTime TimeInSystem Minimum (Hours) 0.000323177 1.94E-05 0.001289382 Scenario2 DefaultEntity FlowTime TimeInSystem Average (Hours) 0.587813187 0.2804933 1.095407345 Scenario2 DefaultEntity FlowTime TimeInSystem Maximum
(Hours)
1.765397334 0.891658608
2.627339952 Scenario2 DefaultEntity FlowTime TimeInSystem Minimum (Hours) 0.000342728 1.57E-05 0.002085402
表格3顾客排队平均时间