余俊毅 陳平華



摘要:針對內部搜索算法(ISA)具有尋優精度差的缺陷,提出緞藍亭鳥優化器(sBO)與內部搜索算法的混合算法(sBO-ISA)。使用內部搜索算法中的構造組的尋優機制生成的坐標點及在目標函數排名中排在個體的前兩名或后兩名的個體坐標點擾動緞藍亭鳥優化器中的個體位置更新機制的當代起始點,并按一定概率選擇使用被個體的前兩名個體坐標點擾動的緞藍亭鳥優化器的個體位置更新機制還是被個體的后兩名個體坐標點擾動的緞藍亭鳥優化器的個體位置更新機制生成坐標點。通過對ISA算法的一系列修改,最終加強了算法的尋優能力。仿真實驗表明sBO-ISA算法尋優能力優于緞藍亭鳥優化器,同時也優于內部搜索算法。
關鍵詞:緞藍亭鳥優化器;元啟發式算法;內部搜索算法;混合算法
中圖分類號:TP18 文獻標識碼:A
文章編號:1009-3044(2019)30-0185-09
1概述
近年來,為了求解優化問題,一些學者提出了一些新的元啟發式算法,如內部搜索算法(Interior Seareh Algorithm,簡稱ISA)、緞藍亭鳥優化器(satin Bowerbird Optimizer,簡稱SBO)等算法。
ISA作為新式的元啟發式算法,在近幾年得到越來越廣泛應用并在部分優化問題中取得了一定的成果,如工程優化問題、優化神經網絡參數等。為了改進ISA,文獻[7]提出M-ISA算法,文獻[8]提出LISA算法,文獻[9]提出了自適應的ISA算法、二階段的ISA算法和結合差分策略的ISA算法,文獻[10]提出HISA算法,文獻[11]提出CSAISA算法,由文獻[12,13]可知,文獻[12]參考了文獻[13]中的交叉算子提出了HlSGA算法。綜上所述可知,關于內部搜索算法的研究正在逐步成為業界的研究熱點,并且對該算法的研究已經取得一定的進展。
由文獻[9]可知,內部搜索算法是一個具有缺陷的算法,該缺陷指的是尋優精度差。由文獻[1-2,9]可知,尋優精度不高的原因可能是ISA受ISA中的構造組(Composition Group)的公式影響,側重大范圍搜索,耗費過多搜索次數在較遠離較優位置區域,又根據SBO個體位置更新公式及輪盤選擇法的特點可知,SBO個體較側重搜索較優位置附近區域,所以為了緩解ISA算法所具有尋優精度差的缺陷,嘗試將ISA與SBO進行混合,使得混合后的算法(指SBO-ISA算法)既比SBO算法的尋優能力強也比ISA算法的尋優能力強。
2內部搜索算法
由文獻[1-2]可知,在迭代過程中,ISA個體除最優個體外,其余歸類為鏡子組(mirror group)或構造組,歸為鏡子組概率為a,每類個體執行相應機制搜索函數最優解,在每次迭代末尾部分執行新舊種群個體保留機制,ISA算法的詳細流程詳見文獻[1-2]。ISA的搜索機制的描述如下:
1)最優個體、鏡子組個體和構造組個體位置更新公式分別如公式(1)、(3)和(4)所示
3緞藍亭鳥優化器
由文獻[3-4]可知,SBO個體位置更新公式(機制)由公式(12)和(14)組成,該更新公式在每一維的更新中,執行完公式(12)后以mutuation的概率執行公式(14),該算法的詳細流程詳見文獻[3-4]。
SBO的搜索機制的描述如下:
1)個體移動公式和個體變異公式分別如公式(12)和(13)所示
4緞藍亭鳥優化器與內部搜索算法的混合算法
參考文獻[1-2,18,19]按某種規則并通過執行相應公式進行較大或較小范圍搜索(文獻[1-2]以概率規則及排名規則,文獻[18,19]以排名規則)的方法、文獻[18]利用坐標點間的距離制作個體更新公式的方法、文獻[20-23]利用排名信息在特定排名范圍內隨機選取個體用于制作個體更新公式及相應公式等內容或思想或方法并再次使用,使用在下文4.1節的較劣個體的數學表達式(指公式(15-26)和下文4.2節的被構造組公式擾動的SBO算法的個體移動公式的數學表達式(指公式(27-31,))中。
由文獻【1,2】、4.1節、4.2節和4.3節可知,SBO-ISA算法流程與內部搜索算法具有一定的相似性,SBO-ISA算法是在內部搜索算法的基礎上修改而成,主要是將內部搜索算法中最優個體更新公式替換成公式(261、將內部搜索算法中的新舊種群保留機制替換成緞藍亭鳥優化器p,4]的新舊種群保留策略,同時又參考文獻【9】中的結合差分策略的ISA算法使用含有最優個體坐標與當前個體坐標的向量差并隨機選取的個體坐標點作為起點的個體位置更新公式替代掉ISA的構造組部分的個體位置更新公式的做法并再次使用,將內部搜索算法中的構造組替換成含有公式(31)的尋優機制(詳情請查看4.2節的內容及4.3節的SBO-ISA的詳細流程)。
4.1最優個體位置更新公式的更改
4.2對構造組的更改
參考4.1節的內容、文獻【9】中的結合差分策略的ISA算法中用于替代掉構造組公式的個體位置更新公式和文獻【17】使用與當前個體排名相差不大的個體制作算子等內容或思想并再次使用,獲得被構造組公式擾動的SBO算法的個體移動公式的數學表達式(指公式(27-31))。
由文獻【28】可知,文獻【28】使用了根據個體目標函數排名劃定范圍分別執行相應的個體更新機制的方法。由文獻【1-2,28】可知,文獻【1-2】使用了文獻【28】用過的方法并同時用了按一定概率執行相應的位置更新公式的方法。參考文獻【1,2,28】的內容及文獻【1,2,28】使用過的方法并再次使用,獲得公式(31)中的執行規則(指在公式(31)中根據排名信息并且按概率決定執行公式(31)中的兩個式子的哪一個)和被更改后的構造組的執行過程,被更改后的構造組的執行過程是指:首先目標函數排名第二的個體執行公式(26),然后排名大于二的個體則按排名和概率執行被構造組公式擾動的SBO算法的個體移動公式(意思就是按公式(31)執行),并在此基礎上參考并按照文獻[4J中如何執行公式(14)的方法執行公式(14),也就是說在每一維的更新中按一定概率執行公式(14)(其概率值也依照文獻[4])。
4.3SBO-ISA算法流程
參考并根據緞藍亭鳥優化器的詳細流程、內部搜索算法的詳細流程和上述第4節的內容,獲得緞藍亭鳥優化器與內部搜索算法的混合算法(sBO-ISA)的詳細流程,SBO-ISA的詳細流程如下:
步驟1:初始化種群個體,計算每個個體的目標函數值,初始化當前迭代次數t=l。初始化個體坐標的維度DEMAX。
步驟2:如果迭代次數t大于最大迭代次數,則跳到步驟11,如果迭代次數小于等于最大迭代次數,則跳到步驟3。
步驟3:i賦值為1。
步驟4:如果xit是最優個體,則執行公式(26),執行完后跳到步驟8。
步驟5:如果xit不是最優個體,并且r1<=a,則執行公式(2)和公式(3)并且執行完后跳到步驟8。
步驟6:如果xit的目標函數排名小于等于1或者小于等于2,則執行公式(26),執行完公式(26)后跳到步驟8,否則跳到步驟7。
步驟7:個體xit執行被構造組擾動的SBO個體位置更新公式(指公式(31)和公式(14),其中公式(14)是按照文獻[4]中執行公式(14)的執行方法執行公式(14))。
步驟8:判斷個體是否越界,如果是,使用在ISA算法中使用過的公式(5)來處理個體(按方法b)。
步驟9:i等于i加1,如果i小于或等于種群總數,則跳到步驟4。
步驟10:使用緞藍鳥優化器的新舊種群保留策略選出新一代種群個體,t等于t加1,然后跳到步驟2。
步驟11:結束。
6結束語
在仿真實驗中,緞藍亭鳥優化器與內部搜索算法的混合算法(SBO-ISA)的尋優能力既比緞藍亭鳥優化器的尋優能力強也比內部搜索算法的尋優能力強。SBO-ISA算法的尋優能力雖然比SBO算法和ISA算法強,但還是會有一定的提升空間,針對SBO-ISA算法做算法改進是未來的研究方向。