欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高通量仿真中模型的資源分配與優(yōu)化方法與流程

文檔序號:12470712閱讀:819來源:國知局
高通量仿真中模型的資源分配與優(yōu)化方法與流程

本發(fā)明涉及計算機仿真技術領域,具體涉及一種高通量仿真中模型的資源分配與優(yōu)化方法。



背景技術:

隨著計算機和信息技術的飛速發(fā)展以及計算機仿真技術在航天、航空、制造等領域的不斷深入應用,仿真應用的規(guī)模不斷擴大、處理數(shù)據(jù)不斷增加、性能要求不斷提高,使得現(xiàn)有的建模仿真技術很難充分支撐仿真應用的運行。高性能計算和高通量計算是計算科學中使用最多的技術手段,也被認為是解決復雜系統(tǒng)仿真應用的最有效技術途徑。高性能仿真系統(tǒng)往往針對特定的領域和對象,其本質(zhì)是短時間內(nèi)的高性能計算服務,仿真過程通常是由很多緊密耦合的并行仿真任務組成,其追求的是仿真的速度。高通量仿真系統(tǒng)更側(cè)重長時間并發(fā)運行大量耦合性弱的仿真作業(yè),而且系統(tǒng)在執(zhí)行這些仿真作業(yè)時往往需要實例化大量復用的仿真模型并處理和分析海量的數(shù)據(jù)。

目前針對高通量仿真的研究還處于初始階段,在高通量仿真建模、高通量仿真調(diào)用、高通量仿真數(shù)據(jù)處理等方面都還需要深入研究,充分利用分布式與并行計算機技術來提高仿真應用的并發(fā)性、吞吐量、并行性和可靠性。本發(fā)明針對高通量仿真中的初始步驟——仿真模型和仿真資源的高通量描述和資源分配進行研究,提出將仿真模型和仿真資源的高通量屬性進行建模并轉(zhuǎn)化為多維約束的遺傳算法問題,通過對遺傳算法進行改進和擴展使其支持具有仿真特性的仿真模型資源分配和優(yōu)化。



技術實現(xiàn)要素:

本發(fā)明的目的在于克服現(xiàn)有技術的缺點,提出一種高通量仿真中模型的資源分配與優(yōu)化方法,有效的提高仿真運行的效率減少仿真運行時間。

本發(fā)明通過如下技術方案實現(xiàn):一種高通量仿真中模型的資源分配與優(yōu)化方法,將仿真模型和仿真資源的高通量屬性進行建模并轉(zhuǎn)化為多維約束的遺傳算法,并對遺傳算法進行改進和擴展,具體步驟如下:S1.輸入初始化信息,包括終止代數(shù)T;S2.對解進行編碼;S3.通過隨機生成的方法生成初始種群,即t=0;S4.通過適應度函數(shù)獲得每個個體的適應度;S5.進行遺傳操作:交叉、變異、選擇、災變,通過交叉和變異產(chǎn)生新的解,通過選擇保存優(yōu)秀的解到下一代,通過災變操作避免陷入局部最優(yōu)解;S6.經(jīng)歷S5后即產(chǎn)生新的種群t,若t>T,則得出最優(yōu)解,否則t++后返回S3。

作為優(yōu)選,S2的具體步驟如下:在進行編碼之前首先需要根據(jù)模型的DAG圖計算出每一個模型的高度,再根據(jù)每個模型的高度生成一個模型編號的序列;如果模型在同一個括號之中則表示,這個幾個模型可以同時執(zhí)行,括號的先后順序則是表示后括號里的模型必須在前括號里的模型都運行完了才可以運行;統(tǒng)一括號內(nèi)的模型編號可以隨意交換位置,但括號間的順序不能交換,資源編號的編碼則只需要在1到資源個數(shù)NCount中隨機生成。

作為優(yōu)選,S3的具體步驟如下,在生成初始種群時,把高度相同的計算量大的模型分配到計算能力高的資源上;把高度相同的模型分配到不同的資源上;隨機分配與優(yōu)化分配相結(jié)合。

作為優(yōu)選,S3初始化種群的資源步驟如下:按公式計算每個模型的高度,高度相同的模型分為一組,每組模型按計算量進行排序,資源按計算能力從高到低進行排序;每一個資源都有一個標志位flag,還有一個已分配出去的資源的計數(shù)器Count,每一組開始分配前flag都為0,分配了模型則flag為1,Count++,Count等于資源數(shù)時,flag清零。

作為優(yōu)選,S4所述的適應度函數(shù)通過負載的不平衡量來表示。

作為優(yōu)選,S5所述的選擇改進如下:通過利用適應度比例,精英保留策略和災變?nèi)呦嘟Y(jié)合的方式,使種群在進化過程中,保持在全局解空間搜索解。

作為優(yōu)選,S5所述的交叉改進如下:適應度高的個體,等概率的選擇模型序列或者資源序列進行交叉操作,適應度低的個體,模型序列和資源序列都進行交叉操作;適應度的判斷依據(jù)是:兩個父個體中適應度較高的個體的適應度大于群體適應度平均值,則認為該組的適應度高,反之,則認為改組的適應度低;編碼的模型序列和資源序列使用不同的交叉方法,資源序列使用傳統(tǒng)的單點交叉方法,模型序列的交叉方法過程如下:(1)根據(jù)每個模型的高度,對模型進行分組;(2)在[1,MCount]中隨機生成一個整數(shù)Num,判斷該整數(shù)在哪一個組里,如果Num是第i組的最后一個,則從第i+1組開始交換兩個父代的模型序列,如果Num是第i組的第一個或者中間的模型,則從第i組開始交換兩個父代的模型序列。

作為優(yōu)選,S5所述的變異改進如下:適應度高的個體,等概率的選擇模型序列或者資源序列進行變異操作,適應度低的個體,模型序列和資源序列都進行變異操作,適應度的判斷依據(jù)同交叉操作;編碼的模型序列和資源序列使用不同的變異方法,資源序列使用傳統(tǒng)的基本位變異方法;模型序列的交叉方法過程如下:(1)根據(jù)每個模型的高度,對模型進行分組;(2)在[1,MCount]中隨機生成一個整數(shù)Num,判斷該整數(shù)在哪一個組里,然后在組內(nèi)隨機選擇一個模型與之交換位置。

作為優(yōu)選,S5所述的災變操作如下:在初始環(huán)境中設置災變操作發(fā)生的代數(shù),在種群進化的過程中,在當前代進化到下一代過程會保留當前代的最優(yōu)染色體,如果達到發(fā)生災變的代數(shù),就將除當前最優(yōu)染色體外的其他所有染色體重新編碼。

與現(xiàn)有技術相比,本發(fā)明具有如下有益效果:本發(fā)明根據(jù)高通量仿真的需求,運用改進的遺傳算法解決高通量仿真中的仿真模型資源分配與優(yōu)化問題。提出了滿足模型依賴關系的高效編碼方法和適應度函數(shù),并對初始種群的生成算法、交叉算子、變異算子進行改進,提出了優(yōu)化的初始種群生成算法、針對新的編碼方式的交叉操作、變異操作。同時引入了災變操作,有效的避免了種群在整個進化過程中陷入到局部解的可能,針對、高通量仿真任務調(diào)度的特點和目標,將改進的遺傳算法應用于仿真中的任務調(diào)度,改進主要包括提出了新的針對任務調(diào)度的編碼和用系統(tǒng)負載不平衡量作為適應度函數(shù)。為了提高初始種群的優(yōu)越性,優(yōu)化了生成初始種群的算法。為了提高遺傳算法的優(yōu)越性,改進了遺傳算子,針對適應度不同的個體采用了不同的遺傳操作和交叉、變異概率。通過實驗對優(yōu)化初始種群生成算法和隨機生成算法生成的初始種群的最優(yōu)解的運行時間進行比較,對遺傳算法獲得的最優(yōu)分配方案的運行時間和隨機分配方案的運行時間也進行了比較,實驗結(jié)果表明本發(fā)明提出基于遺傳算法的仿真模型資源分配方法能夠有效的提高仿真運行的效率減少仿真運行時間。

附圖說明

圖1為本發(fā)明遺傳算法流程圖;

圖2為本發(fā)明初始化隨機分布示意圖,注:方框表示解空間,黑點表示初始解;

圖3為本發(fā)明進化完成后解的分布示意圖,注:方框表示解空間,黑點表示進化后的解。

具體實施方式

以下結(jié)合附圖對本發(fā)明內(nèi)容做進一步說明。

1仿真模型系統(tǒng)資源按需映射問題建模

1.1仿真模型與系統(tǒng)資源按需映射問題分析

仿真模型與系統(tǒng)資源的按需映射方面是指仿真應用運行初期的靜態(tài)資源分配。具體來說就是在仿真運行開始前,在已知各仿真模型的計算量、通信量和各節(jié)點的計算能力,存儲能力和通信能力的基礎上,將一組相關的仿真模型,按照一定的執(zhí)行時序分配到集群的各個節(jié)點上,并確定各節(jié)點上模型的運行次序,以提高整個仿真系統(tǒng)的吞吐量。這一問題類似于任務調(diào)度問題,但又有所不同。在以往的研究中,任務的運行時間是已知的,而且重點考慮任務的計算消耗,在本發(fā)明中,由于仿真的特殊性,無法在映射前確定各模型的運行時間,所以本發(fā)明的靜態(tài)調(diào)度是在模型運行時間未知的情況下,在考慮模型的計算消耗的基礎上增加考慮了模型間的通信消耗。以下是仿真模型資源映射問題的前提假設:

(1)集群中的各節(jié)點異構(gòu),各節(jié)點擁有不同的計算能力,存儲能力,即同一模型在不同節(jié)點上運行,所需時間可能不同;

(2)各節(jié)點全連接,且通信能力相同,為一個定值;

(3)模型數(shù)量比節(jié)點數(shù)量要多得多,如果模型數(shù)小于節(jié)點數(shù)的話,只需按模型計算量大小依次分配給不同計算能力的節(jié)點就可以了;

(4)每個模型在各節(jié)點上的運行時間是未知的;

(5)已知模型的計算消耗和通信消耗;

(6)同一個節(jié)點上的仿真模型間的通信代價為0;

(7)已知模型間的約束關系,即模型的運行必須遵循一定的先后順序。

由以上的問題定義可以看出,該問題實際上是將具有多種資源需求的仿真模型以最優(yōu)化的方法映射到提供不同系統(tǒng)資源的仿真節(jié)點上,是一個多維約束下的組合最優(yōu)化問題。

遺傳算法是解決多維約束下的最優(yōu)化問題的一個有效算法,與其他最優(yōu)化算法相比,遺傳算法處于隨機方法與啟發(fā)式方法之間,是一種概率搜索算法,非常適于解決大規(guī)模的優(yōu)化問題。傳統(tǒng)的啟發(fā)式搜索算法多數(shù)是單點搜索算法,即通過一些變動規(guī)則,問題的解從搜索空間中的當前解(點)移到另一解(點)。這種點對點的搜索方法,對于多峰分布的搜索空間常常會陷于局部的某個單峰的優(yōu)解。相反,遺傳算法采用同時處理群體中多個個體的方法,即同時對搜索空間中的多個解進行評估。這一特點使遺傳算法具一有較好的全局搜索性能,減少了陷入局部優(yōu)解的風險。

所以本發(fā)明選用遺傳算法來解決模型資源映射問題,

同時本發(fā)明根據(jù)多約束條件下的仿真模型與系統(tǒng)資源按需映射問題的特點對算法進行改進。

遺傳算法的改進策略總結(jié)如下:

(1)優(yōu)化遺傳算法的各步驟;

(2)引入災變策略,在算法進化過程中,比傳統(tǒng)的遺傳算法,以及自適應的遺傳操作算法有更優(yōu)的效果;

(3)與其他算法結(jié)合,通過其他算法的優(yōu)勢彌補遺傳算法中的缺陷;

(4)采用并行遺傳算法。

1.2仿真模型資源需求表示

仿真模型用DAG圖Model=(M,E)來反映模型之間的優(yōu)先約束關系,并用二維矩陣Comp[MCount,NCount]表示各模型的在不同節(jié)點上的計算量,Comm[MCount,MCount]表示每一個模型與哪些模型通信,以及期待的帶寬,其中:M={Mi|i∈MCount}:表示節(jié)點的集合,每個節(jié)點代表一個模型。MCount為模型個數(shù)。其中Mi={i,Pre(Mi),Suf(Mi),H(Mi)}。

i:表示模型編號;

Pre(Mi):表示模型Mi的直接前驅(qū)的集合;

Suf(Mi):表示模型Mi的直接后繼的集合;

H(Mi):表示模型在DAG中的高度,反映模型在調(diào)度中優(yōu)先級。計算模型在DAG圖的高度的思路如下:沒有直接前驅(qū)節(jié)節(jié)點的模型的高度為0,否則,該模型的高度為其直接前驅(qū)節(jié)點集合中高度最大的節(jié)點的高度加一。公式如下:

E={Ei(Mi,Mj)i∈MCount,j∈MCount}:表示邊的集合,反映模型運行時的必須遵循的先后順序。

Ei(Mi,Mj):表示E中的一條邊,反映必須先運行Mi,在Mi完成后Mj才可以運行,對于存在這樣關系的模型,稱模型Mi是模型Mj的直接前驅(qū),模型Mj是模型Mi的直接后繼。

Comp[MCount,NCount]:表示模型的計算消耗,MCount為模型個數(shù),NCount為節(jié)點個數(shù),Comp[i,j]:表示第j個模型在第i個節(jié)點上運行完成需要的計算量。

Comm[MCount,MCount]表示模型間的通信開銷,Comm[i,j]表示模型i與模型j之間通信所期待的的帶寬,如果為0則表示模型i與模型j之間不通信。

1.3系統(tǒng)資源表示

本來考慮的系統(tǒng)資源是全連通的異構(gòu)資源,且各資源之間的實際帶寬相同。該系統(tǒng)可以用DAG圖來表示Resources=(R,E,BW),記錄了資源的計算能力和節(jié)點間的通信能力。其中:

R={Ri|i∈NCount}:表示節(jié)點的集合,每個節(jié)點代表一個資源。NCount為資源個數(shù),Ri={i,W(Ri)}。i:表示資源編號,W(Ri):表示資源Ri的計算能力。

E={Ei(Ri,Rj)|i∈NCount,j∈Ncount}:表示邊的集合,反映資源連通。

BW:表示資源間的實際帶寬。

2基于遺傳算法的模型與資源映射方法

2.1遺傳算法基本流程

根據(jù)達爾文的自然選擇學說,在自然界中適者生存,經(jīng)過一代代的遺傳、變異和優(yōu)勝劣汰,最終存活下來的都是適應環(huán)境的強者。遺傳算法就是借鑒了這一規(guī)律。將遺傳算法對應到搜索最優(yōu)解的問題中,首先需要對解進行編碼,每一個解的編碼就相當于個體的染色體,確定了對解的編碼方式后,通過隨機生成的方法生成初始種群,并通過適應度函數(shù)獲得每個個體的適應度,然后進行遺傳操作:交叉、變異、選擇,通過“交叉”“變異”產(chǎn)生新的解,通過“選擇”保存優(yōu)秀的解到下一代,淘汰不好的解。這一步驟相當于生物界通過繁殖和基因突變產(chǎn)生新的個體,并進行優(yōu)勝劣汰。這樣經(jīng)過若干次迭代之后,算法收斂于最好的染色體,它可能就是問題的最優(yōu)解或次優(yōu)解。因此,使用遺傳算法解決仿真模型與資源的按需映射問題,主要需要完成:相關參數(shù)確定、解的編碼、生成初始群體、確定適應度函數(shù)、遺傳操作等。

2.2滿足模型依賴關系的高效編碼方法

模型資源的映射不僅需要考慮模型的計算量,模型間的通信量,資源的計算能力,確定哪些模型適合分成一組并將其分配到合適的資源上,還需要考慮模型之間的約束關系,確定同一資源上模型的運行順序。所以模型資源的映射實際上可分為兩步,第一步是確定每個資源上分配哪幾個模型,第二步是確定資源上模型的運行順序。把第一步稱為模型的分配,第二步稱為模型的調(diào)度。所以生成的解的編碼,也要同時體現(xiàn)這兩步。通過對模型資源映射和對遺傳編碼相關知識的分析,本發(fā)明采用二維的浮點數(shù)編碼。具體編碼方式如下,假設有9個模型,3個資源:

編碼如下:

1 2 3 7 4 5 6 8 9

1 2 1 1 3 2 2 1 3

編碼的表示意義為:

Model(M1,M2)(M3,M7)(M4,M5)(M6,M8)(M9)

Resource R1 R2 R1 R1 R3 R2 R2 R1 R3

本發(fā)明解的編碼是一個二維數(shù)組,兩個維度的長度都是MCount(模型個數(shù))。第一維每一個基因位上的值表示模型的編號,第二維每一個基因位上的值表示資源編號,表示第一維同一基因位上的模型被分配在這個資源上運行。在進行編碼之前首先需要根據(jù)上文提到的模型的DAG圖計算出每一個模型的高度,再根據(jù)每個模型的高度生成一個模型編號的序列:(M1,M2)(M3,M7)(M4,M5)(M6,M8)(M10)。如果模型在同一個括號之中則表示,這個幾個模型可以同時執(zhí)行。括號的先后順序則是表示后括號里的模型必須在前括號里的模型都運行完了才可以運行。所以在生成模型編號的編碼時,需要根據(jù)上述序列生成。統(tǒng)一括號內(nèi)的模型編號可以隨意交換位置,但括號間的順序不能交換。資源編號的編碼則只需要在1到NCount(資源個數(shù))中隨機生成。

根據(jù)以上的編碼,解碼可得:

R1:M1,M3,M7,M8

R2:M2,M5,M6

R3:M4,M9

由此可知,該編碼方法既確定了把哪些模型分配到哪一個的資源上,又確定了每一個資源上模型的運行順序,而且可以保證生成的每一個模型上的運行順序是有效的,相較于每次都隨機生成一個資源序列再判斷是否符合模型間的約束順序這樣的編碼方式要高效很多。

2.3初始種群生成算法

本發(fā)明在生成初始種群的時候,并不是完全的隨機的,除了像上面2.2提出的考慮了模型間的依賴關系,還希望通過優(yōu)化操作生成較好的初始種群,從而減少遺傳算法的進化時間。雖然增加的優(yōu)化操作會增加生成初始種群的時間,但由于生成初始種群僅在遺傳算法的最開始執(zhí)行一次,且相對于之后的整個遺傳算法所消耗的時間,生成初始種群的時間是可以忽略不計。從下面三個方面進行了優(yōu)化:

1.在生成初始種群時,盡量把高度相同的計算量大的模型分配到計算能力高的資源上。這一做法充分利用了異構(gòu)資源具有不同的計算能力的特點,使得計算量大的模型可以盡快運行完,增加了仿真的吞吐率。

2.在生成初始種群時,盡量把高度相同的模型分配到不同的資源上,以此實現(xiàn)最大的并行化,使得獨立的模型可以并行運行,后繼模型可以較早的開始執(zhí)行,增加了仿真的吞吐率,縮短了仿真時間。

3.在生成初始種群時,隨機分配與優(yōu)化分配相結(jié)合。如果完全按照1、2的策略來分配模型,可能會造成各資源負載不平衡和種群缺少多樣性。所以按一定概率的隨機分配模型。

初始種群的模型步驟如下:

初始化種群的資源步驟如下:

1.按公式計算每個模型的高度,高度相同的模型分為一組,每組模型按計算量進行排序,資源按計算能力從高到低進行排序。

2.每一個資源都有一個標志位flag,還有一個已分配出去的資源的計數(shù)器Count,每一組開始分配前flag都為0,分配了模型則flag為1,Count++,Count等于資源數(shù)時,flag清零。

2.4適應度函數(shù)

在遺傳算法的進化中,基本不利用其他外部信息,一般只以適度函數(shù)為依據(jù),對個體的優(yōu)劣程度進行評價。所以,適應度函數(shù)非常重要,直接影響到遺傳算法的收斂速度和能否找到最優(yōu)解。適應度函數(shù)一般由目標函數(shù)轉(zhuǎn)化而來,適應度函數(shù)的增加方向應該和目標函數(shù)的尋優(yōu)方向一致。為了方便理論分析,一般需要確保適應度函數(shù)非負。

現(xiàn)有的將遺傳算法應用于任務調(diào)度的論文的適應度函數(shù)一般都由完成所有任務所需的運行時間來表示,任務的完成時間,即從第一個任務開始運行到最后一個模型運行完畢所經(jīng)歷的時間,運行時間越短就說明調(diào)度策略越好。完成時間在調(diào)度問題是最為主要和最能體現(xiàn)調(diào)度性能的目標。這樣的適應度函數(shù)是建立在已知每個任務在各資源上的運行時間的基礎上的,但是由于本發(fā)明是仿真模型與資源的映射,在映射之前并不知道每個模型在各資源上的運行時間,所以并不能直接用運行時間來表示適應度函數(shù)。

本發(fā)明準備根據(jù)仿真模型與資源映射的目標來確定適應度函數(shù)。模型資源映射的目標是將模型分配到具有相匹配的處理能力的資源上,同時保證資源之間通信開銷最小和仿真系統(tǒng)的吞吐率高。

根據(jù)模型資源映射目標和在已知模型在各資源上的計算量,模型間的通信量的基礎上,本發(fā)明決定用負載不平衡量來表示適應度函數(shù)。負載平衡技術是考慮異構(gòu)的分布式系統(tǒng)中資源計算性能、通訊性能等參數(shù)從而保證所有節(jié)點高效運行的有效手段。盡量保證各資源的負載平衡,才能更快地推進仿真時鐘,加快仿真進程。所以用負載的不平衡量來表示適應度函數(shù)非常合適。

<mrow> <mi>F</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>L</mi> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.1</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>L</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>L</mi> </mfrac> <mo>&times;</mo> <msqrt> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mi>C</mi> <mi>o</mi> <mi>u</mi> <mi>n</mi> <mi>t</mi> </mrow> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>L</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>L</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mrow> <mi>N</mi> <mi>C</mi> <mi>o</mi> <mi>u</mi> <mi>n</mi> <mi>t</mi> </mrow> </mfrac> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.2</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mover> <mi>L</mi> <mo>&OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>N</mi> <mi>C</mi> <mi>o</mi> <mi>u</mi> <mi>n</mi> <mi>t</mi> </mrow> </mfrac> <mo>&times;</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mi>C</mi> <mi>o</mi> <mi>u</mi> <mi>n</mi> <mi>t</mi> </mrow> </msubsup> <msub> <mi>L</mi> <mi>i</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.3</mn> <mo>)</mo> </mrow> </mrow>

Li=A×CompLoadi+B×CommLoadi (2.4)

<mrow> <msub> <mi>CompLoad</mi> <mi>i</mi> </msub> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>Task</mi> <mi>i</mi> </msub> </mrow> </msubsup> <msub> <mi>Comp</mi> <mi>j</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>CommLoad</mi> <mi>i</mi> </msub> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>Task</mi> <mi>i</mi> </msub> </mrow> </msubsup> <msub> <mi>Comm</mi> <mi>j</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.6</mn> <mo>)</mo> </mrow> </mrow>

其中F表示個體的適應值,NCount表示資源數(shù),L表示整個仿真系統(tǒng)的不平衡量,Li表示資源i的負載量,表示平均負載,CompLoadi表示資源i的計算負載,CommLoadi表示資源i的通信負載,Taski表示資源i上的模型數(shù),Compj表示資源i上第j個模型的計算量,Commj表示資源i上第j個模型的通信量,commj表示模型j的通信量,如果相互通信的模型在同一資源上,則兩者之間的通信開銷可以忽略不計,所以我們希望在考慮資源計算能力的同時,盡量將通信量大的模型分在一個資源上,以減少通信開銷。公式(2.1)即為本發(fā)明的適應度函數(shù),本發(fā)明認為負載不平衡量越小,負載越平衡,則系統(tǒng)的仿真吞吐率越高。由于不平衡量越小則適應度越好,為了便于之后的判斷處理,我們用負載不平衡量的倒數(shù)表示適應度函數(shù),這樣一來就是適應度函值越大則表示該個體適應度越好。

2.5改進的選擇算子

選擇操作的作用是根據(jù)個體的適應值選擇優(yōu)秀的個體直接復制到下一代或是通過交叉操作產(chǎn)生新的個體遺傳到下一代,淘汰劣質(zhì)的個體。適應度比例方法是目前遺傳算法中最基本也是最常用的選擇方法。在該方法中,各個個體的被選擇的概率和其適應度值成比例。

設群體大小為M,其中個體的適應度值為,則第i個被選擇的概率為:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <msub> <mi>F</mi> <mi>i</mi> </msub> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </msubsup> <msub> <mi>F</mi> <mi>i</mi> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2.8</mn> <mo>)</mo> </mrow> </mrow>

眾所周知,遺傳操作包含交叉、變異、選擇操作,默認情況下,每一代隨機選擇的染色體都會參與到遺傳操作中,這時可能會存在一個嚴重的問題:假設種群進化代數(shù)被設置為N,當種群進化到第k代時(k<N),產(chǎn)生最佳適應度的解,如果不加以控制,最優(yōu)解有很大幾率進化到k+1代,而后繼續(xù)參與遺傳操作,那么在k+1代,最優(yōu)染色體與其他染色體發(fā)生交叉操作時產(chǎn)生的新個體很可能不具有最佳適應度,簡單地說,由第k代進化到第k+1代的過程中,最優(yōu)解被破壞了。

為了解決這個問題,引入了“精英保留”策略。所謂“精英保留”就是在完成整個遺傳操作的過程中,系統(tǒng)始終會保留擁有最佳適應度的染色體,在每一代進化完成后,系統(tǒng)會替換當前這一代中擁有最低適應度的染色體,這樣做最直接的目的就是使種群在進化過程中,染色體的適應度在不斷接近最佳化。

從理論上講,引入“精英保留”策略和適應度比例相結(jié)合的方法對每一代染色體進行選擇操作,會使個體的適應度不斷提高,更快的趨近于最優(yōu)解。

而實際操作中,又會發(fā)現(xiàn)新的問題,在遺傳操作過程中,如果產(chǎn)生了一個適應度較大的染色體(但它并不是最優(yōu)解),而且通過一定代進化,并沒有產(chǎn)生新的比它適應度更大的染色體,那么種群中大部分染色體很可能已經(jīng)被此染色體替代,這時就產(chǎn)生了一個非常嚴重的問題,即陷入了局部最優(yōu)解。

為了避免陷入局部最優(yōu)解,引入了一個新的概念“災變”,在遺傳操作中,通過偶爾發(fā)生的“災變”,會將已經(jīng)陷入或即將陷入局部最優(yōu)解的個體替換掉,產(chǎn)生新的個體,保持種群中染色體是中全局解空間中進化。

通過利用適應度比例,“精英保留”策略和“災變”三者相結(jié)合的方式,會使種群在進化過程中,保持在全局解空間搜索解,有效避免了陷入局部最優(yōu)解。

2.6改進的交叉算子

交叉操作是遺傳算法中產(chǎn)生新個體的主要手段,種群通過交叉產(chǎn)生新的個體,以此擴展解的搜索空間,達到全局搜索的目的。交叉操作模型自然界繁殖的基因重組過程,種群通過交叉操作產(chǎn)生包含優(yōu)良基因的新個體,再通過選擇操作將優(yōu)良個體保留下來。

本發(fā)明擬采用單點交叉方法。考慮“適應度高于群體平均值的個體應該對較低的交叉概率,以使優(yōu)秀的個體進入下一代的機會增大”的思想和考慮模型運行順序的約束,對單點交叉方法從以下幾個方面做了優(yōu)化:

1.適應度高的個體,等概率的選擇模型序列或者資源序列進行交叉操作,適應度低的個體,模型序列和資源序列都進行交叉操作。適應度的判斷依據(jù)是:兩個父個體中適應度較高的個體的適應度大于群體適應度平均值,則認為該組的適應度高。反之,則認為改組的適應度低。

2.編碼的模型序列和資源序列使用不同的交叉方法。資源序列使用傳統(tǒng)的單點交叉方法。傳統(tǒng)的單點交叉方法,都是隨機選擇一個交叉點,然后按照一定概率交換兩個父個體交叉點之后的基因值。這一方法對于資源序列是適用的,但是由于模型序列有一定的先后次序,如果按傳統(tǒng)的方法隨機選點交換可能會產(chǎn)生無用的編碼。模型序列的交叉方法過程如下:

(1)根據(jù)每個模型的高度,對模型進行分組。

(2)在[1,MCount]中隨機生成一個整數(shù)Num,判斷該整數(shù)在哪一個組里,如果Num是第i組的最后一個,則從第i+1組開始交換兩個父代的模型序列,如果Num是第i組的第一個或者中間的模型,則從第i組開始交換兩個父代的模型序列。

這一方面既實現(xiàn)了基因的重組,又保證了生成的模型序列都是有效的。

交叉算子算法如下:

2.7改進的變異算子

變異操作是遺傳算法產(chǎn)生新個體的另一個方法,具體來說就是改變個體的某些基因位上的值。變異操作模仿了自然界的基因突變,它可以為種群提供新的基因,有時可以找回選擇過程中丟失的基因,保持種群的多樣性,防止出現(xiàn)過早收斂的現(xiàn)象。

本發(fā)明擬采用基本位變異方法,同交叉操作一樣,考慮“適應度高于群體平均值的個體應該對較低的交叉概率,以使優(yōu)秀的個體進入下一代的機會增大”的思想和考慮模型運行順序的約束,對基本位變異方法從以下幾個方面做了優(yōu)化。

1.適應度高的個體,等概率的選擇模型序列或者資源序列進行變異操作,適應度低的個體,模型序列和資源序列都進行變異操作。適應度的判斷依據(jù)同交叉操作。

2.編碼的模型序列和資源序列使用不同的變異方法。資源序列使用傳統(tǒng)的基本位變異方法。傳統(tǒng)的基本位變異法,都是隨機選擇一個變異點,然后按照一定概率改變該點的基因值。這一方法對于資源序列是適用的,但是由于模型序列有一定的先后次序,如果按傳統(tǒng)的方法隨機生成一個模型編號,可能會生成無用的模型序列。模型序列的交叉方法過程如下:

(1)根據(jù)每個模型的高度,對模型進行分組。

(2)在[1,MCount]中隨機生成一個整數(shù)Num,判斷該整數(shù)在哪一個組里,然后在組內(nèi)隨機選擇一個模型與之交換位置。

變異算子算法如下:

2.8遺傳算法災變進化

一般來說,遺傳過程包括交叉、變異、選擇,通過一定進化代數(shù),會尋找到最優(yōu)解或次優(yōu)解。但實際操作過程中,如果解的空間(也就是染色體的取值范圍)非常大,那么在初始化種群時,染色體的隨機取值很可能僅僅是全局解的某一部分(如圖2),以這樣的初始化染色體進行遺傳操作,在進行N代遺傳操作后,很可能產(chǎn)生的最優(yōu)解或次優(yōu)解仍然集中在全局解的某一個部分(如圖3),這樣產(chǎn)生的解也就是局部最優(yōu)解,而這一遺傳操作的過程被稱為陷入了局部最優(yōu)解的操作過程。最終得到的解并不是想要的。

2.8.1災變

“災變”是一個地質(zhì)學理論,根據(jù)災變論的觀點,地球上的絕大多數(shù)變化是突然、迅速和災難性地發(fā)生的。在整個地質(zhì)發(fā)展過程中,地球經(jīng)常發(fā)生各種突如其來的災害性變化,并且有的災害是具有很大規(guī)模的。例如,海洋干涸成陸地,陸地又隆起山脈,還有火山爆發(fā)、洪水泛濫、氣候急劇變化等。當發(fā)生這些毀滅性災變時,許多生物遭到滅頂之災,但也不乏可能會有個別生物被保存下來,這樣的生物通常具有很強的適應能力。而這對于遺傳算法有很大的啟發(fā):在獲得某個最優(yōu)解后,除了最優(yōu)解保留下來,其他個體重新隨機產(chǎn)生,進入下一階段的進化,這樣做,使得在較小的群體規(guī)模下獲得較大規(guī)模的多樣性,則易于擺脫原先的局部最優(yōu)解,因為現(xiàn)在的候選解往往不再局限于以前的某個角落了。

2.8.2遺傳操作結(jié)合災變

將“災變”理論結(jié)合到具體的遺傳算法中,有多種的實現(xiàn)方式,比如應用于非線性控制系統(tǒng)中的應用,其主要做法是當實施“災變”時,突然增大變異概率。在本發(fā)明中,則利用了更符合生物進化史的災變方式,算法流程如下:

3.總結(jié):通過實驗對優(yōu)化初始種群生成算法和隨機生成算法生成的初始種群的最優(yōu)解的運行時間進行比較,對遺傳算法獲得的最優(yōu)分配方案的運行時間和隨機分配方案的運行時間也進行了比較,實驗結(jié)果表明本文提出基于遺傳算法的仿真模型資源分配方法能夠有效的提高仿真運行的效率減少仿真運行時間。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
绥滨县| 虎林市| 临泽县| 左权县| 安泽县| 岢岚县| 时尚| 定远县| 乐至县| 五原县| 五原县| 余干县| 开江县| 家居| 聊城市| 大理市| 平昌县| 桐柏县| 江城| 巨鹿县| 汾西县| 南康市| 金寨县| 湟源县| 上林县| 郎溪县| 双柏县| 铜鼓县| 永安市| 金沙县| 嘉兴市| 拉孜县| 华蓥市| 彭州市| 无锡市| 海口市| 山丹县| 马公市| 紫云| 诸城市| 汤原县|