基于帝国竞争算法的函数寻优算法

一、理论基础

1、帝国竞争算法

Gargari等人于2007年提出了帝国竞争算法(Imperialist Competitive Algorithm, ICA),其灵感源于人类社会帝国殖民竞争机制,是一种完全受社会行为启发的群体随机优化搜索算法。ICA可归纳为国家初始化、殖民地同化、帝国竞争、国家汇聚四个流程。

1.1 国家初始化

定义初始国家为: c o u n t r y = [ p 1 , p 2 , ⋯   , p N ] (1) country=[p_1,p_2,\cdots,p_N]\tag{1} country=[p1,p2,,pN](1)与遗传算法每一个向量代表一个染色体不同的是,数列中的每一维代表国家的一个特征。
国家的势力值由所求的函数值来表示,即: c o s t = f ( c o u n t r y ) = f ( [ p 1 , p 2 , ⋯   , p N ] ) (2) cost=f(country)=f([p_1,p_2,\cdots,p_N])\tag{2} cost=f(country)=f([p1,p2,,pN])(2)算法开始时,随机产生 N p o p N_{pop} Npop个初始国家,并根据势力大小划分为两种类型:势力最大的前 N i m p N_{imp} Nimp个国家为宗主国,其余的为殖民地国家,按照下列流程,根据宗主国的势力来划分殖民地的归属国。
1)根据各个帝国对应的函数值 c n c_n cn,计算帝国主义国家的归一化势力值 C n C_n Cn C n = c n − max ⁡ i { c i } (3) C_n=c_n-\max_{i}\{c_i\}\tag{3} Cn=cnimax{ ci}(3)2)计算归一化势力的相对值 P n P_n Pn,以此得出每个帝国占有殖民地的初始数量 N C n NC_n NCn P n = ∣ C n ∑ i = 1 N i m p C i ∣ (4) P_n=\left|\frac{C_n}{\displaystyle\sum_{i=1}^{N_{imp}}C_i}\right|\tag{4} Pn=i=1NimpCiCn(4) N C n = r o u n d { P n ⋅ N c o l } (5) NC_n=round\{P_n\cdot N_{col}\}\tag{5} NCn=round{ PnNcol}(5)其中, N c o l N_{col} Ncol表示殖民地国家的数目; r o u n d { } round\{ \} round{ }为四舍五入取整函数。
3)将所有殖民地国家随机分配到各宗主国,组成初始的 N i m p N_{imp} Nimp个帝国。

1.2 殖民地同化

宗主国为了便于管辖其拥有的殖民地国家,需要在政治、经济、文化等各方面进行殖民同化,算法通过殖民地向宗主国移动来表示。 x ∼ U ( 0 , β × d ) (6) x\sim U(0,\beta\times d)\tag{6} xU(0,β×d)(6) θ ∼ U ( − γ , γ ) (7) \theta\sim U(-\gamma,\gamma)\tag{7} θU(γ,γ)(7)其中, x x x表示移动距离; d d d表示殖民地和宗主国间的距离; β \beta β为移动参数,取值大于1使殖民地国家能从前后方向朝宗主国靠近;为了扩大搜索范围,加入一个随机的角度偏移参数 θ \theta θ,其中 γ \gamma γ值一般为 π / 4 \pi/4 π/4
在同化过程中,如果移动后某个殖民地势力大于其宗主国,则殖民地和宗主国互换位置,帝国中的其他殖民地向新宗主国的位置移动。这个过程确保了宗主国的位置在寻优过程中始终保持相对最优。

1.3 帝国竞争

所有宗主国都想要占领其他宗主国的殖民地以增强帝国的势力,这种竞争机制使强大的帝国更加强大,弱小的帝国将逐渐衰落,直至消亡。原始ICA选取最弱帝国中的最弱殖民地作为帝国竞争的对象,所有帝国都有机会占有这个殖民地国家,且帝国势力越大,占有的概率越大。
帝国势力值 T C n TC_n TCn的计算方法如下: T C n = C o s t ( i m p e r i a l i s t n ) + ξ ⋅ m e a n { C o s t ( c o l o n i e s ) } (8) TC_n=Cost(imperialist_n)+\xi\cdot mean\left\{Cost(colonies)\right\}\tag{8} TCn=Cost(imperialistn)+ξmean{ Cost(colonies)}(8)其中, C o s t ( i m p e r i a l i s t n ) Cost(imperialist_n) Cost(imperialistn)为宗主国的归一化势力值; C o s t ( c o l o n i e s ) Cost(colonies) Cost(colonies)为帝国所辖殖民地的归一化势力值; m e a n { } mean\{\} mean{ }为均值函数; ξ \xi ξ表示殖民地占帝国势力的权重值。可以看出,帝国总势力值为宗主国及其所辖殖民地的势力值之和。

1.4 国家汇聚

竞争过程中,势力较弱的帝国因失去殖民地而越发弱小,直至所有殖民地被其他帝国所占有,则该帝国灭亡。
经过多次迭代,帝国相继灭亡,在理想状态下,最后仅留存唯一一个统辖所有殖民地的国家。此时,所有国家都汇聚于一点,宗主国和殖民地的势力值完全相同,算法结束。

2、ICA算法流程图

ICA算法流程图如图1所示。
在这里插入图片描述

图1 ICA算法流程图

二、仿真实验与分析

以常用23个测试函数中的F1、F2(单峰函数/10维)、F9、F10(多峰函数/10维)、F14、F15(固定维度多峰函数/2维、4维)为例,实验设置种群规模为50,最大迭代次数为1000,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述实验结果表明:ICA算法在提高求解精度和求解效率上具有一定优势。

三、参考文献

[1] E. Atashpaz-Gargari, C. Lucas. Imperialist competitive algorithm: An algorithm for optimization inspired by imperialistic competition[C] // 2007 IEEE Congress on Evolutionary Computation, 2007: 4661-4667.
[2] 王贵林, 李斌. 受春秋战国史实启发的帝国竞争改进算法[J]. 计算机应用, 2021, 41(2): 470-478.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/124362117