一種用于函數(shù)優(yōu)化的免疫算法
人工免疫系統(tǒng)是基于生物免疫系統(tǒng)特性而發(fā)展的新興智能系統(tǒng)。利用免疫系統(tǒng)的克隆選擇機(jī)制,提出一種用于函數(shù)優(yōu)化的改進(jìn)免疫算法。其主要特點是采用克隆和自適應(yīng)變異等操作,提高收斂速度和種群的多樣性。仿真程序表明,該算法能以較快速度完成給定范圍的搜索和全局優(yōu)化任務(wù)。
本文引用地址:http://www.ex-cimer.com/article/83867.htm在工程實際中,很多問題都可轉(zhuǎn)化為函數(shù)優(yōu)化問題,而對于高維、非凸、且有多個局部極值點的函數(shù)優(yōu)化問題,傳統(tǒng)的基于梯度的算法通常不能求得理想解。免疫系統(tǒng)作為一種分布式自學(xué)習(xí)系統(tǒng),能自適應(yīng)地維持群體多樣性及具有自我調(diào)節(jié)功能,導(dǎo)致基于免疫機(jī)制的算法具有整體、局部搜索能力強(qiáng)的特點,使得這類算法在函數(shù)優(yōu)化、組合優(yōu)化、模式識別、數(shù)據(jù)挖掘及機(jī)器學(xué)習(xí)等方面得到了有效應(yīng)用。
1 免疫算法原理
免疫算法的靈感來自生物獲得性免疫的克隆選擇原理。根據(jù)該原理,在生物免疫系統(tǒng)中,一旦病原體侵入肌體就被分解為抗原片段,B淋巴細(xì)胞能夠為產(chǎn)生相應(yīng)的抗體與抗原結(jié)合,同時活化、增殖和分化,產(chǎn)生漿細(xì)胞,通過中和、溶解和調(diào)理等作用,最終使抗原從體內(nèi)清除。另有一些B細(xì)胞變成了長期存活的記憶細(xì)胞,它通過血液、淋巴和組織液循環(huán),為下一次快速、高效的消除相同或者類似抗原引起的感染奠定了基礎(chǔ)。
免疫算法采用高變異克隆的單性繁殖搜索方式,避免了遺傳算法中的交叉操作引起的模式干擾,同時具有未被激發(fā)的細(xì)胞消亡及記憶細(xì)胞的產(chǎn)生等過程又保證了抗體的多樣性。
2 算法描述
克隆選擇算法模擬生物免疫系統(tǒng)的克隆選擇原理,一般將待優(yōu)化的目標(biāo)函數(shù)及其約束條件視為抗原,其算法步驟如下:
(1)初始化:隨機(jī)產(chǎn)生N個二進(jìn)制編碼的抗體對應(yīng)問題的可能解。
(2)評價和選擇1:將N個抗體分解成由m和r個抗體組成的兩部分Am,Ar,分別表示進(jìn)入記憶集的抗體和剩下的部分,其中進(jìn)入記憶集的都是親和度較高的抗體。
(3)克?。涸谟H和度最高的抗體中選擇k個進(jìn)行克隆,克隆的數(shù)量與其親和度成正比。
(4)變異:模擬生物克隆選擇中的超變異過程,對克隆后的抗體執(zhí)行變異操作,變異按某一變異概率以一定規(guī)模隨機(jī)進(jìn)行。
(5)評價和選擇2:重新計算變異后的抗體的親和度,若克隆變異后的抗體中親和度最高的抗體比父代抗體的親和度還要高,就用該抗體替換原抗體,形成薪的記憶集。
(6)消亡:模擬生物克隆選擇中5%的B細(xì)胞自然消亡的過程,在Ar中選擇d個親和度最低的抗體重新初始化,以保證抗體的多樣性。
(7)檢查是否滿足終止條件,若是,則終止,否則轉(zhuǎn)到(2),進(jìn)入下一次迭代。
通過分析不難發(fā)現(xiàn),在CLONAL算法中,所有個體都是二進(jìn)制編碼,計算時需要將十進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù),最后又必須將二進(jìn)制數(shù)再轉(zhuǎn)化為十進(jìn)制數(shù);而且對于多維函數(shù)的優(yōu)化,二進(jìn)制編碼面臨“維數(shù)災(zāi)”問題;其次,二進(jìn)制的位數(shù)也限制了求解的精度,要求得高精度的解,勢必大幅提高二進(jìn)制編碼的位數(shù),也給計算帶栗了麻煩;另外,在CLDNAL算法中,變異率是一個定值,抗體按這個變異率產(chǎn)生一定規(guī)模的隨機(jī)變異,這樣雖擴(kuò)大了搜索空間,增加了抗體的多樣性,同時也可能破壞親和度高的抗體,打亂抗體的結(jié)構(gòu),降低收斂速度。文獻(xiàn)提出一種改進(jìn)免疫克隆多樣性算法,采用實數(shù)編碼,但它采用變異整個抗體群的方式進(jìn)行變異,沒有保持上代中親和度高的抗體的優(yōu)勢。文獻(xiàn)結(jié)合小生境技術(shù),提出一種新的免疫算法,但該算法沒有克隆操作,雖提高了收斂速度,但限制了搜索空間。
本文提出了一種改進(jìn)的克隆選擇算法,該算法采用實數(shù)編碼,并引入自適應(yīng)變異算子,根據(jù)抗體的親和度調(diào)整變異步長。仿真實驗說明該算法收斂速度快.運算簡單、易于實現(xiàn)。
3 算法改進(jìn)
在改進(jìn)的函數(shù)優(yōu)化免疫算法中,以實數(shù)編碼的候選解作為抗體,將目標(biāo)函數(shù)和約束條件視為抗原,將親和度高的抗體按與其親和度成正比進(jìn)行克隆,并引入自適應(yīng)變異算子,與親和度成反比進(jìn)行變異,使變異程度隨著親和度的提高逐步減小,促使抗體的穩(wěn)定收斂;同時親和度低的抗體按一定比例重新初始化,以保證多樣性。算祛步驟如下:
(1)隨機(jī)初始化種群,種群大小為N,抗體采用實數(shù)編碼;
(2)根據(jù)目標(biāo)函數(shù)計算所有抗體的親和度;
(3)若達(dá)到結(jié)束條件,算法終止;
(4)選出部分親和度高的進(jìn)入記憶Am,剩下的抗體記為Ar;
(5)在Am中選出親和度最高的k個抗體進(jìn)行克隆得到克隆抗體群Ab;
(6)根據(jù)抗體的親和度計算每個抗體的變異率,并按該變異率進(jìn)行變異,得到變異抗體群Ac;
(7)重新計算Ac中每個抗體的親和度,在Ac中選出親和度高的抗體,并用它們調(diào)整記憶集;
(8)在抗體的記憶集之外取得d個親和度最低的抗體運用消亡算子予以拋棄,將其重新初始化,形成新的免疫網(wǎng)絡(luò);
(9)回到(2)。
評論