楊 楓
(河南中醫(yī)藥大學(xué) 管理學(xué)院,河南 鄭州450046)
近年來,隨著城市規(guī)模的不斷擴(kuò)大,外來人口不斷涌入,城市的公共安全形勢十分嚴(yán)峻。如何遏制城市突發(fā)事件的發(fā)生,如何在突發(fā)事件發(fā)生后迅速組織救援,已經(jīng)成為維護(hù)社會(huì)穩(wěn)定,提升政府應(yīng)急管理能力的重點(diǎn)問題?!敖】抵袊?030”規(guī)劃綱要指出,完善突發(fā)事件衛(wèi)生應(yīng)急體系,提高快速反應(yīng)和有效處理能力,建立以120急救指揮為主體、消防和交通運(yùn)輸為補(bǔ)充、涵蓋多種醫(yī)療衛(wèi)生機(jī)構(gòu)在內(nèi)的緊急醫(yī)學(xué)救援體系,提升突發(fā)事件緊急醫(yī)學(xué)救援能力,提高救治效率,最大限度降低事故傷亡率[1]。在城市應(yīng)急救援管理體系協(xié)同調(diào)度下,必須要對(duì)傷員的傷情進(jìn)行識(shí)別和分類,對(duì)于輕傷傷員采取現(xiàn)場救治的方式,對(duì)于重傷傷員必須立即轉(zhuǎn)運(yùn),送到醫(yī)院進(jìn)行手術(shù)急救[2]。對(duì)于城市突發(fā)事件下產(chǎn)生的龐大數(shù)量的重傷傷員,醫(yī)療機(jī)構(gòu)往往不堪重負(fù)。如何提高應(yīng)急手術(shù)的效率,盡可能高效地利用有限的醫(yī)療資源,最大限度挽救傷員的生命是當(dāng)前城市公共安全應(yīng)急管理體系迫切需要研究的新課題,因此對(duì)應(yīng)急手術(shù)調(diào)度的研究顯得尤為重要。
醫(yī)院手術(shù)室調(diào)度優(yōu)化的研究多集中在手術(shù)排程的優(yōu)化。羅永等[3]以手術(shù)室的均衡利用為目標(biāo),建立了混合整數(shù)規(guī)劃模型,研究最大化手術(shù)室利用問題。李惠等[4]以所有病人完成手術(shù)過程的最長時(shí)間和平均時(shí)間最小化為目標(biāo),設(shè)計(jì)一種將單親遺傳算法與禁忌搜索算法相結(jié)合的混合優(yōu)化算法,解決手術(shù)排程問題。朱悅等[5]構(gòu)建了包含手術(shù)間準(zhǔn)備時(shí)間和醫(yī)療團(tuán)隊(duì)間準(zhǔn)備時(shí)間的排程模型,考慮存在于手術(shù)時(shí)間和手術(shù)間準(zhǔn)備時(shí)間的學(xué)習(xí)效應(yīng)和存在于醫(yī)療團(tuán)隊(duì)間準(zhǔn)備時(shí)間的惡化效應(yīng),以最小化所有手術(shù)完成時(shí)間為目標(biāo),研究手術(shù)排程問題。王昱等[6]考慮手術(shù)服務(wù)時(shí)間的不確定性,以院方收益最大為目標(biāo),建立手術(shù)調(diào)度問題的確定型模型,并提出區(qū)間型手術(shù)調(diào)度問題的兩階段魯棒優(yōu)化方法。Denton等[7]考慮了手術(shù)過程的不確定性,以最小化手術(shù)運(yùn)行成本為目標(biāo)建立魯棒優(yōu)化模型,并給出手術(shù)室最優(yōu)開放數(shù)量區(qū)間的上界和下界。Zhong等[8]將手術(shù)調(diào)度描述為一個(gè)平行機(jī)調(diào)度問題,并采用兩階段的方法來處理這個(gè)問題。Wei等[9]考慮到一個(gè)完整手術(shù)流程涉及到多個(gè)資源限制,為了保證患者能得到及時(shí)救治,而且能夠均衡利用醫(yī)院資源,將手術(shù)調(diào)度看成一個(gè)多資源的約束問題,由于存在并行的多個(gè)手術(shù)室,可看作柔性作業(yè)車間調(diào)度問題,使用改進(jìn)的蟻群算法對(duì)該問題進(jìn)行仿真求解。這些研究主要考慮常規(guī)手術(shù)情況下,如何最大限度地利用手術(shù)室資源,縮短手術(shù)時(shí)間,沒有考慮應(yīng)急手術(shù)下大批量重傷員最短手術(shù)時(shí)間和最大資源利用率的情況。事實(shí)上,相比常規(guī)手術(shù)調(diào)度問題應(yīng)急醫(yī)療調(diào)度存在不確定狀況突出、急診手術(shù)需求激增、特定醫(yī)護(hù)資源緊缺等調(diào)度難點(diǎn),其手術(shù)中的決策目標(biāo)和條件也與常規(guī)情形下有本質(zhì)不同,因此應(yīng)急手術(shù)調(diào)度研究具有一定的科學(xué)理論研究價(jià)值。
本文首先分析城市突發(fā)事件下應(yīng)急手術(shù)的特點(diǎn),將應(yīng)急手術(shù)調(diào)度視作存在并行機(jī)的流水車間調(diào)度問題;然后對(duì)批量手術(shù)調(diào)度進(jìn)行建模,并且考慮應(yīng)急手術(shù)下醫(yī)生長時(shí)間連續(xù)手術(shù)產(chǎn)生的疲勞問題,該問題將對(duì)手術(shù)持續(xù)時(shí)間和挽救病人生命的成功率帶來惡化效應(yīng);最后利用改進(jìn)的飛蛾撲火算法對(duì)應(yīng)急手術(shù)模型進(jìn)行求解,并通過實(shí)證來驗(yàn)證模型和算法的有效性。相比其他元啟發(fā)算法,飛蛾撲火算法最重要的特點(diǎn)是可以很好地協(xié)調(diào)全局搜索和局部搜索過程,避免陷入局部最優(yōu)。這對(duì)于應(yīng)急手術(shù)調(diào)度場景有很好的適應(yīng)能力。
雖然生產(chǎn)調(diào)度理論和方法的研究已經(jīng)在制造業(yè)中得到廣泛的應(yīng)用和成熟的發(fā)展,但在服務(wù)業(yè)領(lǐng)域只有零星的應(yīng)用,醫(yī)療服務(wù)業(yè)中的生產(chǎn)調(diào)度理論更急需完善,而解決的有效工具則是工業(yè)工程方法和運(yùn)籌學(xué)[10-11]。白雪等[12]基于生產(chǎn)調(diào)度理論,從生產(chǎn)調(diào)度理論和手術(shù)室調(diào)度2個(gè)方面進(jìn)行相關(guān)文獻(xiàn)綜述,并分析生產(chǎn)調(diào)度理論在手術(shù)室中的適用性和差異性,提出手術(shù)室研究框架。Pham等[13]將優(yōu)化問題看作一個(gè)多模式塊加工車間調(diào)度問題,并建立與之對(duì)應(yīng)的混合整數(shù)線性規(guī)劃模型來降低性能指標(biāo)對(duì)手術(shù)室超時(shí)的影響。郭斯琪等[14]考慮手術(shù)室數(shù)量有限不確定因素造成手術(shù)時(shí)間波動(dòng)及緊急病患隨機(jī)到達(dá)的情況,以醫(yī)院和患者雙方利益最優(yōu)為目標(biāo),建立多目標(biāo)線性規(guī)劃模型,利用蟻群算法對(duì)模型進(jìn)行求解得到最優(yōu)排程方案。鐘力煒等[15]采用以運(yùn)籌學(xué)、組合最優(yōu)化和排程論為理論基礎(chǔ)的優(yōu)化模型進(jìn)行手術(shù)室調(diào)度管理。
手術(shù)室的調(diào)度優(yōu)化是醫(yī)療服務(wù)資源調(diào)度優(yōu)化的關(guān)鍵問題之一。在日常醫(yī)院運(yùn)營過程中,大批量傷員的手術(shù)基本不存在,但在突發(fā)事件發(fā)生后,醫(yī)院短時(shí)間之內(nèi)就會(huì)收治大量需要手術(shù)的傷員。突發(fā)事件中收治的傷員大多屬于同一傷情類別的傷員,因此手術(shù)的類別也大致相同,將此類應(yīng)急手術(shù)與生產(chǎn)制造的工件在機(jī)器上加工相對(duì)比,可以發(fā)現(xiàn)二者具有較高的相似度。因此,可以將應(yīng)急手術(shù)調(diào)度問題看作是一個(gè)加工車間調(diào)度問題。國外的手術(shù)室已經(jīng)將麻醉準(zhǔn)備間和麻醉復(fù)蘇室進(jìn)行了獨(dú)立劃分,我國的一些醫(yī)院也已經(jīng)開始將麻醉準(zhǔn)備間和麻醉復(fù)蘇室進(jìn)行獨(dú)立劃分,形成麻醉準(zhǔn)備、手術(shù)和麻醉復(fù)蘇3道獨(dú)立工序,如圖1所示。下文為了說明問題,將麻醉間、手術(shù)間和復(fù)蘇室統(tǒng)稱為手術(shù)病床。當(dāng)手術(shù)需求到達(dá)時(shí),手術(shù)調(diào)度中心按照一定的規(guī)則將手術(shù)分配到各個(gè)手術(shù)間,并排好順序。每臺(tái)手術(shù)的總時(shí)長分為3段:術(shù)前準(zhǔn)備(包括麻醉)、手術(shù)、術(shù)后清理(包括麻醉復(fù)蘇)。從生產(chǎn)調(diào)度視角分析整個(gè)應(yīng)急手術(shù)調(diào)度流程,可以將應(yīng)急手術(shù)調(diào)度看作一個(gè)流水車間調(diào)度。另外,考慮到麻醉準(zhǔn)備間、手術(shù)間和麻醉復(fù)蘇室不只有一個(gè),而是平行機(jī)組車間,也可將其視作可平行加工的同種機(jī)器,每一臺(tái)手術(shù)視作加工工件。因此,應(yīng)急手術(shù)調(diào)度問題可以看作存在并行機(jī)的流水車間調(diào)度問題,可以將Flow-Shop調(diào)度理論引入應(yīng)急手術(shù)調(diào)度與優(yōu)化中。
圖1應(yīng)急手術(shù)工序Figure 1 Emergency surgical procedures
在城市突發(fā)事件中,應(yīng)急救援過程轉(zhuǎn)運(yùn)的傷員數(shù)量往往是巨大的,遠(yuǎn)遠(yuǎn)高于醫(yī)院日常接診時(shí)安排的手術(shù)臺(tái)數(shù)。在高負(fù)荷的手術(shù)壓力下,醫(yī)生因?yàn)樾詣e、年齡、身體素質(zhì)等各方面的因素,當(dāng)手術(shù)持續(xù)時(shí)間過長時(shí),必然會(huì)疲勞。這種疲勞現(xiàn)象會(huì)給應(yīng)急手術(shù)調(diào)度帶來惡化效應(yīng)(aging effect)。近年來,帶有惡化效應(yīng)的調(diào)度問題引起了廣大學(xué)者的關(guān)注。最早被提出來的惡化效應(yīng)模型中,工件的加工時(shí)間是由工件的開始時(shí)間決定的非減線性函數(shù)。另外,很多文獻(xiàn)提出了惡化效應(yīng)模型,即由加工工件所處位置限制帶來調(diào)度過程實(shí)際加工時(shí)間呈指數(shù)級(jí)別增加[16]。目前,研究過程中有關(guān)調(diào)度中惡化效應(yīng)模型普遍都存在一個(gè)弊端,即工件加工時(shí)間越晚,或者工件在加工次序中所排位置越靠后,其事實(shí)加工時(shí)間就會(huì)趨向無窮大,這明顯與真實(shí)的生產(chǎn)規(guī)律相違背。對(duì)于應(yīng)急手術(shù)調(diào)度,同樣存在這個(gè)問題。在實(shí)際情況中,必須考慮應(yīng)急手術(shù)傷員數(shù)量過多時(shí),排在后面的傷員的手術(shù)時(shí)間問題,即必須設(shè)定一個(gè)手術(shù)時(shí)間的上界,避免傷員手術(shù)開始時(shí)間或排隊(duì)位置變大導(dǎo)致實(shí)際手術(shù)時(shí)間趨向無窮。因此,本文對(duì)應(yīng)急手術(shù)中醫(yī)生的疲勞問題引起的時(shí)間惡化效應(yīng)進(jìn)行分析,并將此作為應(yīng)急手術(shù)調(diào)度問題的約束條件,構(gòu)建一個(gè)更接近現(xiàn)實(shí)應(yīng)急手術(shù)過程的調(diào)度模型——惡化效應(yīng)模型
n個(gè) 傷員pi(i=1,2,···,n) 需要在m(m=3)道手術(shù)工序上手術(shù);所有傷員的手術(shù)流程相同,在第j道手術(shù)工序中包含M j臺(tái)并行手術(shù)病床(Mj>0,j∈{1,2,3});所有傷員的第j道手術(shù)工序均可在M j中的任意一臺(tái)并行手術(shù)病床上進(jìn)行;所有傷員在并行手術(shù)病床上進(jìn)行手術(shù)操作的操作時(shí)間不同。Pi jk為傷員i的第j道手術(shù)工序在病床k上的處理時(shí)間;S i jk為傷員i的第j道手術(shù)工序在病床k上的開始處理時(shí)刻;Ci′jk為傷員i的第j道手術(shù)工序在手術(shù)病床k上的實(shí)際結(jié)束處理時(shí)刻,Ci jk為傷員i的第j道手術(shù)工序在手術(shù)病床k上的理論結(jié)束處理時(shí)刻,和Ci jk之間存在式(1)的疲勞惡化效應(yīng)關(guān)系;N jk為在第j道手術(shù)工序的病床k上救治的傷員數(shù)量;P jk為在第j道手術(shù)工序的病床k上救治的第R個(gè) 傷員(R=1,2,···,N jk-1);xi jk為傷員i的第j道手術(shù)工序在手術(shù)病床k上接受救治情況,若接受救治,則xi jk=1,否則xi jk=0。該問題假設(shè)如下。
1)所有傷員的應(yīng)急手術(shù)流程相同,手術(shù)工序固定;
2)每個(gè)傷員在應(yīng)急救助中有平等接受救治的權(quán)利,即傷員手術(shù)順序沒有限制;
3)所有傷員均可在剛送到醫(yī)院立即開始手術(shù);
4)每個(gè)傷員的每個(gè)手術(shù)工序僅可在一個(gè)手術(shù)病床上進(jìn)行;
5)每臺(tái)手術(shù)病床同一時(shí)間只能對(duì)一個(gè)傷員進(jìn)行處理;
6)手術(shù)過程不允許有任何干擾,不能中斷;
7)手術(shù)所用器械、醫(yī)師和手術(shù)床等資源均處于正常狀態(tài);
8)醫(yī)生會(huì)因?yàn)槭中g(shù)時(shí)間過長產(chǎn)生疲勞導(dǎo)致手術(shù)時(shí)間惡化。
問題優(yōu)化目標(biāo)為最小化最大完成時(shí)間,即
其中,i=1,2,···,n;j= 1,2,···,m;k∈M j;r∈M j+1;R=1,2,···,N jk-1。式(3)和(4)為分配約束,式(3)表示每個(gè)傷員在每道手術(shù)工序的救治中只能在唯一的一個(gè)病床上進(jìn)行;式(4)表示對(duì)于每道手術(shù)工序,分配給該工序內(nèi)所有病床的傷員數(shù)之和為n。式(5)~(7)為時(shí)間約束,式(5)表示傷員必須按照麻醉、手術(shù)和復(fù)蘇的固定手術(shù)流程進(jìn)行;式(6)表示對(duì)任何傷員,其救治完成時(shí)間取決于他在某病床上的開始救治時(shí)間和救治持續(xù)時(shí)間;式(7)表示每臺(tái)病床在同一時(shí)間只能救治一個(gè)傷員。式(8)為變量取值范圍。
飛蛾撲火優(yōu)化(Moth-Flame optimization,MFO)算法的生物學(xué)原理是利用飛蛾的趨光性,飛蛾在飛行的過程中其眼睛始終與光源保持一定的角度,并在飛行中不斷修正方向,從而實(shí)現(xiàn)定位和導(dǎo)航[17]。MFO算法將飛蛾集合M作為候選解之一,并用矩陣表示,將問題的適應(yīng)度值用數(shù)組 OM進(jìn)行存儲(chǔ)。假設(shè)飛蛾種群規(guī)模為n,優(yōu)化問題維度為d,則有
MFO算法將火焰用矩陣F表示,F(xiàn)也作為候選解之一,矩陣M和矩陣F具有相同的維度。將問題的適應(yīng)度值用數(shù)組 OF進(jìn)行存儲(chǔ)。
候選解M和F的本質(zhì)區(qū)別為搜索過程中的位置更新方式不一樣,飛蛾的移動(dòng)改變了火焰的相對(duì)位置,從而驅(qū)動(dòng)二者逼近最優(yōu)位置,獲得最優(yōu)解。因此,通過此機(jī)制,算法能獲得問題的全局最優(yōu)解。MFO算法是一個(gè)三元組,即
I為一個(gè)函數(shù),用以構(gòu)造飛蛾種群,并實(shí)現(xiàn)隨機(jī)化,然后獲得適應(yīng)度函數(shù),其模型為式(14)。P是一個(gè)飛蛾位置更新函數(shù),返回一個(gè)矩陣M,實(shí)現(xiàn)飛蛾的移動(dòng),如式(15)。T是判斷函數(shù),判斷終止條件,如式(16)。
I函數(shù)初始化后,I函數(shù)迭代運(yùn)行直到I函數(shù)返回true為止。為了模擬飛蛾螺旋飛行特征,定義飛蛾相對(duì)火焰的位置函數(shù)為
其中,Mi表 示第i只飛蛾;F j表示第j個(gè)火焰;S為螺旋函數(shù);Di表示第i只飛蛾與第j個(gè)火焰之間的距離;b為 定義對(duì)數(shù)螺旋線函數(shù)的常數(shù);t為 [-1,1]之間的隨機(jī)數(shù),定義飛蛾在下一個(gè)位置接近火焰的程度,t=-1表 示飛蛾最接近火焰,t=1表示飛蛾距離火焰最遠(yuǎn)。Di可由式(18)求得。
為了使算法具有較快的收斂性,需要減少火焰數(shù)量,本文提出了自適應(yīng)火焰更新機(jī)制
式中, FlameN為火焰減少的數(shù)目;l為當(dāng)前迭代次數(shù);N為最大火焰數(shù)量;T為最大迭代次數(shù)。
在實(shí)際應(yīng)用中,許多優(yōu)化問題往往在利用算法求解的過程中陷入局部最優(yōu),飛蛾撲火算法也不例外。雖然算法使用式(19)給出的自適應(yīng)火焰更新機(jī)制能減少火焰的數(shù)量,目的是加快收斂,避免算法過早陷入局部最優(yōu),但效果非常不好。通常的做法是使飛蛾種群具有良好的多樣性,盡可能地搜索到全局最優(yōu),從而使MFO算法具備持續(xù)優(yōu)化能力,給飛蛾種群增加混沌擾動(dòng)機(jī)制就是一種較好的方法。
混沌存在于宇宙萬物之中,體現(xiàn)一種周期性的混亂運(yùn)行現(xiàn)象?;煦邕\(yùn)動(dòng)是隨機(jī)的、復(fù)雜的,整體來看遵循一定的規(guī)律。本文將利用邏輯自映射函數(shù)產(chǎn)生的混沌系列來改進(jìn)飛蛾撲火算法,通過它的混沌映射規(guī)則,在混沌變量的取值范圍內(nèi)將初始優(yōu)化變量進(jìn)行映射,由于混沌變量具備遍歷性和隨機(jī)性,能夠覆蓋取值區(qū)間的所有解,最后獲得的優(yōu)化解將具備種群多樣性。邏輯自映射函數(shù)為
從式(20)可以看出,混沌變量映射的取值范圍為-1至1的開區(qū)間,且不能取值0和0.5。
改進(jìn)的飛蛾撲火算法的基本流程如下。假設(shè)在某一時(shí)刻,飛蛾i處于搜索空間D的位置為x,由混沌映射規(guī)則,首先按照式(21)將飛蛾位置x的每一個(gè)維度進(jìn)行映射,映射的結(jié)果落在區(qū)間(-1,1)上;然后按照式(20)獲得混沌變量,并將其引入到優(yōu)化變量中進(jìn)行搜索,從而得到新的個(gè)體;最后按照式(22)對(duì)混沌變量進(jìn)行變換,并將其置于原解空間中。在搜索的時(shí)候如果獲得了更優(yōu)的解,則用x替代飛蛾i的原位置,否則進(jìn)入下一輪搜索,直到達(dá)到指定的搜索次數(shù)或者解滿足指定的精度為止。
其中, αid和bid分別表示飛蛾個(gè)體第d維變量的搜索上下界。
應(yīng)急手術(shù)調(diào)度問題需要安排多個(gè)傷員在手術(shù)某一個(gè)流程上的多個(gè)并行手術(shù)病床上選擇一個(gè)手術(shù)病床,屬于多約束問題,因此需要采用特殊的編碼方式。本文提出將可行調(diào)度解存入矩陣的編碼方式,利用矩陣的行向量范式存儲(chǔ)飛蛾的位置信息。該問題的一個(gè)可行解具有2個(gè)屬性:傷員的某一手術(shù)流程中在多個(gè)并行手術(shù)病床上的床位選擇和傷員的手術(shù)處理順序。假設(shè)有n個(gè)傷員Pi(i=1,2,···,n)需m道手術(shù)工序(s1,s2,···,sm),則該問題的一個(gè)可行調(diào)度方案為
其中,X為手術(shù)病床; XT為手術(shù)順序矩陣;x為手術(shù)病床編號(hào)。矩陣中,x ji( 1 ≤j≤m, 1≤i≤n)表示傷員pi在第i道手術(shù)工序上的手術(shù)病床編號(hào)。若x ji=x jk,i≠k,表示傷員p j在 第i道手術(shù)工序所選擇的手術(shù)病床相同。xt ji表示傷員pi在第i道手術(shù)工序手術(shù)病床的順序編號(hào)。
根據(jù)矩陣編碼規(guī)則,將每一個(gè)手術(shù)流程中傷員的救治時(shí)間使用矩陣進(jìn)行存儲(chǔ),將手術(shù)病床按照工序依次編號(hào)為對(duì)任意手術(shù)工序k( 1 ≤k≤m) ,其并行手術(shù)病床Qω的編號(hào) ω的取值范圍為
例如,有5個(gè)等待手術(shù)的傷員,在手術(shù)流程中,有2張麻醉準(zhǔn)備病床、1間手術(shù)間和3張麻醉復(fù)蘇病床,那么手術(shù)3個(gè)流程的手術(shù)病床編號(hào)分別為{1,2}、{3}、{4,5,6}。一個(gè)可行的調(diào)度方案為
從矩陣X中可知,x11=x13=x15=1,表示傷員p1、p3和p5的第1道手術(shù)工序均在手術(shù)病床M1上麻醉。而由矩陣 XT可知, xt11=2, xt13=1, xt15=3,這表明在手術(shù)病床M1上 傷員p1、p3和p5的排隊(duì)順序是2→1→3,即p3先 被麻醉,然后是p1,最后是p5。
為了提高初始種群的質(zhì)量,需要改造MFO算法初始種群的隨機(jī)生成機(jī)制,本文在飛蛾的解空間內(nèi)對(duì)部分飛蛾的位置進(jìn)行優(yōu)化操作。由于一個(gè)可行解包括傷員每一個(gè)手術(shù)工序選擇的并行手術(shù)病床和接受治療的排隊(duì)順序,因此,可利用式(18)在傷員每道手術(shù)工序的病床編號(hào)內(nèi)隨機(jī)產(chǎn)生初始化信息,從而獲得每個(gè)工序病床的隨機(jī)調(diào)度方案。對(duì)于傷員的每道工序中的處理順序,可利用元素全1的向量對(duì)其進(jìn)行初始化,每個(gè)1元素依據(jù)當(dāng)前調(diào)度中所選病床信息進(jìn)行修改。步驟如下。首先將每一步流程中所選的病床信息轉(zhuǎn)變成矩陣X=[x ji]m×n,然后按照下列方法確定傷員的手術(shù)處理順序值。
1)x ji=x jk,i≠k,如果j=1, 說明i為應(yīng)急手術(shù)的第1個(gè)流程,此時(shí)按照傷員手術(shù)時(shí)間升序排序,并以此設(shè)定傷員手術(shù)順序。
2)若j≠1, 說明i不是第1個(gè)手術(shù)流程,此時(shí)按照傷員前一個(gè)手術(shù)流程的完成時(shí)間升序排序,并以此設(shè)定傷員手術(shù)順序。
改進(jìn)的飛蛾撲火算法的應(yīng)急手術(shù)調(diào)度問題實(shí)現(xiàn)步驟如下。算法框架流程圖如圖2所示。
步驟1確定式(2)為算法的適應(yīng)度函數(shù)。
步驟2設(shè)定n為飛蛾種群規(guī)模,d為搜索空間維度,N為最大火焰數(shù)量,T為最大迭代次數(shù)。假如令當(dāng)前迭代次數(shù) η=0,那么按照編碼設(shè)計(jì)方案設(shè)定飛蛾和火焰的編碼,并進(jìn)行種群初始化。
圖2算法框架流程Figure 2 Algorithm framework flow chart
步驟3計(jì)算飛蛾個(gè)體適應(yīng)度值,找到并保存當(dāng)前最好的飛蛾個(gè)體位置。判斷終止條件是否滿足,若滿足則轉(zhuǎn)至步驟9,否則執(zhí)行步驟4。
步驟4迭代。利用式(11)和式(13)更新火焰數(shù)量和飛蛾-火焰的位置,并計(jì)算火焰與飛蛾間的距離。
步驟5計(jì)算飛蛾個(gè)體適應(yīng)度值,利用式(4)和(6)分別保存飛蛾和火焰空間位置。
步驟6找到當(dāng)前最好的飛蛾個(gè)體空間位置,并與前次保留位置進(jìn)行比較,若較優(yōu),則設(shè)定火焰當(dāng)前位置為最優(yōu)位置,并保留。
步驟7對(duì)飛蛾群體進(jìn)行評(píng)估,選取性能最好的20%的飛蛾作為精英,利用式(14)~(16),采用混沌優(yōu)化策略進(jìn)行優(yōu)化。選取性能最差的20%的個(gè)體,重新隨機(jī)產(chǎn)生新的飛蛾個(gè)體予以替換。
步驟8根據(jù)移動(dòng)后飛蛾的位置,重新計(jì)算各飛蛾個(gè)體適應(yīng)度值。當(dāng)滿足搜索精度或達(dá)到最大搜索次數(shù)時(shí)轉(zhuǎn)至步驟9,否則轉(zhuǎn)至步驟3。
步驟9判斷終止條件是否滿足,若滿足則轉(zhuǎn)至步驟10,否則令η =η+1,并執(zhí)行步驟4~8。
步驟10輸出火焰最終所處的空間位置及所對(duì)應(yīng)的適應(yīng)度值,得到應(yīng)急手術(shù)調(diào)度方案,算法結(jié)束。
以某城市發(fā)生突發(fā)事件為例驗(yàn)證本文設(shè)計(jì)的改進(jìn)的飛蛾撲火算法。假如突發(fā)事件發(fā)生后有12個(gè)發(fā)生骨折的傷員需要應(yīng)急手術(shù),傷員都需要依次進(jìn)行麻醉、手術(shù)和復(fù)蘇3個(gè)手術(shù)流程。其中,麻醉室有2臺(tái)病床,手術(shù)室有5個(gè)手術(shù)臺(tái),復(fù)蘇室有3個(gè)病床。按照傳統(tǒng)應(yīng)急調(diào)度解決方案,12個(gè)骨折傷員必須首先全部完成麻醉操作,然后按照麻醉順序進(jìn)行排隊(duì),如果手術(shù)室有空閑就會(huì)按照排隊(duì)順序優(yōu)先安排手術(shù),手術(shù)完畢之后進(jìn)入復(fù)蘇室。此方案最大的問題是有可能有的傷員麻醉的時(shí)間不夠需要在手術(shù)室等待,有的傷員麻醉的時(shí)間過久需要二次麻醉。因此,傳統(tǒng)的應(yīng)急手術(shù)調(diào)度并不合理。從理論和實(shí)際統(tǒng)計(jì)數(shù)據(jù)來看,麻醉室根據(jù)醫(yī)師和傷員個(gè)人情況不同,麻醉時(shí)間相差1~2 min,手術(shù)臺(tái)上每個(gè)傷員被實(shí)施手術(shù)的時(shí)間相差在10 min之內(nèi),復(fù)蘇室里每個(gè)病人復(fù)蘇的時(shí)間相差10 min之內(nèi),具體數(shù)據(jù)統(tǒng)計(jì)所得平均時(shí)間如表1所示。由于存在疲勞效應(yīng),在手術(shù)環(huán)節(jié)上,排隊(duì)次序越晚的傷員手術(shù)時(shí)間比理論時(shí)間要長,因此必須考慮疲勞效應(yīng)帶給手術(shù)時(shí)間的增長。本文以通過式(1)定義帶惡化因子的實(shí)際手術(shù)時(shí)間來替代常規(guī)的手術(shù)時(shí)間,隨著實(shí)際手術(shù)時(shí)間延續(xù),惡化系數(shù)不斷增大,從而導(dǎo)致手術(shù)時(shí)間增長。
表1傷員在每個(gè)手術(shù)流程的病床上的被處理時(shí)間Table 1 The treatment time of the injured people in each surgical procedure min
對(duì)于一個(gè)應(yīng)急手術(shù)調(diào)度問題,目標(biāo)函數(shù)是最小化傷員的最大手術(shù)完成時(shí)間。實(shí)驗(yàn)中將改進(jìn)的飛蛾撲火算法(improved Moth-Flame optimization,IMFO)與經(jīng)典飛蛾撲火算法(MFO)、粒子群算法(PSO)和布谷鳥算法(CS)進(jìn)行對(duì)比。飛蛾和火焰?zhèn)€體規(guī)模為30,粒子和鳥巢個(gè)體規(guī)模也為30,最大迭代次數(shù)為500,各算法的參數(shù)設(shè)定如表2所示。實(shí)驗(yàn)仿真環(huán)境為操作系統(tǒng)Windows 7,處理器主頻 2.0 GHZ,CPU Intel@CoreTMi3-2350M,內(nèi)存2 GB,仿真軟件為Matlab 2015b。
表2各算法參數(shù)設(shè)置Table 2 Parameter settings of each algorithm
隨機(jī)運(yùn)行20次得到平均值,實(shí)驗(yàn)結(jié)果如表3所示。
從表3可以看出,目標(biāo)函數(shù)最小值隨著種群的進(jìn)化,最后收斂到極值。改進(jìn)的MFO算法運(yùn)行20次后,有16次達(dá)到最小值,而經(jīng)典的MFO算法只有9次達(dá)到最小值,說明經(jīng)過混沌擾動(dòng)的飛蛾撲火算法能很好地避免陷入局部最優(yōu)。PSO算法有5次達(dá)到最小值,CS算法有8次達(dá)到最小值,說明飛蛾撲火算法相比粒子群和布谷鳥算法有更好的全局收斂性。為了避免實(shí)驗(yàn)次數(shù)過少無法顯示算法的優(yōu)越性,對(duì)相同的問題增加了實(shí)驗(yàn)次數(shù),總實(shí)驗(yàn)次數(shù)達(dá)到230次,通過數(shù)據(jù)的統(tǒng)計(jì)分析,結(jié)果表明本文所給算法達(dá)到理論最小值的次數(shù)為206次,而其他算法均小于這個(gè)數(shù)值,說明本文所給算法顯著優(yōu)于其他算法。為了更清楚地看出各個(gè)算法的收斂速度,本文隨機(jī)選取第13次運(yùn)行過程繪制算法的收斂曲線圖,如圖3所示。
表3 20次運(yùn)行后各算法下最小化傷員的最大手術(shù)完成時(shí)間及均值Table 3 Maximum completion time and mean value of each algorithm after 20 simulations min
圖3第13次運(yùn)行時(shí)4種算法最優(yōu)目標(biāo)值收斂曲線Figure 3 The optimal target value convergence curves of the four algorithms in the 13th simulation
從圖3可以看出,隨機(jī)選取的第13次運(yùn)行結(jié)果的最優(yōu)目標(biāo)值收斂曲線中改進(jìn)的飛蛾撲火算法相比經(jīng)典飛蛾撲火算法、粒子群和布谷鳥算法,有更快的收斂速度。得到的最好的調(diào)度方案為
由此繪制該問題的并行手術(shù)病床任務(wù)分配甘特圖,如圖4所示。
圖4中傷員的3個(gè)救治階段在時(shí)間維度上基本首尾相接,說明傷員的應(yīng)急救助調(diào)度任務(wù)安排的比較緊湊,總手術(shù)時(shí)間與理論手術(shù)時(shí)間相差不大,說明調(diào)度結(jié)果比較合理。
由于應(yīng)急手術(shù)調(diào)度的麻醉、手術(shù)和復(fù)蘇流程與存在并行機(jī)的流水車間調(diào)度類似,針對(duì)城市突發(fā)事件中傷員的應(yīng)急手術(shù)調(diào)度存在手術(shù)人數(shù)比較多,手術(shù)類型單一的情況,本文首先采用存在并行機(jī)的流水車間調(diào)度的思路,并考慮醫(yī)生長時(shí)間工作可能會(huì)產(chǎn)生的疲勞效應(yīng),構(gòu)建考慮惡化效應(yīng)的手術(shù)調(diào)度模型;然后使用混沌擾動(dòng)的飛蛾撲火算法對(duì)模型進(jìn)行求解,采用矩陣編碼方式存儲(chǔ)可行調(diào)度解信息,并對(duì)種群進(jìn)行初始化,給出算法步驟;最后通過12個(gè)骨折傷員的應(yīng)急手術(shù)實(shí)例驗(yàn)證模型和算法的有效性。結(jié)果表明,構(gòu)建的應(yīng)急手術(shù)調(diào)度模型能很好地反映應(yīng)急手術(shù)問題,改進(jìn)的飛蛾撲火算法能夠求解出合理的調(diào)度方案,和經(jīng)典的飛蛾撲火算法、粒子群算法和布谷鳥算法相比具有更好的性能。本文所給出的解決方案僅僅適合單目標(biāo)優(yōu)化問題,對(duì)于多目標(biāo)和帶有資源約束類的應(yīng)急手術(shù)調(diào)度問題將是下一步研究的工作。
圖4 最佳應(yīng)急手術(shù)調(diào)度方案甘特圖Figure 4 The optimal Gantt chart for emergency surgery scheduling