基于战争策略优化算法的函数寻优算法

一、理论基础

1、战争策略优化算法

文献[1]提出了一种新的基于古代战争策略的元启发式优化算法——战争策略优化(War Strategy Optimization, WSO)算法。

(1)攻击策略

模拟了两种战争策略。在第一种情况下,每个士兵根据国王和指挥官的位置更新其位置。国王占据有利地位,对反对派发动大规模进攻。因此,攻击力或体能最强的士兵被视为国王。战争开始时,所有士兵的军衔和体能都相同。如果士兵成功地执行了战略,他的军衔就会上升。然而,随着战争的进展,所有士兵的级别和权重将根据战略的成功进行更新。随着战争接近尾声,国王、军队指挥官和士兵在接近目标时的位置仍然非常接近。 X i ( t + 1 ) = X i ( t ) + 2 × ρ × ( C − K ) × r a n d × ( W i × K − X i ( t ) ) (1) X_i(t+1)=X_i(t)+2\times\rho\times(C-K)\times rand\times(W_i\times K-X_i(t))\tag{1} Xi(t+1)=Xi(t)+2×ρ×(CK)×rand×(Wi×KXi(t))(1)其中, X i ( t + 1 ) X_i(t+1) Xi(t+1)是新位置, X i ( t ) X_i(t) Xi(t)是以前的位置, C C C是指挥官的位置, K K K是国王的位置, W i W_i Wi是权重。
如果 W i > 1 W_i>1 Wi>1,则 W i × K − X i ( t ) W_i\times K-X_i(t) Wi×KXi(t)的位置在国王位置之外,因此士兵的更新位置在指挥官位置之外。如果 W i < 1 W_i<1 Wi<1,则 W i × K − X i ( t ) W_i\times K-X_i(t) Wi×KXi(t)的位置处于王位和士兵当前位置之间。与之前的情况相比,士兵的更新位置更接近。如果 W i W_i Wi趋于零,则士兵的更新位置将非常接近指挥官位置,这表示战争的最后阶段。

(2)排名(军衔)和权重更新

每个搜索代理的位置更新取决于国王、指挥官和每个士兵军衔的交互。每个士兵的军衔取决于他在由式(4)控制的战场上的成功历史,该式随后将影响权重因子 W i W_i Wi。每个士兵的军衔反映了士兵(搜索代理)与目标的距离(适应度值)。可以注意到,其他竞争算法(如GWO、WOA、GSA、PSO)中的权重因子将线性变化,而在当前提出的WSO算法中,权重( W i W_i Wi)作为 α \alpha α因子呈指数变化。
如果新位置( F n F_n Fn)的攻击力(适应度)小于前一位置( F p F_p Fp),则士兵将占据前一位置。 X i ( t + 1 ) = ( X i ( t + 1 ) ) × ( F n ≥ F p ) + ( X i ( t ) ) × ( F n < F p ) (2) X_i(t+1)=(X_i(t+1))\times(F_n\geq F_p)+(X_i(t))\times(F_n<F_p)\tag{2} Xi(t+1)=(Xi(t+1))×(FnFp)+(Xi(t))×(Fn<Fp)(2)如果士兵成功更新位置,则士兵的军衔 R i R_i Ri将升级。 R i = ( R i + 1 ) × ( F n ≥ F p ) + ( R i ) × ( F n < F p ) (3) R_i=(R_i+1)\times(F_n\geq F_p)+(R_i)\times(F_n<F_p)\tag{3} Ri=(Ri+1)×(FnFp)+(Ri)×(Fn<Fp)(3)基于排名,新权重计算为: W i = W i × ( 1 − R i M a x _ i t e r ) α (4) W_i=W_i\times\left(1-\frac{R_i}{Max\_iter}\right)^\alpha\tag{4} Wi=Wi×(1Max_iterRi)α(4)

(3)防御策略

第二个策略位置更新基于国王、陆军首领和随机士兵的位置。而排名和权重更新保持不变。 X i ( t + 1 ) = X i ( t ) + 2 × ρ × ( K − X r a n d ( t ) ) + r a n d × W i × ( c − X i ( t ) ) (5) X_i(t+1)=X_i(t)+2\times\rho\times(K-X_{rand}(t))+rand\times W_i\times(c-X_i(t))\tag{5} Xi(t+1)=Xi(t)+2×ρ×(KXrand(t))+rand×Wi×(cXi(t))(5)与之前的策略相比,这种战争策略探索了更多的搜索空间,因为它涉及随机士兵的位置。对于较大的 W i W_i Wi值,士兵会采取较大的步长并更新其位置。对于较小的值, W i W_i Wi士兵在更新位置时采取小步。

(4)弱势士兵的替换/重新安置

对于每次迭代,确定身体状况最差的虚弱士兵。一种最简单的方法是用式(6)中给出的随机士兵替换弱士兵。 X w ( t + 1 ) = L b + r a n d × ( U b − L b ) (6) X_w(t+1)=Lb+rand\times(Ub-Lb)\tag{6} Xw(t+1)=Lb+rand×(UbLb)(6)第二种方法是将弱势士兵重新安置到更靠近战场上全军中位数的位置,如式(7)所示。该方法改善了算法的收敛性。 X w ( t + 1 ) = − ( 1 − r a n d n ) × ( X w ( t ) − m e d i a n ( X ) ) + K (7) X_w(t+1)=-(1-randn)\times(X_w(t)-median(X))+K\tag{7} Xw(t+1)=(1randn)×(Xw(t)median(X))+K(7)

2、WSO算法伪代码

WSO算法伪代码如图1所示。
在这里插入图片描述

图1 WSO算法伪代码

二、仿真实验与结果分析

将WSO与PSO、GWO、WOA、MFO和SCA进行对比,以常用23个测试函数中的F1、F2(单峰函数/30维)、F7、F9(多峰函数/30维)、F17、F20(固定维度多峰函数/3维、6维)为例,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
WSO:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
PSO:最优值: 1558.967, 最差值: 5185.2129, 平均值: 2903.3824, 标准差: 959.6541
GWO:最优值: 8.6342e-61, 最差值: 1.9487e-57, 平均值: 1.3587e-58, 标准差: 3.8282e-58
WOA:最优值: 1.5969e-166, 最差值: 7.0809e-150, 平均值: 5.9735e-151, 标准差: 1.5946e-150
MFO:最优值: 1.9606e-05, 最差值: 20000.0001, 平均值: 4333.3338, 标准差: 7279.3202
SCA:最优值: 4.8801e-08, 最差值: 0.19843, 平均值: 0.015385, 标准差: 0.0404
函数:F2
WSO:最优值: 2.0166e-254, 最差值: 2.512e-239, 平均值: 1.3961e-240, 标准差: 0
PSO:最优值: 11.6554, 最差值: 27.4345, 平均值: 19.2486, 标准差: 4.4174
GWO:最优值: 3.4954e-36, 最差值: 5.4952e-34, 平均值: 9.2484e-35, 标准差: 1.1543e-34
WOA:最优值: 2.5606e-113, 最差值: 4.2265e-104, 平均值: 1.627e-105, 标准差: 7.7009e-105
MFO:最优值: 0.00038319, 最差值: 60, 平均值: 30.6105, 标准差: 14.3739
SCA:最优值: 7.6147e-08, 最差值: 0.00023425, 平均值: 1.7541e-05, 标准差: 4.5358e-05
函数:F7
WSO:最优值: 1.4633e-06, 最差值: 0.0010435, 平均值: 0.00019189, 标准差: 0.00020796
PSO:最优值: 0.12037, 最差值: 1.4722, 平均值: 0.48419, 标准差: 0.28418
GWO:最优值: 0.00022356, 最差值: 0.0019135, 平均值: 0.00080692, 标准差: 0.00038677
WOA:最优值: 7.2773e-05, 最差值: 0.0060178, 平均值: 0.0013451, 标准差: 0.0016799
MFO:最优值: 0.047384, 最差值: 32.4074, 平均值: 4.7297, 标准差: 9.389
SCA:最优值: 0.0031989, 最差值: 0.080521, 平均值: 0.027817, 标准差: 0.020541
函数:F9
WSO:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
PSO:最优值: 90.1552, 最差值: 178.8476, 平均值: 129.0028, 标准差: 20.7101
GWO:最优值: 0, 最差值: 5.6843e-14, 平均值: 1.3263e-14, 标准差: 2.4453e-14
WOA:最优值: 0, 最差值: 5.6843e-14, 平均值: 3.7896e-15, 标准差: 1.4422e-14
MFO:最优值: 82.5813, 最差值: 256.1296, 平均值: 166.8301, 标准差: 42.2975
SCA:最优值: 4.4395e-05, 最差值: 142.006, 平均值: 28.5937, 标准差: 31.8058
函数:F17
WSO:最优值: 0.39789, 最差值: 0.39802, 平均值: 0.39789, 标准差: 2.3582e-05
PSO:最优值: 0.39789, 最差值: 0.39789, 平均值: 0.39789, 标准差: 0
GWO:最优值: 0.39789, 最差值: 0.39789, 平均值: 0.39789, 标准差: 5.2273e-07
WOA:最优值: 0.39789, 最差值: 0.39789, 平均值: 0.39789, 标准差: 9.0559e-07
MFO:最优值: 0.39789, 最差值: 0.39789, 平均值: 0.39789, 标准差: 0
SCA:最优值: 0.39789, 最差值: 0.40526, 平均值: 0.39914, 标准差: 0.0017346
函数:F20
WSO:最优值: -3.3122, 最差值: -2.6333, 平均值: -3.1057, 标准差: 0.17394
PSO:最优值: -3.322, 最差值: -3.0729, 平均值: -3.2746, 标准差: 0.070549
GWO:最优值: -3.322, 最差值: -3.1328, 平均值: -3.2832, 标准差: 0.067455
WOA:最优值: -3.322, 最差值: -3.0768, 平均值: -3.2636, 标准差: 0.0866
MFO:最优值: -3.322, 最差值: -3.1376, 平均值: -3.2195, 标准差: 0.055626
SCA:最优值: -3.1261, 最差值: -1.4566, 平均值: -2.7903, 标准差: 0.47095

实验结果表明:所提出的WSO算法实现了探索和开发阶段的良好平衡,具有一定的优越性。

三、参考文献

[1] Tummala. S. L. V. Ayyarao, N. S. S. Ramakrishna, Rajvikram Madurai Elavarasan, et al. War Strategy Optimization Algorithm: A New Effective Metaheuristic Algorithm for Global Optimization[J]. IEEE Access, 2022, 10: 25073-25105.

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值