- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用 Matlab 实现排队过程的仿真李鹏王珊珊摘 要: 排队问题仿真的目的是要寻找服务对象与服务设置之间的最佳配置, 保证系统具有最
用 Matlab 实现排队过程的仿真
李鹏
王珊珊
摘 要: 排队问题仿真的目的是要寻找服务对象与服务设置之间的最佳配置, 保证系统具
有最佳的服务效率与最合理的配置。
通过 Matlab 平台对单服务台有限队长的排队系统进行
过程仿真, 可以协助设计人员分析顾客的需求, 从而合理规划出符合实际条件的服务设施。
关键词: 排队;
Matlab; 仿真实现
1 引言
排队是日常生活中经常遇到的现象 , 例如: 出行坐火车, 等待检票进站的排队; 到食堂打饭所形成的排队; 学校打预防 针、 体检所形成的排队; 看电影、 旅游时, 前往售票处购票形 成的排队等; 另一种排队是物的排队, 例如: 使用 FTP 或 P2P 下载传递文件; 流水线上生产的产品等待接受检验; 维修室的 故障仪器等待维修等。 排队现象的要素包括两个方面的内容 : 一是需要接受服务的顾客; 二是提供服务的服务台。 最近几十 年来, 排队理论在计算机网络、 通信、 交通以及其它公共事业 领域的应用越来越广泛, 已成为分析和设计这些系统的一个不 可或缺的工具。
Matlab 是 美 国 Math Works 公司研制开发的一套用于 数 值 计算的交互式软件系统, 具有强大的数值分析、 矩阵运算、 信 息处理、 图形显示等功能, 其强大的数据处理能力和丰富的工
采用面向对象 的 仿 真 方 法 , 选取事件发生时刻为仿真时
钟。 由于 Matlab 中的计算均为矩阵 计 算 , 故利用矩阵形式建 立 事 件 参 数 表 events, 矩 阵 events 的行表示顾客的 不 同 参 数 , 列表示不同的顾客。 针对 M/M/1/N/∞ 模型的特点, 建立顾客信 息如表 1 所示。
表 1 顾客信息表
其中, 标志位
具箱使得它 的编程极为方便 。 正是基于此原因 ,
Matlab 软件来对 M/M/1/N/∞ 排队模型进行仿真。
2 排队模型
单服务台排队系统的结构模型如图 1 所示。
才 选 择 了
仿真算法原理
建立顾客信息后 , 面 向 对象的仿真模型算法分为以下两
3.2
步。
3.2.1 顾客信息初始化
(1) 根据到达率 λ 和 服 务 率 μ 来确定每个顾客的到达时 间间隔和服务时间间隔。 服务间隔时间可以用负指数分布函数 exprnd () 来生成。 由于泊松过程的时间间隔也服从负指数分 布, 故亦可由此函数生成顾客到达时间间隔。 需要注意的是, exprnd () 的输入参数不是到达率 λ 和 服 务 率 μ, 而 是 平 均 到 达时间间隔 1/λ 和平均服务时间 1/μ。
(2) 根据到达时间间隔, 确定每个顾客的到达时刻。 学习 过 C 语言的人习惯于使用 for 循 环 来 实 现 数 值 的 累 加 , 但 for 循环会引起运算复杂度的增加 , 而 在 Matlab 仿 真 环 境 中 , 提
图 1 单服务台排队系统的结构模型
M/M/1/N/∞ 排队模型表示顾客源为无限, 顾客的到达相互
独立, 到达规律服从泊松分布 ,
平均到达 率为 λ;
单 服 务 台 ,
队长限制为 N (即系统中最多允许有 N 个顾客在排队, 再来的
顾客将被拒绝进入系统), 先到先服务, 各顾客的服务时间相 互独立, 且服从负指数分布, 平均服务率为 μ。
3 问题仿真
建立顾客信息
3.1
供了一个方便的函数 cumsum () 来实现累加功能, 读者可以直接引用。(3
供了一个方便的函数 cumsum () 来实现累加功能, 读者可以直
接引用。
(3) 对当前顾客进行初始化。 第 1 个到达系统的顾客不需 要等待就可以直接接受服务, 其离开时刻等于到达时刻与服务 时间之和。
3.2.2 进队出队仿真
在当前顾客到达时刻, 根据系统内已有的顾客数来确定是 否接纳该顾客。 若接纳, 则根据前一顾客的离开时刻来确定当 前顾客的等待时间、 离开时间和标志位; 若拒绝, 则标志位置 为 0。
仿真的具体流程如图 2 所示。
%
初始化顾客源
%*****************************************
%总仿真时间
Total_time = 10;
%队列最大长度
N = 20;
%到达率与服务率
lambda = 10;
mu = 6;
%平均到达时间与平均服务时间
arr_mean = 1/lambda;
ser_mean = 1/mu;
%可能到达的最大顾客数(round:四舍五
文档评论(0)