版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 9 M/M/1排队系统实验报告 一、实验目的 本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法 实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值, 以与理论 分析结果进行对比。 二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模 式、服务模式、服务员数量以及服务规则等因素决定的。 1、顾客到达模式 设到达过程是一个参数为的Poisson过程,则长度为t的时间内到达k个 呼叫的概率 服从Poisson分布,即Pk(t) (t)k t k! e k 0,1,2, ,其中 0 为一常数,表示了平均到达率或 Poisson呼叫流的强度。
2、 2、服务模式 设每个呼叫的持续时间为i,服从参数为的负指数分布,即其分布函数为 PX t 1 e t,t 0 3、服务规则 先进先服务的规则(FIFO) 4、理论分析结果 Q - 在该M/M/1系统中,设,则稳态时的平均等待队长为1,顾客的 T 平均等待时间为。 三、实验内容 M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服 从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务 四、采用的语言 MatLab语言 源代码: clear; clc; %M/M/1排队系统仿真 SimTotal=input( 请输入仿真顾客总数 SimTotal=);
3、% 仿真顾客总数; Lambda=; % 到达率 Lambda; Mu=; %服务率 Mu; t_Arrive=zeros(1,SimTotal); t_Leave=zeros(1,SimTotal); ArriveNum=zeros(1,SimTotal); LeaveNum=zeros(1,SimTotal); Interval_Arrive=-log(rand(1,SimTotal)/Lambda;% 到达时间间隔 Interval_Serve=-log(rand(1,SimTotal)/Mu;% 服务时间 t_Arrive(1)=Interval_Arrive(1);% 顾客到达时间
4、ArriveNum(1)=1; for i=2:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i; end t_Leave(1)=t_Arrive(1)+Interval_Serve(1);% 顾客离开时间 LeaveNum(1)=1; for i=2:SimTotal if t_Leave(i-1)t_Arrive(i) t_Leave(i)=t_Arrive(i)+Interval_Serve(i); else t_Leave(i)=t_Leave(i-1)+Interval_Serve(i); en
5、d LeaveNum(i)=i; end t_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间 t_Wait_avg=mean(t_Wait); t_Queue=t_Wait-Interval_Serve;% 各顾客在系统中的排队时间 t_Queue_avg=mean(t_Queue); Timepoint=t_Arrive,t_Leave;% 系统中顾客数随时间的变化 Timepoint=sort(Timepoint); ArriveFlag=zeros(size(Timepoint);% 到达时间标志 CusNum=zeros(size(Timepoint); te
6、mp=2; CusNum(1)=1; for i=2:length(Timepoint) if (temp=2 QueLength(i)=CusNum(i)-1; else QueLength(i)=0; end end 系统平均等 QueLength_avg=sum(0 QueLength.*Time_interval 0 )/Timepoint(end);% 待队长 %仿真图 figure(1); set(1,position,0,0,1000,700); subplot(2,2,1); title( 各顾客到达时间和离去时间 ); stairs(0 ArriveNum,0 t_Arriv
7、e,b); hold on; stairs(0 LeaveNum,0 t_Leave,y); legend( 到达时间 , 离去时间 ); hold off; subplot(2,2,2); stairs(Timepoint,CusNum,b) title( 系统等待队长分布 ); xlabel( 时间 ); ylabel( 队长 ); subplot(2,2,3); title( 各顾客在系统中的排队时间和等待时间 ); stairs(0 ArriveNum,0 t_Queue,b); hold on; stairs(0 LeaveNum,0 t_Wait,y); hold off; leg
8、end( 排队时间 , 等待时间 ); %仿真值与理论值比较 disp( 理论平均等待时间 t_Wait_avg=,num2str(1/(Mu-Lambda); disp( 理论平均排队时间 t_Wait_avg=,num2str(Lambda/(Mu*(Mu-Lambda); disp( 理论系统中平均顾客数 =,num2str(Lambda/(Mu-Lambda); disp( 理论系统中平均等待队长 =,num2str(Lambda*Lambda/(Mu*(Mu-Lambda); disp( 仿真平均等待时间 t_Wait_avg=,num2str(t_Wait_avg) disp( 仿
9、真平均排队时间 t_Queue_avg=,num2str(t_Queue_avg) disp( 仿真系统中平均顾客数 =,num2str(CusNum_avg); disp( 仿真系统中平均等待队长 =,num2str(QueLength_avg); 五、数据结构 1. 仿真设计算法(主要函数) 利用负指数分布与泊松过程的关系, 产生符合泊松过程的顾客流, 产生符合 负指数分布的随机变量作为每个顾客的服务时间: Interval_Arrive=-log(rand(1,SimTotal)/Lambda;%到达时间间隔,结果 与调用exprnd(1/Lambda , m)函数产生的结果相同 Int
10、erval_Serve=-log(rand(1,SimTotal)/Mu;%服务时间间隔 t_Arrive(1)=Interval_Arrive(1);%顾客到达时间 时间计算 t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间 t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间 由事件来触发仿真时钟的不断推进。 每发生一次事件, 记录下两次事件间隔 的时间以及在该时间段内排队的人数: Timepoint=t_Arrive,t_Leave;%系统中顾客数变化 CusNum=zeros(size(Timepoint); CusNum_a
11、vg=sum(CusNum_fromStart.*Time_interval 0 )/Timepoint(end);%系统中平均顾客数计算 QueLength_avg=sum(0 QueLength.*Time_interval 0 )/Timepoint(end);%系统平均等待队长 2. 算法的流程图 六、仿真结果分析 顾客的平均等待时间与顾客的平均等待队长,计算其方差如下: 仿真顾客总数 =100000 1 2 3 4 5 平均值 方差 平均等待时间 2.023 1.9971 1.9945 1.9961 2.0043 2.003 0.000556360 平均排队时间 0.91147 0.
12、8865 0.88293 0.88404 0.89495 0.89198 0.000563657 平均顾客数 0.8101 0.79846 0.79334 0.79958 0.80433 0.80116 0.000160911 平均等待队长 0.365 0.35444 0.3512 0.35412 0.35915 0.35678 0.000116873 6 7 8 9 10 理论值 平均等待时间 1.9738 2.0054 1.9911 1.9909 1.9927 2 平均排队时间 0.86612 0.89068 0.8832 0.87527 0.88503 0.88889 中平均顾客数 0.
13、78545 0.8037 0.79797 0.79166 0.80024 0.8 平均等待队长 0.34465 0.35695 0.35395 0.34804 0.35542 0.35556 仿真顾客总数 =1000000 1 2 3 4 5 平均值 方差 平均等待时间 2.0029 1.9975 1.9943 2.0019 2.0115 2.00162 0.000169888 平均排队时间 0.89209 0.88624 0.88494 0.891 0.89873 0.8906 0.000119522 平均顾客数 0.80157 0.79955 0.79763 0.80013 0.80531
14、 0.80084 0.000032986 1 平均等待队长 0.35702 0.35474 0.35394 0.35612 0.35982 0.35633 0.000020940 6 7 8 9 10 理论值 平均等待时间 1.9991 1.9908 1.9965 2.0016 1.996 2 平均排队时间 0.88623 0.88111 0.8849 0.88987 0.88652 0.88889 平均顾客数 0.79824 0.79621 0.79865 0.79943 0.79755 0.8 平均等待队长 0.35387 0.35239 0.35399 0.35541 0.35424 0
15、.35556 从上表可以看出,通过这种模型和方法仿真的结果和理论值十分接近,增加 仿真顾客数时,可以得到更理想的结果。但由于变量定义的限制,在仿真时顾客 总数超过1,500,000时会溢出。证明使此静态仿真的思想对排队系统进行仿真是 切实可行的。 实验结果截图如下(SimTotal分别为100、1000、10000、100000): (仿真顾客总数为100000和1000000时,其图像与10000的区别很小) Command Window 请输入仿頁顾客总埶SimTot al=10ti(00 理论平均等待时间t_wait_avg=2 理论平均持 PA 时 Hlt.Wait _avg=0.63
16、B89 理论累统中平均除喜埶二0.E 理论系铳中平均等待疏长胡.35556 仿翼平均等待时|St_WaLt_avg-2. 0S27 仿専平均脚EPA时同t-Queum.avg=0 39572 仿臺豕顋中平均ltft=O.E0 449 仿真系铳中平均等待疏怅詢.5932 fx : | 匚 cmm-and Win do- 请输 AtfiMlSSimlotalslOCOOOC 理祗年的髯待时问t_Wait_avg=2 理论邛均排队时闾t JTa】T_師沪QSSSS9 理论系绒中平均倾客数=0.8 理论系统中平均等待臥忙丸.3555S 仿真罕均等待时闾t_帕rt_砂沪 0027 舟真年均排弘时|a|t _Quene_arvg= 089088 肪臺系毓中平均顾客数=0.80114 仿真系绩中平均等待队长=山35639 Al 七、遇到的问题及解决方法 1. 在算法设计阶段对计算平均队长时对应的时间段不够清楚, 重新画出状态 转移图后,引入变量Timepoint用来返回按时间排序的到达和离开的时间点, 从 而得到正确的时间间隔内的CusNum并由此计算出平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班常识安全教育
- 体育游戏课件模板
- 视力残疾人群教学课件设计
- 医学26年:消化科教学工作要点 查房课件
- 教育精准扶贫实施路径与成效分析
- 高中宪法教育日主题班会
- 科学教育体系构建与发展路径
- 班队主题教育活动案例
- 2025年单域抗体制备成本降低技术
- 居住权合同协议
- 防灾减灾知识竞赛课件
- 2026五年高考英语真题高频800核心词汇(完整版可直接打印背诵)
- (一模)惠州市2026届高三4月模拟考试英语试卷(含答案详解)
- 国家义务教育质量监测四年级科学质量检测试题
- 拆违控违培训课件
- 小学信息技术课堂中STEAM教育模式研究教学研究课题报告
- 2025年国防军事动员教育知识竞赛题库及答案(共50题)
- 细胞素功效课件
- 早产儿家庭环境改造与安全防护方案
- 会计岗位招聘笔试题及解答(某大型国企)附答案
- 养老院组织架构及岗位职责说明
评论
0/150
提交评论