專利名稱:運用蟻群算法優(yōu)化多QoS網(wǎng)格工作流的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)格計算以及智能算法兩大領(lǐng)域,主要涉及一種運用蟻群算法優(yōu)化多QoS網(wǎng)格工作流的方法。 技術(shù)背景網(wǎng)格計算可以支持大范圍的并行和分布式計算,被認(rèn)為是有潛力的下一代 計算平臺。與電網(wǎng)(electrical power grid)類似,計算網(wǎng)格使得分布于不同地理 位置的各種不同計算資源的共享、選擇和協(xié)同運作成為可能。網(wǎng)格技術(shù)可以滿 足科學(xué)和商業(yè)上的計算需求,并且提供了解決計算密集型問題的可行方法。在網(wǎng)格中處理的計算應(yīng)用通常稱為工作流。在網(wǎng)格的環(huán)境中,工作流定義 是 一個完成復(fù)雜目標(biāo)的特定的任務(wù)序列。在網(wǎng)格計算中,如何調(diào)度工作流以 達(dá)到更高的性能是一個十分重要的問題。通常,工作流以有向無環(huán)圖(DAG) 的形式給出,其中節(jié)點表示單個任務(wù)而有向的箭線表示任務(wù)間的優(yōu)先關(guān)系。任 務(wù)調(diào)度程序需要把任務(wù)分配給不同的分布式計算站點進(jìn)行處理,以滿足用戶對 服務(wù)質(zhì)量(QoS)的要求并優(yōu)化計算性能??偟膩碚f,在DAG中的調(diào)度問題是 NP-完全的,因此工作流調(diào)度是一個十分復(fù)雜的問題。對網(wǎng)格中的工作流調(diào)度問題的現(xiàn)有研究大部分集中于只帶有一個QoS參數(shù) (總工期)的問題。其中,最常用的方法是基于不同啟發(fā)式信息的動態(tài)或靜態(tài) 的表調(diào)度算法,例如OLB算法,MET算法,MCT算法,Min-min算法,Max-min 算法,Duplex算法,Sufferage算法和HEFT算法等。這些算法的基本思想是根 據(jù)啟發(fā)式信息來依次調(diào)度任務(wù)。此外,還有一些亞啟發(fā)式(meta-heuristic)算法, 例如遺傳算法(GA),模擬退火(SA)和遺傳模擬退火(GSA)等??偟膩碚f, 亞啟發(fā)式算法具有更好的性能,但卻需要更長的計算時間。最近,開放式網(wǎng)格服務(wù)體系結(jié)構(gòu)(OGSA)的提出使得網(wǎng)格計算技術(shù)得到了 加強。OGSA將網(wǎng)絡(luò)服務(wù)引入到網(wǎng)格模型中,并且迅速成為了占主導(dǎo)地位的技 術(shù)。在新的結(jié)構(gòu)體系下,以上給出的傳統(tǒng)調(diào)度算法已經(jīng)不再適用。這是因為 第一,OGSA的一大趨勢是出現(xiàn)各種不同的提供計算資源的網(wǎng)格服務(wù)工作站(GSPs)。因此,任務(wù)的執(zhí)行已不再受限于計算資源的數(shù)量。在新的體系下可以 由不同工作站提供的一系列服務(wù)進(jìn)程來完成。于是,調(diào)度程序就需要將每個任 務(wù)和其相應(yīng)的服務(wù)進(jìn)程聯(lián)系起來。第二,總工期已不再是用戶關(guān)心的唯一 QoS 參數(shù)。相應(yīng)的,其它的QoS參數(shù),例如費用,可靠性和安全性等,在網(wǎng)格性能 中顯得越來越重要。因此,調(diào)度程序需要考慮不同QoS參數(shù)之間的平衡,以滿 足用戶的需求并優(yōu)化整個應(yīng)用程序的性能。為了解決這一更困難的調(diào)度問題,Yuan等提出了一個動態(tài)格點調(diào)度算法以 考慮費用和時間之間的平衡[l]。但是,這種算法只能進(jìn)行工期的優(yōu)化而忽略了 用戶對其它參數(shù)的選擇。Yu等提出了一種稱為Deadline-MDP的工作流調(diào)度算 法[2]。在這種算法中,工作流中的任務(wù)被劃分為不同的分支,每個分支被賦予 一個子期限。然后運用Markov決策過程(MDP)尋找每個分支帶有最小費用而且 滿足時間約束的調(diào)度,但是該算法仍然只能用于解決帶期限約束的費用優(yōu)化問 題。隨著網(wǎng)格計算的不斷發(fā)展,工作流問題的規(guī)模越變越大。而用戶也會根據(jù) 自身的需求為工作流應(yīng)用程序設(shè)定一系列的QoS約束。因此, 一個好的調(diào)度程 序應(yīng)該有能力找出最優(yōu)的調(diào)度方案,滿足用戶定義的約束條件并最優(yōu)化用戶需 求的QoS參數(shù)。為了解決這個復(fù)雜的調(diào)度問題,本文提出了一種運用蟻群算法 優(yōu)化多QoS網(wǎng)格工作流的方法。蟻群算法是一種由Dorigo提出的亞啟發(fā)式算法。 它通過模仿真實螞蟻的覓食行為而工作,并且成功地運用到了各種復(fù)雜組合問 題的優(yōu)化中。蟻群算法用于工作流調(diào)度問題的主要優(yōu)勢在于它可以充分利用基 于進(jìn)程的啟發(fā)式信息。 參考文獻(xiàn)[1] Y. Yuan, X. Li, and Q. Wang: Time-cost trade-off dynamic scheduling algorithm for workflows in grids. Proceedings of the 10th International Conference on Computer Supported Cooperative Work in Design, 2006.[2] J. Yu, R. Buyya, and C.K. Tham: Cost-based scheduling of scientific workflow applications on utility grids. Proceedings of the 1st International Conference on e-Science and Grid Computing (e隱Science, 05), pp. 140-147, 2005.
發(fā)明內(nèi)容
本發(fā)明主要集中于解決大規(guī)模的多QoS工作流調(diào)度問題。在建立的模型中主要考慮三個基本的QoS參數(shù)可靠性、時間和費用。這些參數(shù)在網(wǎng)格應(yīng)用中是十分重要的,而它們的特性也各不相同。用戶在遞交工作流應(yīng)用程序的時候會指定對QoS的要求可靠性的下界,工作期限和費用預(yù)算等。此外,用戶還可能需要優(yōu)化其中一個QoS參數(shù)。因此,提出的方法的目標(biāo)是找出一個可行的 調(diào)度方法,滿足用戶定義的所有QoS參數(shù),并且對其中一個進(jìn)行優(yōu)化。為了完 成這一任務(wù),設(shè)計了七種基于進(jìn)程的啟發(fā)式信息用于引導(dǎo)螞蟻的搜索行為。在 發(fā)明的算法中,運用自適應(yīng)的方法處理這些啟發(fā)式信息,在構(gòu)造解的時候讓螞 蟻根據(jù)信息素來選擇啟發(fā)式信息。算法的具體步驟包括-(1)初始化參數(shù)。對于不同的QoS需求,信息素的初始值^根據(jù)以下公式給出<formula>formula see original document page 7</formula>可靠性優(yōu)化 工期優(yōu)化 費用優(yōu)化<formula>formula see original document page 7</formula>其中,w/"J e/z'flM/^表示所有服務(wù)進(jìn)程的最低可靠性,而wax—i e//^///0^100。 是估計的工作流最小工期,而w欲—M"fespaw是估計的最大工期。 這兩個估計值可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行時間的服 務(wù)進(jìn)程中而計算得出。同樣的,mZ^O^和max—a^是工作流估計的最小費用 和最大費用。它們可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行費用 的服務(wù)進(jìn)程中而計算得出。(2) 初始化所有的螞蟻。在每一次循環(huán)開始時,每只螞蟻都會隨機選擇一 個構(gòu)造方向(前向或者后向)。前向螞蟻會根據(jù)給定的優(yōu)先關(guān)系在工作流網(wǎng)絡(luò)中 構(gòu)造解。相反的,后向螞蟻將從結(jié)束節(jié)點開始搜索,并將所有的箭線反向。從 兩種方向開始的調(diào)度策略使算法可以搜索更多不同的解。此外,每只螞蟻都要 建立一個符合優(yōu)先約束的任務(wù)序列。并基于此任務(wù)序列將任務(wù)依次映射到服務(wù)進(jìn)程中。任務(wù)序列是通過隨機選擇滿足優(yōu)先約束的任務(wù)而建立的。(3) 每只螞蟻首先基于信息素運用輪盤賭的選擇方法選擇一種啟發(fā)式信 息。當(dāng)螞蟻選擇了一種啟發(fā)式信息后,例如啟發(fā)式信息A,在該啟發(fā)式信息上 的信息素將進(jìn)行局部的更新其中,戶e(O,l)是一個參數(shù)。(4) 選定了一種啟發(fā)式信息后,螞蟻就可以開始構(gòu)造調(diào)度問題的解。在構(gòu) 造解的每一步中,螞蟻會基于信息素和啟發(fā)式信息選擇一個服務(wù)進(jìn)程,并將任務(wù)隊列中第一個未映射的任務(wù)映射到這個服務(wù)進(jìn)程中。選擇將任務(wù)r,映射到s/ 的方法為''一l執(zhí)行輪盤賭, 否則在這種選擇方法中,生成一個隨機數(shù)《e
,并將其與一參數(shù)《。e
比較。 如果《S&,那么螞蟻就會將7;映射到含有最大r^^"值的服務(wù)進(jìn)程中。否則, 將運用輪盤賭的選擇方法,也就是選擇《的可能性與^^^大小成正比。其中、和^.分別表示r,映射到進(jìn)程s/的信息素和啟發(fā)式信息,p^i是決定信息素和啟發(fā)式信息相對影響的參數(shù)。當(dāng)螞蟻將一個任務(wù)7}映射到一個服務(wù)進(jìn)程<后,馬 上執(zhí)行局部信息素的更新。局部信息素更新的方法由以下公式給出在每一次循環(huán)中,每只螞蟻循環(huán)使用w次這種選擇方式,將w個任務(wù)映射到w 個服務(wù)進(jìn)程中從而形成一個完整的調(diào)度解。(5) 當(dāng)所有螞蟻都完成解的構(gòu)造后,對每個調(diào)度解進(jìn)行評價。(6) 執(zhí)行全局信息素的更新。只有帶有最高評價值的全局最優(yōu)解才會進(jìn)行 全局信息素的更新。假設(shè)全局最優(yōu)解為^(^,…,K。),全局更新策略給定如下r汰.=(1 _/ ) t汰.+ yC score, / = 1,2,",,"(7) 如果達(dá)到結(jié)束條件則結(jié)束程序,否則回到步驟(2)。 發(fā)明的方法具有以下優(yōu)點1、考慮了三種QoS參數(shù),除了滿足QoS的約束外,算法還可以對其中一個QoS參數(shù)進(jìn)行優(yōu)化。2、充分利用了蟻群算法的特點,設(shè)計了七種啟發(fā)式信息用于引導(dǎo)螞蟻的搜索,使得搜索效率得到了有效的提高。
圖l工作流應(yīng)用過程示意2螞蟻構(gòu)造一個完整解的過程示意3算法整體流程圖
具體實施例方式以下結(jié)合附圖,進(jìn)一步對發(fā)明的方法進(jìn)行描述。在科學(xué)或商業(yè)上的很多計算密集型的問題都可以被歸為工作流問題。工作 流應(yīng)用的過程如圖1所示。用戶首先會在抽象描述層面給出工作流應(yīng)用的抽象 語言。然后網(wǎng)格系統(tǒng)就需要選擇并且設(shè)置應(yīng)用組件以組成抽象的工作流,在抽 象的工作流中制定任務(wù)執(zhí)行的次序。在OSGA中,工作流中的任務(wù)是由工作站 提供的網(wǎng)絡(luò)服務(wù)進(jìn)程執(zhí)行的。由不同工作站提供的不同進(jìn)程可以用于執(zhí)行同一 個任務(wù),并帶有不同的QoS參數(shù)。于是,第三個層面的任務(wù)就是將抽象工作流 中的任務(wù)映射到服務(wù)進(jìn)程中,以生成具體的工作流。例如在圖1中,在抽象工作流中的每一個任務(wù)7;.都對應(yīng)一系列的服務(wù)進(jìn)程s-w,《,…,d。 sU2,…,^在長方形&中以圓表示。m,.是任務(wù)l所對應(yīng)的服務(wù)進(jìn)程的總數(shù)。用灰色圓圈表 示的服務(wù)進(jìn)程是最后選定的執(zhí)行該任務(wù)的進(jìn)程,這樣便構(gòu)成了具體的工作流。 最后,在應(yīng)用層面,不同的工作站可能會用不同的結(jié)構(gòu)來執(zhí)行同樣的程序。在 這種模型中,將抽象的工作流映射為具體的工作流是網(wǎng)格應(yīng)用中最關(guān)鍵的一步。 本發(fā)明的目標(biāo)就是提出一個有效的算法來為大規(guī)模的工作流應(yīng)用問題生成具體 的工作流。直觀地來說,工作流調(diào)度算法的作用是將抽象工作流中的所有任務(wù)映射到 服務(wù)進(jìn)程,以生成最優(yōu)的具體工作流,并且滿足用戶定義的QoS約束和最大化 用戶需求的性能。在抽象工作流的DAG, C 氣F3)模型中,令"為工作流中任務(wù)的數(shù)量。節(jié)點的集合F^,r2,…,:u對應(yīng)工作流中的任務(wù)。箭線的集合^表示任 務(wù)之間的優(yōu)先次序關(guān)系。 一條箭線用(7;,7;)表示,其中7;稱為7}的父任務(wù),而7}稱為7}的子任務(wù)。在正常情況下, 一個子任務(wù)只能在其所有父任務(wù)都完成后才能開始執(zhí)行。r'的父任務(wù)的集合用iVe《7;)表示,而7}的子任務(wù)的集合則用 iSi/cc(7))表不。每個任務(wù)7X1 &、")都有一個執(zhí)行范圍《=^a2,…,《'},其中<(1《_/《m,)表示由工作站提供的一個服務(wù)進(jìn)程,附i表示r,可用的服務(wù)進(jìn)程的數(shù)量。 一個服務(wù)進(jìn)程的屬性可以用一組四個變量來表示(s/.g,《,,s/.f, s/")。其中,s/.g表示《所屬的工作站是《.g。 <.r, ^^和(c分別代表^的可靠性、執(zhí)行時間和 費用。優(yōu)先約束已經(jīng)包含在DAG模型中,它指定了一個可行解必須滿足的任務(wù)執(zhí) 行次序。此外,在工作流模型中還存在一些用戶定義的QoS約束。由于在本文中考 慮了三種QoS參數(shù),因此對應(yīng)有三種類型的QoS約束(1) 可靠性約束生成的具體工作流的可靠性不能小于一個用戶定義的變量 h>m'&We//aM//y。換句話說,給定一個調(diào)度方案K(《,…,iU (《表示7;由《' 執(zhí)行),如果/0^//^///^是該調(diào)度的可靠性,調(diào)度K滿足可靠性約束的條件為(2) 總工期約束工作流總的執(zhí)行時間不能大于用戶定義的一個變量£>^^// "換句話說,如 果K.mafew""是i:的總執(zhí)行時間,那么《應(yīng)該滿足(3) 費用約束對于給定的調(diào)度方案《(《,…,i^),《的總費用(《.②W)不能大于用戶定 義的一個變量5"^ a。也就是<formula>formula see original document page 10</formula> 除了約束條件,用戶也會定義^一i優(yōu)化的QoS參數(shù)。(1)可靠性優(yōu)化用戶傾向于優(yōu)化應(yīng)用程序的可靠性。在這種情況下,用戶往往會設(shè)置工期 和費用的約束,而調(diào)度算法的目標(biāo)則是尋找一個滿足所有約束條件的調(diào)度方案尺,并最大化K.reliability的值。(2) 工期優(yōu)化用戶傾向于優(yōu)化應(yīng)用程序的工期。在這種情況下,用戶往往會設(shè)置可靠性 和費用的約束,而調(diào)度算法的目標(biāo)則是尋找一個滿足所有約束條件的調(diào)度方案AT,并最小化A:.附"A:ej;7fl"的值。(3) 費用優(yōu)化-用戶傾向于優(yōu)化應(yīng)用程序的費用。在這種情況下,用戶往往會設(shè)置可靠性 和工期的約束,而調(diào)度算法的目標(biāo)則是尋找一個滿足所有約束條件的調(diào)度方案 《,并最小化《.co^的值。以下詳細(xì)描述用于解決這種調(diào)度問題的蟻群算法1.信息素和啟發(fā)式信息的定義對于蟻群算法而言,信息素和啟發(fā)式信息是最重要的因素。由于調(diào)度問題是要將抽象工作流中的所有任務(wù)映射到服務(wù)進(jìn)程中,因此設(shè)任務(wù)r,映射到進(jìn)程的信息素為、,啟發(fā)式信息為% 。在算法開始時,設(shè)所有的信息素為一個初始值r。,也就是此外,由于在考慮的模型中存在多個QoS參數(shù),因此算法中設(shè)計了七種啟 發(fā)式信息0(1) 啟發(fā)式信息A:可靠性貪婪(RG)RG啟發(fā)式信息使得人工螞蟻更傾向于選擇具有更高可靠性的進(jìn)程。假設(shè)螞 蟻使用的是RG啟發(fā)式信息,那么r,映射到s/的啟發(fā)式信息(用A(^表示)為—prT —s/.r — mz>t—re/z.aM!化.+1其中,mz' —= minls/Sw,. {sZ.r} , wox_re"a6z'〃(y,. 一 maxls)SWi。根據(jù)公 式, 一個具有更高可靠性的進(jìn)程將會帶有更高的啟發(fā)式信息。同時,該公式也 保證了^.e(0,1]。(2) 啟發(fā)式信息B:時間貪婪(TG)TG啟發(fā)式信息使得人工螞蟻更傾向于選擇執(zhí)行時間更短的進(jìn)程。假設(shè)螞蟻使用的是TG啟發(fā)式信息,那么r,映射到s/的啟發(fā)式信息(用rGy表示)為<formula>formula see original document page 12</formula>其中,附z'"一ft'me,. — min化乂^,, /wox一f/附e,. — max化^"。豐艮據(jù)公式,~"個執(zhí) 行時間更短的進(jìn)程將會帶有更高的啟發(fā)式信息,并且^ e (O,l]。(3) 啟發(fā)式信息C:費用貪婪(CG)CG啟發(fā)式信息使得人工螞蟻更傾向于選擇所需費用更少的進(jìn)程。假設(shè)螞蟻使用的是CG啟發(fā)式信息,那么T,映射到s/的啟發(fā)式信息(用C&表示)為<formula>formula see original document page 12</formula>其中,Am'"_coW,. = miriw納 .f} , = maxls;— {■$/ 。根據(jù)公式, 一個所需費用更少的進(jìn)程將會帶有更高的啟發(fā)式信息,并且^ e(O,l]。(4) 啟發(fā)式信息D:建議的期限(SD)在QoS參數(shù)之間總會存在取舍平衡。例如, 一個執(zhí)行時間短的進(jìn)程可能需 要較高的費用而且可靠性較低??紤]到這樣的平衡以及期限的約束,SD啟發(fā)式 信息使得人工螞蟻更傾向于選擇剛好按時完成的服務(wù)進(jìn)程。為了達(dá)到這一目標(biāo), 基于用戶定義的期限,給在抽象工作流中的每個任務(wù)賦予一個建議的期限。為了計算每個任務(wù)的SD啟發(fā)式信息,首先需要計算每個任務(wù)的最早開始時 間以及后向最早開始時間。任務(wù)r,的最早開始時間(五S7p:將每個任務(wù)r,映射到執(zhí)行時間最短的服務(wù) 進(jìn)程中,五sr,等于在這種映射下任務(wù)r,的開始時間。此外,在這種映射方法下的工作流執(zhí)行總工期可以被看作估計的最小總工期,并用m/"—Afofe^a"表示。任務(wù)r,的后向最早開始時間(5五sr,):通過將DAG中的開始節(jié)點作為結(jié)束節(jié)點,將結(jié)束節(jié)點作為開始節(jié)點,并將所有的箭線的方向反轉(zhuǎn),就可以將DAG轉(zhuǎn)換為一個后向網(wǎng)絡(luò)。對于每個任務(wù)r,,在后向網(wǎng)絡(luò)中的五sr,值就是5五S7;。 基于以上兩個時間,就可以計算任務(wù)r,的平均最短執(zhí)行時間. (min (。W5T》-ES ) + (min 順)朋57}—丑M7;) avg _ —=-^-^-^-根據(jù)"v^ym'"」z'me,計算的方法為ovg 一聰w 一附一 MaA:^paw假設(shè)螞蟻使用的是SD啟發(fā)式信息,那么K映射到s/的啟發(fā)式信息為 max —— //w^ — | , liSD; -附/" _ f/膨;|} — (■$■/ J — SD,.) <formula>formula see original document page 13</formula>根據(jù)公式, 一個執(zhí)行時間更接近SA的進(jìn)程將會帶有更高的啟發(fā)式信息,并且"一(o,i]。(5)啟發(fā)式信息e:建議的預(yù)算(sb)與sd啟發(fā)式信息相似,sb啟發(fā)式信息使得螞蟻更傾向于選擇剛好達(dá)到預(yù) 算費用的服務(wù)進(jìn)程。為了達(dá)到這一目標(biāo),基于用戶定義的總預(yù)算,給在抽象工 作流中的每個任務(wù)賦予一個建議的預(yù)算。通過將所有任務(wù)映射到最低費用的服務(wù)進(jìn)程中,得到整個工作流的最小費 用wz'"—CoW。也就是,m/w_CoW=iw/n_m^ 。任務(wù)f的建議預(yù)算5^如下計<formula>formula see original document page 13</formula>假設(shè)螞蟻使用的是sb啟發(fā)式信息,那么將r,映射到s/的啟發(fā)式信息為max {|—cas(.—竭| , -附/w _ c。sf; |} — (s/ .c —) +1 max{jmax_co$f,. — 一 aw/w—cos^|} +1根據(jù)公式,費用更接近S5,的服務(wù)進(jìn)程將會帶有更高的啟發(fā)式信息,而且(6)啟發(fā)式信息F:時間/費用(TC)TC啟發(fā)式信息綜合考慮一個服務(wù)進(jìn)程的時間和費用因素。它綜合了 TG和 CG兩種啟發(fā)式信息。假設(shè)螞蟻使用的是TC啟發(fā)式信息,那么任務(wù)7)映射到^ 的啟發(fā)式信息為根據(jù)公式,具有更短的執(zhí)行時間以及更低費用的服務(wù)進(jìn)程將會帶有更高的啟發(fā)式信息,而且^.e(0,1]。(7)啟發(fā)式信息G:總體性能(OP)在OP啟發(fā)式信息中綜合考慮了所有的QoS參數(shù)的作用(包括可靠性、時 間和費用)。它將TG、 CG和RG啟發(fā)式信息結(jié)合在一起。假設(shè)螞蟻使用的是 OP啟發(fā)式信息,那么任務(wù)r,映射到s/的啟發(fā)式信息為根據(jù)公式,具有更短的執(zhí)行時間,更低費用以及更高可靠性的服務(wù)進(jìn)程將 會帶有更高的啟發(fā)式信息,而且^e(0,1]?;诓煌挠脩粜枨?,算法將會運用不同的啟發(fā)式信息。1)如果目標(biāo)是優(yōu) 化可靠性,那么算法就會運用所有的七種啟發(fā)式信息。其中,RG和OP啟發(fā)式 信息用于尋找高可靠性的服務(wù)進(jìn)程,而其它啟發(fā)式信息則用于保證費用和工期 滿足QoS約束。2)如果目標(biāo)是優(yōu)化工期,那么就只使用啟發(fā)式信息TG、 CG、 SB和TC。 TG和TC啟發(fā)式信息用于尋找最短執(zhí)行時間的服務(wù)進(jìn)程,而CG和 SB則用于搜索滿足費用約束的服務(wù)進(jìn)程。在這種情況下,可靠性的約束條件可 以通過不選擇低于可靠性約束的服務(wù)進(jìn)程而達(dá)到,因此不需要RG和OP啟發(fā)式 信息。由于算法的目標(biāo)是最小化工期,所以也不需要SD啟發(fā)式信息。3)如果 目標(biāo)是優(yōu)化費用,基于類似的理由,所需的啟發(fā)式信息為TG、 CG、 SD和TC。運用自適應(yīng)的方法在算法中管理這七種啟發(fā)式信息。在人工螞蟻每次開始 構(gòu)造解之前,首先會基于信息素對本次構(gòu)造所用的啟發(fā)式信息進(jìn)行選擇。其中, 對應(yīng)啟發(fā)式信息A的信息素用^表示,對應(yīng)啟發(fā)式信息B的信息素用^表示, 以此類推。在算法開始時,所有需要的啟發(fā)式信息上的信息素將會被設(shè)置為初 值r。,而其它不用的啟發(fā)式信息的信息素則設(shè)為O。 2.解的構(gòu)造在算法的每一個循環(huán)中,都會運用一組個數(shù)為M的螞蟻來構(gòu)造問題解。解 的構(gòu)造程序可以分為以下兩步。 (1)螞蟻的初始化在每一次循環(huán)開始時,每只螞蟻都會隨機選擇一個構(gòu)造方向(前向或者后 向)。前向螞蟻會根據(jù)給定的優(yōu)先關(guān)系在工作流網(wǎng)絡(luò)中構(gòu)造解。相反的,后向螞蟻將從DAG的結(jié)束節(jié)點開始搜索,并將所有的箭線反向,正如計算后向最早開 始時間那樣。從兩種方向開始的調(diào)度策略使算法可以搜索更多不同的解。此外,每只螞蟻都要建立一個符合優(yōu)先約束的任務(wù)序列。并基于此任務(wù)序 列將任務(wù)依次映射到服務(wù)進(jìn)程中。為了方便起見,將前向螞蟻的任務(wù)序列表示為C, ;,7;,…,^,U,后向螞蟻的任務(wù)序列表示為(。,i;,7;,…,n,)。任務(wù)序列是通過隨機選擇滿足優(yōu)先約束的任務(wù)而建立的。(2)構(gòu)造調(diào)度解在這一步中,M只螞蟻分別構(gòu)造問題的A/個解。螞蟻構(gòu)造一個完整解的過 程如圖2所示。在開始時,每個螞蟻會基于信息素運用輪盤賭的選擇方法選擇 一種啟發(fā)式信息。也就是,選擇啟發(fā)式信息A的概率和信息素r,所占的比例成 正比。選定了一種啟發(fā)式信息后,螞蟻就開始構(gòu)造調(diào)度問題的解了。在構(gòu)造解的 每一步中,螞蟻會基于信息素和啟發(fā)式信息選擇一個服務(wù)進(jìn)程,并將任務(wù)隊列 中第一個未映射的任務(wù)映射到這個服務(wù)進(jìn)程中。選擇將任務(wù)K映射到S/的方法 為S、Jargmax,r,,《^。 '—i執(zhí)行輪盤賭, 否則在這種選擇方法中,生成一個隨機數(shù)ge[O,l],并將其與一參數(shù)&e
比 較。如果《S&,那么螞蟻就會將7;映射到含有最大r^^')值的服務(wù)進(jìn)程中。否 則,將運用輪盤賭的選擇方法,也就是選擇《的可能性與^.^^大小成正比。其 中,^kl是決定信息素和啟發(fā)式信息相對影響的參數(shù)。在每一次循環(huán)中,每只螞蟻循環(huán)使用iV次這種選擇方式,將JV個任務(wù)映射 到W個服務(wù)進(jìn)程中從而形成一個完整的調(diào)度解。 3.信息素的處理 (1)信息素初始化在本文中,對于不同的QoS需求,信息素的初始值r。根據(jù)以下公式給出<formula>formula see original document page 16</formula>,可靠性優(yōu)化 <formula>formula see original document page 16</formula> 工期優(yōu)化<formula>formula see original document page 16</formula> 費用優(yōu)化
其中,i ^'aZn7辦表示所有服務(wù)進(jìn)程的最低可靠性,而wax—i e//a^7z'^100。 m/w_Afo^^p"w是估計的工作流最小工期,而maxjkfa^spa77是估計的最大工期。 這兩個估計值可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行時間的服 務(wù)進(jìn)程中而計算得出。同樣的,a^和mox一0^是工作流估計的最小費用 和最大費用。它們可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行費用 的服務(wù)進(jìn)程中而計算得出。
(2) 局部信息素更新在發(fā)明的方法中,當(dāng)螞蟻將一個任務(wù)T,映射到一個服務(wù)進(jìn)程^后,馬上執(zhí) 行局部信息素的更新。局部信息素更新的方法由以下公式給出<formula>formula see original document page 16</formula>其中,/ e(0,l)是一個參數(shù)。由于r。同時也是信息素的最低值,因此局部信息素 更新的作用是降低、的取值以增加算法的多樣性。啟發(fā)式信息上的信息素同樣也要進(jìn)行局部信息素的更新。當(dāng)螞蟻選擇了一 種啟發(fā)式信息后,例如啟發(fā)式信息A,在該啟發(fā)式信息上的信息素將根據(jù)下式 進(jìn)行改變<formula>formula see original document page 16</formula>(3) 全局信息素更新當(dāng)所有螞蟻都構(gòu)造完解后執(zhí)行全局信息素的更新。算法首先會對當(dāng)代循環(huán) 中的所有解進(jìn)行比較。調(diào)度解《的質(zhì)量可以根據(jù)以下三個式子計算得出。對于 可靠性優(yōu)化問題,《的評價值為<formula>formula see original document page 17</formula>maA:es7 朋 max—如果coW > 5wJgef禾口 > £>ea^//"e0.5 + 0.5-+-=-^,女口果cosf《5wd^ef禾卩> Deac "we0.1 + -如果^T.cayf > 5wdge/禾口 AT.waAras/ ""《Z)ea^///"e其中,《的評價值由兩部分組成第一是滿足QoS約束的評價值,第二是需要優(yōu)化的QoS參數(shù)的質(zhì)量的評價值。每一部分評價的取值區(qū)間均為(O,l],因此 的取值區(qū)間為(0,2]。如果尺滿足了所有的QoS約束,對應(yīng)QoS約束的 評價值就會設(shè)為1,而用戶需要優(yōu)化的QoS參數(shù)的評價值則根據(jù)《的可靠性進(jìn) 行設(shè)定。另一方面,如果《不能滿足所有的QoS約束,QoS約束的評價值就會 根據(jù)滿足約束的程度進(jìn)行設(shè)定,而用戶需要優(yōu)化的QoS參數(shù)的評價值則會被設(shè) 定為最小值。類似的,在工期優(yōu)化中,《的評價值為1 +如果K.cosf >如果〖.<%^ 2 5wc/gef對于費用優(yōu)化,X的評價值為<formula>formula see original document page 17</formula>如果AT.maAes戸"《Z)ecw 〃we只有帶有最高評價值的全局最優(yōu)解才會進(jìn)行全局信息素的更新。假設(shè)全局 最優(yōu)解為《(《,■■ ,《 ),全局更新策略給定如下<formula>formula see original document page 17</formula>整個算法的流程圖如圖3所示。根據(jù)用戶定義的QoS約束和需求優(yōu)化大規(guī)模網(wǎng)格工作流的算法十分少見, 在已有的文獻(xiàn)中,只有Yu等提出的Deadline-MDP算法能用于類似問題的求解 中。因此,將發(fā)明的方法與Deadline-MDP算法進(jìn)行比較。要注意的是 Deadline-MDP算法只能用于解決帶期限約束的費用優(yōu)化問題。運用網(wǎng)格工作流 應(yīng)用的10個例子來對這兩種方法進(jìn)行測試。其中,前3個例子是現(xiàn)實中的工作 流問題,包括e-Economic應(yīng)用問題、神經(jīng)科學(xué)應(yīng)用問題和e-protein工作流問題。 其余的例子則根據(jù)PSPLIB庫生成。由于Deadline-MDP是一種確定性算法,因 此它只能提供問題的一個解。而提出的蟻群算法則是一種帶導(dǎo)向性的隨機算法。 為了進(jìn)行全面地比較,將發(fā)明的方法獨立運行100次得到100個結(jié)果。在所有 的10個問題中,蟻群算法得到的平均值均優(yōu)于Deadline-MDP得到的結(jié)果。此 外,在中或大規(guī)模問題中(帶有30個以上任務(wù)的),即使是蟻群算法得到的最 差結(jié)果也要優(yōu)于Deadline-MDP的結(jié)果。總的來說,蟻群算法可以降低工作流 10-20%的費用,這證明了發(fā)明的方法是有效的。
權(quán)利要求
1、一種運用蟻群算法優(yōu)化多QoS網(wǎng)格工作流的方法,其特征在于,該方法包括以下步驟(1)初始化參數(shù)。對于不同的QoS需求,信息素的初始值τ0根據(jù)以下公式給出其中,min_Reliability表示所有服務(wù)進(jìn)程的最低可靠性,而max_Reliability=100。min_Makespan是估計的工作流最小工期,而max_Makespan是估計的最大工期。這兩個估計值可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行時間的服務(wù)進(jìn)程中而計算得出。同樣的,min_Cost和max_Cost是工作流估計的最小費用和最大費用。它們可以通過將每個任務(wù)映射到帶有最小(或者最大)執(zhí)行費用的服務(wù)進(jìn)程中而計算得出。(2)初始化所有的螞蟻。在每一次循環(huán)開始時,每只螞蟻都會隨機選擇一個構(gòu)造方向(前向或者后向)。前向螞蟻會根據(jù)給定的優(yōu)先關(guān)系在工作流網(wǎng)絡(luò)中構(gòu)造解。相反的,后向螞蟻將從結(jié)束節(jié)點開始搜索,并將所有的箭線反向。此外,每只螞蟻都要建立一個符合優(yōu)先約束的任務(wù)序列。并基于此任務(wù)序列將任務(wù)依次映射到服務(wù)進(jìn)程中。任務(wù)序列是通過隨機選擇滿足優(yōu)先約束的任務(wù)而建立的。(3)每只螞蟻首先基于信息素運用輪盤賭的選擇方法選擇一種啟發(fā)式信息。當(dāng)螞蟻選擇了一種啟發(fā)式信息后,例如啟發(fā)式信息A,在該啟發(fā)式信息上的信息素將進(jìn)行局部的更新τA=(1-ρ)·τA+ρ·τ0其中,ρ∈(0,1)是一個參數(shù)。(4)選定了一種啟發(fā)式信息后,螞蟻就可以開始構(gòu)造調(diào)度問題的解。在構(gòu)造解的每一步中,螞蟻會基于信息素和啟發(fā)式信息選擇一個服務(wù)進(jìn)程,并將任務(wù)隊列中第一個未映射的任務(wù)映射到這個服務(wù)進(jìn)程中。選擇將任務(wù)Ti映射到Sij的方法為在這種選擇方法中,生成一個隨機數(shù)q∈
,并將其與一參數(shù)q0∈
比較。如果q≤q0,那么螞蟻就會將Ti映射到含有最大τijβηij值的服務(wù)進(jìn)程中。否則,將運用輪盤賭的選擇方法,也就是選擇Sij的可能性與τijβηij大小成正比。其中τij和ηij分別表示Ti映射到進(jìn)程sij的信息素和啟發(fā)式信息,β≥1是決定信息素和啟發(fā)式信息相對影響的參數(shù)。當(dāng)螞蟻將一個任務(wù)Ti映射到一個服務(wù)進(jìn)程sij后,馬上執(zhí)行局部信息素的更新。局部信息素更新的方法由以下公式給出 τij=(1-ρ)·τij+ρ·τ0在每一次循環(huán)中,每只螞蟻循環(huán)使用N次這種選擇方式,將N個任務(wù)映射到N個服務(wù)進(jìn)程中從而形成一個完整的調(diào)度解。(5)當(dāng)所有螞蟻都完成解的構(gòu)造后,對每個調(diào)度解進(jìn)行評價。(6)執(zhí)行全局信息素的更新。只有帶有最高評價值的全局最優(yōu)解才會進(jìn)行全局信息素的更新。假設(shè)全局最優(yōu)解為K(K1,…,Kn),全局更新策略給定如下
全文摘要
本發(fā)明公開了一種運用蟻群算法優(yōu)化多QoS網(wǎng)格工作流的方法。其中考慮了三種QoS參數(shù),該方法除了可以滿足用戶給定的QoS約束外,還可以對用戶指定的一個QoS參數(shù)進(jìn)行優(yōu)化。方法的步驟為首先,初始化螞蟻,每只螞蟻都會隨機選擇一個構(gòu)造方向,并建立一個符合優(yōu)先約束的任務(wù)序列。然后,每只螞蟻基于信息素運用輪盤賭的選擇方法選擇一種啟發(fā)式信息,并進(jìn)行局部信息素的更新。選擇完啟發(fā)式信息后,螞蟻基于信息素和啟發(fā)式信息將所有任務(wù)隊列中的任務(wù)依次映射到服務(wù)進(jìn)程中。當(dāng)所有螞蟻都完成解的構(gòu)造后,對每個調(diào)度解進(jìn)行評價,并執(zhí)行全局信息素的更新。
文檔編號H04L29/08GK101237469SQ20081002648
公開日2008年8月6日 申請日期2008年2月27日 優(yōu)先權(quán)日2008年2月27日
發(fā)明者軍 張, 陳偉能, 韜 黃 申請人:中山大學(xué)