一種用于函數優化的免疫算法
3.1 克隆變異
本文引用地址:http://www.104case.com/article/83867.htm算法中主要的免疫操作包括了克隆和變異。
克隆是拷貝抗體編碼模式的過程,假設父代抗體為X=[x1,x2,……xn]T,則克隆后產生的子代抗體為X′=Ii×X,Ii是NCi維行向量。而NCi就決定了抗體克隆的數量,在這里NCi可由下式得到:
β∈(0,1)是克隆常數,N是種群規模,將要克隆的抗體按親和度排序,i是其序號。其結果是親和度越高的抗體克隆的數量越多。
變異的目的是使子代抗體的編碼發生變化,以期得到優于父代的更好的解。由于算法中的抗體采用實數編碼,因此原來的變異方法不再適用,而是采取了高斯變異的方式,并且變異并不作用到原始種群。
為了能在親和度高的抗體周圍集中搜索,同時又保證抗體的多樣性,本文引入了一種自適應變異算子,即對每一個變異算子作用到的個體分量:
其中N(0,1)是一個服從標準高斯分布的隨機數;而Nmi則對應抗體的變異率,不失一般性,對求解最小值的問題:
顯然,抗體的變異率是與其親和度成反比的,親和度越高變異率越小,抗體在每次迭代過程中根據親和度自適應的調整變異步長,使得在親和度高的抗體周圍集中搜索以提高收斂速度,同時保持種群的多樣性。ρ為變異常數,用來調整變異強度,與搜索的空間大小和種群規模相關。
3.2 調整免疫網絡
與遺傳算法相比,免疫算法的一大特點就是其具有記憶性,從新的抗體群中選出優勢個體,排除退化個體的過程就是重新生成免疫網絡的過程。
經過克隆和變異后,若存在新抗體ρ=min{f(xij)|j=1,2,……n},使得f(p)
而對于那些退化的個體,即親和度最低的一部分抗體,則通過重新初始化的方法使其消亡,以保持種群的多樣性。
4 仿真實驗
為測試算法性能采用了以下3個典型測試函數:
初始種群大小為100,維數為20,最大截止代數為400的情況下,改進的克隆選擇算法(表1中顯示為ACLONALG)連續lO次實驗的結果與CLONALG算法比較見表l。
實驗結果表明,算法在3個函數上均優于CLONALG算法,收斂速度和精度都有明顯提高。圖1、圖2和圖3分別顯示了CLONALG和改進的克隆選擇算法(ACLONLG)在3個函數上運行10次的平均實驗結果,縱坐標取函數值的對數,其中cLONALG(10)表示維數為10的CLONALG算法,其他類似。從圖中可以看出,本文提出的算法對于f1來說,在lO維的情況下不及CLONALG,但在20維的情況下卻優于CLONALG,特別在運行后期收斂速度加快;而在f2和f3上,收斂速度和精度均高出CLONALC,顯示出明顯的優勢。
本文介紹了免疫優化算法的基本原理,并通過分析,提出了一種改進的算法用于函數優化。該算法的主要步驟包括初始化種群、親和度計算、選擇、克隆、超變異、消亡等,屬隨機優化算法,具有顯示的并行性。通過3個典型測試函數對算法進行了仿真實驗,與CLONALG的結果進行了比較。結果表明,本文所提算法收斂速度和精度均有提高,解的多樣性增加,在高維情況下優勢明顯。
評論