单服务排队系统MATLAB仿真程序 2.docx

上传人:b****0 文档编号:18512285 上传时间:2023-08-19 格式:DOCX 页数:45 大小:117.84KB
下载 相关 举报
单服务排队系统MATLAB仿真程序 2.docx_第1页
第1页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第2页
第2页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第3页
第3页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第4页
第4页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第5页
第5页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第6页
第6页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第7页
第7页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第8页
第8页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第9页
第9页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第10页
第10页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第11页
第11页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第12页
第12页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第13页
第13页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第14页
第14页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第15页
第15页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第16页
第16页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第17页
第17页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第18页
第18页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第19页
第19页 / 共45页
单服务排队系统MATLAB仿真程序 2.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单服务排队系统MATLAB仿真程序 2.docx

《单服务排队系统MATLAB仿真程序 2.docx》由会员分享,可在线阅读,更多相关《单服务排队系统MATLAB仿真程序 2.docx(45页珍藏版)》请在冰点文库上搜索。

单服务排队系统MATLAB仿真程序 2.docx

单服务排队系统MATLAB仿真程序2

单服务台系统MATLAB仿真

学号:

15姓名:

缪晨

一、引言

排队是日常生活中经常遇到的现象。

通常,当人、物体或是信息的到达速率大于完成服务的速率时,即出现排队现象。

排队越长,意味着浪费的时间越多,系统的效率也越低。

在日常生活中,经常遇到排队现象,如开车上班、在超市等待结账、工厂中等待加工的工件以及待修的机器等。

总之,排队现象是随处可见的。

排队理论是运作管理中最重要的领域之一,它是计划、工作设计、存货控制及其他一些问题的基础。

Matlab是MathWorks公司开发的科学计算软件,它以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言以及庞大的用户群成为数学计算工具方面的标准,几乎所有的工程计算领域,Matlab都有相应的软件工具箱。

选用Matlab软件正是基于Matlab的诸多优点。

二、排队模型

三.仿真算法原理

(1)顾客信息初始化

根据到达率λ和服务率μ来确定每个顾客的到达时间间隔和服务时间间隔。

服务间隔时间可以用负指数分布函数exprnd()来生成。

由于泊松过程的时间间隔也服从负指数分布,故亦可由此函数生成顾客到达时间间隔。

需要注意的是exprnd()的输入参数不是到达率λ和服务率μ而是平均到达时间间隔1/λ和平均服务时间1/μ。

根据到达时间间隔,确定每个顾客的到达时刻.学习过C语言的人习惯于使用FOR循环来实现数值的累加,但FOR循环会引起运算复杂度的增加而在MATLAB仿真环境中,提供了一个方便的函数cumsum()来实现累加功能读者可以直接引用

对当前顾客进行初始化。

第1个到达系统的顾客不需要等待就可以直接接受服务其离开时刻等于到达时刻与服务时间之和。

(2)进队出队仿真

在当前顾客到达时刻,根据系统内已有的顾客数来确定是否接纳该顾客。

若接纳则根据前一顾客的离开时刻来确定当前顾客的等待时间、离开时间和标志位;若拒绝,则标志位置为0.

流程图如下:

四、程序实现

单服务台服务,服务参数M/M/1,λ=μ=,排队规则为FIFO,以分为单位,仿真时间240分钟。

仿真程序代码如下

%总仿真时间

Total_time=240;

%到达率与服务率

lambda=;

mu=;

%平均到达时间与平均服务时间

arr_mean=1/lambda;

ser_mean=1/mu;

%可能到达的最大顾客数(round:

四舍五入求整数)

arr_num=round(Total_time*lambda*2);

%顾客事件表初始化

events=[];

%按负指数分布产生各顾客达到时间间隔

events(1,:

)=exprnd(arr_mean,1,arr_num);

%各顾客的到达时刻等于时间间隔的累积和

events(1,:

)=cumsum(events(1,:

));

%按负指数分布产生各顾客服务时间

events(2,:

)=exprnd(ser_mean,1,arr_num);

%计算仿真顾客个数,即到达时刻在仿真时间内的顾客数

len_sim=sum(events(1,:

)<=Total_time);

%*****************************************

%计算第1个顾客的信息

%*****************************************

%第1个顾客进入系统后直接接受服务,无需等待

events(3,1)=0;

%其离开时刻等于其到达时刻与服务时间之和

events(4,1)=events(1,1)+events(2,1);

%其肯定被系统接纳,此时系统内共有1个顾客,故标志位

%置1

events(5,1)=1;

%其进入系统后,系统内已有成员序号为1

member=[1];

%*****************************************

%计算第i个顾客的信息

%*****************************************

fori=2:

arr_num

%如果第i个顾客的到达时间超过了仿真时间,则跳出循环

ifevents(1,i)>Total_time

break;

%如果第i个顾客的到达时间未超过仿真时间,则计算在其

%到达时刻系统中已有的顾客个数

elsenumber=sum(events(4,member)>events(1,i));

%如果系统已满,则系统拒绝第i个顾客,其标志位置0

ifnumber>=N+1

events(5,i)=0;

%如果系统为空,则第i个顾客直接接受服务

elseifnumber==0

%其等待时间为0

events(3,i)=0;

%其离开时刻等于到达时刻与服务时间之和

events(4,i)=events(1,i)+events(2,i);

%其标志位置1

events(5,i)=1;

member=[member,i];

%如果系统有顾客正在接受服务,且系统等待队列未满,则

%第i个顾客进入系统

elselen_mem=length(member);

%其等待时间等于队列中前一个顾客的离开时刻减去其到

%达时刻

events(3,i)=events(4,member(len_mem))-events(1,i);

%其离开时刻等于队列中前一个顾客的离开时刻加上其服

%务时间

events(4,i)=events(4,member(len_mem))+events(2,i);

%标识位表示其进入系统后,系统内共有的顾客数

events(5,i)=number+1;

member=[member,i];

end

end

end

end

五、仿真结果

events=

[]

number=

1

number=

0

events=

Columns1through7

0000000

000000

000000

Columns8through14

0000000

0000000

0000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

00000

00000

Columns8through14

0000000

0000000

0000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

1

number=

0

events=

Columns1through7

0000000

00000

00000

Columns8through14

0000000

0000000

0000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

0000000

0000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

1

number=

1

number=

0

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

0000000

0000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

000000

000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

1

number=

1

number=

0

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

000000

000000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

00000

00000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

1

number=

0

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

00000

00000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

0000

0000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

1

number=

0

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

0000

0000

Columns15through21

0000000

0000000

0000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

events=

Columns1through7

0000000

0000

0000

Columns8through14

0000000

0000

0000

Columns15through21

0000000

000000

000000

Columns22through28

0000000

0000000

0000000

Columns29through35

0000000

0000000

0000000

Columns36through42

0000000

0000000

0000000

Columns43through48

000000

000000

000000

number=

0

events=

Columns1through7

0000000

0000

0000

Columns8through14

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2