- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1实验案例-Read
实验案例 理发店模拟
1 实验案例 1
1.1 案例:理发店系统研究 1
1.1.1 问题分析 2
1.1.2 模型假设 2
1.1.3 变量说明 2
1.1.4 模型建立 2
1.1.5 系统模拟 3
1.1.6 计算机模拟算法设计 4
1.1.7 计算机模拟程序 5
1.1.8 思考题 8
实验案例
案例:理发店模拟
例子:一个理发店有两位服务员A和B,顾客们随机到达店内,其中60%的顾客仅需剪发,每位花5分钟时间,另外40%顾客既要剪发又要洗发,每位用时8分钟。
理发店是个含有多种随机因素的系统,请对该系统进行模拟,并对其进行评判。
(准备怎么做)
可供参考内容
“排队论”,“系统模拟”,“离散系统模拟”,“事件调度法”
问题分析
理发店系统包含诸多随机因素,为了对其进行评判就是要研究其运行效率,从理发店自身利益来说,要看服务员工作负荷是否合理,是否需要增加员工等考虑。从顾客角度讲,还要看顾客的等待时间,顾客的等待队长,如等待时间过长或者等待的人过多,则顾客会离开。理发店系统是一个典型的排队系统,可以用排队论有关知识来研究。
模型假设
60%的顾客只需剪发,40%的顾客既要剪发,又要洗发;
每个服务员剪发需要的时间均为5分钟,既剪发又洗发则花8分钟;
顾客的到达间隔时间服从指数分布;
服务中服务员不休息。
变量说明
u:剪发时间(单位:分钟),u=5m;
v: 既剪发又理发花的时间(单位:分钟),v=8m;
T: 顾客到达的间隔时间,是随机变量,服从参数为的指数分布,(单位:分钟)
T0:顾客到达的平均间隔时间(单位:秒),T0=;
模型建立
由于该系统包含诸多随机因素,很难给出解析的结果,因此可以借助计算机模拟对该系统进行模拟。
考虑一般理发店的工作模式,一般是上午9:00开始营业,晚上10:00左右结束,且一般是连续工作的,因此一般营业时间为13小时左右。
这里以每天运行12小时为例,进行模拟。
这里假定顾客到达的平均间隔时间T0服从均值3分钟的指数分布,
则有
3小时到达人数约为人,
6小时到达人数约为人,
10小时到达人数约为人,
这里模拟顾客到达数为60人的情况。
(如何选择模拟的总人数或模拟总时间)
系统模拟
根据系统模拟的一般方法,需要考虑系统的如下数据、参数。
状态(变量)
等待服务的顾客数; A是否正在服务; B是否正在服务; 实体:两名服务员、顾客们
事件:
一名新顾客的到达; A开始服务; A结束服务; B开始服务; B结束服务; 活动:
顾客排队时间 顾客们到达的间隔时间 A的服务时间 B的服务时间;
在系统模拟时,为了研究系统的整体情况,这里考虑顾客到达后不离开,且等待队长不限。
要考虑如果服务员均空闲时,顾客先选择谁服务?
要考虑模拟的时间设置还有顾客数目。
模拟终止条件是根据顾客数目还是根据营业时间终止?
计算机模拟算法设计
自行设计
finished=0;
初始化运行时钟
while finished==0
if 产生的顾客数不到规定数目时 then,
产生该顾客的有关数据;
将顾客加入等待队列;
else
运行时钟继续;
endif
处理服务员的状态(包括工作状态,空闲时间);
获得服务员的服务优先顺序;
根据服务员优先顺序从等待队列中安排服务;
endwhile 有无参考算法?
离散系统仿真算法:事件调度法
计算机模拟程序
顾客到达的间隔时间T的计算机产生方法,利用T=,
%理发店系统的模拟(案例分析之一)
%关键词:面向事件的计算机模拟技术
clear all
curclock=0;%当前时刻,动态变化
totalcustomer=0;%总共服务的顾客数
numsrv=2;
srvstatus=zeros(numsrv,5);%服务员有关数据
%srvstatus 第1列:服务状态(0空闲,1正在服务);第2列:当前服务顾客编号;
% 第3列:当前服务结束时刻;第4列:服务员空闲时间;第5列:服务的顾客总数
endtime =0;%结束时间
waiting=[];%等待队列数据
%waiting 第1列:顾客编号;第2列:顾客到达时刻;第3列:顾客开始接受服务时刻;
% 第4列:接受服务时间;第5列:顾客结束服务时刻;第6列:间隔时间
cur=zeros(1,6);%当前产生顾客的数据,对应关系同waiting
avgwaitlen=[];%平均等待队长
avgwaittime =[];% 平均等待时间
ujiange=5;%平均间隔时间
finished=0;
numsimucustumer=yesinput(输入等待模拟的顾客数:,10,[10 1000]);
while fin
文档评论(0)