




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通信网理论基础实验二:二次排队问题M/M/1排队系统的级联一、 实验目的M/M/1是最简单的排队系统,其假设到达过程是一个参数为的Poisson过程,服务时间是参数为的负指数分布,只有一个服务窗口,等待的位置有无穷多个,排队的方式是FIFO。M/M/1排队系统的稳态分布、平均队列长度,等待时间的分布以及平均等待时间,可通过泊松过程、负指数分布、生灭过程以及Little公式等进行理论上的分析与求解。本次实验的目标有两个: 实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。 仿真两个M/M/1级联所组成
2、的排队网络,统计各个队列的平均队列长度与平均系统时间等值,验证Kleinrock有关数据包在从一个交换机出来后,进入下一个交换机时,随机按负指数分布取一个新的长度的假设的合理性。二、 实验原理1、 M/M/1排队系统根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。设到达过程是一个参数为的Poisson过程,则长度为的时间内到达个呼叫的概率服从Poisson分布,即, ,其中0为一常数,表示了平均到达率或Poisson呼叫流的强度。设每个呼叫的持续时间为,服从参数为的负指数分布,即其分布函数为.服务规则采用先进先服务的规则(FI
3、FO)。在该M/M/1系统中,设,则稳态时的平均队长为,顾客的平均等待时间为。2、 二次排队网络由两个M/M/1排队系统所组成的级联网络,顾客以参数为的泊松过程到达第一个排队系统A,服务时间为参数为的负指数分布;从A出来后直接进入第二个排队系统B,B的服务时间为参数为的负指数分布,且与A的服务时间相互独立。在该级联网络中,如稳态存在,即且,则两个排队系统相互独立,顾客穿过网络的总时延为各个排队系统的时延之和,即。如将该模型应用于数据包穿越网络的平均时延的计算,假设数据包的包长服从负指数分布,平均包长为;排队系统A的信道速率为,B的信道速率为。为保证两次排队的独立性,Kleinrock假设数据包
4、在从一个交换机出来后,进入下一个交换机时,随机按负指数分布取一个新的长度。三、 实验内容1、 仿真时序图示例本实验中的排队系统为当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO方式服务为M/M/1排队系统。理论上,我们定义服务员结束一次服务或者有顾客到达系统均为一次事件。为第i个任何一类事件发生的时间,其时序关系如下图所示。bi第i个任何一类事件发生的时间ti第i个顾客到达类事件发生的时间ci第i个顾客离开类事件发生的时间Ai为第i-1个与第i个顾客到达时间间隔Di第i个顾客排队等待的时间长度Si第i个顾客服务的时间长度顾客平均等待队长及平均排队等
5、待时间的定义为其中,为在时间区间上排队人数乘以该区间长度。为第i个顾客排队等待时间。2、 仿真设计算法(1)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流。(2)对每个排队系统,分别构建一个顾客到达队列和一个顾客等待队列。顾客到达后,首先进入到达队列的队尾排队,并检测是否有顾客等待以及是否有服务台空闲,如果无人等待并且有服务员空闲则进入服务状态,否则顾客将进入等待队列的队尾等待。(3)产生符合负指数分布的随机变量作为每个顾客的服务时间。(4)当服务员结束一次服务后,就取出等待队列中位于队头的顾客进入服务状态,如果等待队列为空则服务台空闲等待下一位顾客的到来。(5)顾客结束A系统的服务
6、后,立即进入B系统排队等待服务。(6)由事件来触发仿真时钟的不断推进。每发生一次事件,记录下两次事件间隔的时间以及在该时间段内排队的人数。(7)在排队网络达到稳态时,计算顾客平均系统时间以及平均队长。3、 仿真结果分析(1)分析仿真数据,统计顾客的平均系统时间与平均队长,计算其方差,分析与理论计算结果的吻合程度,验证仿真程序的正确性。(2)验证Kleinrock假设的合理性。假设包长不变,即二次排队不独立,统计平均值与理论值的相近程度。4、 仿真结果分析分析仿真数据,统计顾客的平均等待时间与顾客的平均等待队长,计算其方差,分析与理论计算结果的吻合程度,验证仿真程序的正确性。四、 实验要求1.
7、两人一组,利用MATLAB实现排队网络的仿真模拟。2. 统计给定和条件下系统的平均队长和平均系统时间,与理论结果进行比对。3. 统计单个系统的平均队长和平均系统时间随的变化曲线。五、 仿真模拟和理论仿真结果的对比1. 仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:ArriveInterval=-log(rand(1,SimNum)/Lambda;%到达时间间隔ServeInterval=-log(rand(1,SimNum)/Mu;%服务时间ArriveTime(1)=ArriveInterval(1);%
8、顾客到达时间时间计算SystemTime=LeaveTime-ArriveTime; %各顾客的系统时间WaitTime=SystemTime-ServeInterval;%各顾客的等待时间由事件来触发仿真时钟的不断推进。每发生一次事件,记录下两次事件间隔的时间以及在该时间段内排队的人数:TimePoint=ArriveTime,LeaveTime;%系统中顾客数随时间的变化ArriveFlag=zeros(size(TimePoint);%到达时间标志CusNumAvg=sum(CusNumStart.*IntervalTime 0 )/TimePoint(end);%系统中平均顾客数Sys
9、CusNum=zeros(size(TimePoint);QueLengthAvg=sum(0 QueLength.*IntervalTime 0 )/TimePoint(end);%系统平均等待队长ArriveTime每个顾客的到达时间LeaveTime每个顾客的离开时间ArriveInterval顾客的到达时间间隔ServeInterval每个顾客的服务时间ArriveNum到达总人数SimNum仿真人数SystemTime每个人的系统时间SystemTimeAvg平均系统时间WaitTime排队等待时间WaitTimeAvg平均排队等待时间SysCusNum系统中的顾客人数Interva
10、lTime事件间隔时间CusNumStart系统中的顾客数?CusNumAvgCusNum_avg系统中的平均顾客数QueLengthAvgQueLength_avg平均等待队长2. 算法的流程图3. 仿真结果分析设置Lambda=0.5,Mu=0.9,顾客的平均等待时间与顾客的平均等待队长,计算其方差如下:从上表可以看出,通过这种模型和方法仿真的结果和理论值十分接近,增加仿真顾客数时,可以得到更理想的结果。当仿真人数超过人时,仿真结果与理论结果已经十分接近。在误差允许的范围内,认为相符。实验结果截图如下(SimNum分别为100、1000、10000、)100人仿真结果与理论结果对比1000
11、人仿真结果与理论对比10000人仿真结果与理论结果对比人仿真结果与理论对比人仿真结果与理论结果对比4. 实验源代码语言:matlab代码:clear;clc;%M/M/1排队系统仿真SimNum=input(请输入仿真顾客总数SimNum=); %仿真顾客总数;Lambda=input(请输入到达率Lambda=); %到达率LambdaMu=input(请输入服务率Mu=); %到达率MuArriveTime=zeros(1,SimNum); LeaveTime=zeros(1,SimNum);ArriveNum=zeros(1,SimNum);LeaveNum=zeros(1,SimNum
12、);ArriveInterval=-log(rand(1,SimNum)/Lambda;%到达时间间隔ServeInterval=-log(rand(1,SimNum)/Mu;%服务时间ArriveTime(1)=ArriveInterval(1);%顾客到达时间ArriveNum(1)=1;fori=2:SimNumArriveTime(i)=ArriveTime(i-1)+ArriveInterval(i);ArriveNum(i)=i;endLeaveTime(1)=ArriveTime(1)+ServeInterval(1);%顾客离开时间LeaveNum(1)=1;fori=2:Si
13、mNumifLeaveTime(i-1)ArriveTime(i)LeaveTime(i)=ArriveTime(i)+ServeInterval(i);elseLeaveTime(i)=LeaveTime(i-1)+ServeInterval(i);endLeaveNum(i)=i;endSystemTime=LeaveTime-ArriveTime; %各顾客的系统时间SystemTimeAvg=mean(SystemTime);WaitTime=SystemTime-ServeInterval;%各顾客的等待时间WaitTimeAvg=mean(WaitTime);TimePoint=A
14、rriveTime,LeaveTime;%系统中顾客数随时间的变化TimePoint=sort(TimePoint);ArriveFlag=zeros(size(TimePoint);%到达时间标志SysCusNum=zeros(size(TimePoint);temp=2;SysCusNum(1)=1;fori=2:length(TimePoint)if (temp=2QueLength(i)=SysCusNum(i)-1;elseQueLength(i)=0;endendQueLengthAvg=sum(0 QueLength.*IntervalTime 0 )/TimePoint(end
15、);%系统平均等待队长%仿真图figure(1);set(1,position,0,0,1000,700,Color,1 1 1);subplot(2,2,1);% title(各顾客到达时间和离去时间);stairs(0 ArriveNum,0 ArriveTime,r);holdon;stairs(0 LeaveNum,0 LeaveTime,g);legend(到达时间,离去时间);holdoff;title(各顾客到达时间和离去时间);xlabel(顾客数);ylabel(时间);subplot(2,2,2);stairs(TimePoint,SysCusNum,r)title(系统等
16、待队长分布);xlabel(时间);ylabel(队长);subplot(2,2,3);stairs(0 ArriveNum,0 WaitTime,r);holdon;stairs(0 LeaveNum,0 SystemTime,g);holdoff;title(各顾客在系统中的等待时间和系统时间);legend(等待时间,系统时间);xlabel(顾客数);ylabel(时间);%仿真值与理论值比较disp(理论平均系统时间SystemTimeAvg=,num2str(1/(Mu-Lambda);disp(理论平均等待时间WaitTimeAvg=,num2str(Lambda/(Mu*(Mu
17、-Lambda);disp(理论系统中平均顾客数CusNumAvg=,num2str(Lambda/(Mu-Lambda);disp(理论系统中平均等待队长QueLengthAvg=,num2str(Lambda*Lambda/(Mu*(Mu-Lambda);disp(仿真平均系统时间SystemTimeAvg=,num2str(SystemTimeAvg)disp(仿真平均等待时间WaitTimeAvg=,num2str(WaitTimeAvg)disp(仿真系统中平均顾客数CusNumAvg=,num2str(CusNumAvg);disp(仿真系统中平均等待队长QueLengthAvg=
18、,num2str(QueLengthAvg);六、 单个系统的平均队长和平均系统时间随/的变化曲线1. 实现原理默认仿真人数为人,为0.5,故只需要变化就可以使得/都变化。主函数调用功能函数的平均队长和平均系统时间的结果进行绘图。此实验中,去0.10.8,故/取值范围是0.21.6。2. 仿真算法主函数:Mu=0.5;Lambda=0.1:0.001:0.8;x=2.*Lambda;QueLengthAvg=zeros(size(Lambda);SystemTimeAvg=zeros(size(Lambda);fori=1:700QueLengthAvg(i),SystemTimeAvg(i)
19、=LengthTime(Lambda(i);end%仿真图figure(1);set(1,position,0,0,1000,700,Color,1 1 1);subplot(1,2,1);stairs(x,QueLengthAvg,b)title(平均队长分队和/的图像);xlabel(/);ylabel(平均队长);subplot(1,2,2);stairs(x,SystemTimeAvg,y)title(平均系统时间随/的分布);xlabel(/);ylabel(平均系统时间);功能函数:function QueLengthAvg ,SystemTimeAvg=LengthTime(La
20、mbda)%Mu默认为0.5%输入Lambda返回平均队长和平均系统时间%lambda/Mu就是2*lambdaSimNum=;Mu=0.5;ArriveTime=zeros(1,SimNum); LeaveTime=zeros(1,SimNum);ArriveNum=zeros(1,SimNum);LeaveNum=zeros(1,SimNum);ArriveInterval=-log(rand(1,SimNum)/Lambda;%到达时间间隔ServeInterval=-log(rand(1,SimNum)/Mu;%服务时间ArriveTime(1)=ArriveInterval(1);%
21、顾客到达时间ArriveNum(1)=1;fori=2:SimNumArriveTime(i)=ArriveTime(i-1)+ArriveInterval(i);ArriveNum(i)=i;endLeaveTime(1)=ArriveTime(1)+ServeInterval(1);%顾客离开时间LeaveNum(1)=1;fori=2:SimNumifLeaveTime(i-1)ArriveTime(i)LeaveTime(i)=ArriveTime(i)+ServeInterval(i);elseLeaveTime(i)=LeaveTime(i-1)+ServeInterval(i);endLeaveNum(i)=i;endSystemTime=LeaveTime-ArriveTime; %各顾客的系统时间SystemTimeAvg=mean(SystemTime);TimePoint=ArriveTime,LeaveTime;%系统中顾客数随时间的变化TimePoint=sort(TimePoint);ArriveFlag=zeros(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DZ/T 0016-1991实验室用摇床
- CJ/T 93-1999供水用偏心信号蝶阀
- CJ/T 542-2020模块化雨水储水设施
- CJ/T 496-2016垃圾专用集装箱
- CJ/T 456-2014气体保压式叠压供水设备
- CJ/T 227-2006垃圾生化处理机
- 在线学习资源初级社会工作者试题及答案
- 中级社会工作者应试策略分享及试题及答案
- 项目分析软件评测师试题及答案
- 颌面正畸学试题及答案
- 小微型客车租赁经营备案表
- 教育培训机构办学许可证申请书(样本)
- 大直径泥水盾构刀盘应用与管理
- 尾矿坝施工方案
- 瓷砖业务员提成方案
- 2022年一级注册计量师案例分析真题
- “三级”安全安全教育记录卡
- 心脏骤停课件
- 上海初中地理会考复习资料
- 福州一中历年自主招生物理试卷(整理)
- 信义玻璃参数表
评论
0/150
提交评论