信息与通信工程学院
(小论文)
专业:信息与通信工程
2017年10月
看病排队分析
摘要:排队问题是生活中比较常见而且比较难解决的问题,因此研究如何解决排队问题对于生活有很大帮助。本文通过研究看病排队这一具体问题分析,来分析排队这一类的问题。看病排队问题的实质是解决需求和供给之间的关系,如何合理分配医疗资源是解决这个问题的关键。通过对实际看病过程中的排队数据进行分析来搭建相应的数学模型,利用数学模型来分析这一类问题是研究排队问题的一种常见思路。排队问题的模型有很多,这里采用泊松过程来进行分析。对数据进行处理来验证使用泊松过程解决看病排队问题的合理性。主要实用MATLAB这款数据处理软件进行数据分析,通过图形直观的显示验证结果。
关键词:泊松过程MATLAB
一、研究背景
排队等待是我们每个人都要经历的,比如等待交款、等候就餐、等电梯、等公交等。患者不同于健康人,患者的病情是拖不起的,同时排队等待对患者的身心不利,也会产生人群聚集而不利于系统的预防工作,“非典”疫情是使老百姓也充分意识到系统排队等待的一些弊端。随着人们防病意识的增加、生活节奏的加快和对医疗服务水平要求之高,排队等待的组织管理问题尤显重要。系统如果使患者等待,将会导致患者不满意或可能失去患者,甚至发生交叉感染。因此,患者排队等待问题是应该引起系统管理者高度重视的问题。
看病排队等待问题在生活中是不可避免的。等待绝对不发生的唯一条件是,
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
患者在固定的时间间隔到达,而且服务时间是一定的。由于医疗服务能力与需求不可能完全匹配,比如多数系统受成本、设施、人员等客观条件的限制,不能轻易增加设备和人员,以适应和配合患者的需求变化,或者医疗需求较难预测而医疗服务能力缺乏相应的弹性。由于患者到达系统的时间是随机的,接受服务所需要的时间也是随机的,即使预约患者按照约定时间到达系统,但由于医生对疾病诊治时间的不确定性,后面的患者也不得不等待。所以排队是医疗服务过程中不可避免的就诊过程,特别是在大系统接受就诊,排队等待时间(特别是排队挂号、候诊、交款、等待检查)占就诊时间的很大部分。
在不可避免排队等待的情况下,怎样充分利用医疗资源对于解决排队等候排队有很大帮助。因此研究分析患者看病排队等候问题有利于分析患者看病需求和系统医疗资源的切合点,达到患者和系统都满意。排队论就是解决排队等待问题的一门学科,又称为等待线问题、随机服务系统理论等,是运筹学的一个分支。排队论的基本思量是由丹麦数学家、电气工程师爱而郎1909年将概率论应用于自动电话设计问题中,从而开创了排队论这一应用数学学科,并且为排队论建立了许多基本的原则。排队论通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度等)的统计规律,然后根据这些规律来改进服务系统的结构或某些指标最优。本文由于受时间和水平的限制,不能对排队等待问题做深入的研究,仅根据所学随机过程这门课,对于排队这个问题用泊松过程来研究的理论验证。
二、基本原理
1、对研究排队系统来说,最关心排队系统的一些数量指标,主要包括:
(1)单位时间到达系统的患者数的期望值,即单位时间内的患者到达率,记作
,而
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示相邻两个患者到达的平均时间间隔。
(2)单位时间内服务患者数的期望值,即单位时间内患者的平均离去率,记作
,而
表示每个患者的平均服务时间。
(3)在时刻
系统中恰好有
个患者的概率是
,显然
为系统空闲率。
(4)系统内的平均患者数,即正在接受诊断的患者与排队等候的患者数之和,也称为队长,记作
。通常需要队长的分布和前二阶矩。
(5)系统内排队等待的平均患者数称为等待队长,记作
。等待队长与队长的关系是等待队长不包括正在接受服务的患者数。
(6)患者从进入系统到接受诊断完离开系统的平均时间称为患者在系统中花费的时间或平均逗留时间,记作
。
(7)患者在系统内排队等待的平均时间称为患者花费在排队系统中的平均等待时间,一般记作
。平均等待时间与平均逗留时间的关系是平均等待时间不包括被服务所花费的时间。
以上7个指标主要从患者出发提出的技术指标,而从服务机构角度来说,还关心以下几个技术指标。
(8)单位时间内被服务的患者数称为系统的绝对通过能力。
(9)单位时间被服务患者数与请求诊断患者数之比称为系统的相对通过能力。
(10)空闲的服务机构从有患者到达时起一直到系统没有患者时为止这段时间称为忙期。
(11)系统从开始没有患者起到一直系统有患者时为止这段时间称为闲期。闲期与忙期是相对应的。
(12)对于有
个服务台的系统,从系统开始有
个患者在等待服务时起一直到有一个服务台空闲时为止这段时间称为系统的
阶繁忙期。而零阶繁忙期又称为繁忙期。
(13)对于损失制的排队系统中、系统的满员概率称为系统的损失率。
2、根据排队系统的表示方法,我们将到达医院等待服务的患者的人数设定为服从泊松分布,患者相继到达时间和服务时间都服从负指数分布,其具有无记忆性。我们将相应的排队数学模型表示为如下图[1]:
M/M/N系统即服务机构有N个服务台,而患者源的数量无限。设M/M/N系统的输入过程
是参数为
的泊松过程,每个服务台的服务时间
是都服从参数
的负指数分布。患者到达时间和工作人员服务时间相互独立。根据模型,患者的到来遵循参数
为的泊松过程,即任意两个患者到来的时间间隔遵循参数为
的负指数分布:我们都知道在医院里都是取号按到达的先后顺序依次接受服务的,所以可以将之等同于患者排成一个队列按到达的先后顺序依次接受服务。在本文的模型中,一共有N个服务窗口,假设每个服务窗口服务一次的时间遵循参数为
的负指数分布,各个服务窗口之间是相互独立的,且服务窗口与患者的到达时间也是相互独立的。
那么以相应关系给出所需要的全部数量指标符号[2]:
:平均队长,表示系统中的患者数,是排队等候的患者数和正在挂号的患者数总和。
:平均列队长,表示系统中排队等候的患者数。
:平均占用服务台数,即正在挂号的患者数。
:平均逗留时间,包括等待时间和挂号时间。
:平均等待时间,也称平均排队等待时间。
:系统到达平衡时,所有服务台空闲的概率。
:患者到达的平均速率,即单位时间内平均到达的患者数。
:平均挂号速率,即单位时间内挂号完毕离去的患者数。
:服务强度,表示每个窗口单位时间内的平均挂号时间,且只有当
的时候才不会排成无限的队列。
我们可以根据上述转移关系图得到M/M/N系统相关转移
计算公式
六西格玛计算公式下载结构力学静力计算公式下载重复性计算公式下载六西格玛计算公式下载年假计算公式
,如下:
这里要求
[1].
在本文的模型中,医院服务窗口数量一方面要考虑患者者的需求,另一方面也要考虑自身人力消耗的因素。所以我们最后的目标是求出在不同的患者量
的情况下的最佳窗口数目N.。即得到两者的一个确定的表达式 ,下面对该模型的进行理论求解。设患者到达的速率为N,服务的速率为
,窗口数为N,记
状态为队伍里有
个人等待时的状态。则有
状态时的患者到达率为
,
状态时的服务率为
将某时刻存在
个患者排队的概率设为
,即得到
的平衡方程。将其进行整理如下:
采用递推法,递推先关表达式得到下述结果:
[3]
我们将上式归一化处理得到相关求和结果:
给定系统的服务强度为
[3]
3、平均队长
系统中患者的平均数即平均队长为:
4、平均列队长
若存在排队等待的患者,就说明系统中患者数大于服务台数量,因此有
个患者在接受服务时,排队等候的患者数为
。那么系统中排队患者的平均数即为等待列队长,即:
5、平均占用服务台数
根据上述数量指标解释:
6、患者等待时间
的分布
[2]
将相应结果带入医院M/M/N系统数学模型中:
[2]
根据上述算式,可以通过确定的平均速率
和平均服务速率
,进行计算
来确定服务台窗口数量。
7、平均逗留时间
在系统平稳条件满足的情况下,患者在系统逗留时间
包括等待时间
和接受服务时间
两个部分,由于等待时间
和接受服务时间
是相互统计独立的,因此
接受服务时间
服从指数分布,它的概率密度函数
,求得
的均值和方差如下
,
所以可以得到:
因此可以得到逗留时间
的分布函数为
8、系统通过能力
由于M/M/N系统的患者数量无限制,因此它属于等待制的排队系统,即到达系统中的患者迟早得到服务台服务,因此系统损失率
为
系统相对通过能力
为
系统绝对通过能力
为
三、仿真分析
通过对以上数据了解分析,这里使用Matlab编程对比仿真结果和理论结果,以
证明
住所证明下载场所使用证明下载诊断证明下载住所证明下载爱问住所证明下载爱问
理论推导的,正确性代码见附录1、2、3。
我们对仿真实验进行如下设计:设模拟的总人数为n,服务窗口数为N,首先利用一个
的矩阵来记录每个人的信息。其中第一行表示到达时刻,第二行表示服务时间长度,第三行表示等待时间长度,第四行表示离开时刻。其中到达时刻和服务时间长度可由己知的
求得。易知离开的时刻=到达的时刻+服务时间长度+等待时间长度。用长度为N的Serve_State表示每个窗口的接受服务的人的离开时刻。前N个人到达后不需要等待,故等待时间为零。从第N+1个人开始,先由Serve_State求出N 个窗口中的提早结束服务的窗口,如果结束服务的时刻小于患者到来的时刻,则该患者的等待时间为零:如果结束服务的时刻大于患者到来的时刻,则二者之差为该患者的等待时间。同时更新该窗的接受服务的人的离开时刻。在求出所有患者的等待时间后,对其求平均值,得到最后要求的平均等待时间。
初始值设定:服务窗口数N=5,模拟总人数n=500,服务速率mu=4,患者到达速率lambda=100。
我们对患者到达速率和服务台工作速率分别进行50仿真实验,取其中一组图像展示如下:
图1 患者到达速率仿真结果和理论结果
图2 服务速率仿真结果与理论结果
分别对如上实验结果求解均方误差MSE,结果如下图所示:
图3 患者到达速率均方误差
图4 服务台工作速率均方误差
结论:
根据数值结果,我们可以看出此模型推算出的相关参数的患者到达速率和服务台工作速率的5仿真结果大致相似,拟合程度较高。同时计算50次仿真的均方误差曲线数值较小,说明预测模型描述实验数据具有比较好的精确度。模型符合实验结果要求,针对此类问题可作出合理
规划
污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文
满足实际情况。
4、参考文献
[1]何选森.随机过程与排队论.长沙:湖南大学出版社.
[2]罗鹏飞,张文明.随机信号分析与处理.北京:清华大学出版社,2006.
[3]王梓坤.随机过程通论.北京:北京师范大学出版社,1996.
五、附录
1、main.m
%主要程序:对仿真结果和理论结果进行对比,证明理论推导的正确性
N=5;%服务窗口数
n=500;%模拟实际人数
mu=4;%服务速率
lambda=1:0.5:20;%对参数患者到达速率lambda进行扫描
y1=zeros(1,length(lambda));%储存排队仿真结果
y2=zeros(1,length(lambda));%储存排队理论结果
for t=1:50
for i=1:length(lambda)
y1(i)=MMN(lambda(i),mu,n,N);
y2(i)=time(lambda(i),mu,N);
end
a(t)=mse(y1,y2);%计算均方误差
end
figure
plot(lambda,y1,'r','LineWidth',2);
hold on
plot(lambda,y2,'c','LineWidth',2);
xlabel('患者到达速率')
legend('仿真结果','理论结果');
title('仿真结果与理论结果对比');
figure
plot(a,'y');
legend('患者到达速率mse');
lambda=100;
mu=20:0.5:40;%对服务速率mu进行扫描
y1=zeros(1,length(mu));%储存排队仿真结果
y2=zeros(1,length(mu));%储存排队理论结果
for j=1:50
for i=1:length(mu)
y1(i)=MMN(lambda,mu(i),n,N);
y2(i)=time(lambda,mu(i),N);
end
b(j)=mse(y1,y2);
end
figure
plot(mu,y1,'b','LineWidth',2);
hold on
plot(mu,y2,'g','LineWidth',2);
xlabel('服务速率')
legend('仿真结果','理论结果');
title('仿真结果与理论结果对比)');
figure
plot(b,'m');
legend('服务速率mse');
2、MMN.m
%MMN模型
function y=MMN(lambda,mu,n,N)
%lambda患者到达速率 mu服务速率 n仿真患者数目 N服务台数
%用4*n的矩阵分别记录每位患者到达时间、服务时间、等待时间和离开时间
state=zeros(4,n);
state(1,:)=exprnd(1/lambda,1,n);%患者到达时间服从指数分布
temp=cumsum(state(1,:));
state(1,:)=temp;
state(2,:)=exprnd(1/mu,1,n);%患者接受服务时间服从指数分布
state(3,1:N)=zeros(1,N);%前N个人不用等直接可以进行挂号
state(4,1:N)=sum(state(1:3,1:N));%前N个人离开时间
serve_state=zeros(1,N);%记录窗口结束服务的时刻
serve_state=state(4,1:N);%初始化
for k=N+1:n%讨论N+1个人以以后的患者
[m,position]=min(serve_state);%最早服务完的时间及窗口号
if(state(1,k)>m)%患者到来时有空闲窗口可以提供服务
state(3,k)=0;
else
state(3,k)=m-state(1,k);%不满足条件计算两者时间差
end
state(4,k)=sum(state(1:3,k));%得到服务时间
serve_state(position)=state(4,k);%更新服务窗口
end
y=sum(state(3,:))/n;
disp('到达时间')
disp(state(1,:))
disp('服务时间')
disp(state(2,:))
disp('等待时间')
disp(state(3,:))
disp('离开时间')
disp(state(4,:))
3、time.m
%理论推导出排队中的平均等待时间Wq
function Wq=time(lambda,mu,n)
rho=lambda/mu;
rho2=rho/n;
sum=0;
for k=0:n-1
sum=sum+rho^k/factorial(k);
end
Po=(rho^n/(factorial(n)*(1-rho2))+sum)^(-1);
Wq=rho^n*Po/(factorial(n-1)*mu*(n-rho)^2);
%Lq=(n*rho2)^n*rho2*Po/(factorial(n)*(1-rho2))
%Wq等价于Wq=(n*rho2)^n*Po/(factorial(n)*mu*(1-rho2))