当前位置:文档之家› 单服务排队系统MATLAB仿真程序

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

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

单服务台系统MATLAB仿真

学号:1040408115 姓名:缪晨

一、引言

排队是日常生活中经常遇到的现象。通常,当人、物体或是信息的到达速率大于完成服务的速率时,即出现排队现象。排队越长,意味着浪费的时间越多,系统的效率也越低。在日常生活中,经常遇到排队现象,如开车上班、在超市等待结账、工厂中等待加工的工件以及待修的机器等。总之,排队现象是随处可见的。排队理论是运作管理中最重要的领域之一,它是计划、工作设计、存货控制及其他一些问题的基础。Matlab是MathWorks公司开发的科学计算软件,它以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言以及庞大的用户群成为数学计算工具方面的标准,几乎所有的工程计算领域,Matlab都有相应的软件工具箱。选用Matlab软件正是基于Matlab的诸多优点。

二、排队模型

三.仿真算法原理

(1)顾客信息初始化

根据到达率λ和服务率μ来确定每个顾客的到达时间间隔和服务时间间隔。服务间隔时间可以用负指数分布函数exprnd()来生成。由于泊松过程的时间间隔也服从负指数分布, 故亦可由此函数生成顾客到达时间间隔。需要注意的是exprnd()的输入参数不是到达率λ和服务率μ 而是平均到达时间间隔 1/λ和平均服务时间1/μ。

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

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

(2)进队出队仿真

在当前顾客到达时刻,根据系统内已有的顾客数来确定是否接纳该顾客。若接纳则根据前一顾客的离开时刻来确定当前顾客的等待时间、离开时间和标志位;若拒绝,则标志位置为0.

流程图如下:

四、程序实现

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

仿真程序代码如下

%总仿真时间

Total_time = 240;

%到达率与服务率

lambda = 0.1;

mu =0.1;

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

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 个顾客的信息

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

for i = 2:arr_num

%如果第i 个顾客的到达时间超过了仿真时间,则跳出循环if events(1,i)>Total_time

break;

%如果第i 个顾客的到达时间未超过仿真时间,则计算在其%到达时刻系统中已有的顾客个数

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

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

if number >= N+1

events(5,i) = 0;

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

else if number == 0

%其等待时间为0

events(3,i) = 0;

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

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

%其标志位置1

events(5,i) = 1;

member = [member,i];

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

else len_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 =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 0 0 0 0 0

1.0000 0 0 0 0 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 0 0 0

1.0000 0 1.0000 0 0 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

number =

1

number =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 0 0 0

1.0000 0 1.0000 0 0 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

number =

1

number =

1

number =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 0 0 0 0

1.0000 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

number =

1

number =

1

number =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 0 0 0 0

1.0000 0 0 0 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 150.4584 0 0 0

1.0000 0 0 1.0000 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

number =

1

number =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 150.4584 0 0 0

1.0000 0 0 1.0000 0 0 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432

9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403

0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 150.4584 0 162.1652 0

1.0000 0 0 1.0000 0 1.0000 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

number =

1

number =

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

Columns 8through14

106.9312 124.9101 129.9854 143.3425 147.5878 151.3098 154.2113 30.0267 1.0235 0.5680 7.1159 7.1488 10.8554 1.0530

0 0 0 0 0 0 0

136.9579 0 0 150.4584 0 162.1652 0

1.0000 0 0 1.0000 0 1.0000 0

Columns 15through21

162.1843 186.9750 201.7163 202.6228 221.4368 223.3506 229.5432 9.9629 21.9640 2.4814 9.4228 14.2009 9.0656 23.3868 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 22through28

229.5819 255.0699 263.2190 285.6008 285.9892 339.7321 342.2822 20.2516 0.5970 0.4486 5.5302 28.1709 14.4911 10.4084 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 29through35

344.2996 345.7073 370.4249 379.5933 393.0690 395.2996 403.7064 1.9700 41.7316 31.4600 17.7792 4.3214 3.1235 4.3426 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 36through42

404.6424 421.6883 435.0138 454.2870 474.2329 475.6337 481.0860 7.9646 6.0329 12.1631 2.9478 16.6625 3.7575 16.9548 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 43through48

487.0670 506.3803 507.9699 512.7172 523.1882 529.8581

9.9836 4.6901 2.4817 25.1175 0.7323 2.5397

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

events =

Columns 1through7

5.6418 13.2050 57.5155 68.3886 8

6.5789 88.8820 100.5548 9.1178 25.7746 14.2747 20.9298 16.9332 14.2731 8.7403 0 0 0 0 0 0 0

14.7597 0 71.7901 0 103.5121 0 0

1.0000 0 1.0000 0 1.0000 0 0

实验单服务台单队列排队系统仿真

实验2排队系统仿真 一、学习目的 1.了解仿真的特点 2.学习如何建构模型 3.熟悉eM-Plant基本的对象和操作 4.掌握排队系统的特点与仿真的实现方法 二、问题描述 该银行服务窗口为每个到达的顾客服务的时间是随机的,表2.4是顾客服务时间纪录的统计结果 表2.4 每个顾客服务时间的概率分布 服务时间(min)概率密度累计概率 1 0.1 0.1 2 0.2 0.3 3 0.3 0.6 4 0.2 5 0.85 5 0.1 0.95 6 0.05 1.0 对于上述这样一个单服务待排队系统,仿真分析30天,分析该系统中顾客的到

达、等待和被服务情况,以及银行工作人员的服务和空闲情况。 三、系统建模 3.1 仿真目标 通过对银行排队系统的仿真,研究银行系统的服务水平和改善银行服务水平的方法,为银行提高顾客满意度,优化顾客服务流程服务。 3.2.系统建模 3.2.1 系统调研 1. 系统结构: 银行服务大厅的布局, 涉及的服务设备 2. 系统的工艺参数: 到达-取号-等待-服务-离开 3. 系统的动态参数: 顾客的到达时间间隔, 工作人员的服务时间 4. 逻辑参数: 排队规则, 先到先服务 5. 系统的状态参数: 排队队列是否为空, 如果不为空队长是多少, 服务台是否为空 6. 系统的输入输出变量:输入变量确定其分布和特征值,顾客的到达时间间隔的概率分布表和每个顾客被服务时间的概率分布. 输出变量根据仿真目标设定. 包括队列的平均队长、最大队长、仿真结束时队长、总服务人员、每个顾客的平均服务时间、顾客平均排队等待服务时间、业务员利用率等。 3.2.2系统假设 1.取号机前无排队,取号时间为0 2.顾客排队符合先进先出的排队规则 3.一个服务台一次只能对一个顾客服务 4.所有顾客只有一种单一服务 5.仿真时间为1个工作日(8小时) 6.等候区的长度为无限长 3.2.3系统建模 系统模型: 3.2.4 仿真模型 1.实体:银行系统中的实体是人(主动体)

排队系统仿真matlab实验报告

M/M/1排队系统实验报告 一、实验目的 本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。 二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。 1、 顾客到达模式 设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概 率 服从Poisson 分布,即e t k k k t t p λλ-=!)()(,?????????=,2,1,0k ,其中λ>0为一常数,表示了 平均到达率或Poisson 呼叫流的强度。 2、 服务模式 设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥ 3、 服务规则 先进先服务的规则(FIFO ) 4、 理论分析结果 在该M/M/1系统中,设 λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρ μλ=-。 三、实验内容 M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。 四、采用的语言 MatLab 语言 源代码: clear; clc;

%M/M/1排队系统仿真 SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda; Mu=0.9; %服务率Mu; t_Arrive=zeros(1,SimTotal); t_Leave=zeros(1,SimTotal); ArriveNum=zeros(1,SimTotal); LeaveNum=zeros(1,SimTotal); Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间 t_Arrive(1)=Interval_Arrive(1);%顾客到达时间 ArriveNum(1)=1; for i=2:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i; end t_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1; for i=2:SimTotal if t_Leave(i-1)

单服务台排队系统的仿真

实验2---单服务台排队系统的仿真 姓名:学号: 一、目标任务 ①模拟路由器缓存区M|M|1|m实验。 ②设定:λ=8/s,μ=10/s,ρ=0.8,m=10。 ③模拟系统106s,求系统报文的丢失率及报文在路由器中停留时间的均值。 ④模拟100次,图展示每次的模拟结果,并与理论值0.0184比较。 二、编程语言 Matlab 三、关键代码 lamda = 8; %报文到达强度 u = 10; %路由器处理强度 m = 10; %路由器缓冲区长度 T = 1000000; %模拟时间 a = []; %模拟运行时丢失率的运行结果 mean_a = 0; %模拟运行时丢失率的平均运行结果 ref_value = 0.0184; %丢失率理论值大小 b = []; %模拟运行时报文在路由器中的停留时间 mean_b = 0; %模拟运行时报文在路由器中停留时间的均值 %模拟运行一百次 for i=1:100 time = 0; %绝对时钟 t = 0; %路由器的下一空闲时刻 N = 0; %到达报文数 NI = 0; %丢失报文数 q = 0; %队长 stay_time = 0; %报文在路由器中的停留时间

%按指数分布产生随机到达时间和服务时间 while 1 CRTime = exprnd(1/lamda); %按指数分布产生下一报文的到达随机时间间隔 time = CRTime + time; %下一个报文到达的时间 if time > T break; end N = N + 1; q = q + 1; while q > 0 & t < time q = q - 1; ServeTime = exprnd(1/u);%按指数分布产生报文的随机服务时间 if q == 0 t = time + ServeTime; else t = t + ServeTime; end stay_time = stay_time + ServeTime * (q + 1); end if q == m + 1 %如果超过缓冲区长,则丢失报文数加1,队长减1 NI = NI + 1; q = q - 1; end end a = [a, NI/N]; b = [b, stay_time/(N-NI)]; end %计算结果 mean_a = mean(a); mean_b = mean(b); %绘图 x = 1:100; plot(x, a, x, mean_a); %绘制模拟运行时丢包率变化图以及均值线 scatter(x, a, '.'); %绘制模拟运行时丢包率变化散点图 scatter(x, b, '.'); %绘制模拟运行时平均停留时间变化散点图 fprintf('平均丢包率%6.5f\n', mean_a); % 打印平均丢包率 fprintf('平均停留时间%6.5f\n', mean_b); % 打印平均停留时间 四、实验结果与分析

queuing modeling排队论的matlab仿真(包括仿真代码)

Wireless Network Experiment Three: Queuing Theory ABSTRACT This experiment is designed to learn the fundamentals of the queuing theory. Mainly about the M/M/S and M/M/n/n queuing MODELS. KEY WORDS: queuing theory, M/M/s, M/M/n/n, Erlang B, Erlang C. INTRODUCTION A queue is a waiting line and queueing theory is the mathematical theory ofwaiting lines.More generally, queueing theory is concerned with the mathematical modeling and analysisof systems that provide service to random demands. Incommunication networks, queues are encountered everywhere. For example, theincoming data packets are randomly arrived and buffered, waiting for the routerto deliver. Such situation is considered as a queue. A queueing model is an abstract description of such a system. Typically, a queueing model represents (1) thesystem's physical configuration, by specifying the number and arrangement of theservers, and (2) the stochastic nature of the demands, by specifying the variabilityin the arrival process and in the service process. The essence of queueing theory is that it takes into account the randomness ofthe arrival process and the randomness of the service process. The most commonassumption about the arrival process is that the customer arrivals follow a Poisson process, where the times between arrivals are exponentially distributed. Theprobability of the exponential distribution function

单服务台排队系统仿真研究报告

物流系统建模与仿真 09级自动化学院物流工程1班 20085435 詹乐思 20095277 安静 20095278 陈红玲 20095289 陈均剑 20095290 翟瑞 20095291 胡旺

单服务台排队系统仿真研究报告 ——选重庆大学A区门口中国银行分行某一服务窗口为单服务台排队系统研究 对象 一、系统基本背景 社会的进步越来越快,人们的生活节奏也随之越来越快。在科技的发展,新技术的普及下, 我国的银行业以计算机和信息技术、互联网技术为前提, 通过大量资金和科技的投入, 不断地开发出新产品和新业务。另外有网上银行、支付宝等新业务的出现, 大大提高了工作效率。然而现代的金融服务并不是都可以靠刷卡来解决, 许多技术还不完善, 这些新技术也并不适合所有顾客群,去银行办理业务的顾客仍然经常性地出现排队现象。顾客等待时间过长, 造成顾客满意度下降, 矛盾较为突出, 因此本报告试利用单服务台排队论的方法, 定性定量地对具有排队等候现象的银行服务系统进行统计调查与分析研究,希望能帮助改进银行工作效率, 优化系统的运营。 本报告研究对象为中国银行重庆大学处分行某一服务窗口,数据取自银行内唯一非现金业务柜台。研究对象的选取虽然不是最典型的,但是综合考虑了研究地域范围和小组成员作业时间有限,另有其他方案由于各种原因无法进行,故选择离学校较近的有代表性的中国银行中的服务窗口作为最终方案。 中国银行简介:中国银行是中国历史最为悠久的银行之一,在大家对银行的概念中有着一定地位。中国银行主营传统商业银行业务,包括公司金融业务、个人金融业务和金融市场业务。公司业务以信贷产品为基础,致力于为客户提供个性化、创新的金融服务和融资、财务解决方案。个人金融业务主要针对个人客户的金融需求,提供包括储蓄存款、消费信贷和银行卡在内的服务。作为中国金融行业的百年品牌,中国银行在稳健经营的同时,积极进取,不断创新,创造了国内银行业的许多第一,在国际结算、外汇资金和贸易融资等领域得到业界和客户的广泛认可和赞誉。 二、系统描述 该银行工作时间为上午8:30至下午16:30(周一至周日),另周末不办理对公业务,属于每天8小时工作制。系统调查对象为银行内唯一非现金业务柜台,可知到达的顾客中,需要办理非现金业务的顾客在正常现金业务柜台忙碌的情况下可以选择该服务台。在队列中,等待服务的顾客和服务台构成了一个排队系统。由于银行前台出纳员逐个接待顾客,当顾客较多的时候就会出现排队等待的现象。其中,顾客的到达是随机的,每两个先后到达的顾客的到达间隔时间是不确定的。 本排队系统用顾客的数目、到达模式、服务模式、系统容量和排队规则来描述。 为探求此排队系统的规律, 首先需确定顾客流在一定时间内到达的概率分布函数。抵达本银行服务窗口的顾客流量大体上服从Poisson 分布, 顾客流抵达银行便按先后顺序排队, 进入单服务窗口,即排队论中的M/M/1系统。所谓M/M/1排队系统是指这样的一种排队模型: 顾客的到达为Poisson 流, 银行对

matlab单服务台排队系统实验报告

matlab 单服务台排队系统实验报告 一、实验目的 本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。 二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。 1、 顾客到达模式 设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼 叫的概率 服从Poisson 分布,即 e t k k k t t p λλ-= !)()(,?????????=,2,1,0k ,其中λ>0为一 常数,表示了平均到达率或Poisson 呼叫流的强度。 2、 服务模式 设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为 {}1,0t P X t e t μ-<=-≥ 3、 服务规则 先进先服务的规则(FIFO ) 4、 理论分析结果 在该M/M/1系统中,设λρμ= ,则稳态时的平均等待队长为1Q ρλ ρ= -,顾客 的平均等待时间为 T ρμλ= -。 三、实验内容 M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服 从负指数分布,单服务台系统,单队排队,按FIFO 方式服务。 四、采用的语言 MatLab 语言 源代码: clear; clc; %M/M/1排队系统仿真

SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda; Mu=0.9; %服务率Mu; t_Arrive=zeros(1,SimTotal); t_Leave=zeros(1,SimTotal); ArriveNum=zeros(1,SimTotal); LeaveNum=zeros(1,SimTotal); Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间 t_Arrive(1)=Interval_Arrive(1);%顾客到达时间 ArriveNum(1)=1; for i=2:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i; end t_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1; for i=2:SimTotal if t_Leave(i-1)

单服务台排队系统建模与仿真研究报告

物流系统建模与仿真 单服务台排队系统仿真研究报告 ——选大学A区门口中国银行分行某一服务窗口为单服务台排队系统研究对象一、系统基本背景 社会的进步越来越快,人们的生活节奏也随之越来越快。在科技的发展,新技术的普及下, 我国的银行业以计算机和信息技术、互联网技术为前提, 通过大量资金和科技的投入, 不断地开发出新产品和新业务。另外有网上银行、支付宝等新业务的出现, 大大提高了工作效率。然而现代的金融服务并不是都可以靠刷卡来解决, 许多技术还不完善, 这些新技术也并不适合所有顾客群,去银行办理业务的顾客仍然经常性地出现排队现象。顾客等待时间过长, 造成顾客满意度下降, 矛盾较为突出, 因此本报告试利用单服务台排队论的方法, 定性定量地对具有排队等候现象的银行服务系统进行统计调查与分析研究,希望能帮助改进银行工作效率, 优化系统的运营。 本报告研究对象为中国银行大学处分行某一服务窗口,数据取自银行唯一非现金业务柜台。研究对象的选取虽然不是最典型的,但是综合考虑了研究地域围和小组成员作业时间有限,另有其他方案由于各种原因无法进行,故选择离学校

较近的有代表性的中国银行中的服务窗口作为最终方案。 中国银行简介:中国银行是中国历史最为悠久的银行之一,在大家对银行的概念中有着一定地位。中国银行主营传统商业银行业务,包括公司金融业务、个人金融业务和金融市场业务。公司业务以信贷产品为基础,致力于为客户提供个性化、创新的金融服务和融资、财务解决方案。个人金融业务主要针对个人客户的金融需求,提供包括储蓄存款、消费信贷和银行卡在的服务。作为中国金融行业的百年品牌,中国银行在稳健经营的同时,积极进取,不断创新,创造了国银行业的许多第一,在国际结算、外汇资金和贸易融资等领域得到业界和客户的广泛认可和赞誉。 二、系统描述 该银行工作时间为上午8:30至下午16:30(周一至周日),另周末不办理对公业务,属于每天8小时工作制。系统调查对象为银行唯一非现金业务柜台,可知到达的顾客中,需要办理非现金业务的顾客在正常现金业务柜台忙碌的情况下可以选择该服务台。在队列中,等待服务的顾客和服务台构成了一个排队系统。由于银行前台出纳员逐个接待顾客,当顾客较多的时候就会出现排队等待的现象。其中,顾客的到达是随机的,每两个先后到达的顾客的到达间隔时间是不确定的。 本排队系统用顾客的数目、到达模式、服务模式、系统容量和排队规则来描述。 为探求此排队系统的规律, 首先需确定顾客流在一定时间到达的概率分布

单服务台排队系统仿真报告

单服务台排队系统仿真报告 一、模型准备 1、 顾客到达特性 在该系统中,顾客的到达规模(成批到达还是单个到达)是单个到达,假设顾客到达率Ai 服从均值为 的指数分布,即 2、 顾客服务时间 顾客服务时间为Si ,服从指数分布,假设均值为 ,即 二、 仿真模型设计 1、 元素定义(Define ) 本系统的元素定义如表1所示。 2、 元素可视化设置(Display ) 本系统中各个元素的显示特征定义设置如图2所示: min 5=A βA s A e A f ββ/)(-= ) 0(≥A min 4=s βS A S e S f ββ/)(-= ) 0(≥S

图2 各元素的显示特征 (1)Part元素可视化设置 在元素选择窗口选择customer元素,鼠标右键点击Display,跳出Display 对话框(图3),设置它的Text(图4)、Icon(图5)。 图3 Display对话框 图4 Display Text对话框

图5 Display Icon对话框 (2)Buffer元素可视化设置 在元素选择窗口选择paidui元素,鼠标右键点击Display,跳出Display对话框(图3),设置它的Text、Icon、Rectangle(图6)。 图6 Display Rectangle对话框

(3)Machine元素可视化设置 在元素选择窗口选择Fuwuyuan元素,鼠标右键点击Display,跳出Display 对话框(图3),设置它的Text、Icon、Part Queue(图7)。 图7 Display Part Queue对话框 (4)Variable元素可视化设置 在元素选择窗口选择Jifen0元素,鼠标右键点击Display,跳出Display对话框(图3),设置它的Text 、Value(图8)。 图8 Display Value对话框

多服务台排队系统的仿真

实验3--- 多服务台排队系统的仿真 姓名:学号: 一、目标任务 已知一个系统有N 个服务员,能力相等,服务时间服从指数分布。顾客的到达时间间隔服从指数分布。用Monte-Carlo 仿真,分别求按下列方案的总体平均排队时间: ①M|M|N 。 ②N 个单通道系统并列,按1/N 概率分裂到达流。 ③N 个单通道并列,挑选最短的队。 要求: ①给出程序设计的过程。 ②如果采用固定的N,则要求N>2。 ③至少取p二和p二两种强度运行程序。 ④对结果进行分析。 二、编程语言 Matlab 三、关键代码

N = 3; % 服务员人数 r = 6; % 顾客到达流强度 u = 20; % 服务员服务强度 T = 1000000; % 仿真运行时间 avg_wait_time = []; % 平均等待时间 for i=1:100 % 模拟排队函数 server_time = [, , ]; % 用来保存服务员下一空闲时间 time = 0; % 绝对时钟,初始为 0 client_num = 0; % 顾客总数,初始为 0 CRTime = 0; % 顾客到达时间间隔 ServeTime = 0; % 顾客服务时间 server_id = 0 ; % 当前进入排队窗口的服务员编号 total_wait_time = 0;% 系统中到达顾客的总等待时间 while 1 按 1..N 的顺序循环排入服务

员窗口 if server_id ==0 server_id = N; end if server_time(1, server_id) <= time % 如果当前 server_id 号 服务员空闲, 则直接接收服务 server_time(1, server_id) = time + ServeTime; % 服务员下 一空闲时间为当 前绝对时钟加上当前服务时间 else % 否则所有服务员都在忙碌,顾客要排队等候 total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时 钟 server_time(1, server_id) = server_time(1, server_id) + ServeTime; end end avg_wait_time = [avg_wait_time, total_wait_time/client_num]; end % 计算平均等待时间 mean_avg_wait_time = mean(avg_wait_time); CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔 time = time + CRTime; % 更新系统的绝对时钟 if time > T break; end client_num = client_num + 1; % 顾客数加 1 ServeTime = exprnd(1/u); % 按指数分布产生顾客服务间隔 server_id = mod(client_num, N); %

排队论之简单排队系统设计

5.2.4 无限源的简单排队系统 所谓无限源的简单排队系统是指顾客的来源是无限的,输入过程是简单流,服务时间是负指数分布的排队系统。本节我们讨论一些典型的简单排队系统。 1.//1/M M ∞排队系统 //1/M M ∞排队系统是单服务台等待制排队模型,可描述为:假设顾客以Poisson 过程(具有速率λ)到达单服务员服务台,即相继到达时间间隔为独立的指数型随机变量,具有均值1λ,若服务员空闲,则直接接受服务,否则,顾客排队等待,服务完毕则该顾客离开系统,下一个排队中的顾客(若有)接受服务。相继服务时间假定是独立的指数型随机变量,具有均值μ。两个M 指的是相继到达的间隔时间和服务时间服从负指数分布,1指的是系统中只有一个服务台,∞指的是容量为无穷大,而且到达过程与服务过程是彼此独立的。 为分析之,我们首先确定极限概率0,1,2,n p n ???=,,为此,假定有无穷多房间,标号为 0,1,2,???,并假设我们指导某人进入房间n (当有n 个顾客在系统中),则其状态转移框图如图5.8所示。 图5.8 //1/M M ∞排队系统状态转移速率框图 由此,我们有 状态 离开速率=进入速率 0 01p p λμ= ,1n n ≥ ()11n n n p p p λμλμ-++=+ 解方程组,容易得到 00,1,2,i i p p i λμ????? == ??? , 再根据 001 1()1n n n n p p p λμ λμ ∞ ∞ === == -∑∑ 得到: 01p λμ =- ,

()(1),1n n p n λλ μ μ =- ≥ 令/ρλμ=,则ρ称为系统的交通强度(traffic intensity )。值得注意的是这里要求 1ρ<,因为若1ρ>,则0n p =,且系统中的人数随着时间的推移逐渐增多直至无穷,因 此对大多数单服务排队系统,我们都假定1ρ<。 于是,在统计平衡的条件下(1ρ<),平均队长为 ,1,1j j L jp λρ ρμλ ρ ∞ == = = <--∑ (5-52) 由于a λλ=,根据式(5-2)、(5-3)以及上式,可得: 平均逗留时间为: 1 ,1L W ρλ μλ = = <- (5-53) 平均等待时间为: 1 [],1()(1) Q W W E S W λρ ρμ μμλμρ=-=- = =<-- (5-54) 平均等待队长为: 22 ,1()1Q Q L W λρλρμμλρ ===<-- (5-55) 另外,根据队长分布易知,01ρρ=-也是系统空闲的概率,而ρ正是系统繁忙的概率。显然,ρ越大,系统越繁忙。 队长()N t 由0变成1的时刻忙期即开始,此后()N t 第一次又变回0时忙期就结束。由简单流与负指数分布的性质,显见忙期的长度与忙期的起点无关。可以证明,闲期的期 望值为1λ,令忙期平均长度为b , 则在统计平衡下,有:平均忙期:平均闲期=(1)ρρ-: ,因此平均忙期长度为: 1 11b ρμλρ?

单服务排队系统MAAB仿真程序

单服务台系统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; %到达率与服务率

数学建模论文(蒙特卡罗的多服务台和单服务台排队系统)

课程名称:数学建模与数学实验学院: 专业: 姓名: 学号: 指导老师:

利用Monte Carlo方法模拟单服务台排队系统和多服务台排队系统 摘要 蒙特卡罗方法(Monte Carlo)又称统计模拟法随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。本文通过两个具体的服务机构为例,分别说明如何利用蒙特卡洛方法模拟单服务台排队系统和多服务台排队系统。 单服务台排队系统(排队模型之港口系统):通过排队论和蒙特卡洛方法解决了生产系统的效率问题,通过对工具到达时间和服务时间的计算机拟合,将基本模型确定在//1 M M排队模型,通过对此基本模型的分析和改进,在概率论相关理论的基础之上使用计算机模拟仿真(蒙特卡洛法)对生产系统的整个运行过程进行模拟,得出最后的结论。 多服务台排队系统(开水供应模型):为了解决水房打水时的拥挤问题。根据相关数据和假设推导,最终建立了多服务窗排队M/G/n模型,用极大似然估计和排队论等方法对其进行了求解,并用Matlab软件对数据进行了处理和绘图。用灵敏度分析对结果进行了验证。本模型比较完美地解决了水房排队拥挤问题,而且经过简单的修改,它可以用于很多类似的排队问题。 关键词:蒙特卡洛方法,排队论,拟合优度,泊松流,灵敏度分析。 一、问题重述

港口排队系统:一个带有船只卸货设备的小港口,任何时间仅能为一艘船只卸货。船只进港是为了卸货,响铃两艘船到达的时间间隔在15分钟到145分钟变化。一艘船只卸货的时间有所卸货物的类型决定,在15分钟到90分钟之间变化。 开水供应系统:学院开水房的供水时间有限,水房面积有限,水管易受水垢堵塞。根据调查数据可知:通畅时几乎无人排队,堵塞时水房十分拥挤。由此可以看出水房设计存在问题,我们可以把开水房看成是一个随即服务系统,应用排队论的方法对系统运行状态做定量的描述。 二、基本假设 港口排队系统:通过对问题的重述,那么,每艘船只在港口的平均时间和最长时间是多少? 若一艘船只的等待时间是从到达到开始卸货的时间,每艘船只的平均等待时间和最长等待时间是多少? 卸货设备空闲时间的百分比是多少? 船只排队最长的长度是多少? 开水供应系统: 假设Ⅰ、顾客流满足参数为λ的Poisson分布,其中λ为单位时间到达的顾客平均数。每个顾客所需的服务时间相互独立,顾客流是无限的,在观测期间平稳。 假设Ⅱ、排队方式为单一队列的等候制,先到先服务。虽然水房内有多个服务台,每个服务台都有自己的队列,但同时顾客总是自由转移到最短的队列上,不可能出现有顾客排队而服务器空闲的情况。本文最后对两种排队方式的比较也表明这一假设是合理的。 假设Ⅲ、水房共有20个并联的服务台(水龙头),设每个服务台的服务时间服从某个相同的分布,t和σ分别是服务时间的均值和均方差,γ=σ/ t为偏离系数。由于锅炉及输水管容量的限制,使t依赖于正在进行服务的水龙头个数m,设此时平均服务时间t(m)。且存在一临界值当m<= m0 时,t(m)为常数

Witness单服务台排队系统实验详细步骤

第8章 单服务台排队系统仿真 排队系统是离散事件系统中的典型的问题。制造系统、生产系统、服务系统、修理和维护设备、交通运输和物资材料管理系统都是典型的有形或无形的排队系统。由于排队系统的应用已越来越广泛,排队特征、排队规则、服务机构也变得越来越复杂,用解析方法已无法求解,计算机模拟是求解排队系统和分析排队系统性能的非常有效的方法。 8.1 单服务台排队系统系统描述与仿真目的 1)了解排队系统的设计。 2)熟悉系统元素Part 、Machine 、Buffer 、Variable 、Timeseries 的用法。 3)深入研究系统元素Part 的用法。 4)研究不同的顾客服务时间和顾客的到达特性对仿真结果的影响。 8.2 单服务台排队系统工作流程 8.2.1 顾客到达特性 在该系统中,顾客的到达规模(成批到达还是单个到达)是单个到达,顾客 到达率Ai 服从均值为 的指数分布,即 8.2.2 顾客服务时间 顾客服务时间为Si ,服从指数分布,均值为 ,即 8.3 仿真模型的设计 8.3.1 元素定义(Define ) 本系统的元素定义如表8-1所示。 表8-1 实体元素定义 min 5=A βA s A e A f ββ/)(-= ) 0(≥A min 4=s βS A S e S f ββ/)(-= ) 0(≥S

8.3.2 元素可视化(Display)设置 各个实体元素的显示特征定义设置如图8-1所示。 图8-1 各个实体元素的显示特征 1.Part元素可视化设置 在元素选择窗口选择Guke元素,鼠标右键点击Display,跳出Display对话框(图8-2),设置它的Text(图8-3)、Icon(图8-4)。 图8-2 Display对话框

排队论地matlab仿真(包括仿真代码)

Wireless Network Experiment Three: Queuing Theory ABSTRACT This experiment is designed to learn the fundamentals of the queuing theory. Mainly about the M/M/S and M/M/n/n queuing models. KEY WORDS: queuing theory, M/M/s, M/M/n/n, Erlang B, Erlang C. INTRODUCTION A queue is a waiting line and queueing theory is the mathematical theory of waiting lines. More generally, queueing theory is concerned with the mathematical modeling and analysis of systems that provide service to random demands. In communication networks, queues are encountered everywhere. For example, the incoming data packets are randomly arrived and buffered, waiting for the router to deliver. Such situation is considered as a queue. A queueing model is an abstract description of such a system. Typically, a queueing model represents (1) the system's physical configuration, by specifying the number and arrangement of the servers, and (2) the stochastic nature of the demands, by specifying the variability in the arrival process and in the service process. The essence of queueing theory is that it takes into account the randomness of the arrival process and the randomness of the service process. The most common assumption about the arrival process is that the customer arrivals follow a

排队系统仿真 - 副本

食堂排队系统仿真 专业班级: 20121171 姓名: 学号: 年月日

一、实验名称 食堂排队系统仿真实验 二、实验目的 学习Flexsim仿真软件的基本用法并建立一个简单的食堂排队模型;学习根据临时实体类型来定义临时实体的流程路径;学习统计数据的收集、分析与比较。 三、实验内容 根据数据调查统计,得到顾客到达的时间间隔服从指数分布exponential(0,*,*)。顾客随机的均匀到达。 有*个打饭窗口为顾客提供服务,顾客将首先到空闲可用的打饭窗口接受服务。 顾客接受服务的时间服从(*,*)的**分布。顾客接受完服务后离开系统。以上时间单位皆为分钟。 对上述系统进行建模,仿真*小时的运行状况,收集各打饭窗口的利用率、顾客的平均等待时间等数据,提出服务设施的改进建议,使得顾客的平均等待时间不超过**分钟。 四、仪器设备 计算机、Flexsim仿真软件 五、实验步骤 1.添加控件 首先flexsim仿真软件,软件,*个发生器,*个暂存区,*个处理器,*个吸收器,并连接各个实体控件。如图

图 2. 设置发生器的参数 <1>到达时间间隔设置 <2>发生触发器离开出发设置 3、设置处理器的参数 定义发生器Processor1、Processor2(根据上面设定的发生器个数)为顾客提供服务,并设置其参数 处理时间设置 临时实体流设置 4、模拟仿真模型 先打开实验控制器按钮,设置系统仿真时间***分钟(根据上面的设置),再编译,然后

运行。 5、统计数据 图(生成报告的图)6.实验结论 平均排队时间**,平均排队人数**,最大排队时间**,最大排队人数**,(之后分析自己的模型,排队是否过长,处理时间是否过长) 六、方案改进 增加*个的处理器(即增加服务窗口),连接控件。(等)

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

单服务台系统MATLAB仿真 学号:1040408115 姓名:缪晨 一、引言 排队是日常生活中经常遇到的现象。通常,当人、物体或是信息的到达速率大于完成服务的速率时,即出现排队现象。排队越长,意味着浪费的时间越多,系统的效率也越低。在日常生活中,经常遇到排队现象,如开车上班、在超市等待结账、工厂中等待加工的工件以及待修的机器等。总之,排队现象是随处可见的。排队理论是运作管理中最重要的领域之一,它是计划、工作设计、存货控制及其他一些问题的基础。Matlab是MathWorks公司开发的科学计算软件,它以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言以及庞大的用户群成为数学计算工具方面的标准,几乎所有的工程计算领域,Matlab都有相应的软件工具箱。选用Matlab软件正是基于Matlab的诸多优点。二、排队模型 三.仿真算法原理 (1)顾客信息初始化 根据到达率λ和服务率μ来确定每个顾客的到达时间间隔和服务时间间隔。服务间隔时间可以用负指数分布函数exprnd()来生成。由于泊松过程的时间间隔也服从负指数分布, 故亦可由此函数生成顾客到达时间间隔。需要注意的是exprnd()的输入参数不是到达率λ和服务率μ 而是平均到达时间间隔1/λ

和平均服务时间1/μ。 根据到达时间间隔,确定每个顾客的到达时刻. 学习过C 语言的人习惯于使用FOR循环来实现数值的累加, 但FOR循环会引起运算复杂度的增加而在MATLAB 仿真环境中, 提供了一个方便的函数cumsum() 来实现累加功能读者可以直接引用 对当前顾客进行初始化。第1 个到达系统的顾客不需要等待就可以直接接受服务其离开时刻等于到达时刻与服务时间之和。 (2)进队出队仿真 在当前顾客到达时刻,根据系统内已有的顾客数来确定是否接纳该顾客。若接纳则根据前一顾客的离开时刻来确定当前顾客的等待时间、离开时间和标志位;若拒绝,则标志位置为0. 流程图如下:

相关主题
文本预览
相关文档 最新文档