竞赛论文 眼科病床的合理安排-论文范文.doc_第1页
竞赛论文 眼科病床的合理安排-论文范文.doc_第2页
竞赛论文 眼科病床的合理安排-论文范文.doc_第3页
竞赛论文 眼科病床的合理安排-论文范文.doc_第4页
竞赛论文 眼科病床的合理安排-论文范文.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

眼科病床的合理安排-论文眼科病床的合理安排摘要 医院眼科病床的合理安排问题属于排队论的问题,本文利用排队论分别建立M/G/1模型和M/M/c模型,处理医院眼科病床的合理安排问题。 首先,按照眼科病手术的分类分别讨论,并应用matlab分别进行数据的统计,以此得到各种病的门诊时间,等待入院时间及住院时间的分布规律,并用这些数据进行预测病人床位安排的的情况。其次,通过matlab对数据的分析我们发现病人流服从泊松分布,而病人的平均在院时间即服务时间,一般都服从负指数分布,进而我们可以将医院病床分配问题通过建立M/G/1模型求解。同时,根据M/G/1模型中的不同参数,我们就得到了病人的平均等待时间、医院的平均排队长度、病人在医院的平均逗留时间等评价指标的数据。对分析原模型时,利用非强占制优先级排队的方法来安排第二天出院人数,以及对第二天哪种病人入院也进行安排。同时,利用C+语言编程来解决整数规划问题,对每一种病所占用的病床的比例进行安排,在此安排之上再利用编程的思想算出患者在医院中的平均逗留时间最短。最后,本文分析了模型的优缺点和改进方向,同时站在医院的角度就医院如何安排床位问题提出了一些实用性的建议。关键词:M/G/1模型;M/M/c模型;整数规划模型;非强制性优先队列;一问题重述医院就医排队是大家都非常熟悉的现象,它以这样或那样的形式出现在我们面前,例如,患者到门诊就诊、到收费处划价、到药房取药、到注射室打针、等待住院等,往往需要排队等待接受某种服务。以下是关于某医院眼科病床的合理安排的数学建模问题。该医院眼科门诊每天开放,住院部共有病床79张。该医院眼科手术主要分四大类:白内障、视网膜疾病、青光眼和外伤。根据附录中给出的2008年7月13日至2008年9月11日这段时间里各类病人的情况进行分析。白内障手术较简单,而且没有急症。目前该院是每周一、三做白内障手术,此类病人的术前准备时间只需1、2天。做两只眼的病人比做一只眼的要多一些,大约占到60%。如果要做双眼是周一先做一只,周三再做另一只。 伤疾病通常属于急症,病床有空时立即安排住院,住院后第二天便会安排手术。 其他眼科疾病比较复杂,有各种不同情况,但大致住院以后2-3天内就可以接受手术,主要是术后的观察时间较长。这类疾病手术时间可根据需要安排,一般不安排在周一、周三。由于急症数量较少,建模时这些眼科疾病可不考虑急症。该医院眼科手术条件比较充分,在考虑病床安排时可不考虑手术条件的限制,但考虑到手术医生的安排问题,通常情况下白内障手术与其他眼科手术(急症除外)不安排在同一天做。当前该住院部对全体非急症病人是按照FCFS(First come, First serve)规则安排住院,但等待住院病人队列却越来越长,医院希望我们能通过数学建模来解决该住院部的病床合理安排问题,以提高对医院资源的有效利用。二.问题分析根据附录中的数据,我们首先对不同类别的眼科手术病人通过程序统计从7月13日到9月11日前来门诊的总人数共计530,如下表:病人类型人数白内障233青光眼63视网膜疾病170外伤64表1图1然后我们通过统计每类病人每天门诊的人数的均值与方差,求出其均值与方差之比,如下:病人类型日均到达人数方差白内障3.81963.9836青光眼1.03280.9989视网膜疾病2.78692.7372外伤1.04920.8809表2图2由上图我们看以看到,医院四类病人每天门诊人数的均值与方差之比接近于1,接近与泊松过程的结果,于是我们可以认为各类病人按照泊松流来到医院进行门诊,我们取上述均值与方差之和的平均值作为泊松分布的参数,于是有:病人类型白内障3.9017青光眼1.0158视网膜疾病2.7621外伤0.9650表3对问题一,从病人的排队长,等待时间,服务时间,逗留时间及病人的剩余服务时间进行考虑。对问题二,可以从如果排队的队列越来越长,最后接近于无穷,那么这个模型就不是合理的。对问题三,从当前的排队长,及当前在医院住院的病人情况可以分析出门诊病人何时能够入院。对于问题四,由于周六周日不再安排手术,会使得一些类别的病人的平均在院时间增长,计算出更改后的数值,代入问题二的模型公式中,可以得出结果。对于问题五,可以建立M/M/c模型进行与整数规划求解。三问题假设(1)假设该医院的眼科手术只有这四类:白内障、视网膜疾病、青光眼和外伤。(2)假设同类病病人的病情严重程度是相同的。 (3) 假设所研究的时期是一个长期的过程,并且每天病人到达的可能性是相等的。(4)由于人多,而眼科医院少,故我们可以认为病人源是无限的,且病人单独到来且相互独立。(5)医院提供的数据是准确、可靠的。(6)白内障、视网膜疾病、青光眼、外伤等疾病病人在医院的时间服从负指数分配。四.符号说明:泊松分布的参数;:负指数分布的参数;:第i级病人的排队长度;: 第i级病人的等待时间;: 第i级病人的服务时间;: 第i级病人的逗留时间;: 第i级病人的剩余服务时间;:第i级病人的平均排队长度;:第i级病人的平均等待时间;:第i级病人的平均服务时间;:第i级病人的平均逗留时间;:第i级病人的平均剩余服务时间;五.模型的建立与求解问题1我们从以下三个方面来考虑病床安排的合理问题:1 病人的平均等待时间:患者从到达系统时起到开始接受服务时止这一段时间. 显然患者希望等待时间越短越好2 医院的平均排队长度即病人为入院所排队的长度,此指标越短越好。3 病人在医院的平均逗留时间平均逗留时间 = 等待时间 + 服务时间,此指标也是越小越好。以医院目前的情况,医院的平均排队长度将趋向于无穷大,这显然是不合理的。问题2我们将医院病床平均分配,然后让每个来门诊的病人均匀地到每个病床进行排队,那么我们的模型可以看作79个并行的M/G/1模型。由程序统计的数据图3病人类型平均等待入院时间平均在院时间平均观察时间白内障12.52785.13892.9028白内障(双眼)12.51228.32932.9634青光眼12.256410.25647.8718视网膜疾病12.544612.22779.8812外伤16.85455.8545表3图4从数据与柱形图我们可以看出,白内障病人与需要双眼做手术的白内障病人的平均在院时间由很大得差别,因此,我们将他们分开,看成两类病人。然后我们将病人的优先级分为5级,按照非强占制优先级排队。病人的优先级如下:优先级病人类型1外伤2白内障3白内障双眼4青光眼5视网膜表4这样,根据医院数据的统计,拟定第二天出院人员为:视网膜疾病8/29/20088/31/2008视网膜疾病8/29/20088/31/2008青光眼9/1/20089/4/2008白内障9/4/20089/8/2008外伤9/5/20089/6/2008表5按照我们的模型,第二天的入院人员为:病人类型门诊时间外伤9/11/2008白内障8/31/2008白内障8/31/2008白内障9/1/2008白内障9/2/2008表6目前医院的手术安排是周一、周三做白内障手术,其他时间做非外伤手术,而且双眼的白内障病人之能一只眼在周一做,另一只眼在周三做,这样使得双眼白内障病人的在院时间增长,进而使病人的队列也增长。对于此,我们将白内障手术放在周一与周二做,而且允许做双眼的白内障病人在周二做一只眼,下周一再做一只眼,这样的话双眼的白内障病人的平均住院时间将减少至7.1864天。根据排队论的相关公式,我们有:其中,i = 1, 2, 3, 4, 5。编制程序,代入以下数值:优先级i16.50.0122250.0195370.02934100.01295120.0350表7其中由此前计算的除以79求得。求解得:优先级平均等待时间所有床位平均队列长度平均逗留时间11.08617.31157.586121.31949.73506.319431.965320.75218.965343.307813.562013.3078529.5886114.992541.5886表8通过计算结果可以看出,医院的队列长度稳定在一个数值之上,没有趋向于无穷。各级病人的平均等待时间也均在可以接受范围之内。问题三从第二问之中,我们已经得到了第i级优先级病人的平均等待时间但在一般情况下,此数值并非整数,于是我们可以得到病人的大致住院区间为:问题四由于医院在星期六与星期日不安排手术,但病人仍可以前往医院门诊,这样的话对于病人的到达率并没有影响。由于在问题二中白内障手术只在周一与周二做,对白内障病人的平均住院时间没有影响,但对于其他病人,他们的平均在院时间会相应的增长,具体结果如下:70.012250.019570.0293110.0129130.0350表9于是,我们再按照问题二中的公式,可以得出第i类优先级病人的结果为:优先级平均等待时间平均队列长度平均逗留时间11.09341.05388.053821.33812.06147.061431.99974.628811.628843.47583.542214.54225140.8746389.5184402.5184表10可以看出,对于第5级病人,即视网膜疾病病人,平均等待时间高达140,这是令人难以接受的数值,所以医院调整手术时间还是有必要的。问题五在每类病人分配固定比例的床数以后,我们可以把此时的医院排队模型看作5个M/M/C模型。由于要求平均逗留时间最短,根据M/M/C模型公式,我们有:s.tmin其中,设某一类病人病床分配为n,病人到达医院以及在医院的停留时间的参数为,那么这是一个整数规划问题,编制程序求解,我们得到以下病床分配比例图5六模型的评价与改进模型的优点:本文没有使用单一的模型对问题进行求解,而是在原来模型的基础上进行改进,分别建立了M/M/c和M/G/1两个模型来解决问题。这样使文中所求得的数据更合理、可靠,也是论文更具有实际的意义。在对数据的处理上,利用了matlab巧妙的进行了统计,从而更有效的利用数据。在问题2中,如果以本文所给模型那么排队长将会趋近于无限长,通过对模型进行改进,排队长大大的变短。同时,对于白内障双眼患者平均住院时间也略微减少。模型的缺点:1 在改进原模型之前,我们假设了仅仅以这四种病为例进行分类,并没有形成一定的分类标准,可能会带来一定的误差。2 将每种病的严重程度都视为相同,这与实际情况不同。同时,在用matlab对数据进行处理过程中,对于一些和其它数据相差远的数据进行了近似处理,没有进一步挖掘。3 没有按照FCFS(First come, First serve)规则安排住院,难免会让有些病人感觉不公平。如果考虑上述情况,模型会得到进一步改进。模型的改进:在对模型建立时,可以采用更适合的M/G/c模型,同时在当今信息社会里,网络已经成为人们日常生活中必不可少的资源获取方式,所以眼科医院完全可以在网上建一个在线预约网站,方便患者能够及时了解病床安排等相关信息,减少等待时间。另外,医院应该考虑多增加病床,减少病人的等待时间。参考文献: 1陆传賚,排队论,北京:北京邮电学院出版社,1994.5 2盛骤,谢式千,潘承毅,概率论与数理统计,北京:高等教育出版社,2001.12 3姜启源,邢文训,谢金星,杨顶辉,大学数学实验,北京:清华大学出版社,2005.2 4刘卫国,MATLAB程序设计与应用,北京:高等教育出版社,2006.7附录Date.mclassdef Date 12) addYear(date, 1); date.month = (date.month + num) - 12; capacity(date); else date.month = date.month + num; capacity(date); end end function addDay(date, num) if (date.day + num date.daycap) date.day = rem(date.day + num, date.daycap); addMonth(date, 1); else date.day = date.day + num; end end end methods(Static) function logical = equal(date1, date2) if (date1.year = date2.year & date1.month = date2.month . & date1.day = date2.day) logical = 1; else logical = 0; end end function day = dayDiff(date1, date2) day = 0; while (date1.month = date2.month) if (date1.month date2.month) day = day + date1.daycap; date1.addMonth(-1); else day = day - date1.daycap; date1.addMonth(1); end end if (date1.day = date2.day) day = day + (date1.day - date2.day); end end end methods (Access = private) function logical = isLeapYear(date) if (rem(date.year, 400) = 0 | rem(date.year, 100) =0 . & rem(date.year, 4) = 0) logical = 1; else logical = 0; end end function capacity(date) switch date.month case 2 if (isLeapYear(date) date.daycap = 29; else date.daycap = 28; end case 4 date.daycap = 30; case 6 date.daycap = 30; case 9 date.daycap = 30; case 11 date.daycap = 30; otherwise date.daycap = 31; end end end endstatistics.ma b catad = xlsread(F:data.xls, sheet1, C2 : C101);a b catadd = xlsread(F:data.xls, sheet1, C102 : C234);a b glau = xlsread(F:data.xls, sheet1, C235 : C297);a b reti = xlsread(F:data.xls, sheet1, C298 : C467);a b othd = xlsread(F:data.xls, sheet1, C468 : C531);a b cyd = xlsread(F:data.xls, sheet2, G2 : G350); catnum tcatn = diseaStatist(catad);catdnum tcatdn = diseaStatist(catadd);glaunum tglaun = diseaStatist(glau);retinum tretin = diseaStatist(reti);othdnum tothdn = diseaStatist(othd);Statistics2.ma b cmztime = xlsread(F:data.xls, Sheet2, C2 : C73);a b crytime = xlsread(F:data.xls, Sheet2, D2 : D73);a b cshtime = xlsread(F:data.xls, Sheet2, E2 : E73);a b ccytime = xlsread(F:data.xls, Sheet2, G2 : G73); a b cdmztime = xlsread(F:data.xls, Sheet2, C74 : C155);a b cdrytime = xlsread(F:data.xls, Sheet2, D74 : D155);a b cdshtime = xlsread(F:data.xls, Sheet2, F74 : F155);a b cdcytime = xlsread(F:data.xls, Sheet2, G74 : G155); a b gmztime = xlsread(F:data.xls, Sheet2, C156 : C194);a b grytime = xlsread(F:data.xls, Sheet2, D156 : D194);a b gshtime = xlsread(F:data.xls, Sheet2, E156 : E194);a b gcytime = xlsread(F:data.xls, Sheet2, G156 : G194); a b rmztime = xlsread(F:data.xls, Sheet2, C195 : C295);a b rrytime = xlsread(F:data.xls, Sheet2, D195 : D295);a b rshtime = xlsread(F:data.xls, Sheet2, E195 : E295);a b rcytime = xlsread(F:data.xls, Sheet2, G195 : G295); a b omztime = xlsread(F:data.xls, Sheet2, C296 : C350);a b orytime = xlsread(F:data.xls, Sheet2, D296 : D350);a b oshtime = xlsread(F:data.xls, Sheet2, E296 : E350);a b ocytime = xlsread(F:data.xls, Sheet2, G296 : G350); wctime = timeDiff(cmztime, crytime);dctime = timeDiff(cshtime, ccytime);sctime = timeDiff(crytime, ccytime); wcdtime = timeDiff(cdmztime, cdrytime);dcdtime = timeDiff(cdshtime, cdcytime);scdtime = timeDiff(cdrytime, cdcytime); wgtime = timeDiff(gmztime, grytime);dgtime = timeDiff(gshtime, gcytime);sgtime = timeDiff(grytime, gcytime); wrtime = timeDiff(rmztime, rrytime);drtime = timeDiff(rshtime, rcytime);srtime = timeDiff(rrytime, rcytime); wotime = timeDiff(omztime, orytime);dotime = timeDiff(oshtime, ocytime);sotime = timeDiff(orytime, ocytime); twct = total(wctime);tdct = total(dctime);tsct = total(sctime); twcdt = total(wcdtime);tdcdt = total(dcdtime);tscdt = total(scdtime); twgt = total(wgtime);tdgt = total(dgtime);tsgt = total(sgtime); twrt = total(wrtime);tdrt = total(drtime);tsrt = total(srtime); twot = total(wotime);tdot = total(dotime);tsot = total(sotime); mwct = mean(wctime);mdct = mean(dctime);msct = mean(sctime); mwcdt = mean(wcdtime);mdcdt = mean(dcdtime);mscdt = mean(scdtime); mwgt = mean(wgtime);mdgt = mean(dgtime);msgt = mean(sgtime); mwrt = mean(wrtime);mdrt = mean(drtime);msrt = mean(srtime); mwot = mean(wotime);mdot = mean(dotime);msot = mean(sotime);timeDiff.mfunction day = timeDiff(date1, date2) n = length(date1); for k = 1 : n day(k) = Date.dayDiff(Date(date2k), Date(date1k); endendtotal.mfunction num = total(distribute) sum = 0; for k = 1 : length(distribute) sum = distribute(k) + sum; num(k) = sum; endendewait.mfunction time = ewait(rho, er, r) for i = 1 : r if (i = 1) time(i) = sum(rho .* er) / (1 - rho(i); continue; end s1 = 0; for k = 1 : i; s1 = rho(k) + s1; end s2 = s1 - rho(i); time(i) = sum(rho .* er) / (1 - s1) * (1 - s2); endenddiseaStatist.mfunction num total = diseaStatist(disease) n = length(disease); for k = 1 : n date(k) = Date(diseasek); end startdate = Date(7/13/2008); m = 1; k = 1; num = zeros(61, 1); while (1) while (Date.equal(date(k), startdate) num(m) = num(m) + 1; k = k + 1; if (k n) break; end end if (k n) break; end startdate.addDay(1); m = m + 1; end sum = 0; for k = 1 : 61 sum = num(k) + sum; total(k) = sum; endendmodelsolve.cpp/ 用于求解整数规划的程序#include#includeusing namespace std;/ 阶乘int factorial(int n)if (n = 0)return 1;elsereturn n * factorial(n - 1);/ 根据rho1求rhodouble srho(double rho1, int n)return rho1 / n;/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论