排队论用Python 排队论编程_平均等待时间


排队论用Python 排队论编程_数学建模_02


例1:
问题1 某机关接待室只有1名对外接待人员, 每天工作10小时, 来访人员和接待时间都是随机的。设来访人员按照Poisson流到达, 到达速率为 8人/小时, 接待人员的服务速率为 9人/小时, 接待时间服从负指数分布。
(1) 计算来访人员的平均等待时间, 等候的平均人数。
(2) 若到达速率增大为 20人/小时, 每个接待人员的服务速率不变, 为使来访问人员平均等待时间不超过半小时, 最少应该配置几名接待人员。

解:(1)
很显然的 排队论用Python 排队论编程_排队论用Python_03=8,排队论用Python 排队论编程_平均等待时间_04=9,利用lingo编程

model:
lambda=8;
mu=9;
load=lambda/mu;
s=1;
p_wait=@peb(load,s);
T=1/mu;!接受服务平均时间;
w_q=p_wait*(T/(s-load));!平均等待时间;
w_s=w_q+T;!平均逗留时间;
L_s=lambda*W_s;!平均队长;
L_q=lambda*W_q;!平均等待队长;
end

得到其结果如下:

排队论用Python 排队论编程_数学建模_05


可以看到平均等待时间为0.89h=53min,平均等待对长为7.1人

(2)很显然是一个优化类问题

通过lingo编程:

model:
lambda=20;
mu=9;
min=s;
load=lambda/mu;
p_wait=@peb(load,s);
T=1/mu;!接受服务平均时间;
w_q=p_wait*(T/(s-load));!平均等待时间;
W_q<=0.5;
w_s=w_q+T;!平均逗留时间;
L_s=lambda*W_s;!平均队长;
L_q=lambda*W_q;!平均等待对长;
@gin(s);
end

可以得到最少要3名接待人员

排队论用Python 排队论编程_排队论用Python_06


例子:
问题2 某单位电话交换台有一部300门内线电话的总机, 已知上班时间有30%的内线分机平均每30分钟要一次外线电话, 70%的分机每隔70分钟时要一次外线电话。 又知从外单位打来的电话的呼唤率平均30秒一次, 设与外线的平均通话时间为3分钟, 以上时间都服从负指数分布。 如果要求外线电话接通率为95%以上, 问电话交换台应设置多少?

解:分析可得,分为内线打外线和外线打内线

对于内线打外线,则每小时通话平均次数为300*(60/3030%+60/7070%)=360

对于外线打内线,则每小时通话平均次数为60/0.5=120

所以总的平均通话次数为360+120=480

可以知道这就是到达率也就是排队论用Python 排队论编程_排队论用Python_07=480

对于服务率可以看到其为60/3=20,也就是排队论用Python 排队论编程_指数分布_08=20

而所谓的接通率为95%以上,很显然就是损失率小于5%

于是利用Lingo编程:

model:
lambda=480;
mu=20;
min=s;
load=lambda/mu;
p_lost=@pel(load,s);
p_lost<=0.05;
@gin(s);
end

可以得到其结果为30个