排队论模型.docx
《排队论模型.docx》由会员分享,可在线阅读,更多相关《排队论模型.docx(19页珍藏版)》请在冰豆网上搜索。
![排队论模型.docx](https://file1.bdocx.com/fileroot1/2023-6/14/5c5a82e6-8355-497d-84f9-b683940d08e3/5c5a82e6-8355-497d-84f9-b683940d08e31.gif)
排队论模型
2010年东北大学数学建模培训模拟竞赛
参赛队:
学号姓名班级
选择题目:
A√B
东北大学大学生创新中心
基于排队论的生产系统分析
一、摘要
本文为B题的生产系统的优化问题做出了自己的解释,通过排队论和蒙特卡洛方法解决了生产系统的效率问题,通过对工具到达时间和服务时间的计算机拟合,将基本模型确定在
排队模型,通过对此基本模型的分析和改进,得出了前三问。
最后一问在概率论相关理论的基础之上使用计算机模拟仿真(蒙特卡洛法)对生产系统的整个运行过程进行模拟,得出最后的结论。
关键词:
排队理论、生产系统、蒙特卡洛方法
二、问题的提出
在科学技术突飞猛进的今天,人类的生产力有了很大程度的提高,目前的系统分析已经不仅仅局限于单纯产量的提高,整个系统资源的利用和效率的高低成为衡量生产抑或服务系统的重要指标,而我们的制造业和服务业种系统的效率问题正在成为人们的焦点。
本题目正是从实际的生产系统中抽象出来的一个子系统,原题给出了在只有一台工具维修设备的前提下,20名工人的实际操作结果。
维护生产正常进行的各项费用已知,题目要求我们对已有问题建立数学模型并改进:
(1)建立数学模型分析该车间是否应该另外添置一台打磨机
(2)现在车间要求达到平均两个小时内只有一人在等候打磨,利用所建模型分析此要求是否可行,车间需要支出费用多少
(3)车间为了确保整个生产安全有序地进行,就要让在打磨间的人数尽量少于2人,利用所建模型分析此要求是否能够实现,车间需要支出费用多少
(4)如果在16:
00打磨机停止工作,多少工人可以提前多长时间下班现在该车间想调整作息时间为8:
00-12:
00,13:
00-17:
00,打磨机工作时间为8:
00-17:
00,模型应该如何调整
三、条件假设
(1)基于排队系统的假设
输入过程:
中顾客的总体是有限的,且到了的方式是一个一个的,工具相继到达的间隔时间是随机性的,但是服从一定条件的概率分布;工具的到达也是相互独立的,就是说,以前的到达情况对以后工件的到来没有影响;输入过程是平稳的,也可以认为是时间齐次的,是指描述相继到达的时间间隔分布和所含参数(如期望值、方差等)都是与时间无关的。
排队规则:
根据题目的已知数据进行分析,工件到达时,如所有的服务台均被占用着,则工具将会等待,服务机制属于先到先服务;从占有的空间上来看,对于等待队伍的长度没有最大限制;从等待队伍的数量上来看,队伍是单列的。
服务机构:
带有多个服务台的机构中,它们应该是平行并列的(如第一问)服务的方式为每次一台机器对一个工具进行加工;跟本题的输入过程一样,服务时间也是随机性的,但是服从一定条件的概率分布,并且服务时间也是时间齐次性的。
(2)对于到达时刻的假设
对于工具到达时间:
1、根据排队论和概率论的相关理论,我们易知在不相重叠的时间间隔内工具到达数是相互独立的,即为无后效性,
2、在充分小的一段时间间隔之内,在区间
内有一个顾客到达的概率与时间
无关,而约与时间长度成正比,即
其中
是常数,它表示单位时间有一个顾客到达的概率,称为概率强度。
3、另一方面,对于充分小的
,在时间间隔
内有两个或两个以上顾客到达的概率极小,以至于可以忽略,即
(1)
泊松分布的概率如下所示,意为在t的时间间隔中到达n个顾客的概率
满足以上三个条件的分布被称作泊松流,我们得知该题目的工具到达时间服从泊松分布。
通过计算机的相关假设检验,在0.05的置信度基础之上,可以认为工件的到达时间服从该分布。
四、符号约定
Kendall记号
X表示相继到达间隔时间的分布,Y表示服务时间的分布,Z表示并列的服务台的数目。
A系统容量限制,B为顾客源数目,C为填写的服务规则,例如先到先服务(
)。
队长,指在系统中的顾客数
指在系统中排队等待服务的顾客数
指一个顾客在系统中的停留时间,期望值
一个顾客在系统中排队等待的时间,期望值
项目总花费
服务设备总投资
平均到达率
服务机构单位时间的费用,为常数6.67
顾客在系统停留单位时间的费用,为常数10
五、问题分析
1.名词解释
排队论:
排队论(QueuingTheory),是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,又称随机服务系统理论,为运筹学的一个分支。
【】本题研究的是生产系统的效率问题,可以将磨损的工具认为顾客,将打磨机当做服务系统。
:
较为经典的一种排队论模式,按照前面的Kendall记号定义,前面的M代表顾客(工具)到达时间服从泊松分布,后面的M则表示服务时间服从负指数分布,1为仅有一个打磨机。
蒙特卡洛方法:
蒙特卡洛法蒙特卡洛(MonteCarlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。
这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。
该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的MonteCarlo—来命名这种方法,为它蒙上了一层神秘色彩。
(2)在本题的第四问中,我们采用了这种方法。
2.问题的背景分析
为了研究整个系统的效率问题,提出了排队论的概念,特别是在生产和服务系统中,排队是在日常生活中经常遇到的现象,如顾客到商店购买商品、病人到医院看病常常要排队。
现实中的例子还有如电话局的占线问题,车站、码头等交通枢纽的车船堵塞和疏导,故障机器的停机待修(此题目中可以理解为工具的磨损待修),水库水量的库存调节等都是有形或者无形的排队问题。
如果增添服务设备(如第一问),就要增加投资或者发生空闲浪费;如果服务设备太少,排队现象就会更加严重,对顾客个人及对社会都会带来不利影响。
因此,管理人员必须在这些方面进行平衡,经常检查目前的系统状态是否得当,研究今后改进对策,以期提高服务质量,降低成本。
排队论也称为随机系统服务理论,本模型根据最基本的排队理论,对生产系统进行求解,解决其效率问题。
3.问题分析
根据排队论的相关理论和计算机拟合及系统仿真的相关过程,我们对题目做以下分析:
(1)比较
及
两个系统(此时的G为未知处理时间分布)的总费用问题,可以将费用分为总投资、由于工具的停止运行而产生的生产费用、机器的维修费用三部分组成,得到的结果选取较小的更优。
(2)、(3)根据相关排队系统的期望值得到代数方程,并对得到的一元二次方程进行求解,此题在于考察排队系统的相关期望。
(4)在计算机拟合的基础上,能够验证在
的置信水平下,题目中给出的工具到达时间和服务时间间隔依次符合泊松分布和负指数分布,并且得到相关分布的参数,由蒙特卡洛法对所给出的分布情况进行仿真,根据伯努利大数定理,在样本很大的情况下,总体的概率内涵可以由样本确定,进行几次仿真测试,用期望得到题目的最终解。
六、模型建立和问题求解
1.原始数据的处理
根据题目给出的相关数据做出如下的表格:
编号
中断生产时间
开始打磨时间
结束打磨时间
间隔到达时间
服务时间
8:
00
0
1
8:
07
8:
07
8:
13
7
6
2
8:
11
8:
13
8:
28
4
15
3
8:
19
8:
28
8:
40
8
12
4
8:
46
8:
46
8:
58
27
12
5
9:
06
9:
06
9:
22
20
16
6
9:
49
9:
49
9:
56
43
7
7
9:
51
9:
56
10:
11
2
15
8
10:
06
10:
11
10:
21
15
10
9
11:
24
10:
24
11:
30
78
6
10
11:
31
11:
31
11:
47
7
16
11
11:
35
11:
47
12:
04
4
17
12
11:
41
12:
04
12:
19
6
15
13
11:
52
12:
19
12:
35
11
16
14
12:
02
12:
35
12:
48
10
13
15
12:
12
12:
48
13:
07
10
19
16
12:
39
13:
07
13:
24
27
17
17
12:
40
13:
24
13:
40
1
16
18
12:
45
13:
40
13:
49
5
9
19
12:
59
13:
49
13:
59
14
10
20
13:
02
13:
59
14:
06
3
7
2.模型的建立
对于问题中存在的服务系统,建立排队论模型,在仅有一台机器的前提下,这是一个标准的
模型:
所谓
模型,就是输入过程为泊松流时,服务时间为任意的条件之下的,服务机器只有一个得时候。
对于
模型,服务时间T的分布式一般的,(但是要求期望值
和
方差都存在),其他条件和标准的
型相同。
为了达到稳态
还是必要的,其中有
。
在上述条件下,则有
上面的七个数只要知道了其中的3个就可以求出其余的数来。
这就是着名的
公式,下面我们将用这个模型来进行求解。
输入过程的确认:
对于工具到达时间而言,以分钟作为时间单位,则工具的平均到达率为到达总数/总时间=20/302=0.0662个/分钟,所以得
成立。
服务过程的确认:
由题目中给出的数据得知,
=264/20=13.2,
=16.9,
=0.0662*13.2=0.87384<1,将得出的常数代入到上面的公式里,可以依次求出我们想要的期望值得
=4.19367,
63.34849,
50.14849。
这与我们假设服务时间为负指数分布变量的情况是基本相同的,由Matlab的分布拟合结果显示,在置信度为0.05的水平上,可以近似得认为服务时间服从负指数分布,且根据拟合结果
0.07874,拟合的Matlab代码见附录二。
此时可以将原模型改写为
模型。
由于按照打磨技术水平要求,平均每15分钟打磨一件工具车间须花费100元,如果想缩短时间,需要提高打磨机辅助用品质量,每一件工具打磨时间缩短1分钟需要多花费10元。
对于整个车间,平均每个工人中断生产1分钟,车间效益将损失15元。
总费用为
在8:
00至16:
00八个小时的时间内,一共需要被修理的工具数的期望是8*60/(20/302)=301,在有一个整修机器存在的情况下,总费用由机器的购置费用、修理费和由于工具的不能正常使用而导致的生产损失三部分组成。
仅仅有一台机器存在时的总费用为
3.问题的求解
(1)问题:
分析该车间是否应该另外添置一台打磨机
另外增加一台打磨机的问题将原来的问题转化为
问题,虽然刚开始的投资增加了,但是由于两台打磨机的存在,使整个系统中工具的停留时间得到了一定程度上的减少,单个打磨机的负担得到缓解。
模型各种特征的规定与标准的
模型的规定相同。
另外规定各台服务台工作是相互独立(不搞协作)且平均服务率相同,
。
于是整个机构的平均服务率为2
;经检验得
<1成立;
当系统到达平衡时,设有以下的概率状态分布:
,
将
代入到上面的公式中得
,
,
根据上面一个机器时的相同做法,得
因为
,所以选择增加一台机器。
(2)问题:
现在车间要求达到平均两个小时内只有一人在等候打磨,利用所建模型分析此要求是否可行,车间需要支出费用多少
两个小时仅仅有一个人在等待打磨,可以确定,还是在
模型的基础之上,即平均每分钟等待的工具数目为0.00833333,即平均等待时间为120分/个,由
得,在
=0.0662时,解之得
=0.1474,得到平均服务时间为1/
=6.7843,每个至少应该减少的打磨时间为12.7-6.7843=[5.9157]=6分钟,所以应该花去的费用为310*6=1860元人民币。
(3)问题:
车间为了确保整个生产安全有序地进行,就要让在打磨间的人数尽量少于2人,利用所建模型分析此要求是否能够实现,车间需要支出费用多少
同样的道理,这仍然可以按照最基本的
模型进行求解,而题目中要求的在打磨间要求的等待队长期望=2,所有有
=2成立,由
=0.0662,解之得
=0.0883,则得到平均服务时间为1/
=11.32503,每个至少应该减少的打磨时间为12.7-11.32503=[1.37497]=2分钟,可以实现,且需要的花费为310*2=620元人民币。
(4)问题:
如果在16:
00打磨机停止工作,多少工人可以提前多长时间下班现在该车间想调整作息时间为8:
00-12:
00,13:
00-17:
00,打磨机工作时间为8:
00-17:
00,模型应该如何调整
在计算机拟合数据的基础上,我们可以验证在置信度为0.05的水平上,工具到达时间和服务时间间隔分别服从泊松分布和负指数分布,而且得到参数分别为
,将其作为参数,在本题目的题设下模拟系统的运行过程,将达到的结果在Excel下进行处理,得到最后的结果。
经过Matlab语言的编写和调试,我们对这一过程重复了50次(代码详见附录二),最后得出若16:
00停止打磨机,则得到平均有7.9200名工人可以提前下班,车间调整作息时间为8:
00-12:
00,13:
00-17:
00,打磨机工作时间为8:
00-17:
00时得到有4.8400工人可以提前下班。
跟事实情况也是符合的,这时我们认为得到的数学模型准确性还是可以的。
在16:
00停止打磨机器的情况下,由于磨损的工具无法得到及时的打磨,使工人无法继续生产,从而使生产效率低下,下面是用Matlab语言进行仿真的结果,我们将得到的数据导入Excel表格中,举出一个仿真的实例:
中断生产时间
开始打磨时间
结束打磨时间
间隔时间
服务时间
8:
16
8:
16
8:
29
16
13
8:
20
8:
29
8:
44
4
15
8:
37
8:
44
8:
58
17
14
8:
46
8:
58
9:
12
9
14
9:
01
9:
12
9:
21
15
9
9:
05
9:
21
9:
36
4
15
9:
05
9:
36
9:
51
0
15
9:
17
9:
51
10:
04
12
13
9:
56
10:
04
10:
18
39
14
10:
31
10:
31
10:
42
35
11
10:
47
10:
47
11:
00
16
13
11:
06
11:
06
11:
24
19
18
11:
07
11:
24
11:
36
1
12
11:
17
11:
36
11:
48
10
12
11:
25
11:
48
12:
00
8
12
12:
10
12:
00
12:
11
45
11
12:
30
12:
30
12:
40
20
10
12:
34
12:
40
13:
01
4
21
12:
43
13:
01
13:
18
9
17
12:
44
13:
18
13:
29
1
11
12:
53
13:
29
13:
43
9
14
13:
06
13:
43
13:
50
13
7
13:
07
13:
50
14:
16
1
26
13:
15
14:
16
14:
23
8
7
13:
16
14:
23
14:
36
1
13
13:
20
14:
36
14:
52
4
16
13:
53
14:
52
15:
05
33
13
14:
12
15:
05
15:
30
19
25
14:
35
15:
30
15:
45
23
15
14:
48
15:
45
15:
58
13
13
14:
58
15:
58
16:
02
10
10
15:
02
3
9
15:
06
4
15
15:
14
8
17
15:
24
10
8
15:
42
18
17
15:
48
6
12
15:
55
7
6
15:
59
4
13
从上面的表格中可以较为清晰得知道,如果机器在16:
00停止,8个工人可以平均提前28.75分钟下班,效率低下。
如果以此数据为例,车间调整作息时间为8:
00-12:
00,13:
00-17:
00,打磨机工作时间为8:
00-17:
00,得到的表格如下:
中断生产时间
开始打磨时间
结束打磨时间
间隔时间
服务时间
8:
16
8:
16
8:
29
16
13
8:
20
8:
29
8:
44
4
15
8:
37
8:
44
8:
58
17
14
8:
46
8:
58
9:
12
9
14
9:
01
9:
12
9:
21
15
9
9:
05
9:
21
9:
36
4
15
9:
05
9:
36
9:
51
0
15
9:
17
9:
51
10:
04
12
13
9:
56
10:
04
10:
18
39
14
10:
31
10:
31
10:
42
35
11
10:
47
10:
47
11:
00
16
13
11:
06
11:
06
11:
24
19
18
11:
07
11:
24
11:
36
1
12
11:
17
11:
36
11:
48
10
12
11:
25
11:
48
12:
00
8
12
13:
06
13:
06
13:
13
13
7
13:
07
13:
13
13:
39
1
26
13:
15
13:
39
13:
46
8
7
13:
16
13:
46
13:
59
1
13
13:
20
13:
59
14:
15
4
16
13:
53
14:
15
14:
28
33
13
14:
12
14:
28
14:
53
19
25
14:
35
14:
53
15:
08
23
15
14:
48
15:
08
15:
21
13
13
14:
58
15:
21
15:
31
10
10
15:
02
15:
31
15:
40
3
9
15:
06
15:
40
15:
55
4
15
15:
14
15:
55
16:
12
8
17
15:
24
16:
12
16:
20
10
8
15:
42
16:
20
16:
37
18
17
15:
48
16:
37
16:
49
6
12
15:
55
16:
49
16:
55
7
6
15:
59
16:
55
17:
08
4
13
16:
01
2
11
16:
21
20
8
16:
27
6
7
16:
39
12
10
16:
51
12
17
由上面可知,一共有6名员工可以提前下班,平均提前时间为37分钟,较上面有了提高。
七、附录
1.参考文献
(1)《运筹学》教材编写组编.运筹学.北京:
清华大学出版社,2008
(2)JerryBanks,JohnS.Carson,BarryLNelson等着.离散事件系统仿真.北京:
机械工业出版社,2007
(3)薛定宇、陈阳泉着.高等应用数学问题的Matlab求解(第二版).北京:
清华大学出版社,2007
2.计算机拟合工具到达时间和服务时间间隔的Matlab代码:
(1)验证服务时间服从泊松分布
X=[61512121671510616171516131917169107];
size(X)%可以知道自己输入是20个数字
然后借助alam=poissfit(X),求出alam作为泊松分布的参数
r=sort(X’);
[H,p]=kstest(r,[rpoisscdf(r,alam)],0.05)
结果是:
H=
0
p=
0.0560
当H=0时,根据Kolmogorov-Smirnov检验方法可以知道:
X服从泊松分布。
(2)验证间隔时间是服从指数分布
Y=[748272043215787461110102715143];
size(Y)%可以知道自己输入是20个数字
根据排队论知识可以知道,参数可以是:
0.0662
r=sort(Y’);
[H,p]=kstest(r,[rexpcdf(r,mean(Y))],0.05)
结果是:
H=
0
p=
0.8285
当H=0时,根据Kolmogorov-Smirnov检验方法可以知道:
Y服从负指数分布。
3、对题目的第四问进行仿真
首先利用服务时间服从泊松分布,可以利用MATLAB里面现有的函数去产生随机数用于模拟。
A=poissrnd(12.7,40,1);
在利用时间间隔是服从指数分布,
B=round(exprnd(mean(Y),40,1));
然后利用编写好的MATLAB的代码进行模拟:
final.m为在16:
00打磨机停止工作,
functioncount=final(A,B)
fori=1:
40
if(i==1)D
(1)=A
(1);
elseD(i)=A(i)+D(i-1);
end
end
D=D';
%C=[A,B,D];
fori=1:
40
if(i==1)
G
(1)=A
(1);
H
(1)=G
(1)+B
(1);
elseif(D(i)G(i)=H(i-1);
H(i)=G(i)+B(i);
else
G(i)=D(i);
H(i)=G(i)+B(i);
end
end
G=G';
H=H';
C=[A,B,D,G,H];
j=0;
fori=1:
40
if(C(i,3)<480&&C(i,5)>=480)
j=j+1;
end
end
count=j;
end
final_new.m为在16:
00打磨机停止工作,
functioncount=final_new(A,B)
fori=1:
40
if(i==1)D
(1)=A
(1);
elseD(i)=A(i)+D(i-1);
end
end
fori=1:
40
if(D(i)>240)
D(i)=D(i)+60;
end
end
D=D';
%C=[A,B,D];
fori=1:
40
if(i==1)
G
(1)=A
(1);
H
(1)=G
(1)+B
(1);
elseif(D(i)G(i)=H(i-1);
H(i)=G(i)+B(i);
else
G(i)=D(i);
H(i)=G(i)+B(i);
end
end
G=G';
H=H';
C=[A,B,D,G,H];
j=0;
fori=1:
40
if(C(i,3)<480&&C(i,5)>=480)
j=j+1;
end
end
count=j;
end
这两个函数之中的count为最后计算的可以提前下班人数。
然后编写下面这样一段代码:
fori=1:
50
A=poissrnd(12.7,40,1);
B=round(exprnd(15.1000,40,1));
X(i)=final(A,B);
Y(i)=