数学建模——理发店问题的蒙特卡洛仿真.doc

上传人:cn****1 文档编号:551674081 上传时间:2023-03-29 格式:DOC 页数:4 大小:37KB
返回 下载 相关 举报
数学建模——理发店问题的蒙特卡洛仿真.doc_第1页
第1页 / 共4页
数学建模——理发店问题的蒙特卡洛仿真.doc_第2页
第2页 / 共4页
数学建模——理发店问题的蒙特卡洛仿真.doc_第3页
第3页 / 共4页
数学建模——理发店问题的蒙特卡洛仿真.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数学建模——理发店问题的蒙特卡洛仿真.doc》由会员分享,可在线阅读,更多相关《数学建模——理发店问题的蒙特卡洛仿真.doc(4页珍藏版)》请在金锄头文库上搜索。

1、数学建模课程设计题目:理发店问题学生: 一、课程设计题目 一个理发店有两位服务员 A 和 B,顾客们随机到达店内,其中 60% 的顾客仅剪发,每位花 5 分钟时 间;40% 的顾客既剪发又洗发,每位花 8 分钟时间。设计算法,利用计算机对理发店的服务情况进行模拟。并统计以下量: 1. 最大队列长度 2. 顾客平均等待3. 顾客总等待时间4. 平均队列长度二、设计思路利用蒙特卡洛模拟原理,利用计算机对以上排队问题进行模拟。蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。具体的,当系统中各个单元的可靠性特征量已知,但

2、系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。蒙特卡洛模拟方法的原理是当问题或对象本身具有概率特征时,可以用计算机模拟的方法产生抽样结果,根据抽样计算统计量或者参数的值;随着模拟次数的增多,可以通过对各次统计量或参数的估计值求平均的方法得到稳定结论。对于本题,我们假定顾客到达时间间隔服从均值为3min的指数分布,模拟一定数量顾客情况下理发店的排队状况。三、设计代码arrive_t=exprnd(3,10,1); %顾客到达时间q=zeros(10,1);t=zeros(10,

3、1);t0=zeros(10,1);rannum=unifrnd(0,1,10,1);%产生均匀分布随机数customer=zeros(10,1);%设定顾客wait_time1=0;wait_time2=0;flag=0;%确定是否有人等待for i=1:10%分出第一种和第二种状况 if(rannum(i,1)t0(2,1)|t(3,1)t0(2,1) t0(3,1)=t(3,1)+customer(3,1);else wait_time1=t0(1,1)-t(3,1); wait_time2=t0(2,1)-t(3,1); if (wait_time1wait_time2) t0(3,1

4、)=t(3,1)+wait_time2+customer(3,1); wait_time=wait_time2; else t0(3,1)=t(3,1)+wait_time1+customer(3,1); wait_time=wait_time1; endendi=4;while(i0)&(wait_time20) if wait_time1wait_time2 flag=1; t0(i,1)=t(i,1)+wait_time2+customer(i,1); wait_time=wait_time+wait_time2; else flag=1; t0(i,1)=t(i,1)+wait_tim

5、e1+customer(i,1); wait_time=wait_time+wait_time1; end i=i+1; elseif (wait_time10) t0(i,1)=t(i,1)+customer(i,1); q(i)=q(i)-1; flag=0; i=i+1; elseif (wait_time10)&(wait_time2=0) t0(i,1)=t(i,1)+customer(i,1); q(i)=q(i)-1; flag=0; i=i+1; elseif (wait_time1=0)&(wait_time2wait_time2 t0(i,1)=t(i,1)+wait_ti

6、me2+customer(i,1); wait_time=wait_time+wait_time2; else t0(i,1)=t(i,1)+wait_time1+customer(i,1); wait_time=wait_time+wait_time1; end flag=0; endendave_t=t(10,1)./1;ave_q=wait_time./t(10,1);maxq=max(q);fprintf(最大队列长度%fn,maxq);fprintf(总等待时间%fn,wait_time);fprintf(平均等待时间%fn,ave_t);fprintf(平均队列长度%fn,ave_q);四、运行结果运行一次程序,可以得到以下结果(依据蒙特卡洛仿真原理,每次结果会在一定范围内波动)最大队列长度7.000000总等待时间 93.656144平均等待时间 19.465428平均队列长度 4.811410

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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