BSO:頭腦風暴優化算法-綜述
參考文獻
《Brain storm optimization algorithm: a review》
一、介紹
群智能算法應具有兩種能力:學習能力和開發能力。開發能力側重于将算法的搜尋移至可能存在更高搜尋潛力的區域,而學習能力則側重于從目前解中精确搜尋基于單點的優化算法,并從目前種群中進行基于群體的群體智能算法的搜尋。
- 開發能力是一種頂層學習或宏觀學習方法。它描述了一種算法的學習能力,可以根據要解決的問題的搜尋狀态來自适應地更改其參數、結構和學習潛力。換句話說,開發能力是算法擁有的搜尋強度。
- 學習能力是底層學習或微觀學習。學習能力描述了算法從具有自己的學習能力的目前解中找到更好的解的能力。
BSO算法有兩個主要的算子:收斂算子和發散算子。通過解在搜尋空間中的收斂和發散,可以獲得足夠好的最優值。新的解是通過叢集或現有解的變異生成的。開發能力是搜尋過程中的适應性,是BSO算法中的另一個共同特征。
二、頭腦風暴優化算法:發展史
1、基本頭腦風暴優化算法
原始BSO算法概念簡單、易于實作,由算法1給出,主要有三種政策:解叢集、生成新個體和選擇。

在BSO中,解分為幾個叢集,如果新生成的相同名額的解更好,則将保留總體最好的解。新個體可以基于叢集中的一個或兩個個體來生成。當新個體無限接近最優解時,開發能力得到提高,當新個體是随機生成的或由兩個叢集中的個體生成的,探索能力得到了提高。
BSO是一種搜尋空間縮減算法,所有解最終都會進入幾個叢集,這些叢集表明問題的局部最優值。一個區域的資訊包含從一個叢集到另一個叢集傳播的具有良好适應性值的解。該算法首先在決策空間中進行探索,疊代後可以将探索和開發達到一種平衡狀态。
2、解叢集
解叢集的目的是将解收斂到較小的區域。在BSO中可以使用不同的聚類算法,原始的BSO中采用了基本的k-means聚類算法。
聚類是将相似對象分組在一起的過程,從機器學習的角度來看,聚類分析有時被稱作無監督學習。給定n個點,可以通過點之間的相似度計算獲得有用的模式。BSO中每個解都在搜尋空間中傳播。
3、新個體生成
新個體生成的過程在算法3中給出。可以基于一個或幾個個體或叢集來生成新個體。在原始的頭腦風暴優化算法中,機率值pgeneration用于确定一個或兩個“老”個體生成的新個體。從一個叢集中生成一個個體可以優化搜尋區域,并提高開發能力。相反,由兩個或多個叢集生成的個人可能離這些叢集很遠。在這種情況下,探索能力得到了增強。
用于确定聚類中心或另一個正常(或非聚類中心)個體的機率poneCluster和機率ptwoCluster将分别在一個聚類或兩個聚類生成情況下選擇。在一個叢集生成的情況下,來自中心的新個體或正常個體可以控制開發區域。在幾個叢集的情況下,正常個體可以增加群體的種群多樣性。
根據下式生成新個體。
其中,i表示次元;rand()生成[0, 1}之間的均勻分布随機數;xold由一個個體或兩個個體組合形成;參數T是最大疊代次數,t是目前疊代次數,c是改變logsig()函數步長函數ξ(t)的斜率的系數,可以平衡算法的收斂速度。
BSO算法中的新個體生成,a從一個父代生成新個體,b從兩個父代生成新個體
4、選擇
選擇政策可用于在所有個體中保持良好的解。每個新的個體生成後,選擇政策都會保留更好的解,而聚類政策和新個體生成政策會将新的解添加到群體中,以保持整個種群的多樣性。