matlab-排队模型和排队系统仿真

一. 什么是排队论

排队论即通过对服务对象到来及服务时间的统计研究,得出某些数量指标的统计规律,并更让据这些规律来改进服务系统。

二.排队论模型

1.基本构成

输入过程:描述顾客按照怎样的规律到达排队系统
排队规则:顾客按照怎样的规定次序接受服务
服务机构:服务台的数量;服务时间服从的分布

2.数量指标

队长,等待队长,等待时间,逗留时间,忙期(连续保持服务的时长),闲期

3.数学表示

matlab-排队模型和排队系统仿真_第1张图片
等待制模型
例:某单位来访人员按照Poisson流到达,到达速率lambda=20人/小时,接待人员的服务速率mu为9人/小时的负指数分布,为使来访者等待不超过半小时,最少配置几名接待员?
分析:本问属于多服务台,利用等待制模型的相关概念,分析可得若使系统稳定,mu必须大于lambda,服务人员至少为三人,结合相关公式可以得出服务人员最少为4人

lambda=20;mu=9;s=3;%s表示服务台个数
k=0:s-1;
rho=lambda/(s*mu);
p0=1./(sum((s*rho).^k./factorial(k))+...
    (s*rho)^s/(factorial(s)*(1-rho)));
Ls=s*rho+(s*rho)^s*rho/(factorial(s)*(1-rho)^2)*p0;
Ws=Ls/lambda;
Wq=Ws-1/mu

例二:银行安置取款机,已知A机价格与平均服务率都是B机的2倍,应购置一台A还是两台B?
顾客平均到达率1/1min,A型平均服务时间为0.9,B型为1.8min,均服从指数分布
先看单服务台

n = 100000; %假设共100000人
lambda  = 1; muA = 0.9;
tarr = cumsum(exprnd(lambda,1,n));%exprnd形成指数分布随机值,累加得到到达时刻
tsrv = exprnd(muA,1,n);%服务时长
tsta = zeros(1,n);
tlea = zeros(1,n);
twat = zeros(1,n);
tsta(1) = tarr(1);%首位顾客服务时刻=到达时刻
tlea(1) = tsta(1) + tsrv(1);
twtime(1) = tlea(1) - tarr(1);
for i = 2:n
    tsta(i) = max(tarr(i),tlea(i-1));%服务时刻=max(到达时刻,上一个顾客离开时刻)
    tlea(i) = tsta(i) + tsrv(i);
    twat(i) = tlea(i) - tarr(i);
end
hist(twat)
sum(twat)/n%求平均等待

再看多服务台

n = 100000; 
mu = 1; 
muB = 1.8;
tarr = cumsum(exprnd(mu,1,n));
tsrv = exprnd(muB,1,n);
tsta = zeros(1,n);
tlea = zeros(1,n);
twat = zeros(1,n);
last = [0 0];%初始化两服务台结束服务时刻
for i = 2:n
    [minemp, k] = min(last);%找出最早结束服务的服务台
    tsta(i) = max(tarr(i),minemp);
    tlea(i) = tsta(i) + tsrv(i);
    last(k) = tlea(i);
    twat(i) = tlea(i) - tarr(i);
end
hist(twat)
sum(twat)/n

你可能感兴趣的:(数学建模)