專利名稱:運(yùn)用蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)格計(jì)算以及智能算法兩大領(lǐng)域,主要涉及一種基于蟻群算法 的動(dòng)態(tài)網(wǎng)格工作流優(yōu)化方法。 技術(shù)背景
網(wǎng)格計(jì)算可以支持大范圍的并行和分布式計(jì)算,被認(rèn)為是有潛力的下一代 計(jì)算平臺(tái)。與電網(wǎng)類似,計(jì)算網(wǎng)格使得分布于不同地理位置的各種不同計(jì)算資 源的共享、選擇和協(xié)同運(yùn)作成為可能。網(wǎng)格技術(shù)可以滿足科學(xué)和商業(yè)上的計(jì)算 需求,并且提供了解決計(jì)算密集型問題的可行方法。最近,開放式網(wǎng)格服務(wù)體 系結(jié)構(gòu)(OGSA)將網(wǎng)絡(luò)服務(wù)引入到網(wǎng)格模型中,并且迅速成為了占主導(dǎo)地位的 技術(shù)。OGSA通過引入更加豐富的計(jì)算資源而加強(qiáng)了網(wǎng)格技術(shù)。
在網(wǎng)格中處理的計(jì)算應(yīng)用通常稱為工作流。在網(wǎng)格的環(huán)境中,工作流定義 是 一個(gè)完成復(fù)雜目標(biāo)的特定的任務(wù)序列。在網(wǎng)格計(jì)算中,如何調(diào)度工作流以 達(dá)到更高的性能是一個(gè)十分重要的問題。在OGSA中, 一個(gè)任務(wù)可以由任意一 組由不同的網(wǎng)格服務(wù)供應(yīng)商提供的服務(wù)進(jìn)程完成。 一個(gè)具有挑戰(zhàn)性的問題是如 何將任務(wù)映射到服務(wù)進(jìn)程中以滿足用戶對(duì)服務(wù)質(zhì)量(QoS)的要求并達(dá)到工作流 的最高性能。這一問題是NP-完全問題。在OGSA的環(huán)境下,工作流調(diào)度者需 要平衡多個(gè)對(duì)QoS的要求,包括時(shí)限和費(fèi)用等。因此,很多傳統(tǒng)的工作流調(diào)度 算法,例如OLB算法,MET算法,MCT算法,Min-min算法,Max-min算法, Duplex算法,Sufferage算法和HEFT算法等并不適用。
近年來,帶有多個(gè)QoS要求的網(wǎng)格工作流調(diào)度問題成為了研究的熱點(diǎn)。由 于網(wǎng)格應(yīng)用的規(guī)模越來越大,傳統(tǒng)的確定性算法往往不能給出令人滿意的解。 因此,元啟發(fā)式算法得到研究人員的更多關(guān)注,包括蟻群算法和粒子群算法等。 但是,已提出的方法只能針對(duì)拓?fù)浣Y(jié)構(gòu)不變的工作流進(jìn)行處理。在日常應(yīng)用中, 還存在另一種拓?fù)浣Y(jié)構(gòu)會(huì)隨著時(shí)間變化的動(dòng)態(tài)工作流。例如, 一些科學(xué)工作流 會(huì)在不同的計(jì)算階段采用不同的拓?fù)浣Y(jié)構(gòu)。此外,許多商業(yè)工作流也運(yùn)用多種 拓?fù)湟酝瓿砷L期的業(yè)務(wù)流程。為了解決動(dòng)態(tài)工作流的調(diào)度問題,調(diào)度者需要在
4一個(gè)周期中考慮工作流的性能并給出最優(yōu)的調(diào)度方案。
本發(fā)明的目標(biāo)是解決在網(wǎng)格中的時(shí)變工作流調(diào)度問題,最小化在一個(gè)周期 中的總費(fèi)用并滿足時(shí)限的約束。
發(fā)明內(nèi)容
本發(fā)明將蟻群算法運(yùn)用到動(dòng)態(tài)網(wǎng)格工作流的優(yōu)化中。算法的具體步驟包括:
(1) 初始化算法的各個(gè)參數(shù),并設(shè)置信息素的初始值為T。,其取值由以下 公式?jīng)Q定
其中,w/w—tota/—cos,和wax—toto/—分別表示工作^i在一個(gè)周期內(nèi)最小和最大 費(fèi)用。
(2) 所有螞蟻進(jìn)行解的構(gòu)造。在構(gòu)造解的每一步中,螞蟻會(huì)基于信息素和 啟發(fā)式信息選擇一個(gè)服務(wù)進(jìn)程,并將任務(wù)隊(duì)列中第一個(gè)未映射的任務(wù)映射到這 個(gè)服務(wù)進(jìn)程中。選擇將任務(wù)7}映射到《的方法為
^:丁argmax一,/r,,《"。 '—l執(zhí)行輪盤賭, 否則
公式中《e
為一個(gè)隨機(jī)數(shù),g。s
為一個(gè)預(yù)先定義的算法參數(shù)。y321是決 定信息素和啟發(fā)式信息相對(duì)影響的參數(shù)。 啟發(fā)式信息的計(jì)算方法為
其中,^表示費(fèi)用的啟發(fā)式信息而w則表示執(zhí)行時(shí)間的啟發(fā)式信息。
當(dāng)螞蟻將一個(gè)任務(wù)7V映射到一個(gè)服務(wù)進(jìn)程s/后,馬上執(zhí)行局部信息素的更 新。局部信息素更新的方法由以下公式給出
其中,pe(O,l)是一個(gè)參數(shù)。
C3) 評(píng)估所有螞蟻構(gòu)造出的解的適應(yīng)值,使用的適應(yīng)值函數(shù)為De"必V7e m/w tota/ cos/
《.附ax—附aA:esp"w 附ax—tota/—cast
, 附/w to/a/ cast
1+-^-=-,,并將其與一參數(shù)g。e
比 較。如果^S^,那么螞蟻就會(huì)將T)映射到含有最大^./^值的服務(wù)進(jìn)程中。否 則,將運(yùn)用輪盤賭的選擇方法,也就是選擇《的可能性與、/T"大小成正比。其 屮,iS21是決定信息素和啟發(fā)式信息相對(duì)影響的參數(shù)。
在所有螞蟻完成解的構(gòu)造后,需要根據(jù)適應(yīng)值函數(shù)判斷每個(gè)解的優(yōu)劣。對(duì) 于一個(gè)調(diào)度K而言,適應(yīng)值是根據(jù)其在一個(gè)周期內(nèi)的性能給出的。由于工作流 在一個(gè)周期中有多種不同的拓?fù)浣Y(jié)構(gòu),調(diào)度K的總費(fèi)用就是每個(gè)拓?fù)浣Y(jié)構(gòu)費(fèi)用 的總和。第y'個(gè)拓?fù)涞馁M(fèi)用^巧可以根據(jù)以下公式計(jì)算其中,a"(f,刀表示任務(wù)/在拓?fù)鋣中的工作狀態(tài)。如果該任務(wù)是活躍的,那么 ad(/,))的取值為1,否則取值為0。 因此,調(diào)度X的費(fèi)用如下給出
為了滿足調(diào)度問題的期限約束,必須保證《的最大工期尤mox—w^e^^"在 任何時(shí)間單位都不能大于一個(gè)用戶定義的期限。約束用數(shù)學(xué)公式的表達(dá)為
其中/Cma;^/^",是在第z'個(gè)時(shí)間單位的工期。
《的適應(yīng)值由兩部分組成期限部分和費(fèi)用部分。如果K的最大工期在所 有時(shí)間單位內(nèi)均滿足期限的約束,那么期限部分的取值為l,而費(fèi)用部分的取值
則隨著費(fèi)用的降低而升高。在另一方面,如果《不能滿足期限約束,那么期限 部分就要根據(jù)滿足程度進(jìn)行取值,而費(fèi)用部分則被限制在一個(gè)較小的取值。每
一部分的取值區(qū)間均為(O,l],因此適應(yīng)值的取值區(qū)間為(0,2]。用公式表達(dá)為
toto/+ .
max—maA:aspaw 附ax—foto/ — cosf 如果附ax—mafe5/ aw > Z)ea必'we
、 附/" 欣a/ coM
1 + ~~=-=-,
否則
其中,w/w—toto/一coW和max—toto/—casf分別表示工作流在一個(gè)周期內(nèi)最小和最大 費(fèi)用。它們通過以下公式進(jìn)行計(jì)算
r w
蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的流程圖如圖i所示。
用一個(gè)實(shí)例對(duì)提出的算法進(jìn)行性能上的測(cè)試。圖2是9任務(wù)e-Economic工
10作流的基本結(jié)構(gòu)圖。假設(shè)工作流的運(yùn)行周期為30個(gè)時(shí)間單位,運(yùn)行時(shí)間剛好每
時(shí)間單位一次。除了7;和r5以外所有任務(wù)在整個(gè)時(shí)間段內(nèi)都處于工作狀態(tài)。但 是,7^和r5的工作狀態(tài)是可變的,因此工作流在一個(gè)周期內(nèi)有4種不同的拓?fù)?br>
結(jié)構(gòu)。在實(shí)驗(yàn)中,隨機(jī)為工作流中的每個(gè)任務(wù)賦予6到10個(gè)進(jìn)程,這些進(jìn)程的
費(fèi)用和執(zhí)行時(shí)間也是隨機(jī)初始化的。算法的參數(shù)設(shè)置為螞蟻數(shù)量等于30,最
大循環(huán)次數(shù)等于250,戶=1.2, p = 0.1,《。=0.5。實(shí)驗(yàn)設(shè)置了多個(gè)不同的期限 約束,并對(duì)每種約束運(yùn)用發(fā)明的聳法進(jìn)行100次求解。在所有執(zhí)行結(jié)果中,蟻
群算法均可以得到最優(yōu)或接近最優(yōu)的調(diào)度。這證明發(fā)明的算法在動(dòng)態(tài)網(wǎng)格工作 流優(yōu)化中是十分有效的。
權(quán)利要求
1、一種運(yùn)用蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的方法,其特征在于,該方法包括以下步驟(1)初始化算法的各個(gè)參數(shù),并設(shè)置信息素的初始值為τ0。(2)所有螞蟻進(jìn)行解的構(gòu)造。在構(gòu)造解的每一步中,螞蟻會(huì)基于信息素和啟發(fā)式信息選擇一個(gè)服務(wù)進(jìn)程,并將任務(wù)隊(duì)列中第一個(gè)未映射的任務(wù)映射到這個(gè)服務(wù)進(jìn)程中。選擇將任務(wù)Ti映射到的方法為公式中q∈
為一個(gè)隨機(jī)數(shù),q0∈
為一個(gè)預(yù)先定義的算法參數(shù)。β≥1是決定信息素和啟發(fā)式信息相對(duì)影響的參數(shù)。當(dāng)螞蟻將一個(gè)任務(wù)Ti映射到一個(gè)服務(wù)進(jìn)程后,馬上執(zhí)行局部信息素的更新。局部信息素更新的方法由以下公式給出τij=(1-ρ)·τij+ρ·τ0其中,ρ∈(0,1)是一個(gè)參數(shù)。(3)評(píng)估所有螞蟻構(gòu)造出的解的適應(yīng)值。(4)執(zhí)行全局信息素的更新。加強(qiáng)歷史最優(yōu)解上的信息素。假設(shè)K(K1,K1,...,Kn)(表示任務(wù)Ti映射到服務(wù)進(jìn)程)是歷史最優(yōu)解,那么更新公式為i=1,2,...,n其中,K. fitness表示調(diào)度K的適應(yīng)值。(5)如果達(dá)到結(jié)束條件則終止程序,否則返回步驟(2)。
2、基于權(quán)利要求1所述的一種運(yùn)用蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的方法, 其特征在于信息素的初始值為i:。由以下公式?jīng)Q定<formula>formula see original document page 2</formula>其中,mz'"一toto/一coW和max—toto/一coW分別表示工作流在一個(gè)周期內(nèi)最小和最大 費(fèi)用。
3、基于權(quán)利要求1所述的一種運(yùn)用蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的方法,其特征在于啟發(fā)式信息的計(jì)算方法為其中,";表示費(fèi)用的啟發(fā)式信息而《則表示執(zhí)行時(shí)間的啟發(fā)式信息。
4、基于權(quán)利要求1所述的一種運(yùn)用蟻群算法優(yōu)化動(dòng)態(tài)網(wǎng)格工作流的方法,其特征在于使用的適應(yīng)值函數(shù)為<formula>formula see original document page 3</formula>否則其中,Kmocc—mafes;xw表示調(diào)度K的最大工期,表示期限約束,coW 為調(diào)度《的費(fèi)用。
全文摘要
本發(fā)明公開了一種使用蟻群算法求解動(dòng)態(tài)網(wǎng)格工作流調(diào)度問題的方法。算法在一個(gè)周期內(nèi)通過跟蹤工作流的拓?fù)浣Y(jié)構(gòu)而對(duì)一個(gè)調(diào)度的性能進(jìn)行評(píng)估。在蟻群算法的迭代搜索過程中,螞蟻根據(jù)信息素和啟發(fā)式信息的取值對(duì)工作流進(jìn)行調(diào)度。在解的構(gòu)造過程中,螞蟻會(huì)改變它選擇的路徑上的信息素,稱為局部信息素更新。在所有解構(gòu)造完成后,算法還要進(jìn)行全局信息素的更新,以加強(qiáng)最優(yōu)解上的信息素。此外,設(shè)計(jì)出了完整的啟發(fā)式信息用以平衡工作流的費(fèi)用和時(shí)限。最后,通過對(duì)9任務(wù)4拓?fù)渚W(wǎng)格工作流的優(yōu)化,證明了發(fā)明的方法是有效的。
文檔編號(hào)G06F9/46GK101477475SQ20081022065
公開日2009年7月8日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者源 史, 軍 張, 陳偉能, 韜 黃 申請(qǐng)人:中山大學(xué)