韋智勇 楊曉武
1(南寧職業(yè)技術(shù)學(xué)院 廣西 南寧 530008)2(中南大學(xué)機(jī)電工程學(xué)院 湖南 長沙 410083)
當(dāng)前,資源受限系統(tǒng)[1-3]調(diào)度問題廣泛存在于企業(yè)生產(chǎn)和社會(huì)實(shí)踐中,對(duì)其研究的重要性和必要性不言而喻。一般而言,資源受限系統(tǒng)調(diào)度問題是以若干任務(wù)需求為處置對(duì)象,以消耗有限的服務(wù)資源為代價(jià),在滿足一定使用規(guī)則前提下,尋找能夠促使特定指標(biāo)得以優(yōu)化的可行方案[4-5]。通常情況下,資源受限系統(tǒng)調(diào)度問題屬于NP-hard問題,具有明顯的復(fù)雜性特征。許多學(xué)者致力于為其尋找高效求解算法,通過調(diào)整任務(wù)編排方案以最大化資源使用效益。在此過程中,啟發(fā)式算法和群智能算法應(yīng)用普遍。
近年來針對(duì)資源受限系統(tǒng)調(diào)度問題的研究較多,例如,張憶文等[6]以并行處理器的節(jié)能調(diào)度策略為研究背景,在考慮任務(wù)執(zhí)行時(shí)間與CPU處理速率為非線性關(guān)系的情況下,建立任務(wù)調(diào)度模型,并結(jié)合動(dòng)態(tài)電壓調(diào)節(jié)技術(shù)和功耗管理技術(shù)設(shè)計(jì)出低能耗資源調(diào)配算法。何杰光等[7]針對(duì)資源受限系統(tǒng)調(diào)度問題提出一種動(dòng)態(tài)多樣性群智能算法,主要思路是采用兩點(diǎn)交叉算子和變異算子進(jìn)化個(gè)體,基于精英保留策略優(yōu)化種群,算法能夠在全局搜索和局部優(yōu)化之間進(jìn)行平衡。GABREL等[8-9]對(duì)成像衛(wèi)星觀測(cè)任務(wù)調(diào)度問題開展研究,通過抽象約束條件建立出任務(wù)規(guī)劃模型,并采用加權(quán)有向無環(huán)圖方法進(jìn)行求解。Arnaout等[10]分析了無聯(lián)系并行機(jī)的調(diào)度策略,將蟻群算法ACO(Ant colony optimization)應(yīng)用于問題求解,通過兩階段問題轉(zhuǎn)換,獲取最短任務(wù)完成時(shí)長的優(yōu)化方案。在上述研究中,共性的基本假設(shè)之一是任務(wù)不可拆分,即每個(gè)任務(wù)若可被安排執(zhí)行,只能一次完成,執(zhí)行過程不能停頓。但是實(shí)際應(yīng)用中,對(duì)長耗時(shí)任務(wù)進(jìn)行切割以提升滿足概率是被允許的。此外,任務(wù)切割還可以更好地利用調(diào)度過程中產(chǎn)生的碎片化資源,提升資源利用率。
本文針對(duì)任務(wù)可拆分條件下的資源調(diào)度方法開展研究,探討采用何種切割方式提升任務(wù)滿足概率。為保證調(diào)度效果,采用改進(jìn)粒子群算法IPSO(Improve particle swarm optimization)[11-13]進(jìn)行全局搜索。為降低資源使用的沖突程度,在執(zhí)行時(shí)段優(yōu)選時(shí)引入沖突規(guī)避策略CAS(Confliction avoid strategy)。文中給出了沖突集的概念,構(gòu)建了沖突度模型。通過對(duì)比測(cè)試,對(duì)文中所提出方法的有效性進(jìn)行了驗(yàn)證。
對(duì)于一個(gè)完備的資源調(diào)度系統(tǒng)[14-15],應(yīng)至少包含若干服務(wù)節(jié)點(diǎn)(服務(wù)資源)和任務(wù)需求(服務(wù)對(duì)象),調(diào)度過程可從以下角度進(jìn)行描述:
(1) 從服務(wù)資源的角度描述。在初始時(shí)刻,各服務(wù)節(jié)點(diǎn)均為空閑狀態(tài)。調(diào)度開始后,規(guī)劃器實(shí)時(shí)獲取各服務(wù)節(jié)點(diǎn)的繁忙狀態(tài),根據(jù)一定規(guī)則挑選任務(wù)指派給服務(wù)節(jié)點(diǎn)。獲取任務(wù)的服務(wù)資源被占用一定時(shí)長,完成服務(wù)后再轉(zhuǎn)入空閑狀態(tài)。
(2) 從服務(wù)對(duì)象的角度描述。在調(diào)度開始前,不同用戶提交的資源使用申請(qǐng)匯聚形成待調(diào)度任務(wù)隊(duì)列。可滿足的任務(wù)匯入等待服務(wù)任務(wù)隊(duì)列,到達(dá)預(yù)定服務(wù)時(shí)限后轉(zhuǎn)入服務(wù)隊(duì)列接收處置,服務(wù)完畢后再轉(zhuǎn)入完成服務(wù)任務(wù)隊(duì)列。在此過程中,可對(duì)部分任務(wù)進(jìn)行拆分,通過化整為零方式執(zhí)行,提升任務(wù)滿足可能性。
結(jié)合實(shí)際應(yīng)用背景,資源調(diào)度過程通常追尋特定優(yōu)化目標(biāo)。從服務(wù)資源的角度考量,資源利用率最大化是追求的重要指標(biāo)。從服務(wù)對(duì)象的角度考量,任務(wù)滿足率一般作為評(píng)價(jià)標(biāo)準(zhǔn),這兩項(xiàng)指標(biāo)存在關(guān)聯(lián)性,即高任務(wù)滿足率往往對(duì)應(yīng)著高資源利用率。但對(duì)于資源受限系統(tǒng)而言,通常存在服務(wù)資源稀缺的情況,即系統(tǒng)的服務(wù)能力僅能滿足部分而非全部服務(wù)需求,這就要求設(shè)計(jì)合理的資源調(diào)配方法,使有限的服務(wù)資源得到高效利用。采用任務(wù)拆分方式,能夠有效利用破碎化的資源時(shí)段,促使原本不可滿足的任務(wù)得以執(zhí)行。在此過程中,如何選擇拆分對(duì)象,以何種粒度拆分是必須解決的問題。
考慮資源受限系統(tǒng)服務(wù)節(jié)點(diǎn)異構(gòu),具體表現(xiàn)為狀態(tài)準(zhǔn)備時(shí)間、任務(wù)處置速率、狀態(tài)恢復(fù)時(shí)間存在差異。采用五元組對(duì)服務(wù)節(jié)點(diǎn)進(jìn)行形式化描述,表示為:
NS=
(1)
Node={node1,node2,…,noden}:服務(wù)資源集合,nodei為所有資源中的第i個(gè)服務(wù)節(jié)點(diǎn),n為服務(wù)節(jié)點(diǎn)的數(shù)量;
TW={tw1,tw2,…,twn}:可用時(shí)間窗口集合,twi=[twbi,twei]為nodei的可用時(shí)段,twbi和twei分別為twi的起始時(shí)間和結(jié)束時(shí)間;
SP={sp1,sp2,…,spn}:任務(wù)處理速率集合,spi為nodei的任務(wù)處置速率;
TP={tp1,tp2,…,tpn}:狀態(tài)準(zhǔn)備時(shí)間集合,tpi為nodei開始任務(wù)前所需的狀態(tài)準(zhǔn)備時(shí)間;
TR={tr1,tr2,…,trn}:狀態(tài)恢復(fù)時(shí)間集合,tri為nodei完成任務(wù)后,再開展下一次任務(wù)前所需的狀態(tài)恢復(fù)時(shí)間。
對(duì)用戶提交各種請(qǐng)求進(jìn)行規(guī)范化處理,形成標(biāo)準(zhǔn)化待任務(wù)需求。本文考慮的任務(wù)需求均為相互獨(dú)立的無關(guān)聯(lián)任務(wù),采用五元組對(duì)服務(wù)節(jié)點(diǎn)進(jìn)行形式化描述,表示為:
TS=
(2)
Task={task1,task2,…,taskm}:任務(wù)需求集合,taski為第i個(gè)任務(wù),m為任務(wù)數(shù)量;
TA={ta1,ta2,…,tam}:任務(wù)允許執(zhí)行最早時(shí)間集合,tai表示taski允許被執(zhí)行的最早時(shí)刻;
TD={td1,td2,…,tdm}:任務(wù)執(zhí)行截止期集合,tdi表示taski的執(zhí)行截止期;
DL={dl1,dl2,…,dlm}:任務(wù)數(shù)據(jù)量集合,dli表示taski的指令長度;
P={p1,p2,…,pm}:任務(wù)優(yōu)先級(jí)集合,pi表示taski的優(yōu)先級(jí)系數(shù)。
任務(wù)規(guī)劃的結(jié)果是完成服務(wù)資源與任務(wù)需求匹配,形成合理的規(guī)劃方案,而構(gòu)建資源調(diào)度模型是實(shí)現(xiàn)該目標(biāo)的前提條件,其主要由決策變量集,優(yōu)化目標(biāo)集,約束條件集等要素構(gòu)成。為便于后續(xù)描述,表1給出部分符號(hào)說明。
表1 部分符號(hào)說明
(3)
決策變量Y=[yi]用于標(biāo)識(shí)任務(wù)的可執(zhí)行性,明確任務(wù)是否分配資源,賦值方法如下:
(4)
式中:yi=1表示taski被分配資源(安排執(zhí)行);yi=0表示taski未被分配資源(拒絕執(zhí)行)。
決策變量ETW=[
(5)
在籌劃任務(wù)規(guī)劃方案階段,所需遵循的主要約束條件如下:
約束1:如果任務(wù)被安排執(zhí)行(yi=1),對(duì)其累計(jì)有效服務(wù)時(shí)長不低于所需最少保障時(shí)間。
(6)
約束2:任務(wù)的執(zhí)行時(shí)段應(yīng)處于其允許執(zhí)行窗口中,占用資源時(shí)段應(yīng)處于其所分配服務(wù)節(jié)點(diǎn)的可用時(shí)間窗口內(nèi)。
(7)
約束3:若任務(wù)被分解執(zhí)行,其子任務(wù)不能被并行處理。
(8)
約束4:資源具有獨(dú)占性,即每個(gè)服務(wù)節(jié)點(diǎn)同一時(shí)刻最多處理一個(gè)任務(wù)(子任務(wù))。
(9)
約束5:若安排任務(wù)執(zhí)行(yi=1),其子任務(wù)應(yīng)當(dāng)全部得到滿足。
(10)
本文考慮以任務(wù)滿足率作為主要優(yōu)化目標(biāo),以資源利用率為次要優(yōu)化目標(biāo),表示為:
(11)
式中:Q1、Q2為X和Y的可行域;GT(X)為可用服務(wù)資源的利用率;GR(Y)為考慮優(yōu)先級(jí)后的加權(quán)任務(wù)滿足率。
本文在算法設(shè)計(jì)中引入了分層優(yōu)化的算法結(jié)構(gòu),這是基于兩點(diǎn)考慮:一是本文研究的問題既要考慮傳統(tǒng)的任務(wù)資源匹配問題,還要考慮任務(wù)切分問題,所考慮的約束存在關(guān)聯(lián)性,這增加了問題求解難度。采用分層優(yōu)化的方法可以化繁為簡,分而治之,更容易工程實(shí)現(xiàn)。二是從求解效率上來看,任務(wù)資源匹配問題和任務(wù)切分問題存在強(qiáng)耦合關(guān)系,若采用整體優(yōu)化方式,搜索解空間較大。采用分層優(yōu)化方式可逐層消減解空間規(guī)模,有利于有化解的快速產(chǎn)生。整體算法結(jié)構(gòu)包括主控層、決策層和邏輯層,如圖1所示。
圖1 求解算法的主要構(gòu)成
主控層負(fù)責(zé)掌控算法狀態(tài),控制迭代過程;決策層用于選擇搜索方向,產(chǎn)生任務(wù)指派順序;邏輯層負(fù)責(zé)挑選拆分任務(wù),解算有效服務(wù)時(shí)段,具體生成任務(wù)規(guī)劃方案。算法的基本流程如下:
Step1主控算法接收任務(wù)需求隊(duì)列,則觸發(fā)規(guī)劃活動(dòng);
Step2決策層采用IPSO算法優(yōu)化任務(wù)指派序列,并將結(jié)果傳遞給邏輯層;
Step3邏輯層完成約束消解,對(duì)決策變量X、Y、ETW賦值,并傳遞給主控層;
Step4主控層評(píng)估規(guī)劃結(jié)果,若決定繼續(xù)迭代,轉(zhuǎn)入Step 2;否則,直接輸出規(guī)劃方案,算法結(jié)束。
經(jīng)典PSO算法的基本思想是通過驅(qū)動(dòng)粒子以位移的方式搜索問題解空間,而個(gè)體根據(jù)種群間的交互信息確定移動(dòng)方向和速度。其中,每個(gè)粒子均表示決策層的一個(gè)方案,種群挑選個(gè)體最佳位置作為群體最優(yōu)位置。
3.2.1粒子編碼規(guī)則
設(shè)種群由SN個(gè)粒子構(gòu)成,其中pari為種群中的第i個(gè)粒子,其在第t次進(jìn)化時(shí)的位置向量為:
(12)
例如,隨機(jī)生成一個(gè)粒子pari,其位置向量及表示的任務(wù)指派序列為:
(13)
3.2.2位置更新方式
首先給出種群的適應(yīng)度函數(shù),用于評(píng)估粒子所在位置的優(yōu)劣,如下所示:
(14)
(15)
(16)
3.2.3基于云模型的變異策略
為避免種群陷入早熟,引入變異操作。首先借鑒云模型產(chǎn)生變異概率,然后根據(jù)個(gè)體適應(yīng)度挑選變異對(duì)象。
(16)
(17)
(18)
針對(duì)決策層傳遞的任務(wù)指派序列,利用CAS策略進(jìn)行解析,生成具體的資源調(diào)配方案。在此過程中,需根據(jù)任務(wù)狀態(tài)構(gòu)建若干集合:
WSTSet:等待規(guī)劃任務(wù)集,用于存儲(chǔ)尚未參與調(diào)度的(子)任務(wù)隊(duì)列;
WETSet:等待執(zhí)行任務(wù)集,用于存儲(chǔ)已分配資源但未執(zhí)行的(子)任務(wù)隊(duì)列;
RETSet:無法滿足任務(wù)集,用于儲(chǔ)存已參與調(diào)度但未滿足的(子)任務(wù)隊(duì)列;
FETSet:完成執(zhí)行任務(wù)集,用于儲(chǔ)存執(zhí)行完畢的(子)任務(wù)隊(duì)列。
在上述集合中,WSTSet是規(guī)劃系統(tǒng)的處置對(duì)象,可滿足的任務(wù)移至WETSet中,無法滿足的任務(wù)移至RETSet中,而FETSet中的元素對(duì)對(duì)規(guī)劃過程無影響。
定義1對(duì)于taski∈WSTSet和給定時(shí)間窗口TS,稱taski在TS中具有需求沖突,記為Conf(TS,taski)=1,若滿足以下關(guān)系:
TS∩[tai,tdi]≠?
(19)
算法1Pseudocode ofCAS
01:DeletetaskifromWSTSet;
02:fornodekinNode
03:FTWSik←[tai,tdi];
04:forstaski′,j′inWETSet
05:ifxi′,j′k=1then
06:FTWSik←FTWSik∩([tsbi′,j′,tsei′,j′])C;
07:endif
08:endfor
09:forftwi,jkinFTWSik
10:ifspan(ftwi,jk) 11:Deleteftwi,jkfromFTWSik; 12:else 13:hdci,jk←0; 14:fortaski′inWSTSet 15:hdci,jk←hdci,jk+Conf(ftwi,jk,taski′); 16:endfor 17:endif 18:endfor 19:VTWSik←FTWSik; 20:endfor 21:Return 算法2Pseudocode ofPTC 01:fortaskiinWSTSet 02: Calculate 03: SortVTWi,jkbyHDCSi,jkin increasing order; 04:Rem_len←dli,dni←0,yi=0; 10:tsbi,dni=tvbi,dni+trk′,tsei,dni=tvei,dni+tpk′; 11:tsli,dni←tsei,dni-tsbi,dni,tvli,dni←tvei,dni-tvbi,dni; 12:Rem_len←Rem_len-tvei,dni+tvbi,dni; 13:endwhile 14:ifRem_len=0then 15:yi←1; 16:else 17:dni←0; 18:tsli,j←Null,tvli,j←Null,tvbi,j←Null,tvei,j←Null,tsbi,j←Null,tsei,j←Null,xi,jk←0,j=1,2,…,dni,k=1,2,…,m; 19:endif 20: LetX=[xi,jk],Y=[yi],ETW=[ 21:Return 本節(jié)中模擬生成任務(wù)規(guī)劃場(chǎng)景,對(duì)文中所提方法的有效性進(jìn)行對(duì)比分析。 批量生成場(chǎng)景數(shù)據(jù),調(diào)用不同算法進(jìn)行實(shí)驗(yàn),以統(tǒng)計(jì)指標(biāo)的平均值作為測(cè)試結(jié)果,場(chǎng)景要素的設(shè)置方法如下: 1) 整個(gè)任務(wù)規(guī)劃活動(dòng)的周期跨度為24 h; 2) 設(shè)置3個(gè)服務(wù)節(jié)點(diǎn),服務(wù)能力指標(biāo)根據(jù)參數(shù)設(shè)置情況隨機(jī)生成,如表2所示。 表2 服務(wù)資源的設(shè)置情況 3) 任務(wù)數(shù)量為100~300個(gè),任務(wù)數(shù)據(jù)量包括150~250 min、250~350 min、350~450 min三種類型,任務(wù)允許執(zhí)行最早時(shí)間和截止期在規(guī)劃活動(dòng)周期內(nèi)隨機(jī)生成。 在求解方法設(shè)計(jì)時(shí),同時(shí)嵌入了啟發(fā)式算法和智能優(yōu)化算法。其中,啟發(fā)式算法用于快速提升解的質(zhì)量,本文主要測(cè)試其有效性。IPSO算法單次運(yùn)行時(shí)間較長,理論上而言,足夠長的迭代次數(shù)均能獲取較優(yōu)的可行解,因此本文更關(guān)注其搜索效率。采用分步驗(yàn)證方法進(jìn)行實(shí)驗(yàn),測(cè)試內(nèi)容主要包括以下兩項(xiàng): (1) 算法的搜索質(zhì)量分析。主要是CAS策略和PTC規(guī)則的有效性。決策層固定使用IPSO算法,邏輯層引入Greedy策略和禁止任務(wù)切割FTC(Forbid task cutting)規(guī)則,與之前所提算法進(jìn)行對(duì)比。主控層算法根據(jù)對(duì)比算法的組合方式命名,如表3所示。 表3 測(cè)試算法的組合方式 (2) 算法的搜索速率分析。主要是加入CAS策略和PTC規(guī)則后對(duì)算法運(yùn)行時(shí)間的增量,以及IPSO算法的收斂速率。 在不同任務(wù)強(qiáng)度下對(duì)比三種組合算法的實(shí)驗(yàn)結(jié)果,統(tǒng)計(jì)指標(biāo)包括任務(wù)滿足率和資源利用率,如圖2所示。 (a) 任務(wù)滿足率 (b) 資源使用率圖2 不同任務(wù)規(guī)模下的調(diào)度結(jié)果對(duì)比 從圖2可以看出,隨著任務(wù)強(qiáng)度的增加,任務(wù)滿足率迅速下降,而資源使用率在快速增長后趨近平穩(wěn)。系統(tǒng)資源的服務(wù)能力經(jīng)歷了由充足到飽和的過程,說明所選測(cè)試場(chǎng)景能夠較為全面地呈現(xiàn)出多種供需狀態(tài),具有一定的代表性。 根據(jù)測(cè)試結(jié)果,在不同測(cè)試場(chǎng)景下,IPSOPG的求解結(jié)果均優(yōu)于IPSOFG,這是由于PTC規(guī)則通過任務(wù)切割能夠使原本無法滿足的任務(wù)得到執(zhí)行,由此說明該策略的有效性;IPSOPC的求解結(jié)果均優(yōu)于IPSOPG,這是優(yōu)于在具體指派資源時(shí),CAS策略能夠預(yù)見性的規(guī)避需求沖突,最大程度地保留后續(xù)任務(wù)的滿足機(jī)會(huì),因而求解效果更好。綜上可以得出結(jié)論,CAS策略和PTC規(guī)則對(duì)于提升算法搜索質(zhì)量是有效的。 在不同任務(wù)強(qiáng)度下測(cè)試算法的運(yùn)算時(shí)間,統(tǒng)計(jì)結(jié)果如圖3所示。 圖3 不同任務(wù)規(guī)模下的算法耗時(shí)對(duì)比 從圖3可以看出,以IPSOPC算法的耗時(shí)最高,IPSOFG與IPSOPG算法的耗時(shí)接近。由此可以說明,采用FTC規(guī)則對(duì)于算法造成的負(fù)擔(dān)不顯著,而引入CAS策略會(huì)明顯增加算法的時(shí)間復(fù)雜度。為進(jìn)一步分析CAS策略和FTC規(guī)則對(duì)算法搜索速率的影響,以IPSOFG算法為基準(zhǔn),分析其他兩種算法的相對(duì)搜索時(shí)間增量,如圖4所示。 圖4 相對(duì)搜索時(shí)間增量的變化趨勢(shì) 在圖4中,隨任務(wù)強(qiáng)度的增加,IPSOFG算法的搜索時(shí)間增量穩(wěn)定處于較低水平,說明FTC規(guī)則對(duì)于算法搜索速率的影響較弱。IPSOPC算法搜索時(shí)間的增量呈線性變化,本文采用最小二乘法進(jìn)行擬合,得到的近似關(guān)系式為: t=-7.597 7+0.086 6m (20) 由此可以說明,CAS策略雖會(huì)延緩算法的搜索速率,但該策略不會(huì)導(dǎo)致算法的搜索時(shí)間呈爆發(fā)式增長,其時(shí)間復(fù)雜度在可接收范疇。 IPSOPC為本文提出的主要算法,對(duì)算法中的種群適應(yīng)度演變過程進(jìn)行統(tǒng)計(jì),以分析算法的搜索效率,如圖5所示。 圖5 種群適應(yīng)度的演變過程 從圖5可以看出,種群在第1~7代進(jìn)化明顯,在第7~23代進(jìn)化平穩(wěn),在第23代后逐漸停止進(jìn)化。說明IPSO算法在迭代早期能夠快速搜索解空間,獲取問題的初始優(yōu)化解集。在迭代中期,能夠不斷提升種群適應(yīng)度,持續(xù)改進(jìn)優(yōu)化解的質(zhì)量。在迭代末期,能夠保持種群的穩(wěn)定,對(duì)優(yōu)化解集進(jìn)行收斂。基于上述過程,IPSO算法基本實(shí)現(xiàn)了在確保收斂前提下避免過早陷入局部最優(yōu)的目標(biāo),能夠以較為高效的搜索速率獲得理想結(jié)果。 本文針對(duì)任務(wù)可拆分條件下的資源受限系統(tǒng)調(diào)度問題開展研究,以最大化任務(wù)滿足率和資源利用率為優(yōu)化目標(biāo),建立了約束模型。為降低求解復(fù)雜度,在算法設(shè)計(jì)時(shí),構(gòu)建了多層求解結(jié)構(gòu),并分別提出了優(yōu)化算法。其中,IPSO算法應(yīng)用于決策層,該算法是在經(jīng)典PSO算法的基礎(chǔ)上加入了部分改進(jìn)策略,能夠避免種群陷入早熟。CAS策略和PTC規(guī)則被應(yīng)用于邏輯層,用于服務(wù)資源的指派和任務(wù)執(zhí)行時(shí)段的明確。在實(shí)驗(yàn)部分,通過測(cè)試對(duì)文中所提方法的有效性進(jìn)行了驗(yàn)證。需要指出的是,本文所提算法仍有很大改進(jìn)空間,后續(xù)將根據(jù)項(xiàng)目背景作進(jìn)一步研究。4 實(shí)驗(yàn)分析
4.1 測(cè)試場(chǎng)景設(shè)置
4.2 算法的搜索質(zhì)量分析
4.3 算法搜索速率分析
5 結(jié) 語