群體優化演算法
A. 幾大群體智能演算法異同
1.都是一類不確定演算法。不確定性體現了自然界生物的生物機制,並且在求解某些特定問題方面優於確定性演算法。仿生優化演算法的不確定性是伴隨其隨機性而來的,其主要步驟含有隨機因素,從而在演算法的迭代過程中,事件發生與否有很大的不確定性。
2.都是一類概率型的全局優化演算法。非確定演算法的優點在於演算法能有更多機會求解全局最優解。
3.都不依賴於優化問題本身的嚴格數學性質。在優化過程中都不依賴於優化問題本身嚴格數學性質(如連續性,可導性)以及目標函數和約束條件精確的數學描述。
4.都是一種基於多個智能體的仿生優化演算法。仿生優化演算法中的各個智能體之間通過相互協作來更好的適應環境,表現出與環境交互的能力。
B. 粒子群演算法(一):粒子群演算法概述
本系列文章主要針對粒子群演算法進行介紹和運用,並給出粒子群演算法的經典案例,從而進一步加深對粒子群演算法的了解與運用(預計在一周內完成本系列文章)。主要包括四個部分:
粒子群演算法也稱粒子群優化演算法(Particle Swarm Optimization, PSO),屬於群體智能優化演算法,是近年來發展起來的一種新的進化演算法(Evolutionary Algorithm, EA)。 群體智能優化演算法主要模擬了昆蟲、獸群、鳥群和魚群的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷地改變搜索的方向。 群體智能優化演算法的突出特點就是利用了種群的群體智慧進行協同搜索,從而在解空間內找到最優解。
PSO 演算法和模擬退火演算法相比,也是 從隨機解出發,通過迭代尋找最優解 。它是通過適應度來評價解的品質,但比遺傳演算法規則更為簡單,沒有遺傳演算法的「交叉」和「變異」,它通過追隨當前搜索到的最大適應度來尋找全局最優。這種演算法以其 容易實現、精度高、收斂快 等優點引起了學術界的重視,並在解決實際問題中展示了其優越性。
在粒子群演算法中,每個優化問題的解被看作搜索空間的一隻鳥,即「粒子」。演算法開始時首先生成初始解,即在可行解空間中隨機初始化 粒子組成的種群 ,其中每個粒子所處的位置 ,都表示問題的一個解,並依據目標函數計算搜索新解。在每次迭代時,粒子將跟蹤兩個「極值」來更新自己, 一個是粒子本身搜索到的最好解 ,另一個是整個種群目前搜索到的最優解 。 此外每個粒子都有一個速度 ,當兩個最優解都找到後,每個粒子根據如下迭代式更新:
其中參數 稱為是 PSO 的 慣性權重(inertia weight) ,它的取值介於[0,1]區間;參數 和 稱為是 學習因子(learn factor) ;而 和 為介於[0,1]之間的隨機概率值。
實踐證明沒有絕對最優的參數,針對不同的問題選取合適的參數才能獲得更好的收斂速度和魯棒性,一般情況下 , 取 1.4961 ,而 採用 自適應的取值方法 ,即一開始令 , 使得 PSO 全局優化能力較強 ;隨著迭代的深入,遞減至 , 從而使得PSO具有較強的局部優化能力 。
參數 之所以被稱之為慣性權重,是因為 實際 反映了粒子過去的運動狀態對當前行為的影響,就像是我們物理中提到的慣性。 如果 ,從前的運動狀態很少能影響當前的行為,粒子的速度會很快的改變;相反, 較大,雖然會有很大的搜索空間,但是粒子很難改變其運動方向,很難向較優位置收斂,由於演算法速度的因素,在實際運用中很少這樣設置。也就是說, 較高的 設置促進全局搜索,較低的 設置促進快速的局部搜索。
C. 人工螢火蟲群優化演算法是什麼
人工螢火蟲群優化演算法是模擬自然界中螢火蟲成蟲發光的生物學特性發展而來的,也是基於群體搜索的隨機優化演算法。
關於該演算法目前文獻有兩種版本:
①由印度學者Krishnanand等人提出,稱為GSO(glowwormswarmoptimization);
②由劍橋學者Yang提出,稱為FA(fireflyalgorithm)。
D. 常見的群體智能演算法不包括
有一些並不是廣泛應用的群體智能演算法,比如螢火蟲演算法、布穀鳥演算法、蝙蝠演算法以及磷蝦群演算法等等。
粒子群演算法(particle swarm optimization,PSO)是計算智能領域中的一種生物啟發式方法,屬於群體智能優化演算法的一種,常見的群體智能優化演算法主要有如下幾類:
設想這樣一個場景:一群鳥在隨機的搜索食物。在這個區域里只有一塊食物,所有的鳥都不知道食物在哪。但是它們知道自己當前的位置距離食物還有多遠。那麼找到食物的最優策略是什麼?最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。
Step1:確定一個粒子的運動狀態是利用位置和速度兩個參數描述的,因此初始化的也是這兩個參數;
Step2:每次搜尋的結果(函數值)即為粒子適應度,然後記錄每個粒子的個體歷史最優位置和群體的歷史最優位置;
Step3:個體歷史最優位置和群體的歷史最優位置相當於產生了兩個力,結合粒子本身的慣性共同影響粒子的運動狀態,由此來更新粒子的位置和速度。
位置和速度的初始化即在位置和速度限制內隨機生成一個N x d 的矩陣,而對於速度則不用考慮約束,一般直接在0~1內隨機生成一個50x1的數據矩陣。
此處的位置約束也可以理解為位置限制,而速度限制是保證粒子步長不超限制的,一般設置速度限制為[-1,1]。
粒子群的另一個特點就是記錄每個個體的歷史最優和種群的歷史最優,因此而二者對應的最優位置和最優值也需要初始化。其中每個個體的歷史最優位置可以先初始化為當前位置,而種群的歷史最優位置則可初始化為原點。對於最優值,如果求最大值則初始化為負無窮,相反地初始化為正無窮。
每次搜尋都需要將當前的適應度和最優解同歷史的記錄值進行對比,如果超過歷史最優值,則更新個體和種群的歷史最優位置和最優解。
速度和位置更新是粒子群演算法的核心,其原理表達式和更新方式:
每次更新完速度和位置都需要考慮速度和位置的限制,需要將其限制在規定范圍內,此處僅舉出一個常規方法,即將超約束的數據約束到邊界(當位置或者速度超出初始化限制時,將其拉回靠近的邊界處)。當然,你不用擔心他會停住不動,因為每個粒子還有慣性和其他兩個參數的影響。
粒子群演算法求平方和函數最小值,由於沒有特意指定函數自變數量綱,不進行數據歸一化。
E. 智能優化演算法:自私羊群優化演算法
@[toc]
摘要:自私羊群優化 (Selfish Herds optimization,SHO) 演算法是由 Fausto 於 2017 年提出的元啟發式演算法。該演算法主要模擬羊群受到捕食者攻擊時的自私行為(盡量聚集到牧群中心遠離捕食者),它具有易於理解和實施的特點。
SHO 演算法它主要基於漢密爾頓提出的自私群理論來模擬獵物與捕食者之間的狩獵關系。當群體中的個體受到捕食者的攻擊時,為了增加生存機會,群體中的個體產生聚集行為,個體更有可能移動到相對安
全的位置(群體的中心位置),並且群體的邊緣個體更容易受到攻擊,這也導致群體的邊緣個體逃離群體,以增加他們被捕食者攻擊時的生存機會。該方法假設整個平原是一個解空間,該演算法包含兩個不同的搜索因子:被狩獵群和狩獵群。每緩拆個搜索因子通過一組不同的進
化運算元指導演算法的計算,以便更好地模擬獵物與捕食者關系之間的關系。
假設自私羊群體優化演算法的群體集合是 ,它包含 個種群個體,種群中的每一個體被定義為 ,其代表個體在種群中的位置信息,n 代表解決方案的大小。整個種群組的初始化公式如下:
其中 和 分別表示解空間的下限和上限。演算法參數值的范圍: 和 。 表示隨機函數,生成值的范圍落在區間[0,1]內。
在自私羊群優化演算法中,整個種群 被分為兩個子群: 和 代表一群獵物, 代表一群捕食者。在自然界中,獵物的數量通常多於捕食者的數量。在正哪碼 SHO 中,獵物 的數量占總個體的 70%~90% ( ) ,其餘的個體被認為是捕食者 ( ) 。 和 按以下公式計算:
其中, 表示一個隨機數,其值范圍為 0.7到 0.9, 表示將實數轉換為整數的函數。
在 SHO 中,為整個種群 ( ) 的每個體 ( ) 分配一個生存值 ( ) ,其代表個體的生存能力,有機會在攻擊中生存或成功殺死攻擊中的獵物。生存價值的數學公式定義如下:
其中, 代表目標函數, 和 分別代表目標函數的最佳值和最差值。對 70%~90%的獵物計算生存價值,生存價值最高的為獵物領袖,生存價值越低的為最容易被捕獲的獵物。
基於 SHO 的演算法的結構主要包括四個方面:① 獵物(被捕食者)領袖的運動;② 獵物追隨者的跟隨運動或逃脫運動;③ 捕食者的狩獵運動;④ 捕食階段和恢復階段。
獵物的領導者被定義為獵物種群中最大的生存價值。定義公式如下:
獵物領袖的位置更新如下:
代表區間[0,1]之間的隨機數, 越大,位置更新越快,捕獲的獵物越多; 越小,捕獲的獵物越少。 代表個體之間的吸引力, 代表獵物的相對危險位置, 與 定義如下:
在獵物種群中,獵物追隨者分為跟隨獵物 ( ) 和逃生獵物 ( ) ,跟隨獵物又分為優勢獵物 ( ) 和下屬獵物 ( ) 。其定義如下:
其中 代表獵物生存價值的平均值,定義如下:
跟隨獵物的位置更新公式如下:
其中, 表示區間[0,1]內的隨機數形式, 表示局部最優個體, 表示獵物的相對安全位置,其定義如下:
其中 代表獵物個體之間的歐幾里德距離。逃生獵物的位置更新公式如下:
其中, 表示全局最優位置, 和 表示在區間[0,1]內的隨機數, 表示距離獵物領袖位置, 越小,表示距離舉哪越近; 表示控制隨機偏移值的長短, 越小,表示偏移值越小。 表示空間解中的隨機方向。
在捕食者種群中,捕食者的位置更新公式如下:
其中, 代表區間[0,1]之間的隨機數, 值越大,位置更新越遠,越容易忽略獵物。 是基於捕食概率從獵物種群中隨機選擇的獵物,捕食概率 定義如下:
表示捕食者和獵物之間的吸引力,吸引力的數學公式定義如下:
其中 代表 和 之間的歐幾里德距離。
捕食階段:每個獵物都有一個危險的區域,如果它屬於這個領域,很可能被捕食者捕殺。危險域通常是一個圓,其半徑定義為:
危險區域的獵物收集定義如下:
獵物在危險區域被獵殺的概率定義如下:
恢復階段:在 SHO 中,被捕食者獵殺的所有獵物都將被新生的獵物所取代,新的獵物將通過交配操作產生,SHO通過交配概率選擇交配獵物,其定義如下:
其中 代表一群沒有被捕食者捕殺的獵物集,交配操作定義如下:
函數 用於從不同個體 中選擇維度組件。
演算法流程如下:
1.Input
2.Begin
3.利用公式初始化所有個體 S
4.定義羊群成員和捕食者的個數,利用公式(1)並將S 分為兩組:H 與 P
5.For entire S do
6.利用公式(3)計算生存值
7.End For
8.While(t <Max number of iterations)
9.執行自私羊群移動操作
[1] Fausto F,Cuevas E,Valdivia A,et al.A global optimization
algorithm inspired in the behavior of selfish herds[J].
BioSystems,2017,160:39-55.
[2] 朱惠娟,王永利,陳琳琳.面向三維模型輕量化的自私羊群優化演算法研究[J].計算機工程與應用,2020,56(03):42-48.
https://mianbaoo.com/o/bread/aJicmJ0=
F. 群智能演算法的基本思想
群智能演算法的基本思想
基本思想
群演算法的核心含義就是模擬各種動物或者事物群體的一種尋優過程,群優化演算法通過設計一種無質量的粒子來模擬消陸各種動物群中的個體,個體僅具有兩個屬性:速度和位置,速度代表移動的快慢,位置代表移動的方向。每個單體在搜索空間中單獨的搜尋最優解,並將其記為當前個體極值,並將個體極值與整個群里的其他個體共享,找到最優的那個單體極值作為整個群的當前全局最優解,群中的所有單體根據自己找到的當前個體極值和整個群共享的當前全局最優解來調整自己的速度和位置,該類方法一般用拿賣頃於優化問題。
很多研究生的在寫論文的時候都會用到各種優化演算法,例如粒子群演算法、蟻群演算法、遺傳演算法等。但由於這些演算法都太配鬧老,所以往往導致論文的創新度不夠,達不到期刊的發表要求,於是就衍生出了大量的新改進演算法以提高創新度。演算法改進就是一種創新,只要你改的是合理且有效的。可以引用這些優秀的改進演算法來研究自己的題目。
群智能演算法是一種新興的演化計算技術,已成為越來越多研究者的關注焦點,它與人工生命,特別是進化策略以及遺傳演算法有著極為特殊的聯系。 群智能理論研究領域主要有兩種演算法:蟻群演算法和粒子群演算法。
G. 智能優化演算法:雞群優化演算法
@[toc]
摘要:雞群演算法 (Chicken Swarm Optimization,CSO) 是一種新穎的仿生學演算法,充分繼承群智能優化特點,創新採用個體分類、協作優化,最大程度挖掘最優解,又能很好避免早熟現象。具有收斂快,尋優能力強的特點。
新型的仿生學演算法—雞群優化演算法,它模擬群的等級制度和雞群的群體活動行為。 在特殊的等級制度下雞群中不同雞種搜尋食物時存在著競爭。公雞搜索食物能力強,適應值小;母雞其次;小雞搜索食物能力最弱,適應值最大。
為了簡化,文中通過下列規則理想化雞群演算法:
因為不同的雞種有不同的運動規律, 因此,以下 3 種個體的位置更新策略各不相同。
適應度好的公雞能夠在更大的范圍內搜索食物,而且比適應度差的公雞能夠優先獲得食物實現全局搜索,它的位置更新受隨機選取的其他公雞位置的影響,則更新策略見式(1)-(2)
式 (1)-(2) 中:第 只公雞位置的第 j 維的值表示為, 表示當前的迭代次數,表示服從期望值為0 ,方差值為 2 的正態分布隨機數, 第 只公雞的適應度為 ,隨機選取公雞 的適應度為 , 分母中加上無窮小數 ,避免除數為零。
母雞跟隨夥伴公雞搜索食物,位置更新受夥伴公雞位置影響。由於母雞的偷食行為,位置更新又與其它公雞和母雞有關系,則更新策略見式 (3)-(5) 。
式 (3)-(5) 中: Rand 是一個服從 [0,1] 均勻分布的隨機數,該母雞的夥伴公雞 的適應度值為 , 表示其夥伴公雞對其的影響因子,其他公雞和母雞中隨機選取個體 的適應度值為 , 為其他雞對其的影響因子。
小雞在其母親周圍搜尋食物,它的搜索能力最差,位置受到母親公雞的影響,則更新策略見式 (6) 。
式 (6) 中:母親母雞 位置的第 維數值為 , ,母親母雞的位置對小雞位置的影響因子為 , 其為隨機函數隨機生成,取值范圍一般為 (0,2) 。
步驟如下:
[1] MENG X , LIU Y , GAO X Z , et al. A new bio-inspired algorithm: chicken swarm optimization[J]. Lecture Notes in Computer Science ,2014 ,8794(1):86-94.
[2] 胡漢梅,李靜雅,黃景光.基於雞群演算法的微網經濟運行優化[J].高壓電器,2017,53(01):119-125.
https://mianbaoo.com/o/bread/aJWbmZk=
文獻復現:基於模擬退火的改進雞群優化演算法(SAICSO)
[1]李振璧,王康,姜媛媛.基於模擬退火的改進雞群優化演算法[J].微電子學與計算機,2017,34(02):30-33+38.
文獻復現:一種改進的雞群演算法(ICSO)
[1]孔飛,吳定會.一種改進的雞群演算法[J].江南大學學報(自然科學版),2015,14(06):681-688.
文獻復現:全局優化的改進雞群演算法(ECSO)
[1]韓斐斐,趙齊輝,杜兆宏,劉升.全局優化的改進雞群演算法[J].計算機應用研究,2019,36(08):2317-2319+2327.
H. 智能優化演算法:貓群優化演算法
@[toc]
摘要:貓群演算法 ( Cat Swarm Optimization,縮寫為CSO)是由 Shu - An Chu 等人在 2006 年首次提出來的一種基於貓的行為的全局優化演算法具有收斂快,尋優能力強的特點。
在貓群演算法中,貓即待求優化問題的可行解。貓群演算法將貓的行為分為兩種模式,一種就是貓在懶散、環顧四周狀態時的模式稱之為搜尋模式;另一種是在跟蹤動態目標時的狀態稱之為跟蹤模式。貓群演算法中,一部分貓執行搜尋模式,剩下的則執行跟蹤模式,兩種模式通過結合率 MR(Mixture Ratio)進行交互,MR 表示執行跟蹤模式下的貓的數量在整個貓群中所佔的比例,在程序中 MR應為一個較小的值。利用貓群演算法解決優化問題,首先需要確定參與優化計算的個體數,即貓的數量。每隻貓的屬性(包括由M維組成的自身位置)、每一維的速度、對基準函數的適應值及表示貓是處於搜尋模式或者跟蹤模式的標識值。當貓進行完搜尋模式和跟蹤模式後,根據適應度函數計算它們的適應度並保留當前群體中最好的解。之後再根據結合率隨機地將貓群分為搜尋部分和跟蹤部分的貓,以此方法進行迭代計算直到達到預設的迭代次數。
搜尋模式用來模擬貓的當前狀態,分別為休息、四處查看、搜尋下一個移動位置。在搜尋模式中,定義了 4 個基本要素:記憶池(SMP)、變化域(SRD)、變化數(CDC)、自身位置判斷(SPC)。SMP 定義了每一隻貓的搜尋記憶大小,表示貓所搜尋到的位置點,貓將根據適應度大小從記憶池中選擇一個最好的位置點。SRD 表示選擇域的變異率,搜尋模式中,每一維的改變范圍由變化域決定,根據經驗一般取值為0.2。CDC 指每一隻貓將要變異的維數的個數,其值是一個從 0 到總維數之間的隨機值。SPC 是一個布爾值,表示貓是否將已經過的位置作為將要移動到的候選位置之一,其值不影響 SMP 的取值。
(1)將當前位置復制 份副本放在記憶池中, ,即記憶池的大小為 ;如果 SPC 的值為真,扮遲族令 ,將當前位置保留為候選解。
(2)對記憶池中的每個個體副本,根據 的大小,隨機地對當前值加上或者減去 (變化域由百分率表示),並用更新後的值來代替原來的值。
(3)分別計算記憶池中所有候選解的適應度值。
(4)從記憶池中選擇適應度值最高的候選點來代廳弊替當前貓的位置,完成貓的位置更新。
跟蹤模式用來模擬貓跟蹤目標時的情況。通過改變貓的每一維的速度(即特徵值)來更新貓的位置,速度的改變是通過增加一個隨機的擾動來實現的。
(1)速度更新。整個貓群經歷過的最好位置,即目前搜索到的最優解,記做 。每隻貓的速度記做 ,每隻貓根據公式(1)來更新自己的速度。
表示更新後第 只貓在第 維的速度旦弊值, 為維數大小; 表示貓群中當前具有最好適應度值的貓的位置; 指當前第 只貓在第 維的位置, 是個常量,其值需要根據不同的問題而定。 是一個[0,1]之間的隨機值。
(2)判斷每一維的速度變化是否都在SRD內。給每一維的變異加一個限制范圍,是為了防止其變化過大,造成演算法在解空間的盲目隨機搜索。SRD 在演算法執行之前給定,如果每一維改變後的值超出了 SRD 的限制范圍,則將其設定為給定的邊界值。
(3)位置更新。根據公式(2)利用更新後的速度來更新貓的位置。
式中, 表示第 只貓更新後的位置。
演算法流程圖如下:
[1]馬知也,施秋紅.貓群演算法研究綜述[J].甘肅廣播電視大學學報,2014,24(02):41-45.
https://mianbaoo.com/o/bread/aJWcl5s=
I. 什麼是智能優化演算法
群體智能優化演算法是一類基於概率的隨機搜索進化演算法,各個演算法之間存在結構、研究內容、計算方法等具有較大的相似性。因此,群體智能優化演算法可以建立一個基本的理論框架模式:
Step1:設置參數,初始化種群;
Step2:生成一組解,計算其適應值;
Step3:由個體最有適應著,通過比較得到群體最優適應值;
Step4:判斷終止條件示否滿足?如果滿足,結束迭代;否則,轉向Step2;
各個群體智能演算法之間最大不同在於演算法更新規則上,有基於模擬群居生物運動步長更新的(如PSO,AFSA與SFLA),也有根據某種演算法機理設置更新規則(如ACO)。
(9)群體優化演算法擴展閱讀
優化演算法有很多,經典演算法包括:有線性規劃,動態規劃等;改進型局部搜索演算法包括爬山法,最速下降法等,模擬退火、遺傳演算法以及禁忌搜索稱作指導性搜索法。而神經網路,混沌搜索則屬於系統動態演化方法。
優化思想裡面經常提到鄰域函數,它的作用是指出如何由當前解得到一個(組)新解。其具體實現方式要根據具體問題分析來定。