吳菲釩 吳湘華
摘要:文章通過(guò)研究傳統(tǒng)免疫算法和混沌優(yōu)化理論,通過(guò)對(duì)幾種常用的混沌映射和隨機(jī)函數(shù)性能進(jìn)行大量的比對(duì)分析,選取Logistics映射作為混沌優(yōu)Matlab進(jìn)行仿真模擬,研究結(jié)果表明,改進(jìn)后的基于混沌的免疫算法具有更高的搜索精度和更快的收斂速度。
關(guān)鍵詞:免疫算法;混沌映射;種群更新;搜索效率;收斂速度
中圖分類(lèi)號(hào):TP391? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)31-0064-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
傳統(tǒng)免疫算法在搜索空間的探索和利用方面存在一些局限性,隨著問(wèn)題規(guī)模的不斷擴(kuò)大,算法的效率和精度也越來(lái)越難以滿足實(shí)際需求。將混沌理論引入免疫算法,以期提高算法的全局搜索能力和收斂速度[1]?;煦缋碚撌且环N新的數(shù)學(xué)分支,可以描述非線性系統(tǒng)的復(fù)雜性和不確定性,其重要特征是豐富的非周期性運(yùn)動(dòng)和靈敏度依賴(lài)于初值。將混沌理論融入免疫算法中,可以有效地增強(qiáng)算法的隨機(jī)性和多樣性,以適應(yīng)更加復(fù)雜的優(yōu)化問(wèn)題和任務(wù)。
1 傳統(tǒng)免疫算法和混沌優(yōu)化簡(jiǎn)介
傳統(tǒng)免疫算法的基本思想是利用一種免疫系統(tǒng)中具有自我適應(yīng)機(jī)制的防御能力,對(duì)一定范圍內(nèi)的個(gè)體進(jìn)行分類(lèi)、篩選、優(yōu)化和選取。該算法的計(jì)算框架主要包含外周識(shí)別、克隆擴(kuò)增、抗體選擇、抗體變異和免疫刺激這五個(gè)環(huán)節(jié)。該算法擁有自適應(yīng)性、多樣性和并行性等獨(dú)特特性,具有全局搜索能力強(qiáng)、收斂速度較快的優(yōu)點(diǎn),并且適用于解決復(fù)雜多模態(tài)優(yōu)化問(wèn)題,例如函數(shù)優(yōu)化、圖像識(shí)別、分類(lèi)問(wèn)題和數(shù)據(jù)挖掘等。然而,傳統(tǒng)免疫算法對(duì)參數(shù)調(diào)整非常敏感[2]等。另外,該算法并不是所有問(wèn)題的最佳解決方案,針對(duì)某些特定問(wèn)題可能存在更優(yōu)的解決方案[3]。
混沌優(yōu)化算法是一種基于混沌理論的新型優(yōu)化方法。該算法源于混沌理論中的“蝴蝶效應(yīng)”,使用隨機(jī)化的方式在搜索解空間中尋求最優(yōu)解。混沌優(yōu)化算法的核心思想是基于混沌現(xiàn)象的隨機(jī)性和確定性。它最初是由美國(guó)數(shù)學(xué)家James Yorke所提出,在此基礎(chǔ)上,又有很多學(xué)者對(duì)其進(jìn)行了改進(jìn)和發(fā)展。混沌優(yōu)化算法的運(yùn)行過(guò)程比較簡(jiǎn)單,首先需要定義一個(gè)優(yōu)化函數(shù),然后確定混沌映射、參數(shù)及優(yōu)化方案等,接著就可以對(duì)目標(biāo)函數(shù)進(jìn)行優(yōu)化?;煦鐑?yōu)化算法能夠更快地找到全局最優(yōu)解,進(jìn)而提升了算法的搜索精度和收斂速度[4]。
2 傳統(tǒng)免疫算法的實(shí)現(xiàn)
2.1 傳統(tǒng)免疫算法實(shí)現(xiàn)過(guò)程中幾個(gè)因素說(shuō)明
1) 編碼選擇:采用二進(jìn)制編碼能夠很好地控制求解精度,其主要缺點(diǎn)有:一是在求解過(guò)程中要反復(fù)進(jìn)行二進(jìn)制與十進(jìn)制之間的相互轉(zhuǎn)換,當(dāng)十進(jìn)制轉(zhuǎn)換為二進(jìn)制,數(shù)據(jù)會(huì)存在一定失真;二是當(dāng)函數(shù)自變量多個(gè)值時(shí),要采用多個(gè)二進(jìn)制矩陣表示。采用實(shí)數(shù)編碼不需要進(jìn)行數(shù)制的轉(zhuǎn)換,能夠用實(shí)數(shù)矩陣方便地表示有多個(gè)自變量的情形。Matlab中,double類(lèi)型的實(shí)數(shù)為64位,具有較高的精度,通過(guò)系統(tǒng)函數(shù)roundn控制求解精度,為避免初始種群精度達(dá)不到要求,可以先用二進(jìn)制編碼初始化,再將二進(jìn)制種群轉(zhuǎn)化為十進(jìn)制實(shí)數(shù)初始種群。
2) 函數(shù)句柄:Matlab中,采用函數(shù)句柄可以方便地求取不同的測(cè)試函數(shù)的函數(shù)值,不需要為每一個(gè)測(cè)試函數(shù)編寫(xiě)相應(yīng)的代碼。
2.2 傳統(tǒng)免疫算法主要算子描述與實(shí)現(xiàn)
1) 算子2-1:種群隨機(jī)初始化initrand
種群初始化是免疫算法中最基本的算子之一,它負(fù)責(zé)初始化一定規(guī)模的種群。初始種群中的個(gè)體盡可能地保留搜索空間的多樣性和充分覆蓋特征空間,以便后續(xù)的算子能夠?qū)ΨN群進(jìn)行有效的優(yōu)化。
2) 算子2-2:抗體濃度算子density
抗體濃度是表示種群多樣性的重要性能指標(biāo),其值過(guò)高不利于全局尋優(yōu),本文基于歐幾里得距離求解抗體濃度。
3) 算子2-3:選擇算子selection
主要用于免疫選擇,克隆抑制求最優(yōu)個(gè)體等操作,在免疫選擇中主要負(fù)責(zé)選取具有高激勵(lì)度的抗體,以保留優(yōu)秀基因并放棄劣質(zhì)基因。
4) 算子2-4:隨機(jī)變異算子randmutation
隨機(jī)變異算子通過(guò)rand函數(shù)隨機(jī)產(chǎn)生實(shí)數(shù),進(jìn)行mapping映射后,替換進(jìn)行變異的個(gè)體,引入變異算子有利于更好的搜索解空間。
5) 算子2-5:樣本特征算子
樣本特征值算子用于保存樣本空間最小值、最大值、中位數(shù)、平均數(shù)、眾數(shù)、極差、方差、標(biāo)準(zhǔn)差等。
6) 算子2-6:映射算子mapping
映射算子可將某一區(qū)間范圍的矩陣映射成另一取值范圍的矩陣,有利于不同取值范圍的矩陣互相計(jì)算與轉(zhuǎn)化。
7) 算子2-7:計(jì)算收斂代數(shù)算子judgeiter
免疫算法中的最優(yōu)抗體會(huì)隨著迭代次數(shù)的增加而不斷變化,將最優(yōu)抗體親和度作為判定收斂代數(shù)的一個(gè)標(biāo)準(zhǔn),將抗體種群的方差作為判定收斂代數(shù)的另外一個(gè)標(biāo)準(zhǔn)。當(dāng)最優(yōu)抗體親和度不再變化,同時(shí)抗體種群方差小于某一值時(shí),研究者認(rèn)為算法收斂。
2.3 傳統(tǒng)免疫算法仿真分析與結(jié)論
在Matlab中,選用如下測(cè)試函數(shù)行仿真實(shí)驗(yàn),并做出分析:
f(x)=x+10×sin(5×x)+7×cos(4×x),其中x取值范圍為[-10,10]
通過(guò)對(duì)傳統(tǒng)免疫算法多次運(yùn)行,發(fā)現(xiàn)初始種群大小對(duì)收斂代數(shù)有明顯影響。種群大小分別取50、100、200時(shí),各運(yùn)行50次,每次實(shí)驗(yàn)使用initrand函數(shù)隨機(jī)產(chǎn)生初始種群。當(dāng)種群大小為50時(shí),平均收斂代數(shù)是8.08,當(dāng)種群大小為100時(shí),平均收斂代數(shù)是6.00,當(dāng)種群大小為200時(shí),平均收斂代數(shù)是5.46。
通過(guò)對(duì)傳統(tǒng)免疫算法多次運(yùn)行,發(fā)現(xiàn)初始種群大小對(duì)收斂代數(shù)有明顯影響。種群大小越大,表示搜索越大,收斂越快。如果初始種群中出現(xiàn)靠最優(yōu)值較近的個(gè)體,收斂也會(huì)加快。
3 基于混沌的免疫算法改進(jìn)
3.1 基于混沌的免疫算法簡(jiǎn)介
基于混沌與免疫算法的優(yōu)化方法將混沌理論與免疫系統(tǒng)的選擇性?xún)?yōu)化能力相結(jié)合,平衡多樣性和收斂性,以提高算法的全局搜索能力和搜索精度[5]。該算法不僅結(jié)合混沌優(yōu)化算法的優(yōu)勢(shì),還融合了免疫算法的自適應(yīng)性和解決高維優(yōu)化問(wèn)題的能力,因此在實(shí)際應(yīng)用中表現(xiàn)出色?;诨煦缑庖咚惴ǖ幕舅枷胧窃O(shè)計(jì)一個(gè)混沌運(yùn)動(dòng)跟隨免疫算法的運(yùn)動(dòng)過(guò)程,使算法產(chǎn)生更多的多樣性[6]。在迭代尋優(yōu)階段,算法通過(guò)免疫學(xué)的選擇、進(jìn)化和變異等機(jī)制,逐步優(yōu)化抗體,直到收斂為止。最終得到全局較優(yōu)解。
3.2 混沌算子的優(yōu)選
混沌優(yōu)化算法(Chaos Optimization,CO) 是一種基于混沌理論的全局優(yōu)化算法,它也被稱(chēng)為混沌搜索算法(Chaos Search,CS) 。該算法的思想源自混沌現(xiàn)象中表現(xiàn)出的隨機(jī)性和確定性?;煦鐑?yōu)化算法的優(yōu)點(diǎn)有全局尋優(yōu)能力強(qiáng)、搜索精度高、收斂速度快等。但在解決非線性問(wèn)題和高維優(yōu)化問(wèn)題時(shí),可能會(huì)陷入局部最小值點(diǎn)?;煦缬成渫ǔS糜谏苫煦缧蛄?,具有非線性、對(duì)初值敏感依賴(lài)性、遍歷性、隨機(jī)性、長(zhǎng)期不可預(yù)測(cè)性、軌道不穩(wěn)定性和分叉等主要特征,并且其生成的混沌序列是一種隨機(jī)序列。
常見(jiàn)的混沌映射有很多,本文主要考慮了Logistic映射、PWLCM映射、Tent映射[7]等。取x0=rand(1),u=4,生成樣本空間為10 000的Logstic混沌序列,進(jìn)行10 000次運(yùn)算,Logistic映射樣本空間的平均方差為0.122 498。取x0=rand(1),p=0.4,生成樣本空間為10 000的PWLCM混沌序列,進(jìn)行10 000次運(yùn)算,PWLCM映射樣本空間平均方差為0.083 332。取x0=rand(1),alfa=0.4,生成樣本空間為10 000的Tent混沌序列,進(jìn)行10 000次運(yùn)算,Tent映射樣本空間平均方差為0.083 266。生成樣本空間為10 000的Tent混沌序列,進(jìn)行10 000次運(yùn)算,隨機(jī)函數(shù)rand平均方差0.081 666。本文選擇選擇Logstic映射,其方差較大,具有更好的搜索空間分布。Logistic映射是一種常見(jiàn)的非線性映射。其數(shù)學(xué)表達(dá)式見(jiàn)公式(1) 。
x(n+1)=u×x(n)×(1-x(n))? ? ? ?(1)
其中u為混沌參數(shù),u的取值范圍為(0,4]。x(n)為映射變量,取值范圍為(0,1),x(n)不能為0、0.25、0.5、0.75、1.0。
3.3 混沌迭代方式的選擇
選擇Logistic映射優(yōu)化初始種群可以采用如下三種方式:
1) 首先產(chǎn)生一個(gè)隨機(jī)矩陣,對(duì)隨機(jī)矩陣中的各元素進(jìn)行若干次混沌迭代,取混沌序列最后一個(gè)數(shù)代替該元素。
2) 先產(chǎn)生一個(gè)隨機(jī)數(shù),然后進(jìn)行混沌迭代,得到一個(gè)混沌矩陣;截取該混沌序列前popsize個(gè)數(shù)得到一個(gè)全新矩陣。
3) 從2) 中混沌矩陣中隨機(jī)取popsize個(gè)數(shù)得到全新矩陣。
將上述三種方式生成的矩陣進(jìn)行比較:矩陣A為隨機(jī)矩陣,矩陣B通過(guò)方式1)求得,矩陣B1通過(guò)方式2)求得,矩陣B2通過(guò)方式3)求得。在HPC高性能集群平臺(tái),樣本容量為50,不同混沌迭代次數(shù)(1~10 000次)下各運(yùn)行10 000次,獲得矩陣A、B、B1、B2的最小值、最大值、中位數(shù)、平均數(shù)、方差、標(biāo)準(zhǔn)差、熵等特征的平均值。對(duì)矩陣A、矩陣B、矩陣B1、矩陣B2的主要特征進(jìn)行兩兩比較得到結(jié)果如表1所示。
其中X_Y表示X矩陣對(duì)應(yīng)樣的本特征值小于Y矩陣對(duì)應(yīng)樣的本特征值均值的數(shù)量,由上表可知矩陣B、矩陣B1、矩陣B2優(yōu)于矩陣A;矩陣B優(yōu)于矩陣B1,矩陣B略?xún)?yōu)于矩陣B2;矩陣B2優(yōu)于矩陣B1??偟恼f(shuō)來(lái),矩陣B>矩陣B2>>矩陣B1>>矩陣A,對(duì)初始樣本空間采用第1) 種混沌優(yōu)化效果更好。
3.4 混沌優(yōu)化初始種群算子描述與實(shí)現(xiàn)
函數(shù)名:Logistic。功能:通過(guò)混沌隨機(jī)產(chǎn)生初始種群。輸入:矩陣A,混沌參數(shù)u,混沌迭代次數(shù)MaxIter。輸出:混沌矩陣A。具體執(zhí)行過(guò)程:1) 建立循環(huán)由1至MaxIter;2) 通過(guò)Logistic映射混沌迭代MaxIter代,返回矩陣A。
2.5 種群隨機(jī)初始化和種群混沌初始化對(duì)比主程序描述與實(shí)現(xiàn)
具體實(shí)現(xiàn)過(guò)程:步驟1:設(shè)定算法的參數(shù);步驟2:調(diào)用initrand函數(shù)得到隨機(jī)初始種群poprand,并確保poprand中不出現(xiàn)Logistic混沌優(yōu)化中不能出現(xiàn)的值(0,0.25,0.5,0.75,1) ;步驟3:對(duì)步驟2生成的隨機(jī)初始種群poprand,調(diào)用Logstic函數(shù)進(jìn)行Logstic混沌迭代,得到混沌初始種群popchaos;步驟4:判斷是否達(dá)到最大迭代代數(shù)。如果是,則結(jié)束循環(huán),并執(zhí)行步驟7;否則繼續(xù)執(zhí)行步驟5;步驟5:對(duì)隨機(jī)初始種群poprand和混沌初始種群popchaos分別進(jìn)行激勵(lì)度計(jì)算、免疫選擇、免疫抑制,得到抑制種群inhipoprand和抑制種群inhipopchaos,并計(jì)算這兩個(gè)種群的特征;步驟6:分別刷新種群poprand和種群popchaos,返回步驟4;步驟7:當(dāng)種群迭代次數(shù)到達(dá)設(shè)定的值時(shí)停止迭代;步驟8:根據(jù)步驟5的數(shù)據(jù),調(diào)用judgeiter函數(shù)分別計(jì)算隨機(jī)初始種群poprand和混沌初始種群popchaos的收斂代數(shù)。
4 傳統(tǒng)免疫算法與混沌優(yōu)化免疫算對(duì)比仿真與分析
本文采用對(duì)比混沌改進(jìn)后的免疫算法與傳統(tǒng)免疫算法的收斂速度來(lái)評(píng)估免疫算法的優(yōu)化效果。當(dāng)最優(yōu)個(gè)體和最優(yōu)親和度趨于某一極小值時(shí),即可判定免疫算法已經(jīng)收斂。分別對(duì)傳統(tǒng)免疫算法和根據(jù)混沌種群初始化改進(jìn)后的免疫算法進(jìn)行運(yùn)算分析。
1)選擇測(cè)試函數(shù)f1(X1,X2) =(3/(0.05+(X12+X22)2))+X12+X22,手工運(yùn)行5次,每次用initrand函數(shù)產(chǎn)生一個(gè)poprand隨機(jī)初始化種群,對(duì)poprand種群使用Logistic函數(shù)混沌迭代100次(u=4.0) 生成popchaos混沌優(yōu)化初始種群,進(jìn)行免疫操作,使用隨機(jī)初始種群時(shí),免疫算法平均收斂代數(shù)為22.6。使用混沌優(yōu)化初始種群時(shí),免疫算法平均收斂代數(shù)為17.8。
2)選擇測(cè)試函數(shù)f(x)=x+10×sin(5×x)+7×cos(4×x),在HPC高性能集群中對(duì)主函數(shù)進(jìn)行10 000次運(yùn)算,主要參數(shù)設(shè)置同表2.1,每次用initrand函數(shù)產(chǎn)生一個(gè)poprand隨機(jī)初始化種群,對(duì)poprand種群使用Logistic函數(shù)混沌迭代10 000次(u=4.0) 生成popchaos混沌優(yōu)化初始種群,進(jìn)行免疫操作。對(duì)運(yùn)行情況進(jìn)行統(tǒng)計(jì)分析,運(yùn)行過(guò)程中,采用混沌優(yōu)化種群的迭代次數(shù)小于隨機(jī)種群的情形為6 147次。
實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)混沌優(yōu)化后的種群比隨機(jī)函數(shù)產(chǎn)生的種群具有更好的搜索空間,能更快收斂。
5 結(jié)束語(yǔ)
本文首先對(duì)目前國(guó)內(nèi)外有關(guān)傳統(tǒng)免疫算法和混沌優(yōu)化的研究狀況進(jìn)行了簡(jiǎn)單介紹,分析比較常見(jiàn)的幾種混沌映射與隨機(jī)函數(shù)產(chǎn)生初始種群的優(yōu)越性,并選擇合適的混沌優(yōu)化算子對(duì)初始化種群,在免疫算法的基礎(chǔ)上,基于混沌的相關(guān)原理對(duì)其進(jìn)行優(yōu)化,提高了免疫算法效率。同時(shí)為驗(yàn)證改進(jìn)后免疫算法的改進(jìn)效果,選擇了合適的測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn),并對(duì)結(jié)果歸納與分析。但論文還存在著些許不足及有待進(jìn)一步探索與研究的內(nèi)容,如對(duì)于該算法的研究與優(yōu)化仍有許多工作要做,在實(shí)際應(yīng)用中需要根據(jù)具體問(wèn)題進(jìn)行優(yōu)化參數(shù)的選擇、算法的改進(jìn)和優(yōu)化策略的設(shè)計(jì),以期在更多的實(shí)際問(wèn)題中發(fā)揮該算法的優(yōu)勢(shì)和應(yīng)用價(jià)值。如何在變異操作等其他免疫操作中合理運(yùn)用混沌相關(guān)的理論,使得已改進(jìn)的算法擁有更高的效率等。
參考文獻(xiàn)
[1] 王瓊,呂微,任偉建.免疫遺傳算法及在優(yōu)化問(wèn)題中的應(yīng)用綜述[J].計(jì)算機(jī)應(yīng)用研究,2009,26(12):4428-4431.
[2] 武曉朦, 袁榕澤, 李英量,等.基于新冠病毒群體免疫算法的有源配電網(wǎng)優(yōu)化調(diào)度[J].系統(tǒng)仿真學(xué)報(bào),2023(5):1-10.
[3] 王小霞,王丹,張?jiān)佘?求解約束多目標(biāo)區(qū)間優(yōu)化問(wèn)題的人工免疫算法[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2022,39(5):94-99.
[4] 張春慨,徐立云,邵惠鶴.改進(jìn)混沌優(yōu)化及其在非線性約束優(yōu)化問(wèn)題中的應(yīng)用[J].上海交通大學(xué)學(xué)報(bào),2000,34(5):593-595,599.
[5] 包曉曉,葉春明,計(jì)磊,等.改進(jìn)混沌煙花算法的多目標(biāo)調(diào)度優(yōu)化研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(9):2601-2605.
[6] 王瑞琪,張承慧,李珂.基于改進(jìn)混沌優(yōu)化的多目標(biāo)遺傳算法[J].控制與決策,2011,26(9):1391-1397.
[7] 陳志剛,梁滌青,鄧小鴻,等.Logistic混沌映射性能分析與改進(jìn)[J].電子與信息學(xué)報(bào),2016,38(6):1547-1551.
【通聯(lián)編輯:朱寶貴】