智能优化算法:入侵杂草优化算法-附代码


摘要:2006年,Mehrabian等提 出 了一种新 颖 的 智 能 优 化 算 法—入 侵 杂 草 优 化 算 法(Invasive Weed Optimization,IWO).该算法模拟杂草种子在自然界的扩散、生长、繁殖和竞争性消亡的基本过程,具有很强的鲁棒性和自适应性,能够有效地收敛于问题的最优解 .。

1.算法原理

入侵杂草优化算法与一般进化算法(比如遗传算法和粒子群算法)相比,其主要特点是:在进化过程中,种群中的所有个体都有机会产生新的个体,适应度越高的个体产生的新个体数量越多 . 这种机制在加强较优个体周围局部搜索的同时兼顾种群多样性,更符合自然进化法则 .

入侵杂草优化算法的实现可以通过初始化、生长繁殖、空间分布、竞争性生存法则这 4 个步骤实现 .

第1步   初始化种群 .在DD 维搜索空间,随机产生一组初始解 X=(X1,X2,...,XM)X=(X_1,X_2,...,X_M),其中 MM为初始种群个数(小于最大种群数PmaxP_{max}) .

第 2 步   生长繁殖 . 每个杂草个体可产生的种子数根据其适应度值由最小值到最大值线性变化 . 对于最大化问题,每个杂草个体可产生的种子数为:
snum=Ffloor(f(Xi)FminFmaxFmin(smaxsmin)+smin)(1) s_{num}=F_{floor}(\frac{f(X_i)-F_{min}}{F_{max}-F_{min}}(s_{max}-s_{min})+s_{min})\tag{1}
其中,FmaxF_{max}FminF_{min}为该代进化中最大、最小适应度值,smaxs_{max}smins_{min}为可产生的最大种子数和最小种子数,f(Xi)f(X_i)为第ii个杂草个体的适应度值,Ffloor(x)F_{floor}(x)函数表示向下取整.

第3步   空间分布.空间分布体现了算法的随机性和适应性,产生的种子在DD维搜索空间,以正态分布N(0,δ2)N(0,\delta^2)随机分散在父代杂草附近 .第ii个杂草产生的第ss个种子的位置为:
Xi+s=Xi+N(0,δ2),sminssmax(2) X_{i+s}=X_{i}+N(0,\delta^2),s_{min}\leq s\leq s_{max} \tag{2}
其中,δ\delta 为标准差.随着进化代数的增加, δ\delta逐渐减小,其变化规律为:
δg=δfinal+((gmaxg)/gmax)w(δintialδfinal)(3) \delta_{g}=\delta_{final}+((g_{max}-g)/g_{max})^w(\delta_{intial}-\delta_{final})\tag{3}
其中,gg为进化代数, δintial,δfinal\delta_{intial},\delta_{final}为初始和最终标准差, ww 为非线性调节因子.式(3)确保随着进化代数的增加,在较远区域产生种子的可能性非线性减小.在迭代初期,较大的 δ\delta 使得产生的种子分布在父代较远范围;在迭代后期,较小的 δ\delta使得产生的种子分布在父代较近范围.这样的方式使得算法逐渐完成从全局搜索到局部搜索的转变,有利于提高算法的速度和效率.

第 4 步   竞争性生存法则 . 当种群数超过最大值PmaxP_{max}时,所有个体按照其适应度函数排序,对于最大化问题,对排序后的个体按适应度值由大到小依次选出PmaxP_{max}个个体,作为该代进化最终保留下来的种群,其余个体被淘汰.保留下来的种群就可以进入下一轮进化,直到达到最大进化代数.

算法流程图如下:

智能优化算法:入侵杂草优化算法-附代码

2.算法结果

智能优化算法:入侵杂草优化算法-附代码

3.参考文献

[1] Mehrabian A R, Lucas C. A Novel Numerical Optimization
Algorithm Inspired from Weed Colonization[J]. Ecological
Informatics, 2006, 1(3): 355-366.

[2]刘燕,焦永昌,张亚明,王新宽.入侵杂草优化算法用于阵列天线方向图综合[J].西安电子科技大学学报,2014,41(01):29-33+86.

4.Matlab代码

https://mianbaoduo.com/o/bread/aJiVlZg=

相关文章: