MM排队系统仿真maab试验报告
M/M/1M/M/1 排队系统实验报告排队系统实验报告 一、实验目的一、实验目的 本次实验要求实现 M/M/1 单窗口无限排队系统的系统仿真,利用事件调度法实现 离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果 进行对比。 二、实验原理二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、 服务模式、服务员数量以及服务规则等因素决定的。 1、顾客到达模式 设到达过程是一个参数为 的 Poisson 过程,则长度为t的时间内到达 k 个呼叫的 tk p k t k 概率 服从 Poisson 分布,即 et ,k 0,1,2,,其中 0 为一常数,表 示了平均到达率或 Poisson 呼叫流的强度。 2、服务模式 设每个呼叫的持续时间为 i,服从参数为 的负指数分布,即其分布函数为 P{X t}1et,t 0 3、服务规则 先进先服务的规则(FIFO) 4、理论分析结果 在该 M/M/1 系统中,设 等待时间为 T Q ,则稳态时的平均等待队长为 1,顾客的平均 。 三、实验内容三、实验内容 M/M/1M/M/1 排队系统排队系统实现了当顾客到达分布服从负指数分布,系统服务时间也服从 负指数分布,单服务台系统,单队排队,按 FIFO(先入先出队列)方式服务。 四、采用的语言四、采用的语言 MatLab 语言 源代码 clear; clc; M/M/1排队系统仿真 SimTotal请输入仿真顾客总数SimTotal; 仿真顾客总数; Lambda0.4; 到达率Lambda; Mu0.9; 服务率Mu; t_Arrivezeros1,SimTotal; t_Leavezeros1,SimTotal; ArriveNumzeros1,SimTotal; LeaveNumzeros1,SimTotal; Interval_Arrive-logrand1,SimTotal/Lambda;到达时间间隔 Interval_Serve-logrand1,SimTotal/Mu;服务时间 t_Arrive1Interval_Arrive1;顾客到达时间 ArriveNum11; for i2SimTotal t_Arriveit_Arrivei-1Interval_Arrivei; ArriveNumii; end t_Leave1t_Arrive1Interval_Serve1;顾客离开时间 LeaveNum11; for i2SimTotal if t_Leavei-1t_Arrivei t_Leaveit_ArriveiInterval_Servei; else t_Leaveit_Leavei-1Interval_Servei; end LeaveNumii; end t_Waitt_Leave-t_Arrive; 各顾客在系统中的等待时间 t_Wait_avgmeant_Wait; t_Queuet_Wait-Interval_Serve;各顾客在系统中的排队时间 t_Queue_avgmeant_Queue; Timepoint[t_Arrive,t_Leave];系统中顾客数随时间的变化 TimepointsortTimepoint; ArriveFlagzerossizeTimepoint;到达时间标志 CusNumzerossizeTimepoint; temp2; CusNum11; for i2lengthTimepoint if temp2 QueLengthiCusNumi-1; else QueLengthi0; end end QueLength_avgsum[0 QueLength].*[Time_interval 0] /Timepointend;系统平均等待队长 仿真图 figure1; set1,position,[0,0,1000,700]; subplot2,2,1; title各顾客到达时间和离去时间; stairs[0 ArriveNum],[0 t_Arrive],b; hold on; stairs[0 LeaveNum],[0 t_Leave],y; legend到达时间,离去时间; hold off; subplot2,2,2; stairsTimepoint,CusNum,b title系统等待队长分布; xlabel时间; ylabel队长; subplot2,2,3; title各顾客在系统中的排队时间和等待时间; stairs[0 ArriveNum],[0 t_Queue],b; hold on; stairs[0 LeaveNum],[0 t_Wait],y; hold off; legend排队时间,等待时间; 仿真值与理论值比较 disp[理论平均等待时间t_Wait_avg,num2str1/Mu-Lambda]; disp[理论平均排队时间t_Wait_avg,num2strLambda/Mu*Mu-Lambda]; disp[理论系统中平均顾客数,num2strLambda/Mu-Lambda]; disp[理论系统中平均等待队长,num2strLambda*Lambda/Mu*Mu-Lambda]; disp[仿真平均等待时间t_Wait_avg,num2strt_Wait_avg] disp[仿真平均排队时间t_Queue_avg,num2strt_Queue_avg] disp[仿真系统中平均顾客数,num2strCusNum_avg]; disp[仿真系统中平均等待队长,num2strQueLength_avg]; 五、数据结构五、数据结构 1.1.仿真设计算法(主要函数)仿真设计算法(主要函数) 利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分 布的随机变量作为每个顾客的服务时间 Interval_Arrive-logrand1,SimTotal/Lambda;Interval_Arrive-logrand1,SimTotal/Lambda;到达时间间隔,结果与调用 exprnd1/Lambdaexprnd1/Lambda,,mm函数产生的结果相同 Interval_Serve-logrand1,SimTotal/