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