计算机仿真与建模实验报告

上传人:枫** 文档编号:513960924 上传时间:2023-07-12 格式:DOCX 页数:10 大小:67.19KB
返回 下载 相关 举报
计算机仿真与建模实验报告_第1页
第1页 / 共10页
计算机仿真与建模实验报告_第2页
第2页 / 共10页
计算机仿真与建模实验报告_第3页
第3页 / 共10页
计算机仿真与建模实验报告_第4页
第4页 / 共10页
计算机仿真与建模实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《计算机仿真与建模实验报告》由会员分享,可在线阅读,更多相关《计算机仿真与建模实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、中南大学计算机仿真与建模实验报告题目:理发店的服务过程仿真姓名:XXXX班级:计科XXXX班学号:0909XXXX日期:2013XXXX理发店的服务过程仿真1 实验案例21.1案例:理发店系统研究21.1.1 问题分析31.1.2 模型假设31.1.3 变量说明31.1.4 模型建立31.1.5 系统模拟41.1.6 计算机模拟算法设计51.1.7 计算机模拟程序61实验案例1.1案例:理发店模拟一个理发店有两位服务员A和B顾客随机地到达该理发店,每分钟有一个顾客 到达和没有顾客到达的概率均是1/2 ,其中60%的顾客理发仅用5分钟,另外40% 的顾客用8分钟.试对前10分钟的情况进行仿真。(

2、“排队论”,“系统模拟”,“离散系统模拟”,“事件调度法”)111问题分析理发店系统包含诸多随机因素,为了对其进行评判就是要研究其运行效率, 从理发店自身利益来说,要看服务员工作负荷是否合理,是否需要增加员工等考 虑。从顾客角度讲,还要看顾客的等待时间,顾客的等待队长,如等待时间过长 或者等待的人过多,则顾客会离开。理发店系统是一个典型的排队系统,可以用 排队论有关知识来研究。112模型假设1. 60%的顾客只需剪发,40%的顾客既要剪发,又要洗发;2. 每个服务员剪发需要的时间均为5分钟,既剪发又洗发则花8分钟;3. 顾客的到达间隔时间服从指数分布;4. 服务中服务员不休息。113变量说明u

3、剪发时间(单位:分钟),u=5m;v:既剪发又理发花的时间(单位:分钟),v=8m;T:顾客到达的间隔时间,是随机变量,服从参数为九的指数分布,(单位: 分钟)T0:顾客到达的平均间隔时间(单位:秒),T0=丄;00九114模型建立由于该系统包含诸多随机因素,很难给出解析的结果,因此可以借助计算机 模拟对该系统进行模拟。考虑一般理发店的工作模式,一般是上午9: 00开始营业,晚上10: 00左 右结束,且一般是连续工作的,因此一般营业时间为13小时左右。这里以每天运行12小时为例,进行模拟。这里假定顾客到达的平均间隔时间T0服从均值3分钟的指数分布, 则有3小时到达人数约为乂60 = 60人,

4、36小时到达人数约为= 120人,310小时到达人数约为10也 =200人,3这里模拟顾客到达数为60人的情况。(如何选择模拟的总人数或模拟总时间)115系统模拟根据系统模拟的一般方法,需要考虑系统的如下数据、参数。1. 状态(变量)(1) 等待服务的顾客数;(2) A是否正在服务;(3) B是否正在服务;2. 实体:两名服务员、顾客们3. 事件:(1) 一名新顾客的到达;(2) A开始服务;(3) A结束服务;(4) B开始服务;(5) B结束服务;4. 活动:(1) 顾客排队时间(2) 顾客们到达的间隔时间(3) A的服务时间(4) B的服务时间;在系统模拟时,为了研究系统的整体情况,这里

5、考虑顾客到达后不离开,且 等待队长不限。要考虑如果服务员均空闲时,顾客先选择谁服务?要考虑模拟的时间设置还有顾客数目。模拟终止条件是根据顾客数目还是根据营业时间终止?1.1.6计算机模拟算法设计finished=O;初始化运行时钟while finished=0讦 产生的顾客数不到规定数目时then, 产生该顾客的有关数据; 将顾客加入等待队列;else运行时钟继续;endif处理服务员的状态(包括工作状态,空闲时间); 获得服务员的服务优先顺序;根据服务员优先顺序从等待队列中安排服务;endwhile参考算法为:离散系统仿真算法:事件调度法117计算机模拟程序顾客到达的间隔时间T的计算机产生

6、方法,利用T=-ln rand - -T ln rand九0%理发店系统的模拟(案例分析之一) %关键词:面向事件的计算机模拟技术 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列:顾客编号

7、;第2列:顾客到达时刻;第3列:顾客开始接受 服务时刻;%第4列:接受服务时间;第5列:顾客结束服务时刻;第6列:间隔时间cur=zeros(1,6);%当前产生顾客的数据,对应关系同waiting avgwaitlen=;%平均等待队长avgwaittime =;%平均等待时间ujiange=5; %平均间隔时间 finished=0;numsimucustumer=yesinput(输入等待模拟的顾客数:,10,10 1000);while finished=0,if totalcustomer numsimucustumer%产生一个顾客的到达及其有关性质的数据totalcustomer

8、 = totalcustomer+1;jiange= -log(rand)*ujiange%与上一个顾客的到达的间隔时间 curclock = curclock + jiange;cur(1)= totalcustomer % 第1列:顾客编号cur(2) = curclock; %第2列:顾客到达时刻 cur(6) = jiange;第6列:间隔时间%下面产生接受服务时间(可改进模型)if rand06, %产生顾客有关性质:这里是产生接受服务时间 cur(4) = 5;elsecur(4) = 8;end%放入等待队列if isempty(waiting), waitings cur;el

9、se m,n=size(waiting); waiting(m+l,:)= cur;endelsecuRclock = cuRclock + (-log(Rand)*ujiange); end%if totalcustomer%分配等待队列(看是否有服务员空闲,如果有则分配;否则继续执行) %处理服务员的服务状态foR i=l:numsrv,if srvstatus(i,l)=l & srvstatus(i,3) curclock, srvstatus(i,4)= 0%没有休息(正在忙)elsesrvstatus(i,4)= curclock-srvstatus(i,3);% 目 前已经空 闲

10、的时间endend%处理服务员服务的先后顺序(依据空闲时间)(精细处理)tmp=srvstatus(:,4);for i=l:numsrv,value,id=max(tmp);b(i)=id;tmp(id)=0%已经排序了end%此时等待队列必然不为空for j=l:numsrv,i=b(j) %确定服务员的序号if(srvstatus(i,l)=O)%找一个顾客开始服务,同时计算该顾客什么时候接受服务,结束服 务;m,n=size(waiting);if m=0,break;endi waiting(1,5)=0, %还没有开始接受服务waiting(1,3)= curclock;waiti

11、ng(1,5)= waiting(1,3)+waiting(1,4% 结束时刻 srvstatus(i,1)=1; %设置为忙状态srvstatus(i,2)=waiting(1,1% 顾客编号 srvstatus(i,3)= waiting(1,5);% 结束时刻 srvstatus(i,5)=srvstatus(i,5)+1; % 又服务了一个顾客%计算等待时间avgwaittime(end+1) = waiting(1,3)-waiting(1,2); disp(sprint间隔时间(82f)顾客编号:%5d接受服务 员(4&)服务(到达时 刻102f),waiting(1,6),wai

12、ting(1,1),i,waiting(1,2) endtime=max(endtime,waiting(1,5) waiting(1,:) = %从等待队列中离开enden%ifend%form,n=size(waiting);%计算队长(这里的计算式子可以参考排队论有关术语进行确定)if totalcustomer =numsimucustumer, %队列为空,结束 finished=1;end end%while disp(服务顾客数:) disp(srvstatus(:,5) disp(平均队长); disp(mean(avgwaitlen);disp(运行时间(分钟,小时);disp(sprintf(%8 f%8 f,curclock,curclock/60);disp(平均等待时间(分钟); disp(mean(avgwaittime ); disp(结束时间(分钟); disp(endtime );figure hist(avgwaitlen)title(平均队长) figure hist(avgwaittime) title(平均等待时间);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号