一種基于進(jìn)化激勵算子的遺傳算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于實數(shù)編碼的遺傳算法領(lǐng)域,特別設(shè)及一種基于進(jìn)化激勵算子的遺傳算 法。 技術(shù)背景
[0002] 目前關(guān)于帶限制條件的實數(shù)參數(shù)優(yōu)化問題的求解方法研究比較多,主要的求解方 法是進(jìn)化算法,遺傳算法就是比較成熟的一種進(jìn)化算法,遺傳算法是美國Michigan大學(xué)的 化Hand教授于1969年首次提出,后經(jīng)歸納總結(jié)形成的一類模擬進(jìn)化算法,其源于進(jìn)化論、 物種選擇說和群體遺傳學(xué)。
[0003] 遺傳算法具有很好的魯椿性和高效性,是一種隱性的并行計算方法,并廣泛應(yīng)用 于計算科學(xué)和工程設(shè)計領(lǐng)域,適合解決復(fù)雜的非線性和多維空間尋優(yōu)問題。
[0004] 雖然遺傳算法具有很多優(yōu)點并有大量的成功應(yīng)用,高巧提出的自適應(yīng)交叉變異概 率遺傳算法(具體參考文獻(xiàn),改進(jìn)的快速遺傳算法及其性能研究[J],系統(tǒng)工程與電子技 術(shù),2003, 25 (11): 1427-1430),w及LinWen-Yang提出的PRGA算法(具體參考文獻(xiàn),LinW Y,LeeWY,HongTP,AdaptingCrossoverandMutationRatesinGeneticAlgorithms, JournalofInformationScienceandElngineering79, 2003.),但其自身也存在不足,如 局部捜索能力不足和隨機游走就是需要解決的問題。通過動態(tài)調(diào)整交叉變異率,可W-定 程度克服隨機游走問題,通過規(guī)劃個體可W提高算法的捜索能力。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種基于進(jìn)化激勵算子的遺傳算法,提高遺傳算法的局部 捜索能力和一定程度的克服算法隨機游走問題,從每代種群目標(biāo)函數(shù)值的分布總體出發(fā), 預(yù)測出進(jìn)化激勵算子,并利用進(jìn)化激勵算子對種群的進(jìn)化進(jìn)行調(diào)整和指導(dǎo)。
[0006] 具體技術(shù)方案如下;
[0007] 一種基于進(jìn)化激勵算子的遺傳算法,包括W下步驟:
[000引 (1)初始化種群規(guī)模,設(shè)置遺傳代數(shù),初始遺傳代數(shù)為第一代,轉(zhuǎn)入步驟(2);
[0009] (2)記當(dāng)前代種群為父代種群,計算當(dāng)前代種群中每個個體的目標(biāo)函數(shù)值,將最小 的B個目標(biāo)函數(shù)值對應(yīng)的個體儲存下來,B為整數(shù),并按照從大到小的順序?qū)λ械哪繕?biāo)函 數(shù)值進(jìn)行排列,得到目標(biāo)函數(shù)值序列;
[0010] (3)選擇調(diào)制函數(shù),將目標(biāo)函數(shù)值序列調(diào)制成調(diào)制后序列;
[ocm] (4)采用灰色預(yù)測模型GM(1,1)模型,計算進(jìn)化激勵算子;
[001引 妨根據(jù)激勵算子,計算進(jìn)化激勵算子對應(yīng)的代種群中每個個體的變化率;
[001引 做設(shè)定規(guī)劃種群大小和幅度控制因子,根據(jù)每個個體的變化率,計算得到每個父 代個體對應(yīng)的規(guī)劃后代包含的個體個數(shù),并從父代個體及其對應(yīng)的規(guī)劃后代個體中選擇出 目標(biāo)函數(shù)值取值最小的個體替換父代個體,更新父代種群中的所有個體,得到規(guī)劃后的父 代種群;
[0014] (7)對規(guī)劃后的父代種群,利用上述(2)至(5)的步驟計算得到該種群每個個體的 變化率,并計算交叉率和變異率;
[0015] (8)用每個個體的交叉率和變異率控制其交叉變異過程,并進(jìn)行交叉變異操作,得 到新的子代種群后,計算子代種群中所有個體的目標(biāo)函數(shù)值,并將所有個體按照其對應(yīng)的 目標(biāo)函數(shù)值從大到小排列,用步驟(2)中存儲的B個個體替換此時種群中的前B個個體,得 到替換后的種群;判斷遺傳代數(shù)是否大于最大的遺傳代數(shù)或者得到某個個體的目標(biāo)函數(shù)值 是否滿足要求,如果達(dá)到最大遺傳代數(shù)或者滿足要求,則算法停止,否則遺傳代數(shù)完成自加 1的操作,并W替換后的種群作為下一代父代種群進(jìn)入步驟(2)。
[0016] 進(jìn)一步地,所述步驟(3)的具體過程為:選擇嚴(yán)格單調(diào)遞增的指數(shù)函數(shù)作為調(diào)制 函數(shù),調(diào)制后序列為X?,
[0017] X做化)=a.eb.s(k)
[001引其中,a、b為調(diào)制函數(shù)的參數(shù),k為個體的編號,k為整數(shù),取值范圍為從1到PS, PS為每代種群的規(guī)模,種群規(guī)模大小是固定不變的;S(k)為經(jīng)過排列的目標(biāo)函數(shù)序列中第 k個目標(biāo)函數(shù)值,X?化)為8化)對應(yīng)的調(diào)審IJ數(shù)值。
[0019] 進(jìn)一步地,所述步驟(4)的具體過程為,設(shè)Bi為迭代次數(shù)標(biāo)識,表示第Bi次迭代 計算,Bi為正整數(shù),初始值為1,具體步驟為,
[0020](41)對調(diào)制后序列X?進(jìn)行累加處理,得到對應(yīng)第Bi次迭代的1-GAO序列X W,具 體過程如下
[0021]
[0022] 其中,k為個體的編號,k為整數(shù),取值范圍為從1到ND,ND為設(shè)定的GM(1,1)預(yù) 測序列長度值,ND為非負(fù)整數(shù),XW化)為經(jīng)過累加處理的1-GAO序列中第k位的數(shù)值;
[0023] (42)計算出緊鄰均值生成序列ZW,具體過程為
[0024]
[0025] 其中,k為個體的編號,k為整數(shù),取值范圍為從2到ND,ZW化)為緊鄰均值生成序 列中第k位的數(shù)值;
[0026] (似)結(jié)合GM(1,1)的模型X? (k)+Ga .Z(i)似=抓,Ga、抓為模型參數(shù),利用最小 二乘原理計算第Bi次迭代的估計參數(shù)Gael、抓M取值
[0029] 其中,Gael和抓M為第Bi次迭代計算所得的GM(1,1)模型中對應(yīng)參數(shù)最小二乘意 義下的估計值,完成一次迭代過程,判斷Bi是否達(dá)到最大值PS-ND+1,如果達(dá)到最大值則停 止該參數(shù)計算迭代過程,進(jìn)入步驟(44),如果沒有達(dá)到最大值,Bi進(jìn)行一次自加操作,即Bi = Bi+l,進(jìn)入步驟(41);
[0030] (44)對計算得到的參數(shù)序列進(jìn)行自更新操作,
[003U GaBi= (l-y) ? GaBi-1+y ? GaBi[003引抓M=(1- y)?抓Bi-1+y?抓Bi
[0033] 其中Bi的取值范圍為從2到PS-ND+1,y表示遺忘因子,通過此迭代計算得到最 后的參數(shù)Gaps-罰和抓ps-罰,結(jié)合對應(yīng)的GM(1,1)預(yù)測出X? (PS+1),
[0034]
[0035](45)計算得到進(jìn)化激勵算子0,
[0036]
[0037] 其中a、b為指數(shù)調(diào)制函數(shù)的參數(shù),In為取對數(shù)函數(shù);
[003引進(jìn)一步地,所述步驟巧)中計算進(jìn)化激勵算子對應(yīng)的代種群中每個個體的變化率 如下:
[0039]
[0040] 其中0為進(jìn)化激勵算子,P J表示第j個個體對應(yīng)的變化率P J,j為正整數(shù),取值 范圍從1至Ij PS,PS為種群規(guī)模,Pj.表示第j個個體,f 為當(dāng)前代種群中個體目標(biāo)函數(shù)值 中的最大值,為第j個個體的目標(biāo)函數(shù)值。
[004U 進(jìn)一步地,所述步驟化)的具體過程如下;設(shè)定規(guī)劃種群大小GN和幅度控制因子 A,GN為整數(shù),A為實數(shù);
[0042] 第j個個體進(jìn)行規(guī)劃,用指數(shù)函數(shù)進(jìn)行規(guī)劃后代的規(guī)??刂疲玫降趈個個體的規(guī) 劃后代個數(shù)nfj為
[0043]
[0044] 其中,C和d為指數(shù)規(guī)劃函數(shù)的參數(shù),round表示四舍五入取整數(shù),假設(shè)第j個個體 用公表示,采用實數(shù)編碼,每個個體的維數(shù)為R,每個個體的對應(yīng)位置取值范圍滿足要求:
[0045] 盡<乂"(/-)<萬,
[0046] 其中扭(r)表示第j個個體第r個位置上取值,拉和瓦分別表示每個個體第r個 位置上取值的下限值和上限值,r為正整數(shù),取值范圍從1到R ;
[0047]第j個個體得到的規(guī)劃后代個數(shù)為n戶,每個規(guī)劃后代的產(chǎn)生都是基于第j個個體 的編碼取值的,針對每個編碼位子隨機決定是加變化或減變化,如果對第j個個體的第r個 位置進(jìn)行加變化,則產(chǎn)生的第i個規(guī)劃后代不1,,.的第r個位置上的取值(叫,則由下式 得到:
[0048]
[0049] 其中,rand表示按照均勻分布隨機產(chǎn)生的一個位于區(qū)間[0, 1]中的一個實數(shù),若 對第j個個體的第r個位置進(jìn)行減變化,則有
[0050] 乂=乂心)-化/. [乂' (r)-么.].Z!
[0化1] 通過此種規(guī)劃后代,基于第j個個體產(chǎn)生n戶個后代個體,構(gòu)建第j個個體的候選 個體集合為{義^,《^,義"2^,,-,《1'4,計算集合中每個個體的目標(biāo)函數(shù)值,取目標(biāo)函數(shù)值取 值最小的個體替換原來的第j個個體公,依此更新此代種群中的所有個體,得到新的種群, 即完成對此代種群的更新。
[005引進(jìn)一步地,所述步驟(7)的具體過程為,對更新后的種群,利用步驟(2)至驟巧) 的方法計算得到更新后種群中每個個體的變化率,假設(shè)更新后的第j個個體xj對應(yīng)的個體 變化率為Pj.,設(shè)置交叉控制因子為Ct,變異控制因子為Mu,Ct,Mu為正實數(shù),取值區(qū)間均為 (0, 1],得到第j個個體公對應(yīng)的交叉率公為
[0053] Pt二Cf.Pj
[0054] 第j個個體X飾應(yīng)的變異率柏為
[0055] pL二Mu.pj
[0化6] 其中j為正整數(shù),取值范圍從1到PS。
[0057] 進(jìn)一步地,所述步驟化)中的幅度控制因子取值區(qū)間為(0, 1]。
[005引進(jìn)一步地,所述參數(shù)C取大于0的實數(shù),參數(shù)d取小于0的實數(shù),具體取值需要根 據(jù)實際問題進(jìn)行設(shè)置,取值組合可W調(diào)整具體個體的規(guī)劃后代規(guī)模之間的比例關(guān)系。
[0化9