到达顾客 服务内容 服务机构
——————————————————————————
病 人 诊断/手术 医生/手术台
进港的货船 装货/卸货 码头泊位
到港的飞机 降落 机场跑道
电话拨号 通话 交换台
故障机器 修理 修理技工
修理技工 领取修配零件 仓库管理员
上游河水 入库 水闸管理员
——————————————————————————
(1)由于顾客到达和服务时间的随机性,
现实中的排队现象几乎不可避免;
(2)排队过程,通常是一个随机过程,
排队论又称“随机服务系统理论”;
二、排队系统
(一)排队服务过程
(二)排队系统的要素及其特征
1、排队系统的要素:
(1)顾客输入过程;
(2)排队结构与排队规则;
(3)服务机构与服务规则;
2、排队系统不同要素的主要特征(1)顾客输入过程;
顾客源(总体):有限/无限;
顾客到达方式:逐个/逐批;(仅研究逐个情形)
顾客到达间隔:随机型/确定型;
顾客前后到达是否独立:相互独立/相互关联;
输入过程是否平稳:平稳/非平稳;(仅研究平稳性)
(2)排队结构与排队规则;
顾客排队方式:等待制/即时制(损失制);
排队系统容量:有限制/无限制;
排队队列数目: 单列/多列;
是否中途退出: 允许/禁止;
是否列间转移: 允许/禁止;
(仅研究禁止退出和转移的情形)
(3)服务机构与服务规则;
服务台(员)数目;单个/多个;
服务台(员)排列形式;并列/串列/混合;
服务台(员)服务方式;逐个/逐批;(研究逐个情形)
服务时间分布;随机型/确定型;
服务时间分布是否平稳:平稳/非平稳;(研究平稳情形)
服务台(员)为顾客服务的顺序:
————————————
a)先到先服务(FCFS);
b)后到先服务(LCFS);
c)随机服务;
d)优先服务;
实例: 单服务员的排队模型
单服务员的排队模型,在某上商店有一个售货员,顾客陆续来到,售货员陆续来到,售货员逐个地接待顾客,当到来的顾客
较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店。设:
1.顾客到来间隔时间服从参数为0.1的指数分布。
2.对顾客的服务时间从[4 , 15]上均匀分布。
3.排队按先来后到规则,队长无限制。
假设时间以min为单位,一个工作日为8h:
(1)模拟一个工作日内完成服务的个数及顾客平均等待时间t;
(2)模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间。
设:w总等待时间;
ci : 第i个顾客的到达时刻;
bi : 第i个顾客的开始服务时刻;
ei : 第i个顾客的结束服务时刻;
第一问
clear
i = 2;%第二个顾客
w = 0;%等待时间
e(i-1)=0;
%指数分布的均值为1/0.1=10
%指两个顾客到达商店的平均间隔时间是10个单位时间,即平均10个单位时间到达
%一个顾客,顾客到达的间隔时间可以用exprnd(10)模拟;
x(i)=exprnd(10);%产生参数为0.1的指数分布的命令应为exprnd(1/0.1)
c(i)=x(i);%此时为第二个顾客
b(i)=x(i);%开始服务时间
while b(i)<=480 %8个小时
%产生m*n阶[a,b]均匀分布U(a,b)的随机数矩阵:unifrnd (a,b,m, n)
%产生一个[a,b]均匀分布的随机数:unifrnd (a,b)
y(i) = unifrnd(4,15);%对顾客的服务时间服从在[4,15]上的均匀分布
e(i) = b(i) + y(i);%结束服务时间
w = w + b(i)-c(i);%等待时间累加,开始服务时间减去到达时间
i=i+1;%下一个客人
x(i)=exprnd(10);
c(i)=c(i-1) + x(i);%上一个客人到达时间加上间隔时间
b(i)=max(c(i),e(i-1));%取最大(上一个客人结束服务时间,此客人到达时间)
end
i = i-2;
t=w/i;
m=i
模拟出一个工作日内完成服务的顾客数m=48人,t=22.5min
第二问
clear
cs = 100 %100天;
for j=1:cs
j
w(j)=0;
i = 2;%第二个顾客
x(i)=exprnd(10);%产生参数为0.1的指数分布的命令应为exprnd(1/0.1)
c(i)=x(i);%此时为第二个顾客
b(i)=x(i);%开始服务时间
while b(i)<=480
%产生m*n阶[a,b]均匀分布U(a,b)的随机数矩阵:unifrnd (a,b,m, n)
%产生一个[a,b]均匀分布的随机数:unifrnd (a,b)
y(i) = unifrnd(4,15);%对顾客的服务时间服从在[4,15]上的均匀分布
e(i) = b(i) + y(i);%结束服务时间
w(j) = w(j) + b(i)-c(i);%等待时间累加,开始服务时间减去到达时间
i=i+1;%下一个客人
x(i)=exprnd(10);
c(i)=c(i-1) + x(i);%上一个客人到达时间加上间隔时间
b(i)=max(c(i),e(i-1));%取最大(上一个客人结束服务时间,此客人到达时间)
end
i = i-2;
t(j)=w(j)/i;
m(j)=i;
end
pt=0;
pm=0;
for j =1:cs
pt=pt + t(j);
pm = pm + m(j);
end
pt=pt/cs
pm=pm/cs
运行得到:pt =25(平均等待时间) pm = 43(顾客数)