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

news/2024/7/3 5:35:56

文章目录

  • 一、理论基础
    • 1、战争策略优化算法
      • (1)攻击策略
      • (2)排名(军衔)和权重更新
      • (3)防御策略
      • (4)弱势士兵的替换/重新安置
    • 2、WSO算法伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

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.


http://www.niftyadmin.cn/n/2132479.html

相关文章

HTTP 缓存验证

缓存验证 坑&#xff1a;缓存验证的时机 在用户点击刷新按钮时浏览器会进行缓存验证被缓存的response头部包含"Cache-Control:must-revalidate"ETags 作为缓存的一种强校验器&#xff0c;ETag 响应头是一个对用户代理(User Agent, 下面简称UA)不透明&#xff08;译者…

基于非线性参数的海洋捕食者算法

文章目录一、理论基础1、海洋捕食者算法(MPA)2、非线性海洋捕食者算法(NMPA)二、仿真实验与结果分析三、参考文献一、理论基础 1、海洋捕食者算法(MPA) 请参考这里。 2、非线性海洋捕食者算法(NMPA) MPA算法根据各种研究的规则和要点以及自然界的实际行为模拟捕食者和猎物的…

基于北方苍鹰优化算法的函数寻优算法

文章目录一、理论基础1、北方苍鹰优化算法&#xff08;1&#xff09;初始化阶段&#xff08;2&#xff09;第一阶段&#xff1a;猎物识别(探索)&#xff08;3&#xff09;第二阶段&#xff1a;追逐和逃跑行为(开发)2、NGO算法伪代码二、仿真实验与结果分析三、参考文献一、理论…

BAT高级架构师分享系统化Java学习路线!

Java是目前使用最为广泛的网络编程语言之一。 它具有简单&#xff0c;面向对象&#xff0c;稳定&#xff0c;与平台无关&#xff0c;解释型&#xff0c;多线程&#xff0c;动态等特点。一般的JAVA程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA高级架构师&am…

混合策略改进的麻雀优化算法

文章目录一、理论基础1、麻雀优化算法2、混合策略改进的麻雀优化算法&#xff08;1&#xff09;佳点集的种群初始化&#xff08;2&#xff09;黄金莱维飞行策略&#xff08;3&#xff09;t-分布扰动策略&#xff08;4&#xff09;动态分配侦察者策略&#xff08;5&#xff09;M…

微信小程序-使用canvas生成含有微信头像的图片并分享

我们的需求是动态生成一个含有微信头像的图片作为分享图片。 我们在页面中添加cancas <view styleposition:absolute;left:400rpx;><canvas canvas-idttcanvas styleheight:240px;width:320px;position:absolute;left:400rpx;><!-- <view classcolorpic>…

自适应螺旋飞行麻雀搜索算法

文章目录一、理论基础1、麻雀搜索算法2、自适应螺旋飞行麻雀搜索算法&#xff08;1&#xff09;基于随机变量的Tent混沌映射&#xff08;2&#xff09;自适应权重&#xff08;3&#xff09;莱维飞行机制&#xff08;4&#xff09;可变螺旋搜索策略&#xff08;5&#xff09;改进…

MySQL 4种事务的隔离级别

2019独角兽企业重金招聘Python工程师标准>>> 事务的ACID&#xff1a; 1)原子性(Atomic)&#xff1a;事务中各项操作&#xff0c;要么全做要么全不做&#xff0c;任何一项操作的失败都会导致整个事务的失败&#xff1b; 2)一致性(Consistent)&#xff1a;事务结束后系…