北邮信息工程通信网理论基础实验2报告M 排队系统.docx

上传人:b****4 文档编号:5424851 上传时间:2022-12-16 格式:DOCX 页数:4 大小:20.24KB
下载 相关 举报
北邮信息工程通信网理论基础实验2报告M 排队系统.docx_第1页
第1页 / 共4页
北邮信息工程通信网理论基础实验2报告M 排队系统.docx_第2页
第2页 / 共4页
北邮信息工程通信网理论基础实验2报告M 排队系统.docx_第3页
第3页 / 共4页
北邮信息工程通信网理论基础实验2报告M 排队系统.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北邮信息工程通信网理论基础实验2报告M 排队系统.docx

《北邮信息工程通信网理论基础实验2报告M 排队系统.docx》由会员分享,可在线阅读,更多相关《北邮信息工程通信网理论基础实验2报告M 排队系统.docx(4页珍藏版)》请在冰豆网上搜索。

北邮信息工程通信网理论基础实验2报告M 排队系统.docx

北邮信息工程通信网理论基础实验2报告M排队系统

信息与通信工程学院通信网理论基础实验报告班级:

姓名:

学号:

序号:

日期:

通信网理论基础实验报告实验二M/M/1排队系统一、实验目的M/M/1是最简单的排队系统,其假设到达过程是一个参数为的Poisson过程,服务时间是参数为的负指数分布,只有一个服务窗口,等待的位置有无穷多个,排队的方式是FIFO。

M/M/1排队系统的稳态分布、平均队列长度,等待时间的分布以及平均等待时间,可通过泊松过程、负指数分布、生灭过程以及Little公式等进行理论上的分析与求解。

本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验内容根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、顾客到达模式设到达过程是一个参数为的Poisson过程,则长度为的时间内到达k个呼叫的概率服从Poisson分布,即,其中λ0为一常数,表示了平均到达率或Poisson呼叫流的强度。

2、服务模式设每个呼叫的持续时间为,服从参数的负指数分布,即其分布函数为。

3、服务规则先进先服务的规则(FIFO)4、理论分析结果在该M/M/1系统中,设,则稳态时的平均等待队长为(不是,顾客的平均等待时间为。

第1页通信网理论基础实验报告三、实验内容1、仿真时序图示例本实验中的排队系统为当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO方式服务为M/M/1排队系统。

理论上,我们定义服务员结束一次服务或者有顾客到达系统均为一次事件。

为第i个任何一类事件发生的时间,其时序关系如下图所示。

S1S2S3S4D2D3D4D5b0b1b2b3b4b5b6b7b8b9t1t2c1t3c2t4c3t5150tt0A3A4A5A1A2bi 第i个任何一类事件发生的时间ti 第i个顾客到达类事件发生的时间ci 第i个顾客离开类事件发生的时间Ai 为第i-1个与第i个顾客到达时间间隔Di 第i个顾客排队等待的时间长度Si 第i个顾客服务的时间长度顾客平均等待队长及平均排队等待时间的定义为1T1nQtdtRiT0QnQnTi1其中,为在时间区间上排队人数乘以该区间长度。

1ndnDnDini1Di为第i个顾客排队等待时间。

第2页通信网理论基础实验报告2、仿真设计算法

(1)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流。

(2)分别构建一个顾客到达队列和一个顾客等待队列。

顾客到达后,首先进入到达队列的队尾排队,并检测是否有顾客等待以及是否有服务台空闲,如果无人等待并且有服务员空闲则进入服务状态,否则顾客将进入等待队列的队尾等待。

(3)产生符合负指数分布的随机变量作为每个顾客的服务时间。

(4)当服务员结束一次服务后,就取出等待队列中位于队头的顾客进入服务状态,如果等待队列为空则服务台空闲等待下一位顾客的到来。

(5)由事件来触发仿真时钟的不断推进。

每发生一次事件,记录下两次事件间隔的时间以及在该时间段内排队的人数。

(6)在系统达到稳态时,计算系统的平均等待时间以及平均等待队长。

3、仿真结果分析分析仿真数据,统计顾客的平均等待时间与顾客的平均等待队长,计算其方差,分析与理论计算结果的吻合程度,验证仿真程序的正确性。

四、程序基本信息1、设计语言及开发工具:

MATLAB。

2、数据结构:

本次实验由于算法简单,每次计算的数据之间也不存在任何关系(独立)的,因此程序设计时只采用了诸如串、数组等简单形式用于存储数据,复杂的数据结构思想诸如链表、树等基本没有采用。

3、主要函数(算法):

本程序采用MATLAB语言编写,包含4个主要的M文件。

其中calctheoqueuelength.m和calctheowaittime.m函数的算法比较简单,将在simulateMM1中介绍。

还有一个MM1.fig文件存储程序界面信息,不作介绍。

(1)MM1.m文件这个文件里涉及本次程序的窗口部分(GUI),以下仅对于实际操作有关的函数进行介绍。

这些函数的都比较简单,因此它们的工作流程用文字说明。

下页图是本程序的主界面。

○functionsimulate_CallbackhObjecteventdatahandles1单击“开始仿真”按钮后触发的函数,实现给定到达率、离去率和顾客数的M/M/1系统仿真。

它首先获取用户的输入并检验是否合法,然后调用simulateMM1函数进行仿真并给出相应结果(平均等待队长和等待时间)。

第3页通信网理论基础实验报告○functiondraw1_CallbackhObjecteventdatahandles2单击左边的“理论曲线”按钮后触发的函数,按照给定的到达率精度和离去率画出平均等待队长和平均等待时间与到达率的理论关系曲线。

它首先检验输入的合法性,并根据到达率精度和离去率(到达率需小于离去率)产生不同的到达率,分别调用calctheowaittime和calctheoqueuelength计算对应到达率和离去率下的理论平均等待队长和平均等待时间,产生理论曲线。

这个函数不进行仿真,因此顾客数的变量没有使用。

○functiondraw3_CallbackhObjecteventdatahandles3单击左边“仿真曲线”按钮后触发的函数,按照给定的到达率精度、离去率和顾客数进行仿真并画出平均等待队长和平均等待时间与到达率的关系曲线。

它首先检验输入的合法性,根据到达率精度和离去率产生不同的到达率,并调用simulateMM1进行仿真并画出曲线(画图的代码在simulateMM1里),另外它与simulate_Callback调用simulateMM1的方式是不同的,在介绍simulateMM1函数时会详细说明。

○functiondraw2_CallbackhObjecteventdatahandles4单击右边的“理论曲线”按钮后触发的函数,按照给定的离去率精度和到达率画出平均等待队长和平均等待时间与到达率的理论关系曲线。

其流程与draw1_Callback函数类似。

○functiondraw4_CallbackhObjecteventdatahandles5第4页通信网理论基础实验报告单击右边“仿真曲线”按钮后触发的函数,按照给定的离去率精度、到达率和顾客数进行仿真并画出平均等待队长和平均等待时间与到达率的关系曲线。

流程与draw3_Callback函数类似。

(2)simulateMM1.m文件本程序最重要的函数,实现的主要功能是:

已知到达率、离去率和总顾客数,进行M/M/1系统仿真,得出平均等待时间和平均等待队长随时间的分布,画出图形并与理论值进行比较;它拥有5个输入参数:

a.totalconsumers:

顾客数(整数);b.arrivingrate:

到达率(取值01的实数);c.leavingrate:

离去率(取值01的实数,比到达率大);d.mode:

运行模式,取值0、1、2,对应三种模式,其中有两种是为MM1函数中的draw3_Callback和draw4_Callback设计的,具体见以下说明;e.firstrunning:

取值为0或1,在其中两种模式中判定是否为首次运行(仿真),具体见以下说明。

由于M/M/1是一个非常简单的排队系统,状态数少,且当到达率小于离去率时系统就可进入稳态,因此对它进行仿真,只需要通过事件的触发不断推动时钟前进即可,系统状态本身不需要用很多变量记录。

这也是本程序的仿真设计思想。

这个函数流程可分为四部分,前三部分都进行了推动时钟前进的操作。

本函数的流程较为复杂,以下用流程图说明整个函数的工作过程。

某些比较特殊的地方会加一标注。

流程图第一部分:

第5页通信网理论基础实验报告本段流程主要产生整个系统仿真时产生的服从泊松过程的到达间隔和满足负指数分布的服务(离去)时间间隔,以便进行后续的仿真过程。

注释:

(1)产生满足泊松过程(负指数分布)的时间间隔的方法:

由泊松过程的定义可得,长度为的时间内到达k个呼叫的概率服从,k1时该式写成,两边取自然对数得,其中在MATLAB中可用rand函数随机生成,因此实现该功能的语句为-logrand/x,其中x表示参数。

(2)产生时间间隔时,容易出现对应的到达时刻晚于离去时刻的情况。

若果完全采用这些时间间隔仿真,就会发生系统空闲。

系统空闲状态虽然也是M/M/1的稳态,但由于本程序主要统计平均等待时间和等待队长,这些都是建立在系统中至少有一人的情况下的,因此如果不对这些导致系统空闲的时间间隔进行处理的话,累积下来,最终的仿真结果和理论值相比会出现非常大的偏差。

本程序的处理办法是让对应的离开时间间隔变长,使得当对应有一个顾客离开时,恰好有一个顾客到达。

虽然这样系统不是在完全的泊松流下进行仿真,但结果要理想得多。

第6页通信网理论基础实验报告流程图第二部分:

本段流程根据前面生成的时间间隔完成所有的仿真工作。

具体思想前面已有所描述。

流程图第三部分:

第7页通信网理论基础实验报告2根据事件触发时刻把整个时间轴划分为若干个区间按照触发时刻推动时钟前进,每经过一个区间,计算所有人的等待时间和此刻系统经过的时间1到达时刻小于系统经过的时间对应时刻2?

总顾客数加一,到达时刻加上到达时间间隔,获得下一个顾客的到达时刻计算和记录平均队长和平均等待时间,记录当前事件触发时刻33本段流程进行第三次推动时钟的操作,每经过一个事件触发的时刻计算和统计从开始仿真到当前时刻所有人的等待时间、系统经过的时间、平均等待队长和平均等待时间(前两项为后两项所用),为后面画图做好准备。

注释:

(1)当前区间的所有人的等待时间的计算方法是队长乘以区间长度,通过当前事件的触发时刻和上次事件的触发时刻(注释(3)位置记录的)就可算得区间长度。

(2)这段流程用于统计到目前为止总共到达系统的顾客数。

若是到达时刻小于系统经过的时间对应的时刻,表明这个区间里有顾客到来。

第8页通信网理论基础实验报告(3)平均队长的计算方法:

所有人的等待时间除以系统总共经过的时间,1n即QnRi,Ri为所有人的等待时间;平均等待时间的计算方法:

所有人Ti11n的等待时间除以总共到达系统的顾客数,即dnDini1,Di为第i个顾客排队等待时间。

流程图第四部分:

最后一段流程,根据工作模式要求作图。

三种工作模式(变量名mode):

0:

作平均等待队长、平均等待时间和它们的差值与时间的关系图。

执行simulate_Callback函数时按此模式调用simulateMM1函数。

1:

作平均等待队长和平均等待时间与到达率的关系图。

执行draw3_Callback函数时按此模式调用simulateMM1函数。

第9页通信网理论基础实验报告2:

作平均等待队长和平均等待时间与离去率的关系图。

执行draw4_Callback函数时按此模式调用simulateMM1函数。

注释:

(1)按模式1、2工作时需要一个小判断,第一次运行时需要打开一个新的画图窗口,以后就不用了,否则最终图像会分散到许许多多窗口里。

(2)理论值计算方法:

设,则稳态时的平均等待队长为,顾客的平均等待时间为。

它们也是calctheoqueuelength.m和calctheowaittime.m函数的算法。

因为这段算法在MM1.m函数中也要调用,因此单独写了两个函数。

五、程序运行结果与分析1、M/M/1系统仿真与给定λ和μ条件下系统的平均队列长度和平均等待时间的分布曲线:

即便采用相同的值,每次仿真出来的结果也是有区别的,以下只选取几组有代表性的结果。

(1)λ0.2,μ0.5,顾客数为500

(2)λ0.2,μ0.5,顾客数为5000由上两组图对比可以看到,仿真的顾客数越长,最终结果越理想,因此建议顾客数不小于1000。

(3)λ0.39,μ0.4,顾客数5000第10页通信网理论基础实验报告由上图可见,当到达率与离去率近似相同时,系统仿真的误差较大,也就是说此时系统很难进入稳态。

2、平均等待队长和平均等待时间随λ和μ的变化曲线:

这里需要输入一个精度,精度越小,图形越精密,当然随之而来的是程序运行的时间增加。

另外本程序的作图不考虑到达率大于或等于离去率的情况,因为那时系统已经无法进入稳态,作图没有意义。

(1)平均等待队长和平均等待时间随λ的变化曲线此处输入的离去率μ是横坐标的终点,取0.99,精度0.001,顾客数5000理论曲线仿真曲线,有误差,但大致走向相同第11页通信网理论基础实验报告由上面两图可得,当到达率远小于离去率时,平均等待队长和时间都很小,但当到达率逐渐接近离去率时,平均等待队长和时间以指数形式增长,最终将趋近于正无穷。

(2)平均等待队长和时间随离去率μ的变化曲线此处输入的到达率是横坐标的起点,取0.01,精度0.001,顾客数5000理论曲线仿真曲线该曲线基本就是

(1)中曲线颠倒过来的产物。

当离去率和到达率近似相同时,平均等待队长和时间都非常大,但当离去率逐渐远离到达率时,平均等待队长和时间将急剧减小,最终趋近于0。

六、遇到的主要问题1、仿真结果出现重大错误(如平均队长出现负值)第12页通信网理论基础实验报告到达率始终要小于离去率的,不满足这一点的系统无法进入稳态,当然也就无法正确仿真。

2、仿真结果和理论值有较大的偏差。

这是本次实验我遇到的最为棘手的问题,可能源于以下几种情况。

(1)仿真时出现系统空闲。

针对它的解决方法在前面有所提及。

(2)平均等待时间和平均等待队长的计算方法有误。

这个需要慢慢修改,保证改正后的结果与正确算法完全相同。

(3)到达率和离去率比较接近,此时系统需要更多顾客数,否则结果误差会比较大。

(4)要指出的一点是,老师给出的指导书有一处地方是错的,平均等待队长的理论公式是或而不是。

这点也曾经困扰我很久。

3、使用plotxy函数作图时,要求x和y向量长度相同,否则会出现错误。

修改x和y向量使其长度相同即可,必要时可增减数值。

七、实验总结第13页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1