基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法
【專利摘要】本發(fā)明涉及一種云計(jì)算環(huán)境下的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,其采用賦權(quán)有向超圖描述任務(wù)的資源需求及依賴關(guān)系,并生成相應(yīng)的賦權(quán)有向超圖文件;然后啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序,對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分;最后依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造任務(wù)子集,通過MapReduce任務(wù)調(diào)度模型對(duì)其進(jìn)行映射和調(diào)度。采用本發(fā)明的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,不僅僅有效地提高了任務(wù)調(diào)度的效率,還顯著地提高了任務(wù)劃分的性能,具有較好的實(shí)用性。
【專利說明】基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種云計(jì)算環(huán)境下的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002]云計(jì)算作為分布式計(jì)算、并行計(jì)算、網(wǎng)格計(jì)算等傳統(tǒng)技術(shù)和網(wǎng)絡(luò)編程模型、分布式數(shù)據(jù)存儲(chǔ)技術(shù)、虛擬化技術(shù)等新型技術(shù)融合發(fā)展的產(chǎn)物,是引領(lǐng)未來信息產(chǎn)業(yè)創(chuàng)新的關(guān)鍵戰(zhàn)略性技術(shù)和手段,將對(duì)我國(guó)發(fā)展高新技術(shù)產(chǎn)業(yè)具有重要的戰(zhàn)略意義。云計(jì)算通過將計(jì)算任務(wù)劃分在大規(guī)模的廉價(jià)服務(wù)器集群上,使得人們能夠利用分布在各地的閑散資源來處理較為復(fù)雜的應(yīng)用程序,以極低的成本投入獲得極高的計(jì)算品質(zhì)。
[0003]在滿足云計(jì)算環(huán)境要求的前提下,將大量分散的應(yīng)用程序任務(wù)劃分成多個(gè)具有一定約束關(guān)系的任務(wù)子集,調(diào)度到不同的虛擬機(jī)上,獲得比其他一些針對(duì)網(wǎng)格計(jì)算或并行計(jì)算的任務(wù)調(diào)度算法更短的時(shí)間跨度和更好的運(yùn)行質(zhì)量,是實(shí)現(xiàn)云計(jì)算高性能的關(guān)鍵核心技術(shù)。
[0004]現(xiàn)有技術(shù)的劃分系統(tǒng)中有若干種任務(wù)的劃分法,這些劃分法從依賴關(guān)系數(shù)目最小、劃分后任務(wù)子集的任務(wù)數(shù)目均勻分布等不同的方面來實(shí)現(xiàn),主要有基于遷移的劃分法、水平嵌套劃分法、多水平劃分法等方法。
[0005]基于遷移的劃分法。該方法首先產(chǎn)生任務(wù)的隨機(jī)初始劃分,同一個(gè)任務(wù)不能同時(shí)屬于兩個(gè)任務(wù)子集。在遷移優(yōu)化階段,從兩個(gè)任務(wù)子集中各選取一個(gè)任務(wù)進(jìn)行成對(duì)交換,這兩個(gè)任務(wù)分別屬于兩個(gè)不同的任務(wù)子集且收益最大,從而每次都利用交換過程最大限度地改進(jìn)任務(wù)劃分質(zhì)量。記錄割切達(dá)到最小值時(shí)刻的任務(wù)劃分結(jié)果,且一旦交換了所選擇的兩個(gè)任務(wù),在整個(gè)遷移過程余下的優(yōu)化改進(jìn)中,將這兩個(gè)任務(wù)鎖定使得它們不再被選中。重復(fù)上述過程直到所有可能的任務(wù)都經(jīng)過遷移之后,回滾到累計(jì)收益最大值即割切最小值的時(shí)亥|J。該劃分法得到的任務(wù)劃分結(jié)果不穩(wěn)定,離散性很大,因此限制了該劃分法所能解決問題的規(guī)模。
[0006]水平嵌套劃分法。該方法首先選擇一個(gè)任務(wù),將這個(gè)任務(wù)標(biāo)上號(hào)碼0,然后將所有和這個(gè)任務(wù)相連的任務(wù)標(biāo)上號(hào)碼1,之后對(duì)于那些還未標(biāo)上號(hào)碼,但是和已經(jīng)標(biāo)上號(hào)碼的任務(wù)相連的任務(wù),將其標(biāo)號(hào)為相連任務(wù)的號(hào)碼上加I。直到一半的任務(wù)標(biāo)上號(hào)碼,標(biāo)號(hào)過程才結(jié)束。那些已經(jīng)標(biāo)上號(hào)碼的任務(wù)集合設(shè)為一個(gè)任務(wù)子集,其他任務(wù)為另一個(gè)任務(wù)子集。該劃分法只有在選取的初始任務(wù)接近外圍時(shí),得到的任務(wù)劃分結(jié)果相對(duì)較好,總的來說該任務(wù)劃分結(jié)果也不穩(wěn)定。
[0007]多水平劃分法。Karypis針對(duì)結(jié)點(diǎn)規(guī)模達(dá)到幾百萬的劃分問題,提出了多水平劃分的概念,在相對(duì)較短的時(shí)間內(nèi)可以得到高質(zhì)量的劃分。該方法包含粗化、初始劃分和遷移優(yōu)化三個(gè)階段。首先,它采用隨機(jī)匹配策略將某些任務(wù)結(jié)合在一起,得到下一水平層的粗化任務(wù)圖,重復(fù)此過程直到粗化任務(wù)圖足夠小為止,即得到一個(gè)最小任務(wù)圖。然后,采用劃分法對(duì)最小任務(wù)圖進(jìn)行對(duì)分,得到一個(gè)初始劃分。之后,將最小任務(wù)圖投影回初始任務(wù)圖,在每一水平層的細(xì)化任務(wù)劃分中,按照貪心原則選擇收益值最大的任務(wù)進(jìn)行遷移優(yōu)化,得到最后的任務(wù)劃分結(jié)果。
[0008]多水平劃分法在電路劃分中的應(yīng)用。自多水平劃分的概念提出以來,得到了廣泛地重視,并應(yīng)用在電路劃分等許多研究領(lǐng)域。
[0009]2008年中國(guó)專利局公告的由冷明、郁松年和孫凌宇申報(bào),中國(guó)專利號(hào)為200710043765.3號(hào)《基于多水平劃分法的大規(guī)模集成電路劃分方法》的發(fā)明專利,針對(duì)現(xiàn)有技術(shù)方案中因采用隨機(jī)策略進(jìn)行匹配和貪心原則進(jìn)行遷移優(yōu)化,導(dǎo)致無法逃離局部最優(yōu)的劃分,提供了一種改進(jìn)的基于多水平劃分法的大規(guī)模集成電路劃分方法,有效地提高了大規(guī)模集成電路劃分的效率和性能。該發(fā)明專利在多水平劃分法的粗化階段,通過對(duì)結(jié)點(diǎn)屬性進(jìn)行賦權(quán)無向圖中所有結(jié)點(diǎn)的核值求解排序,按照基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn),依據(jù)一定規(guī)則對(duì)其進(jìn)行匹配,從而將連接性好的結(jié)點(diǎn)合并在一起;在多水平劃分法的優(yōu)化階段,采用免疫克隆優(yōu)化程序改進(jìn)貪心原則的局部搜索方法,對(duì)在每一水平層投影的劃分進(jìn)行優(yōu)化,借助克隆操作、克隆變異操作、接種免疫疫苗操作、克隆選擇操作,使得改進(jìn)后的方法在利用啟發(fā)信息搜索局部最優(yōu)解的同時(shí),更自由地對(duì)具有潛力的解空間進(jìn)行搜索,增加全局搜索能力。
[0010]2012年中國(guó)專利局公告的由孫凌宇、冷明和冷子陽申報(bào),中國(guó)專利號(hào)為201210155738.6號(hào)《基于多水平劃分法和賦權(quán)超圖的大規(guī)模集成電路劃分方法》的發(fā)明專利,針對(duì)采用賦權(quán)無向圖作為大規(guī)模集成電路劃分問題的數(shù)學(xué)模型,存在著賦權(quán)無向圖最優(yōu)劃分和大規(guī)模集成電路最優(yōu)劃分的不一致性,提供了一種基于多水平劃分法和賦權(quán)無向超圖的大規(guī)模集成電路劃分方法,進(jìn)一步提高了大規(guī)模集成電路劃分的效率和性能。該發(fā)明采用賦權(quán)無向超圖對(duì)電路劃分問題進(jìn)行數(shù)學(xué)建模,其中電路邏輯單元表示為賦權(quán)無向超圖中的結(jié)點(diǎn),電路單元間的連線表示為賦權(quán)無向超圖中的超邊。相比賦權(quán)無向圖而言,賦權(quán)無向超圖為電路提供了更為精確的模型:每條超邊可以連接兩個(gè)以上的結(jié)點(diǎn),對(duì)應(yīng)于電路單元間的信號(hào)可以連接兩個(gè)以上的電路邏輯單元。該發(fā)明將大規(guī)模集成電路劃分問題轉(zhuǎn)換為賦權(quán)無向超圖劃分問題,其中大規(guī)模集成電路劃分問題要求每個(gè)電路子集所包含的電路邏輯單元數(shù)目相等,對(duì)應(yīng)于賦權(quán)無向超圖劃分問題的平衡約束條件,劃分結(jié)果使得這些電路子集之間的內(nèi)連線數(shù)據(jù)達(dá)到最小,對(duì)應(yīng)于賦權(quán)無向超圖劃分問題的最小化總割切。
[0011]2012年中國(guó)專利局公告的由孫凌宇、冷明和冷子陽申報(bào),中國(guó)專利號(hào)為201210150329.7號(hào)《基于結(jié)點(diǎn)屬性函數(shù)的大規(guī)模集成電路的核值計(jì)算方法》的發(fā)明專利,在采用多水平劃分法求解賦權(quán)無向超圖劃分問題的粗化階段中,提供了所需的基于結(jié)點(diǎn)屬性函數(shù)的大規(guī)模集成電路的核值計(jì)算方法。該發(fā)明專利有利于在賦權(quán)無向超圖的結(jié)點(diǎn)匹配過程中,發(fā)揮結(jié)點(diǎn)核值導(dǎo)向性作用,使得粗化后超圖中結(jié)點(diǎn)權(quán)值趨于大小一致,并最大程度地減少超邊的數(shù)目以及超邊權(quán)值之和,為大規(guī)模集成電路多水平劃分的后續(xù)階段提供更優(yōu)的粗化超圖。
[0012]2012年中國(guó)專利局公告的由冷明、孫凌宇和冷子陽申報(bào),中國(guó)專利號(hào)為201210154573.0號(hào)《基于元胞自動(dòng)機(jī)和賦權(quán)超圖的大規(guī)模集成電路劃分方法》的發(fā)明專利,采用元胞自動(dòng)機(jī)對(duì)賦權(quán)無向超圖劃分問題進(jìn)行數(shù)學(xué)建模。其中,元胞對(duì)應(yīng)于賦權(quán)無向超圖中的結(jié)點(diǎn),鄰接元胞對(duì)應(yīng)于鄰接超邊所包含的結(jié)點(diǎn),元胞的狀態(tài)對(duì)應(yīng)于所在的劃分子集,進(jìn)而采用快速的元胞收益值和劃分割切值的計(jì)算方法,有效地降低了大規(guī)模集成電路劃分方法的空間復(fù)雜度和時(shí)間復(fù)雜度。
【發(fā)明內(nèi)容】
[0013]本發(fā)明涉及的云計(jì)算環(huán)境中任務(wù)調(diào)度包括元任務(wù)的調(diào)度和依賴任務(wù)的調(diào)度。元任務(wù)之間相互獨(dú)立,其調(diào)度不考慮任務(wù)間的數(shù)據(jù)關(guān)聯(lián)與優(yōu)先約束關(guān)系,因此它只是部分地解決了資源異構(gòu)性和可用性問題,缺乏普遍適用性。而依賴任務(wù)之間存在先后依賴關(guān)系,要求一個(gè)任務(wù)必須接收到它的所有前驅(qū)任務(wù)消息后才能開始執(zhí)行。
[0014]本發(fā)明采用賦權(quán)有向超圖來構(gòu)造任務(wù)劃分問題的數(shù)學(xué)模型,任務(wù)表示為賦權(quán)有向超圖的結(jié)點(diǎn),任務(wù)結(jié)點(diǎn)間的先后依賴關(guān)系表示為賦權(quán)有向超圖中的有向超邊。賦權(quán)有向超圖的多對(duì)多關(guān)系提供了精確描述用戶任務(wù)的手段,其結(jié)點(diǎn)對(duì)應(yīng)于分解后的進(jìn)程級(jí)用戶任務(wù),有向超邊對(duì)應(yīng)于任務(wù)結(jié)點(diǎn)間的先后依賴關(guān)系,任意超邊的尾端結(jié)點(diǎn)所對(duì)應(yīng)任務(wù)的全部前驅(qū)任務(wù)都包含在該超邊的源端子集中。相比賦權(quán)有向圖和賦權(quán)無向超圖,賦權(quán)有向超圖為依賴任務(wù)的調(diào)度提供了更為精確的模型,能全面地表示云計(jì)算環(huán)境的異構(gòu)性、分布性、廣域性等特點(diǎn),從而提聞任務(wù)調(diào)度的準(zhǔn)確性和執(zhí)行效率。
[0015]相比賦權(quán)有向圖而言,賦權(quán)有向超圖為任務(wù)結(jié)點(diǎn)的依賴關(guān)系提供了更為精確的模型:每條邊僅連接兩個(gè)結(jié)點(diǎn),對(duì)應(yīng)于任務(wù)結(jié)點(diǎn)之間的依賴關(guān)系只能連接兩個(gè)任務(wù),而每條超邊可以連接兩個(gè)以上的結(jié)點(diǎn),對(duì)應(yīng)于任務(wù)結(jié)點(diǎn)之間的先后依賴關(guān)系可以連接兩個(gè)以上的任務(wù),即任意超邊的尾端結(jié)點(diǎn)所對(duì)應(yīng)任務(wù)的全部(兩個(gè)以上)前驅(qū)任務(wù)都包含在該超邊的源端子集中。
[0016]相比賦權(quán)無向超圖而言,賦權(quán)有向超圖為任務(wù)結(jié)點(diǎn)的先后依賴關(guān)系提供了更為精確的模型:無向超邊連接兩個(gè)以上的結(jié)點(diǎn),但無法表示任務(wù)結(jié)點(diǎn)間的先后依賴關(guān)系,而每條有向超邊可以連接兩個(gè)以上的結(jié)點(diǎn),超邊尾端結(jié)點(diǎn)的所有直接前驅(qū)結(jié)點(diǎn)都包含在該超邊的源端子集中,對(duì)應(yīng)于任務(wù)結(jié)點(diǎn)間的先后依賴關(guān)系。
[0017]本發(fā)明的目的在于針對(duì)已有技術(shù)存在的不足,提供一種基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,有效地縮短了任務(wù)完成的時(shí)間跨度,實(shí)現(xiàn)了云計(jì)算資源的合理利用,為云計(jì)算提供高效的任務(wù)調(diào)度機(jī)制。為達(dá)到上述目的,本發(fā)明的構(gòu)思如下。
[0018]一、在云計(jì)算環(huán)境中將大量分散的任務(wù)按照特定的約束條件劃分為多個(gè)規(guī)模較小的任務(wù)子集,使劃分后的各個(gè)任務(wù)子集計(jì)算規(guī)模相當(dāng),但任務(wù)子集之間的依賴關(guān)系數(shù)目達(dá)到最少,從而最大程度地實(shí)現(xiàn)云計(jì)算平臺(tái)的負(fù)載均衡,并縮短整個(gè)任務(wù)完成的時(shí)間跨度。任務(wù)子集的優(yōu)化劃分作為云計(jì)算任務(wù)調(diào)度機(jī)制的關(guān)鍵環(huán)節(jié),其結(jié)果對(duì)整個(gè)云計(jì)算環(huán)境的運(yùn)行效率有著重要的影響,可有效地減少資源空閑時(shí)間,提高資源的利用效益。
[0019]二、云計(jì)算任務(wù)調(diào)度的任務(wù)子集的優(yōu)化劃分問題轉(zhuǎn)換為賦權(quán)有向超圖劃分問題,即任務(wù)子集的優(yōu)化劃分問題要求每個(gè)任務(wù)子集所包含的任務(wù)數(shù)目相等,對(duì)應(yīng)于賦權(quán)有向超圖劃分問題的平衡約束條件,劃分結(jié)果使得任務(wù)子集之間的依賴關(guān)系數(shù)目達(dá)到最小,對(duì)應(yīng)于賦權(quán)有向超圖劃分問題的最小化總割切。其中,賦權(quán)有向超圖的劃分要求每個(gè)任務(wù)子集所包含的任務(wù)數(shù)目相等,對(duì)應(yīng)于多資源約束條件下的平衡約束條件,并且劃分結(jié)果使得這些任務(wù)子集之間的依賴關(guān)系數(shù)目達(dá)到最小,對(duì)應(yīng)于多目標(biāo)優(yōu)化劃分問題的最小化總割切。
[0020]三、采用賦權(quán)有向超圖描述任務(wù)的資源需求及依賴關(guān)系,并生成相應(yīng)的賦權(quán)有向超圖文件;然后啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序,對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分;最后依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造任務(wù)子集,通過MapReduce任務(wù)調(diào)度模型對(duì)其進(jìn)行映射和調(diào)度。
[0021]四、在多水平劃分法的粗化階段,通過對(duì)賦權(quán)有向超圖中所有結(jié)點(diǎn)進(jìn)行基于結(jié)點(diǎn)屬性函數(shù)的核值求解排序,進(jìn)而基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn),依據(jù)一定規(guī)則對(duì)其進(jìn)行匹配,從而將連接性好的結(jié)點(diǎn)合并在一起,為多水平劃分的后續(xù)階段提供更優(yōu)的粗化賦權(quán)有向超圖。
[0022]五、在多水平劃分法的優(yōu)化階段,采用多目標(biāo)的離散群智能搜索程序改進(jìn)貪心原則的局部搜索方法,對(duì)在每一水平層粗化賦權(quán)有向超圖投影的劃分進(jìn)行優(yōu)化,其中群智能粒子所處|v|維空間位置(V代表賦權(quán)有向超圖中結(jié)點(diǎn)集合)對(duì)應(yīng)于一個(gè)劃分方案,即群智能粒子在每個(gè)維度空間的位置,代表該維度空間對(duì)應(yīng)結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集;伴隨著優(yōu)化階段的細(xì)化過程,每個(gè)群智能粒子解決方案代表的劃分投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,且群智能粒子的自由度隨著空間維度|v|的增加而增大;群智能粒子之間進(jìn)行直接通信或者間接通信,利用它們聚集協(xié)同表現(xiàn)出的智能行為,有效地搜索多約束條件下、多目標(biāo)組合的Pareto有效解,使非劣遷移優(yōu)化解向著Pareto-最優(yōu)面逼近,增強(qiáng)遷移優(yōu)化算法的多目標(biāo)搜索能力。
[0023]根據(jù)上述的發(fā)明構(gòu)思,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,其特征在于,具體步驟如下。
[0024]步驟1,類型類度分析,輸入云計(jì)算環(huán)境下用戶提交的任務(wù),并對(duì)其進(jìn)行類型和類度的分析,確定任務(wù)的并行化程度及特點(diǎn)。
[0025]步驟2,進(jìn)程粒度分解,根據(jù)用戶任務(wù)的并行化程度及特點(diǎn),以及云計(jì)算的資源共享分配方式等獨(dú)特性質(zhì),對(duì)用戶任務(wù)按照進(jìn)程粒度級(jí)別進(jìn)行分解。
[0026]步驟3,資源特性分析,根據(jù)云計(jì)算的資源共享分配方式等獨(dú)特性質(zhì),對(duì)分解后的任務(wù)進(jìn)行資源特性分析。
[0027]步驟4,賦權(quán)有向超圖文件生成,依據(jù)對(duì)任務(wù)資源特性的分析結(jié)果,建立描述其資源需求及依賴關(guān)系的賦權(quán)有向超圖模型,并按照改進(jìn)壓縮的文件存儲(chǔ)格式保存為賦權(quán)有向超圖文件。
[0028]步驟5,賦權(quán)有向超圖劃分,啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序,讀取賦權(quán)有向超圖文件,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式對(duì)賦權(quán)有向超圖進(jìn)行存儲(chǔ),對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分,將最終得到的劃分結(jié)果存儲(chǔ)在賦權(quán)有向超圖劃分文件中。
[0029]步驟6,任務(wù)子集構(gòu)造,在檢測(cè)到基于多水平劃分法的賦權(quán)有向超圖劃分程序完成劃分之后,從賦權(quán)有向超圖劃分文件中讀取相應(yīng)的劃分結(jié)果,依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造進(jìn)程級(jí)任務(wù)子集。
[0030]步驟7,任務(wù)映射調(diào)度,通過MapReduce任務(wù)調(diào)度模型,對(duì)基于賦權(quán)有向超圖優(yōu)化劃分構(gòu)造的任務(wù)子集進(jìn)行映射和調(diào)度,實(shí)現(xiàn)在云計(jì)算環(huán)境中的任務(wù)提交與執(zhí)行,有效地均衡云計(jì)算平臺(tái)的負(fù)載和縮短整個(gè)任務(wù)完成的時(shí)間跨度。
[0031]上述的步驟4中,所述的賦權(quán)有向超圖的改進(jìn)壓縮的文件存儲(chǔ)格式的如下。
[0032]步驟4.1,文件格式的第I行第I個(gè)參數(shù)代表著有向賦權(quán)超邊的數(shù)目m,第2個(gè)參數(shù)代表著賦權(quán)結(jié)點(diǎn)的數(shù)目η。
[0033]步驟4.2,文件格式的第2行開始到第m+1行的每行代表著一條有向賦權(quán)超邊的相關(guān)信息,第I個(gè)數(shù)值為有向賦權(quán)超邊的權(quán)值信息,其余數(shù)值為有向賦權(quán)超邊的結(jié)點(diǎn)信息,其中每行的最后一個(gè)數(shù)值代表有向賦權(quán)超邊的尾端結(jié)點(diǎn)信息,且有向賦權(quán)超邊的源端結(jié)點(diǎn)信息處于有向賦權(quán)超邊的權(quán)值信息和尾端結(jié)點(diǎn)信息之間。
[0034]步驟4.3,文件格式的第m+2行開始到第m+n+1行的每行代表著一個(gè)賦權(quán)結(jié)點(diǎn)的權(quán)
值信息。
[0035]上述的步驟5中,所述的基于多水平劃分法的賦權(quán)有向超圖劃分程序的步驟如下。
[0036]步驟5.1,讀取賦權(quán)有向超圖文件,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式對(duì)賦權(quán)有向超圖進(jìn)行存儲(chǔ)。
[0037]步驟5.2,進(jìn)入到多水平劃分法的粗化階段,采用賦權(quán)有向超圖的結(jié)點(diǎn)匹配程序?qū)?dāng)前水平層粗化賦權(quán)有向超圖的某些結(jié)點(diǎn)結(jié)合在一起,得到下一水平層的粗化賦權(quán)有向超圖,重復(fù)此過程直到粗化賦權(quán)有向超圖足夠小為止,即得到一個(gè)最小賦權(quán)有向超圖。
[0038]步驟5.3,進(jìn)入到多水平劃分法的初始劃分階段,運(yùn)行基于FM方法的賦權(quán)有向超圖劃分程序,得到最小賦權(quán)有向超圖的初始劃分。
[0039]步驟5.4,多水平劃分法優(yōu)化階段的離散群智能搜索程序初始化,初始化全體群智能粒子的全局歷史最優(yōu)位置向量和每個(gè)群智能粒子的自身位置向量、自身速度向量、自身歷史最優(yōu)位置向量。
[0040]步驟5.5,進(jìn)入到多水平劃分法的優(yōu)化階段,從最小賦權(quán)有向超圖投影回初始賦權(quán)有向超圖,在每一水平層的細(xì)化賦權(quán)有向超圖中,采用離散群智能搜索程序?qū)?xì)化賦權(quán)有向超圖的投影劃分進(jìn)行優(yōu)化。
[0041]步驟5.6,進(jìn)入到平衡階段,運(yùn)行基于FM-EE方法的賦權(quán)有向超圖劃分程序。由于在基于多水平劃分法的賦權(quán)有向超圖劃分過程中,可能違背賦權(quán)有向超圖劃分問題的平衡約束條件,因此在基于多水平劃分法的賦權(quán)有向超圖劃分所求解的基礎(chǔ)上,運(yùn)行基于FM-EE方法的賦權(quán)有向超圖劃分方法,使劃分解滿足平衡約束條件,從而得到賦權(quán)有向超圖劃分問題的劃分解。
[0042]步驟5.7,將最終得到的賦權(quán)有向超圖劃分結(jié)果存儲(chǔ)在賦權(quán)有向超圖劃分文件中。
[0043]上述的步驟5.1中,所述的賦權(quán)有向超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式如下。
[0044]步驟5.1.1,使用vwgts數(shù)組存儲(chǔ)賦權(quán)有向超圖中結(jié)點(diǎn)的權(quán)值信息,且vwgts數(shù)組的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù)。
[0045]步驟5.1.2,使用xadj數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊列表的起始位置信息,即第i個(gè)結(jié)點(diǎn)的終止位置為第i+Ι個(gè)結(jié)點(diǎn)的起始位置減1,且xadj數(shù)組的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù)加1,xadj數(shù)組最后一個(gè)元素用于存放最后一個(gè)結(jié)點(diǎn)的終止位置。
[0046]步驟5.1.3,使用adjncy數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊的列表信息,第i個(gè)結(jié)點(diǎn)的鄰接有向超邊列表存儲(chǔ)在adjncy數(shù)組中,從adjncy [xadj [i]]到adjncy[xadj[i+1]-1]。
[0047]步驟5.1.4,使用eptr數(shù)組存儲(chǔ)每條有向超邊所包含的結(jié)點(diǎn)列表的起始位置信息,即第j條有向超邊的終止位置為第j+Ι條有向超邊的起始位置減1,且eptr數(shù)組的大小為賦權(quán)有向超圖中的有向超邊條數(shù)加1,eptr數(shù)組最后一個(gè)元素用于存放最后一條有向超邊的終止位置。[0048]步驟5.1.5,使用eind數(shù)組存儲(chǔ)每條有向超邊所包含結(jié)點(diǎn)的列表信息,其中每條有向超邊的尾端結(jié)點(diǎn)只有I個(gè),且每條有向超邊尾端結(jié)點(diǎn)的所有直接前驅(qū)結(jié)點(diǎn)都包含在該有向超邊的源端子集中。第j條有向超邊的結(jié)點(diǎn)列表存儲(chǔ)在eind數(shù)組中,從eind [eptr [j]]到eind [eptr [j+1]-1],其中第j條有向超邊的源端結(jié)點(diǎn)為eind [eptr [j]]到eind [eptr [j+1]-2],第j條有向超邊的尾端結(jié)點(diǎn)為eind [eptr [j+1]-1]。
[0049]步驟5.1.6,使用hewgts數(shù)組存儲(chǔ)有向超邊的權(quán)值信息,且hewgts數(shù)組的大小為賦權(quán)有向超圖中的有向超邊數(shù)目。
[0050]上述的步驟5.2中,所述的當(dāng)前水平層粗化賦權(quán)有向超圖的結(jié)點(diǎn)匹配程序的步驟如下。
[0051]步驟5.2.1,標(biāo)注當(dāng)前水平層粗化賦權(quán)有向超圖中所有結(jié)點(diǎn)處于未匹配狀態(tài)。
[0052]步驟5.2.2,運(yùn)行賦權(quán)有向超圖的結(jié)點(diǎn)核值計(jì)算程序,基于結(jié)點(diǎn)屬性函數(shù)值進(jìn)行當(dāng)前水平層粗化賦權(quán)有向超圖中所有結(jié)點(diǎn)的核值求解,并按照結(jié)點(diǎn)的核值進(jìn)行非嚴(yán)格降序排序。
[0053]步驟5.2.3,按照結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn)V ;如果結(jié)點(diǎn)V還有鄰接結(jié)點(diǎn)未匹配,那么選取處于沒有匹配狀態(tài)的且權(quán)值最大的鄰接超邊的鄰接結(jié)點(diǎn)U和結(jié)點(diǎn)V匹配,且標(biāo)注這兩個(gè)結(jié)點(diǎn)為匹配狀態(tài);如果結(jié)點(diǎn)V所有鄰接匹配結(jié)點(diǎn)處于匹配狀態(tài),那么結(jié)點(diǎn)V仍處于未匹配狀態(tài),在粗化過程中直接拷貝到下一水平層的粗化賦權(quán)有向超圖中。
[0054]步驟5.2.4,步驟重復(fù)上一步,直至所有結(jié)點(diǎn)訪問結(jié)束。
[0055]上述的步驟5.2.2中,所述的賦權(quán)有向超圖的結(jié)點(diǎn)核值計(jì)算程序的步驟如下。
[0056]步驟5.2.2.1,計(jì)算出所有結(jié)點(diǎn)的屬性函數(shù)值。
[0057]步驟5.2.2.2,對(duì)所有結(jié)點(diǎn)的屬性函數(shù)值進(jìn)行非嚴(yán)格降序排序。
[0058]步驟5.2.2.3,按照結(jié)點(diǎn)屬性函數(shù)值的非嚴(yán)格降序次序訪問每個(gè)結(jié)點(diǎn),計(jì)算每個(gè)結(jié)點(diǎn)的核值。
[0059]上述的步驟5.2.2.2中,所述的結(jié)點(diǎn)屬性函數(shù)值的非嚴(yán)格降序排序的步驟如下。
[0060]步驟5.2.2.2.1,根據(jù)結(jié)點(diǎn)的屬性函數(shù)值屬于在一定范圍內(nèi)的整數(shù),掃描所有結(jié)點(diǎn)的屬性函數(shù)值,統(tǒng)計(jì)每一種屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在計(jì)數(shù)輔助數(shù)組bin中。
[0061]步驟5.2.2.2.2,針對(duì)每一種屬性函數(shù)值,借助計(jì)數(shù)輔助數(shù)組bin,計(jì)算出在所有結(jié)點(diǎn)的屬性函數(shù)值中,小于該屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在位置輔助數(shù)組pos中。
[0062]步驟5.2.2.2.3,掃描所有結(jié)點(diǎn)的屬性函數(shù)值,針對(duì)每一個(gè)結(jié)點(diǎn)的屬性函數(shù)值,借助位置輔助數(shù)組pos,得到該結(jié)點(diǎn)的屬性函數(shù)值在非嚴(yán)格降序排序的次序,并將該次序存儲(chǔ)在次序輔助數(shù)組vert中。
[0063]上述的步驟5.2.2.3中,所述的結(jié)點(diǎn)V的核值計(jì)算的步驟如下。
[0064]步驟5.2.2.3.1,將結(jié)點(diǎn)V的屬性函數(shù)值作為核值輸出。
[0065]步驟5.2.2.3.2,標(biāo)記結(jié)點(diǎn)V從所在的超邊e中刪除。
[0066]步驟5.2.2.3.3,如果超邊e刪除結(jié)點(diǎn)V后,仍包含兩個(gè)及以上未被標(biāo)記刪除的結(jié)點(diǎn),則超邊e仍然存在,否則刪除超邊e。
[0067]步驟5.2.2.3.4,重新計(jì)算結(jié)點(diǎn)V的鄰接結(jié)點(diǎn)u的屬性函數(shù)值。
[0068]步驟5.2.2.3.5,如果鄰接結(jié)點(diǎn)u的屬性函數(shù)值大于結(jié)點(diǎn)V的屬性函數(shù)值,更新鄰接結(jié)點(diǎn)U的屬性函數(shù)值,并且借助計(jì)數(shù)輔助數(shù)組bin、位置輔助數(shù)組pos和次序輔助數(shù)組vert的信息,快速更新鄰接結(jié)點(diǎn)u在所有結(jié)點(diǎn)的屬性函數(shù)值非嚴(yán)格降序排序的次序;否則不更新鄰接結(jié)點(diǎn)u的屬性函數(shù)值及其排序的次序。
[0069]上述的步驟5.4中,所述的離散群智能搜索程序的初始化步驟如下。
[0070]步驟5.4.1,初始化全體群智能粒子的全局歷史最優(yōu)位置向量,設(shè)定全局歷史最優(yōu)位置向量為最小賦權(quán)有向超圖的初始劃分。
[0071]步驟5.4.2,初始化每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為最小賦權(quán)有向超圖的初始劃分,即群智能粒子在最小賦權(quán)有向超圖的每個(gè)維度空間的位置。群智能粒子在最小賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的最小賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集。
[0072]步驟5.4.3,初始化每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并在速度閾值范圍內(nèi),隨機(jī)給定每個(gè)群智能粒子在每個(gè)維度空間的速度向量。
[0073]步驟5.4.4,初始化每個(gè)群智能粒子的自身歷史最優(yōu)位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為自身歷史最優(yōu)位置向量。
[0074]上述的步驟5.5中,所述的離散群智能搜索程序的步驟如下。
[0075]步驟5.5.1,投影每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗化賦權(quán)有向超圖的自身位置向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的位置。群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的當(dāng)前水平層的細(xì)化賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集。
[0076]步驟5.5.2,投影每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗化賦權(quán)有向超圖的自身速度向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身速度向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的速度。
[0077]步驟5.5.3,計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m]。
[0078]步驟5.5.4,快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的二維輔助數(shù)組EDG[n][m],快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值。
[0079]步驟5.5.5,循環(huán)初始化,初始化循環(huán)計(jì)數(shù)器COUNT為O。
[0080]步驟5.5.6,更新每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子自身的歷史最優(yōu)位置向量、全體群智能粒子的全局歷史最優(yōu)位置向量,在速度閾值范圍內(nèi)更新自身速度向量。
[0081]步驟5.5.7,更新每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并計(jì)算每個(gè)群智能粒子自身位置向量和自身速度向量的向量和,更新自身位置向量,進(jìn)而依據(jù)群智能粒子的自身位置向量計(jì)算群智能粒子的二維輔助數(shù)組EDG[n][m]。
[0082]步驟5.5.8,快速計(jì)算每個(gè)群智能粒子的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],快速計(jì)算每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量的割切值。如果該群智能粒子的自身位置向量的割切值小于自身歷史最優(yōu)位置向量的割切值,則更新該群智能粒子的歷史最優(yōu)位置向量為當(dāng)前的自身位置向量。如果該群智能粒子的自身位置向量的割切值小于全體群智能粒子的全局歷史最優(yōu)位置向量的割切值,則更新全體群智能粒子的全局歷史最優(yōu)位置向量為該群智能粒子當(dāng)前的自身位置向量。
[0083]步驟5.5.9,重復(fù)步驟5.5.6、5.5.7、5.5.8,直至循環(huán)計(jì)數(shù)器COUNT到達(dá)給定的上限。
[0084]上述的步驟5.5.3和步驟5.5.7中,所述的計(jì)算群智能粒子的二維輔助數(shù)組EDG [n] [m]的步驟如下。
[0085]步驟5.5.3.1,二維輔助數(shù)組EDG [n] [m]清零。
[0086]步驟5.5.3.2,讀取eptr數(shù)組和eind數(shù)組存儲(chǔ)的每條超邊所包含的結(jié)點(diǎn)信息,基于群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,計(jì)算每條超邊在η個(gè)劃分子集Vb-Vn的結(jié)點(diǎn)個(gè)數(shù),即二維輔助數(shù)組EDG[n] [m]的兩行分別存放m條超邊在η個(gè)劃分子集的結(jié)點(diǎn)個(gè)數(shù)。
[0087]上述的步驟5.5.4和步驟5.5.8中,所述的快速計(jì)算群智能粒子的自身位置向量的割切值的步驟如下。
[0088]步驟5.5.4.1,劃分割切值清零。
[0089]步驟5.5.4.2,遍歷每條超邊是否結(jié)束,如果訪問未結(jié)束,即存在超邊e未被訪問,則轉(zhuǎn)步驟5.5.4.3 ;否則訪問結(jié)束,返回劃分割切值。
[0090]步驟5.5.4.3,如果滿足EDG[i] [e]≥I的條件I和EDG[j] [e]≥I的條件2時(shí),意味著超邊e在劃分子集Vi和Vj的結(jié)點(diǎn)個(gè)數(shù)都大于等于1,即可判定超邊e是兩棲邊,并將劃分割切值累加上當(dāng)前超邊的權(quán)值;否則判定超邊e不是兩棲邊,劃分割切值不變。
[0091]步驟5.5.4.4,轉(zhuǎn)步驟 5.5.4.2。
[0092]上述的步驟5.5.6中,所述的群智能粒子的自身速度向量的更新步驟如下。
[0093]步驟5.5.6.1,計(jì)算出群智能粒子的當(dāng)前自身速度向量與慣性權(quán)重參數(shù)的乘積。
[0094]步驟5.5.6.2,計(jì)算出群智能粒子的歷史最優(yōu)位置向量和群智能粒子的當(dāng)前自身位置向量的向量差,再和認(rèn)知參數(shù)相乘。
[0095]步驟5.5.6.3,計(jì)算出全體群智能粒子的全局歷史最優(yōu)位置向量和群智能粒子的當(dāng)前自身位置向量的向量差,再和社會(huì)參數(shù)相乘。
[0096]步驟5.5.6.4,計(jì)算出步驟5.5.6.1、步驟5.5.6.2、步驟5.5.6.3得到的三個(gè)乘積
的向量和,更新群智能粒子的自身速度向量。
[0097]本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見的突出實(shí)質(zhì)性特點(diǎn)和顯著優(yōu)點(diǎn)。
[0098]1、提高了任務(wù)調(diào)度的效率。
[0099]本發(fā)明基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,一方面通過任務(wù)到賦權(quán)有向超圖文件的轉(zhuǎn)換,啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序,對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分,避免了劃分方法直接在任務(wù)上進(jìn)行劃分;另一方面可以通過設(shè)置劃分方法中的慣性權(quán)重參數(shù)、認(rèn)知參數(shù)和社會(huì)參數(shù)來獲取較優(yōu)的劃分結(jié)果后,再進(jìn)行任務(wù)的映射和調(diào)度,從而有效地提高了任務(wù)調(diào)度的效率,縮短了任務(wù)完成的時(shí)間跨度,實(shí)現(xiàn)了云計(jì)算資源的合理利用,為云計(jì)算提供高效的任務(wù)調(diào)度機(jī)制。
[0100]2、提高了任務(wù)劃分的性能。
[0101]本發(fā)明基于多水平劃分法和賦權(quán)有向超圖的任務(wù)優(yōu)化劃分方法,借助二維輔助數(shù)組EDG[n] [m]存儲(chǔ)每條超邊在劃分子集的結(jié)點(diǎn)個(gè)數(shù),實(shí)現(xiàn)了劃分割切值的計(jì)算方法,有效地避免了遍歷超邊中的結(jié)點(diǎn)。相比賦權(quán)無向超圖劃分方法和賦權(quán)有向圖劃分方法,該方法有效地找到比現(xiàn)有技術(shù)更優(yōu)的任務(wù)劃分結(jié)果,降低了空間復(fù)雜度和時(shí)間復(fù)雜度,最終顯著地提高了任務(wù)優(yōu)化劃分的性能。
[0102]通過以下對(duì)本發(fā)明云計(jì)算環(huán)境下的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法的實(shí)例結(jié)合其附圖的描述,可以進(jìn)一步理解本發(fā)明的目的、具體結(jié)構(gòu)特征和優(yōu)點(diǎn)。
[0103]圖1是本發(fā)明云計(jì)算環(huán)境下的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法的流程圖。
[0104]圖2是本發(fā)明的賦權(quán)有向超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式。
[0105]圖3是本發(fā)明基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)劃分過程中優(yōu)化階段的離散群智能搜索程序的流程圖。
[0106]【具體實(shí)施方式】。
[0107]為了能夠更清楚地理解本發(fā)明云計(jì)算環(huán)境下的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法的技術(shù)內(nèi)容,特舉以下實(shí)例詳細(xì)說明。
[0108]本實(shí)施例的基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法的流程圖如圖1所示。在云計(jì)算環(huán)境下,輸入用戶提交的任務(wù)101,對(duì)用戶任務(wù)進(jìn)行類型和類度的分析102,確定任務(wù)的并行化程度和特點(diǎn);根據(jù)用戶任務(wù)的并行化程度和特點(diǎn),以及云計(jì)算的資源共享分配方式等獨(dú)特性質(zhì),對(duì)用戶任務(wù)按照進(jìn)程粒度級(jí)別進(jìn)行分解103 ;進(jìn)而對(duì)分解后的任務(wù)進(jìn)行資源特性分析104 ;依據(jù)對(duì)任務(wù)資源特性的分析結(jié)果,建立描述其資源需求及依賴關(guān)系的賦權(quán)有向超圖模型105 ;按照改進(jìn)壓縮的文件存儲(chǔ)格式保存為賦權(quán)有向超圖文件109 ;啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序115,讀取賦權(quán)有向超圖文件109,得到采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式的賦權(quán)有向超圖111 ;進(jìn)入到多水平劃分法的粗化階段,調(diào)用賦權(quán)有向超圖的結(jié)點(diǎn)匹配程序116,將某些賦權(quán)有向超圖的結(jié)點(diǎn)結(jié)合在一起,得到每一水平層的粗化賦權(quán)有向超圖112 ;進(jìn)入到多水平劃分法的初始劃分階段,調(diào)用最小賦權(quán)有向超圖的初始劃分程序117對(duì)最小賦權(quán)有向超圖進(jìn)行劃分,得到最小賦權(quán)有向超圖的初始劃分113 ;進(jìn)入到多水平劃分法的投影優(yōu)化階段,從最小賦權(quán)有向超圖投影回初始賦權(quán)有向超圖,在每一水平層的細(xì)化賦權(quán)有向超圖中,調(diào)用細(xì)化賦權(quán)有向超圖的遷移劃分優(yōu)化程序118對(duì)劃分進(jìn)行優(yōu)化,得到每一水平層細(xì)化賦權(quán)有向超圖的近似非劣最優(yōu)劃分114 ;進(jìn)入到平衡階段,運(yùn)行基于FM-EE方法的賦權(quán)有向超圖劃分程序115,使初始賦權(quán)有向超圖的劃分結(jié)果滿足平衡約束條件,并將最終得到的劃分結(jié)果存儲(chǔ)為賦權(quán)有向超圖劃分文件110 ;在檢測(cè)到基于多水平劃分法的賦權(quán)有向超圖劃分程序115完成劃分之后,從賦權(quán)有向超圖劃分文件110中讀取相應(yīng)的劃分結(jié)果,依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造進(jìn)程級(jí)任務(wù)子集106 ;通過MapReduce任務(wù)調(diào)度模型,對(duì)基于賦權(quán)有向超圖優(yōu)化劃分構(gòu)造的任務(wù)子集進(jìn)行映射和調(diào)度107 ;在云計(jì)算環(huán)境中,對(duì)基于賦權(quán)有向超圖優(yōu)化劃分構(gòu)造的任務(wù)子集中的任務(wù)提交與執(zhí)行108,有效地均衡云計(jì)算平臺(tái)的負(fù)載并縮短整個(gè)任務(wù)完成的時(shí)間跨度。
[0109]本實(shí)施例的賦權(quán)有向超圖改進(jìn)壓縮的文件存儲(chǔ)格式參見在先技術(shù)[I] “G.Karypis and V.Kumar.HMetis 1.5.3: A Hypergraph Partitioning Package [R].Technical report, Department of Computer Science, University of Minnesota,1998.”和在先技術(shù)[2] “孫凌宇,冷明,郭愷強(qiáng),朱平.一種VLSI設(shè)計(jì)到超圖的轉(zhuǎn)換系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2012,Vol.29, Issue.2, Pages 7-16.”。與在先技術(shù)[1,2]相同點(diǎn):文件格式的第I行第I個(gè)參數(shù)代表著有向賦權(quán)超邊的數(shù)目m,第2個(gè)參數(shù)代表著賦權(quán)結(jié)點(diǎn)的數(shù)目η ;文件格式的第2行開始到第m+1行的每行代表著一條有向賦權(quán)超邊的相關(guān)信息;文件格式的第m+2行開始到第m+n+1行的每行代表著一個(gè)賦權(quán)結(jié)點(diǎn)的權(quán)值信息。與在先技術(shù)[1,2]區(qū)別點(diǎn):文件格式的第2行開始到第m+1行中,除第I個(gè)數(shù)值之外的其余數(shù)值為有向賦權(quán)超邊的結(jié)點(diǎn)信息,其中每行的最后一個(gè)數(shù)值代表有向賦權(quán)超邊的尾端結(jié)點(diǎn)信息,且有向賦權(quán)超邊的源端結(jié)點(diǎn)信息處于有向賦權(quán)超邊的權(quán)值信息和尾端結(jié)點(diǎn)信息之間。
[0110]本實(shí)施例的賦權(quán)有向超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式如圖2所示。存儲(chǔ)結(jié)構(gòu)使用adjncy數(shù)組204存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊的列表信息。使用xadj數(shù)組203存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊列表的起始位置信息,即第i個(gè)結(jié)點(diǎn)的終止位置為第i+Ι個(gè)結(jié)點(diǎn)的起始位置減1,且xadj數(shù)組203的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù)加1,xadj數(shù)組203最后一個(gè)元素用于存放最后一個(gè)結(jié)點(diǎn)的終止位置。使用eind數(shù)組207存儲(chǔ)每條有向超邊所包含結(jié)點(diǎn)的列表信息。使用eptr數(shù)組206存儲(chǔ)每條有向超邊所包含的結(jié)點(diǎn)列表的起始位置信息,即第j條有向超邊的終止位置為第j+Ι條有向超邊的起始位置減1,且eptr數(shù)組206的大小為賦權(quán)有向超圖中的有向超邊條數(shù)加1,eptr數(shù)組206最后一個(gè)元素用于存放最后一條有向超邊的終止位置。使用VWgts數(shù)組202存儲(chǔ)結(jié)點(diǎn)的權(quán)值信息,且VWgts數(shù)組202的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù)。使用hewgts數(shù)組205存儲(chǔ)有向超邊的權(quán)值信息,且hewgts數(shù)組205的大小為賦權(quán)有向超圖中的有向超邊條數(shù)。假設(shè)數(shù)組地址從零開始,結(jié)點(diǎn)編號(hào)從零開始,貝1J第i個(gè)結(jié)點(diǎn)的鄰接有向超邊列表存儲(chǔ)在adjncy數(shù)組204中,從adjncy [xadj [i]]到adjncy [xadj [i+1]-1];第j條有向超邊的鄰接結(jié)點(diǎn)列表存儲(chǔ)在eind數(shù)組207中,從eind [eptr [j]]到eind [eptr [j+1]-1],其中第j條有向超邊的源端結(jié)點(diǎn)為eind [eptr [j]]到 eind [eptr [j+Ι]-2],第 j 條有向超邊的尾端結(jié)點(diǎn)為 eind [eptr [j+1]-1]。圖例201包含總共7個(gè)結(jié)點(diǎn)和8條有向超邊,其中第6個(gè)結(jié)點(diǎn)的權(quán)值為7,有2條鄰接有向超邊f(xié)、h,其中有向超邊f(xié)對(duì)應(yīng)的權(quán)值為4,且相應(yīng)的鄰接結(jié)點(diǎn)分別為結(jié)點(diǎn)7、3、6,源端結(jié)點(diǎn)為結(jié)點(diǎn)7和3,尾端結(jié)點(diǎn)為結(jié)點(diǎn)6 ;有向超邊h對(duì)應(yīng)的權(quán)值為1,且相應(yīng)的鄰接結(jié)點(diǎn)分別為結(jié)點(diǎn)4、6,源端結(jié)點(diǎn)為結(jié)點(diǎn)4,尾端結(jié)點(diǎn)為結(jié)點(diǎn)6。
[0111]本實(shí)施例的賦權(quán)有向超圖的結(jié)點(diǎn)核值計(jì)算程序參見在先技術(shù)[3] “孫凌宇,冷明,冷子陽.云計(jì)算環(huán)境中的基于結(jié)點(diǎn)屬性函數(shù)的任務(wù)核值計(jì)算方法[P].2014.發(fā)明專利.2014年4月6日提交申請(qǐng)”。
[0112]本實(shí)施例的基于FM方法的賦權(quán)有向超圖劃分程序參見在先技術(shù)[4] “FiducciaC,Mattheyses R.A linear-time heuristics for improving network partitions[C].Proceedings of the 19th Design Automation Conference.Los Alamitos:1EEEComputer Society Press, 1982, Pages 175-181.”。[0113]本實(shí)施例的基于FM-EE方法的賦權(quán)有向超圖劃分程序參見在先技術(shù)[5]“Karypis G, Aggarwal R, Kumar V, Shekhar S.Multilevel hypergraph partitioning:Applications in VLSI domain[J].1EEE transactions on very large scaleintegration systems, 1999, Vol.7, Issue.1, Pages 69-79.”。
[0114]本實(shí)施例的基于多水平劃分法的賦權(quán)有向超圖劃分過程中優(yōu)化階段的離散群智能搜索程序的流程圖如圖3所示,步驟如下。
[0115]AOl:初始化全體群智能粒子的全局歷史最優(yōu)位置向量,設(shè)定全局歷史最優(yōu)位置向量為最小賦權(quán)有向超圖的初始劃分。
[0116]A02:初始化每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為最小賦權(quán)有向超圖的初始劃分,即群智能粒子在最小賦權(quán)有向超圖的每個(gè)維度空間的位置。群智能粒子在最小賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的最小賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集。
[0117]A03:初始化每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并在速度閾值范圍內(nèi),隨機(jī)給定每個(gè)群智能粒子在每個(gè)維度空間的速度向量。
[0118]A04:初始化每個(gè)群智能粒子的自身歷史最優(yōu)位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為自身歷史最優(yōu)位置向量。
[0119]A05:投影每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗化賦權(quán)有向超圖的自身位置向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的位置。群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的當(dāng)前水平層的細(xì)化賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集。
[0120]A06:投影每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗化賦權(quán)有向超圖的自身速度向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身速度向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的速度。
[0121]AO7:計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG [n] [m]。
[0122]A08:快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m],快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值。
[0123]A09:循環(huán)初始化,初始化循環(huán)計(jì)數(shù)器COUNT為O。
[0124]A10:更新每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子自身的歷史最優(yōu)位置向量、全體群智能粒子的全局歷史最優(yōu)位置向量,在速度閾值范圍內(nèi)更新自身速度向量。
[0125]All:更新每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并計(jì)算每個(gè)群智能粒子自身位置向量和自身速度向量的向量和,更新自身位置向量,進(jìn)而依據(jù)群智能粒子的自身位置向量計(jì)算群智能粒子的二維輔助數(shù)組EDG[n] [m]。[0126]A12:快速計(jì)算每個(gè)群智能粒子的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],快速計(jì)算每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量的割切值。如果該群智能粒子的自身位置向量的割切值小于自身歷史最優(yōu)位置向量的割切值,則更新該群智能粒子的歷史最優(yōu)位置向量為當(dāng)前的自身位置向量。如果該群智能粒子的自身位置向量的割切值小于全體群智能粒子的全局歷史最優(yōu)位置向量的割切值,則更新全體群智能粒子的全局歷史最優(yōu)位置向量為該群智能粒子當(dāng)前的自身位置向量。
[0127]A13:重復(fù)步驟A10、A11、A12,循環(huán)計(jì)數(shù)器COUNT加1,直至循環(huán)計(jì)數(shù)器COUNT到達(dá)給定的上限。
[0128]A14:投影到上一水平層的粗化賦權(quán)有向超圖。
[0129]A15:重復(fù)步驟六05、六06、六07、六08、六09、六10、六11、六12、六13、六14,直至投影回到初
始賦權(quán)有向超圖。
【權(quán)利要求】
1.一種基于多水平劃分法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,其特征在于,具體步驟如下: 步驟1,類型類度分析,輸入云計(jì)算環(huán)境下用戶提交的任務(wù),并對(duì)其進(jìn)行類型和類度的分析,確定任務(wù)的并行化程度和特點(diǎn); 步驟2,進(jìn)程粒度分解,根據(jù)用戶任務(wù)的并行化程度和特點(diǎn),以及云計(jì)算的資源共享分配方式等獨(dú)特性質(zhì),對(duì)用戶任務(wù)按照進(jìn)程粒度級(jí)別進(jìn)行分解; 步驟3,資源特性分析,根據(jù)云計(jì)算的資源共享分配方式等獨(dú)特性質(zhì),對(duì)分解后的任務(wù)進(jìn)行資源特性分析; 步驟4,賦權(quán)有向超圖文件生成,依據(jù)對(duì)任務(wù)資源特性的分析結(jié)果,建立描述其資源需求及依賴關(guān)系的賦權(quán)有向超圖模型,并按照改進(jìn)壓縮的文件存儲(chǔ)格式保存為賦權(quán)有向超圖文件; 步驟5,賦權(quán)有向超圖劃分,啟動(dòng)基于多水平劃分法的賦權(quán)有向超圖劃分程序,讀取賦權(quán)有向超圖文件,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式對(duì)賦權(quán)有向超圖進(jìn)行存儲(chǔ),對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分,將最終得到的劃分結(jié)果存儲(chǔ)在賦權(quán)有向超圖劃分文件中; 步驟6,任務(wù)子集構(gòu)造,在檢測(cè)到基于多水平劃分法的賦權(quán)有向超圖劃分程序完成劃分之后,從賦權(quán)有向超圖劃分文件中讀取相應(yīng)的劃分結(jié)果,依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造進(jìn)程級(jí)任務(wù)子集; 步驟7,任務(wù)映射調(diào)度,通過MapReduce任務(wù)調(diào)度模型,對(duì)基于賦權(quán)有向超圖優(yōu)化劃分構(gòu)造的任務(wù)子集進(jìn)行映射和調(diào)度,實(shí)現(xiàn)在云計(jì)算環(huán)境中的任務(wù)提交與執(zhí)行,有效地均衡云計(jì)算平臺(tái)的負(fù)載和縮短整個(gè)任務(wù)完成的時(shí)間跨度; 上述的步驟4中,所述的賦權(quán)有向超圖的改進(jìn)壓縮的文件存儲(chǔ)格式的如下: 步驟4.1,文件格式的第I行第I個(gè)參數(shù)代表著有向賦權(quán)超邊的數(shù)目m,第2個(gè)參數(shù)代表著賦權(quán)結(jié)點(diǎn)的數(shù)目η; 步驟4.2,文件格式的第2行開始到第m+1行的每行代表著一條有向賦權(quán)超邊的相關(guān)信息,第I個(gè)數(shù)值為有向賦權(quán)超邊的權(quán)值信息,其余數(shù)值為有向賦權(quán)超邊的結(jié)點(diǎn)信息,其中每行的最后一個(gè)數(shù)值代表有向賦權(quán)超邊的尾端結(jié)點(diǎn)信息,且有向賦權(quán)超邊的源端結(jié)點(diǎn)信息處于有向賦權(quán)超邊的權(quán)值信息和尾端結(jié)點(diǎn)信息之間; 步驟4.3,文件格式的第m+2行開始到第m+n+1行的每行代表著一個(gè)賦權(quán)結(jié)點(diǎn)的權(quán)值信息; 上述的步驟5中,所述的基于多水平劃分法的賦權(quán)有向超圖劃分程序的步驟如下:步驟5.1,讀取賦權(quán)有向超圖文件,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式對(duì)賦權(quán)有向超圖進(jìn)行存儲(chǔ); 步驟5.2,進(jìn)入到多水平劃分法的粗化階段,采用賦權(quán)有向超圖的結(jié)點(diǎn)匹配程序?qū)?dāng)前水平層粗化賦權(quán)有向超圖的某些結(jié)點(diǎn)結(jié)合在一起,得到下一水平層的粗化賦權(quán)有向超圖,重復(fù)此過程直到粗化賦權(quán)有向超圖足夠小為止,即得到一個(gè)最小賦權(quán)有向超圖; 步驟5.3,進(jìn)入到多水平劃分法的初始劃分階段,運(yùn)行基于FM方法的賦權(quán)有向超圖劃分程序,得到最小賦權(quán)有向超圖 的初始劃分; 步驟5.4,多水平劃分法優(yōu)化階段的離散群智能搜索程序初始化,初始化全體群智能粒子的全局歷史最優(yōu)位置向量和每個(gè)群智能粒子的自身位置向量、自身速度向量、自身歷史最優(yōu)位置向量; 步驟5.5,進(jìn)入到多水平劃分法的優(yōu)化階段,從最小賦權(quán)有向超圖投影回初始賦權(quán)有向超圖,在每一水平層的細(xì)化賦權(quán)有向超圖中,采用離散群智能搜索程序?qū)?xì)化賦權(quán)有向超圖的投影劃分進(jìn)行優(yōu)化; 步驟5.6,進(jìn)入到平衡階段,運(yùn)行基于FM-EE方法的賦權(quán)有向超圖劃分程序;由于在基于多水平劃分法的賦權(quán)有向超圖劃分過程中,可能違背賦權(quán)有向超圖劃分問題的平衡約束條件,因此在基于多水平劃分法的賦權(quán)有向超圖劃分所求解的基礎(chǔ)上,運(yùn)行基于FM-EE方法的賦權(quán)有向超圖劃分方法,使劃分解滿足平衡約束條件,從而得到賦權(quán)有向超圖劃分問題的劃分解; 步驟5.7,將最終得到的賦權(quán)有向超圖劃分結(jié)果存儲(chǔ)在賦權(quán)有向超圖劃分文件中; 上述的步驟5.1中,所述的賦權(quán)有向超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式如下; 步驟5.1.1,使用vwgts數(shù)組存儲(chǔ)賦權(quán)有向超圖中結(jié)點(diǎn)的權(quán)值信息,且vwgts數(shù)組的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù); 步驟5.1.2,使用xadj數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊列表的起始位置信息,即第i個(gè)結(jié)點(diǎn)的終止位置為第i+Ι個(gè)結(jié)點(diǎn)的起始位置減I,且xadj數(shù)組的大小為賦權(quán)有向超圖中的結(jié)點(diǎn)個(gè)數(shù)加1,xadj數(shù)組最后一個(gè)元素用于存放最后一個(gè)結(jié)點(diǎn)的終止位置; 步驟5.1.3,使用adjncy數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接有向超邊的列表信息,第i個(gè)結(jié)點(diǎn)的鄰接有向超邊列表存儲(chǔ)在adjncy數(shù)組中,從adjncy [xadj [i]]到adjncy[xadj[i+1]-1]; 步驟5.1.4,使用eptr數(shù)組存儲(chǔ)每條有向超邊所包含的結(jié)點(diǎn)列表的起始位置信息,SP第j條有向超邊的終止位置為第 j+Ι條有向超邊的起始位置減1,且eptr數(shù)組的大小為賦權(quán)有向超圖中的有向超邊個(gè)數(shù)加1,eptr數(shù)組最后一個(gè)元素用于存放最后一條有向超邊的終止位置; 步驟5.1.5,使用e i n d數(shù)組存儲(chǔ)每條有向超邊所包含結(jié)點(diǎn)的列表信息,其中每條有向超邊的尾端結(jié)點(diǎn)只有I個(gè),且每條有向超邊尾端結(jié)點(diǎn)的所有直接前驅(qū)結(jié)點(diǎn)都包含在該有向超邊的源端子集中;弟j條有向超邊的結(jié)點(diǎn)列表存儲(chǔ)在eind數(shù)組中,從eind[eptr[j]]到eind[eptr[j+l]_l],其中第j條有向超邊的源端結(jié)點(diǎn)為eind[eptr[j]]到eind[eptr[j+l]-2],第j條有向超邊的尾端結(jié)點(diǎn)為eind[eptr [j+l]-l]; 步驟5.1.6,使用hewgts數(shù)組存儲(chǔ)有向超邊的權(quán)值信息,且hewgts數(shù)組的大小為賦權(quán)有向超圖中的有向超邊數(shù)目; 上述的步驟5.2中,所述的當(dāng)前水平層粗化賦權(quán)有向超圖的結(jié)點(diǎn)匹配程序的步驟如下: 步驟5.2.1,標(biāo)注當(dāng)前水平層粗化賦權(quán)有向超圖中所有結(jié)點(diǎn)處于未匹配狀態(tài); 步驟5.2.2,運(yùn)行賦權(quán)有向超圖的結(jié)點(diǎn)核值計(jì)算程序,基于結(jié)點(diǎn)屬性函數(shù)值進(jìn)行當(dāng)前水平層粗化賦權(quán)有向超圖中所有結(jié)點(diǎn)的核值求解,并按照結(jié)點(diǎn)的核值進(jìn)行非嚴(yán)格降序排序;步驟5.2.3,按照結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn)V ;如果結(jié)點(diǎn)V還有鄰接結(jié)點(diǎn)未匹配,那么選取處于沒有匹配狀態(tài)的且權(quán)值最大的鄰接超邊的鄰接結(jié)點(diǎn)u和結(jié)點(diǎn)V匹配,且標(biāo)注這兩個(gè)結(jié)點(diǎn)為匹 配狀態(tài);如果結(jié)點(diǎn)V所有鄰接匹配結(jié)點(diǎn)處于匹配狀態(tài),那么結(jié)點(diǎn)V仍處于未匹配狀態(tài),在粗化過程中直接拷貝到下一水平層的粗化賦權(quán)有向超圖中; 步驟5.2.4,步驟重復(fù)上一步,直至所有結(jié)點(diǎn)訪問結(jié)束; 上述的步驟5.2.2中,所述的賦權(quán)有向超圖的結(jié)點(diǎn)核值計(jì)算程序的步驟如下: 步驟5.2.2.1,計(jì)算出所有結(jié)點(diǎn)的屬性函數(shù)值; 步驟5.2.2.2,對(duì)所有結(jié)點(diǎn)的屬性函數(shù)值進(jìn)行非嚴(yán)格降序排序; 步驟5.2.2.3,按照結(jié)點(diǎn)屬性函數(shù)值的非嚴(yán)格降序次序訪問每個(gè)結(jié)點(diǎn),計(jì)算每個(gè)結(jié)點(diǎn)的核值; 上述的步驟5.2.2.2中,所述的結(jié)點(diǎn)屬性函數(shù)值的非嚴(yán)格降序排序的步驟如下: 步驟5.2.2.2.1,根據(jù)結(jié)點(diǎn)的屬性函數(shù)值屬于在一定范圍內(nèi)的整數(shù),掃描所有結(jié)點(diǎn)的屬性函數(shù)值,統(tǒng)計(jì)每一種屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在計(jì)數(shù)輔助數(shù)組bin中; 步驟5.2.2.2.2,針對(duì)每一種屬性函數(shù)值,借助計(jì)數(shù)輔助數(shù)組bin,計(jì)算出在所有結(jié)點(diǎn)的屬性函數(shù)值中,小于該屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在位置輔助數(shù)組pos中; 步驟5.2.2.2.3,掃描所有結(jié)點(diǎn)的屬性函數(shù)值,針對(duì)每一個(gè)結(jié)點(diǎn)的屬性函數(shù)值,借助位置輔助數(shù)組pos,得到該結(jié)點(diǎn)的屬性函數(shù)值在非嚴(yán)格降序排序的次序,并將該次序存儲(chǔ)在次序輔助數(shù)組vert中; 上述的步驟5.2.2.3中,所述的結(jié)點(diǎn)V的核值計(jì)算的步驟如下: 步驟5.2.2.3.1,將結(jié)點(diǎn)V的屬性函數(shù)值作為核值輸出; 步驟5.2.2.3.2,標(biāo)記結(jié)點(diǎn)V從所在的超邊e中刪除; 步驟5.2.2.3.3,如果超邊e刪除結(jié)點(diǎn)V后,仍包含兩個(gè)及以上未被標(biāo)記刪除的結(jié)點(diǎn),則超邊e仍然存在,否則刪除超邊e ; 步驟5.2.2.3.4,重新計(jì)算結(jié)點(diǎn)V的鄰接結(jié)點(diǎn)u的屬性函數(shù)值; 步驟5.2.2.3.5,如果鄰接結(jié)點(diǎn)u的屬性函數(shù)值大于結(jié)點(diǎn)V的屬性函數(shù)值,更新鄰接結(jié)點(diǎn)u的屬性函數(shù)值,并且借助計(jì)數(shù)輔助數(shù)組bin、位置輔助數(shù)組pos和次序輔助數(shù)組vert的信息,快速更新鄰接結(jié)點(diǎn)u在所有結(jié)點(diǎn)的屬性函數(shù)值非嚴(yán)格降序排序的次序;否則不更新鄰接結(jié)點(diǎn)u的屬性函數(shù)值及其排序的次序; 上述的步驟5.4中,所述的離散群智能搜索程序的初始化步驟如下: 步驟5.4.1,初始化全體群智能粒子的全局歷史最優(yōu)位置向量,設(shè)定全局歷史最優(yōu)位置向量為最小賦權(quán)有向超圖的初始劃分; 步驟5.4.2,初始化每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為最小賦權(quán)有向超圖的初始劃分,即群智能粒子在最小賦權(quán)有向超圖的每個(gè)維度空間的位置;群智能粒子在最小賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的最小賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集; 步驟5.4.3,初始化每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并在速度閾值范圍內(nèi),隨機(jī)給定每個(gè)群智能粒子在每個(gè)維度空間的速度向量; 步驟5.4.4,初始化每個(gè)群智能粒子的自身歷史最優(yōu)位置向量,遍歷每個(gè)群智能粒子并設(shè)定每個(gè)群智能粒子的自身位置向量為自身歷史最優(yōu)位置向量; 上述的步驟5.5中,所述的離散群智能搜索程序的步驟如下: 步驟5.5.1,投影每個(gè)群智能粒子的自身位置向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗 化賦權(quán)有向超圖的自身位置向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的位置;群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的某維度空間的位置,代表著該維度空間對(duì)應(yīng)的當(dāng)前水平層的細(xì)化賦權(quán)有向超圖結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集; 步驟5.5.2,投影每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的上一水平層粗化賦權(quán)有向超圖的自身速度向量投影到當(dāng)前水平層的細(xì)化賦權(quán)有向超圖上,得到每個(gè)群智能粒子在當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身速度向量,即群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的每個(gè)維度空間的速度; 步驟5.5.3,計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,計(jì)算每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m]; 步驟5.5.4,快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的二維輔助數(shù)組EDG[n] [m],快速計(jì)算每個(gè)群智能粒子在當(dāng)前水平層的細(xì)化賦權(quán)有向超圖的自身位置向量的割切值; 步驟5.5.5,循環(huán)初始化,初始化循環(huán)計(jì)數(shù)器COUNT為O ; 步驟5.5.6,更新每個(gè)群智能粒子的自身速度向量,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子自身的歷史最優(yōu)位置向量、全體群智能粒子的全局歷史最優(yōu)位置向量,在速度閾值范圍內(nèi)更新自身速度向量; 步驟5.5.7,更新每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],遍歷每個(gè)群智能粒子并計(jì)算每個(gè)群智能粒子自身位置向量和自身速度向量的向量和,更新自身位置向量,進(jìn)而依據(jù)群智能粒子的自身位 置向量計(jì)算群智能粒子的二維輔助數(shù)組EDG[n][m]; 步驟5.5.8,快速計(jì)算每個(gè)群智能粒子的自身位置向量的割切值,遍歷每個(gè)群智能粒子并依據(jù)每個(gè)群智能粒子的自身位置向量和二維輔助數(shù)組EDG[n] [m],快速計(jì)算每個(gè)群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量的割切值;如果該群智能粒子的自身位置向量的割切值小于自身歷史最優(yōu)位置向量的割切值,則更新該群智能粒子的歷史最優(yōu)位置向量為當(dāng)前的自身位置向量;如果該群智能粒子的自身位置向量的割切值小于全體群智能粒子的全局歷史最優(yōu)位置向量的割切值,則更新全體群智能粒子的全局歷史最優(yōu)位置向量為該群智能粒子當(dāng)前的自身位置向量; 步驟5.5.9,重復(fù)步驟5.5.6,5.5.7,5.5.8,直至循環(huán)計(jì)數(shù)器COUNT到達(dá)給定的上限;上述的步驟5.5.3和步驟5.5.7中,所述的計(jì)算群智能粒子的二維輔助數(shù)組EDG[n] [m]的步驟如下: 步驟5.5.3.1,二維輔助數(shù)組EDG [n] [m]清零; 步驟5.5.3.2,讀取eptr數(shù)組和eind數(shù)組存儲(chǔ)的每條超邊所包含的結(jié)點(diǎn)信息,基于群智能粒子的當(dāng)前水平層細(xì)化賦權(quán)有向超圖的自身位置向量,計(jì)算每條超邊在η個(gè)劃分子集Vb-Vn的結(jié)點(diǎn)個(gè)數(shù),即二維輔助數(shù)組EDG[n] [m]的兩行分別存放m條超邊在η個(gè)劃分子集的結(jié)點(diǎn)個(gè)數(shù); 上述的步驟5.5.4和步驟5.5.8中,所述的快速計(jì)算群智能粒子的自身位置向量的割切值的步驟如下:步驟5.5.4.1,劃分割切值清零; 步驟5.5.4.2,遍歷每條超邊是否結(jié)束,如果訪問未結(jié)束,即存在超邊e未被訪問,則轉(zhuǎn)步驟5.5.4.3 ;否則訪問結(jié)束,返回劃分割切值; 步驟5.5.4.3,如果滿足EDG [i][e]≥I的條件I和EDG [j] [e]≥I的條件2時(shí),意味著超邊e在劃分子集Vi和Vj的結(jié)點(diǎn)個(gè)數(shù)都大于等于1,即可判定超邊e是兩棲邊,并將劃分割切值累加上當(dāng)前超邊的權(quán)值;否則判定超邊e不是兩棲邊,劃分割切值不變;
步驟 5.5.4.4,轉(zhuǎn)步驟 5.5.4.2 ; 上述的步驟5.5.6中,所述的群智能粒子的自身速度向量的更新步驟如下: 步驟5.5.6.1,計(jì)算出群智能粒子的當(dāng)前自身速度向量與慣性權(quán)重參數(shù)的乘積; 步驟5.5.6.2,計(jì)算出群智能粒子的歷史最優(yōu)位置向量和群智能粒子的當(dāng)前自身位置向量的向量差,再和認(rèn)知參數(shù)相乘; 步驟5.5.6.3,計(jì)算出全體群智能粒子的全局歷史最優(yōu)位置向量和群智能粒子的當(dāng)前自身位置向量的向量差,再和社會(huì)參數(shù)相乘; 步驟5.5.6.4,計(jì)算出步驟5.5.6.1、步驟5.5.6.2、步驟5.5.6.3得到的三個(gè)乘積的向量和,更新群智能粒 子的自身速度向量。
【文檔編號(hào)】G06F9/50GK103885839SQ201410136320
【公開日】2014年6月25日 申請(qǐng)日期:2014年4月6日 優(yōu)先權(quán)日:2014年4月6日
【發(fā)明者】冷明, 孫凌宇, 冷子陽 申請(qǐng)人:孫凌宇, 冷明, 冷子陽