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


    一、理论基础

    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_nXi(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_nRi=(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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

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

    三、参考文献

    [1] TUMMALA. S, N. S. S. RAMAKRISHNA, RAJVIKRAM M E, et al. War Strategy Optimization Algorithm: A New Effective Metaheuristic Algorithm for Global Optimization[J]. IEEE Access, 2022, 10: 25073-25105.

  • 相关阅读:
    Oracle中的Rollup 使用方法
    Linux常见指令
    中国传统美食网页HTML代码 学生网页课程设计期末作业下载 美食大学生网页设计制作成品下载 DW餐饮美食网页作业代码下载
    Android 13.0 系统go版添加支持AppWidget小部件功能的实现
    unity实现使不同尺寸物体总能较完整的显示在相机范围内
    音视频 ffplay命令播放媒体
    L43.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- chage和chpasswd
    linux mysql udf 提权
    B树和B+树 为什么B+树更适合mysql
    【进击的JavaScript|高薪面试必看】JS基础-作用域和闭包
  • 原文地址:https://blog.csdn.net/weixin_43821559/article/details/125870688