并同时降低服务时间的方差,使得各个系统的平均服务率可以在一定区间内进行控制。
当系统的服务时间服从一般分布时,得到M/G/s排队模型。根据
?2?2??2Pollaczek-Khintchine(P-K)公式,Lq?。该公式表明平均队长、平均排队长、
2(1??)平均逗留时间、平均等待时间仅仅依赖于系统的服务强度?和服务时间的方差?2,而与分布的类型没有关系。当服务率?给定以后,当方差?2减少时,平均队长和等待时间等都将减少。因此,可通过改变服务时间的方差来缩短平均队长,当且仅当服务时间的方差?2?0,即服务时间为定长时,平均队长、等待时间可减少到最少水平。 本文假设将大排队系统分成五个小排队系统,服务效率分别提高1%,2%,3%,?12%,病床数为79张条件下,修改MATLAB程序得到系统平均逗留时间数据如下。
系统服务率所有病人平均各类病人的平均逗留时间 各类病人病床分配 提高比例(%) 逗留时间(天) 6 52.46 (8.21,18.6,18.95,21.45,255.2) (9,18,11,34,7) 7 17.48 (7.8,15.91,17.52,48.1,10.23) (9,18,11,33,8) 8 14.42 (7.45,14.15,16.38,28.47,9.83) (9,18,11,33,8) 9 13 (7.15,12.9,15.44,22,9.46) (9,18,11,33,8) 10 12.09 (6.88,11.91,14.66,18.75,9.14) (9,18,11,33,8) 11 11.41 (6.64,11.24,14,14.79,8.85) (9,18,11,33,8) 12 10.86 (6.43,10.65,13.42,15.47,8.59) (9,18,11,33,8) 表8-3服务率提高后,病床分配模型求解结果
计算结果省略了五行数据,即服务效率提高1%-5%,其原因是在这五种情况下,系统长期不可能处于稳定状态。当系统服务率提高比例超过6%之后,系统长期就可以处于稳定。
表8-3的第二列体现服务率提高比例对所有病人平均逗留时间的影响。
服务率提高后所有病人逗留时间60所有病人平均逗留天数504030201006789101112系统服务率提高比例
21
随着系统服务率的不断提高,所有病人平均逗留时间不断减少,并且减少的速度越来越慢。
本模型的最终目的是解决多队列排队模型情况下,服务台数量的分配问题。计算机程序结果显示:对于长期不能处于稳定状态的单队列排队模型,现在采用将单队列排队模型划分成多队列多服务台排队模型,当这种划分能够带来系统服务率的提高,并且系统服务率的提高值超过临界值,排队系统服务台的分配,最终将维持在一个稳定的分配方式,在此之后服务率的提高,只是改变所有人的平均逗留时间,而不改变服务台数量的分配方式。不考虑统计数据的误差,总病床为79张条件下,病床数量分配模型的结果如下:
病情类型 分配病床数 白内障(单眼) 9 白内障(双眼) 18 青光眼 11 视网膜疾病 33 外伤 8 合计 79 表8-4 不同病情所分配的病床数
9.模型评价与改进
本文所建立的动态自适应排队模型及病人入院的动态优先级计算公式,来调整等待入院病人的病床安排顺序,以达到缩短术前准备时间,提高日均出院人数,并且考虑了对不同类型之间以及同类型之间的公平性原则。同时应用MATLAB编程实现当前等待住院病人的动态排序,并可以计算出平均出院人数、平均逗留时间、术前准备时间等评价指标。
本文在利用层次分析法确定权重系数时,由于时间和条件的限制,判断矩阵还可以改进(例如发放调查问卷进行专家打分等)。
参考文献
[1] 胡运权等, 运筹学教程, 北京:清华大学出版社,2007 [2] 赵卫亚,计量经济学教程,上海:上海财经大学出版社,2003
[3] 张国通等,一种动态自适应医院门诊排队模式,上海交通大学学报,第41卷9期:1546-1550,2007
[4] 韩明等, 数学实验,上海:同济大学出版社,2009 [5] 扬启帆等,数学建模,杭州:浙江大学出版社,1999 [6] 姜启源等,数学模型(第三版),北京:高等教育出版社,2003。
[7] 衷克定,数据统计分析与实践—SPSS for Windows,北京:高等教育出版社2005 [8] Frank R. Giorano[美]等著,叶其孝等译,数学建模(第三版),北京,机械工业出版社,2005
[9] Hamdy A.Taha[美]著,薛毅等译,运筹学导论(高级篇),北京:人民邮电出版社,2008
[10]张杰等,运筹学模型与实验,北京:中国电力出版社,2007
22
附录
附录一
程序一:泊松分布拟合检验
A=[2 2 5 7 8 6 11 3 5 4 32 2 1 ]';alpha=0.05; lamda=poissfit(A,alpha);%求最大似然估计 p3=poisscdf(A,lamda);%求Poisson累计概率分布 [H3,s3,kst]=kstest(A,[A,p3],alpha);%卡方检验 if H3==0
disp('该数据源服从泊松分布。') else
disp('该数据源不服从泊松分布。') end
程序二:负指数分布拟合检验
A=[9 16 33 41 38 28 29 37 36 23 22 15 8 9 3 2 ]'; alpha=0.05; mu=expfit(A,alpha); p4=expcdf(A,mu);
[H4,s4]=kstest(A,[A,p4],alpha) if H4==0
disp('该数据源服从指数分布。') else
disp('该数据源不服从指数分布。') end
附录二 层次分析法的权重计算
clc;clear all; a=[1 5 4 1/5 1 1/2 1/4 2 1]; [x,y]=eig(a)
eigenvalue=diag(y) lamda=eigenvalue(1)
ci1=(lamda-6)/5;cr1=ci1/1.24 w1=x(:,1)/sum(x(:,1))
23
附录三 MATLAB编程实现病人入院动态排序及计算评价指标
function shuxue clear all;clc
%编号 已等待天数 手术到出院天数
x=xlsread('jisuanziliao.xls','baidan','a2:a80'); y=xlsread('jisuanziliao.xls','baidan','b2:b80'); z=xlsread('jisuanziliao.xls','baidan','c2:c80'); baidan=[x y z];
x=xlsread('jisuanziliao.xls','baishuang','a2:a105'); y=xlsread('jisuanziliao.xls','baishuang','b2:b105'); z=xlsread('jisuanziliao.xls','baishuang','c2:c105'); baishuang=[x y z];
x=xlsread('jisuanziliao.xls','qita','a2:a183'); y=xlsread('jisuanziliao.xls','qita','b2:b183'); z=xlsread('jisuanziliao.xls','qita','c2:c183'); qita=[x y z];
x=xlsread('jisuanziliao.xls','waishang','a2:a51'); y=xlsread('jisuanziliao.xls','waishang','b2:b51'); z=xlsread('jisuanziliao.xls','waishang','c2:c51'); waishang=[x y z];
chuyuan=[0 0 0 0 4 8 11 11 9 5 7 6 7 4 4 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; a1=1;a2=1;a3=1;a4=1; q=[];
t1=0;t2=0;t3=0;t4=0;time1=0;time2=0;time3=0;time4=0; for i=5:39 q=[];
fprintf('第%d天住院序号',i-4); k=mod(i,7); %算出是礼拜几
c1=coun(baidan,a1); %计算白单的等待人数 c2=coun(baishuang,a2); %计算白双的等待人数 c3=coun(qita,a3); %计算其他眼科病的等待人数 for ii=1:chuyuan(i) if waishang(a4,2)>0 q=[q waishang(a4,1)];
chuyuan(i+1+waishang(a4,3))=chuyuan(i+1+waishang(a4,3))+1;time4=time4+1;t4=t4+1; a4=a4+1; continue; end
if k==6||k==7
?:白单值 f2:白双值 f3:其他值
f1=0.68*baidan(a1,2)/12+0.12*c1/(c1+c2+c3)+0.20/3; f2=0.68*baishuang(a2,2)/12+0.12*c2/(c1+c2+c3)+0.20/2; f3=0.68*qita(a3,2)/12+0.12*c3/(c1+c2+c3)+0.20/6;
24

