智能优化算法:战争策略算法详解/个人学习笔记

编程入门 行业动态 更新时间:2024-10-05 23:26:51

智能优化<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法:战争策略算法详解/个人学习笔记"/>

智能优化算法:战争策略算法详解/个人学习笔记

War Strategy Optimization (WSO),战争策略算法,是一种受古代战争期间军队的战略行动所启发的算法。战争策略被建模为一个优化过程,其中每个士兵动态地朝着最优值移动。

该算法对两种流行的战争策略,攻击和防御策略进行了建模。同时为了提高算法的收敛性和鲁棒性,该算法引入了一种新的权重更新机制和一种替换弱士兵(低适应度)策略。

策略介绍:

  1. ATTACK STRATEGY(攻击策略)

在该模式中,每一名士兵根据国王和指挥官的位置更新他自身的位置。

国王:国王要占据最有利的地位对敌人发起进攻,因此,具有最高攻击力(适应度)的士兵会被选为国王。

士兵:所有的士兵在初始时具有相同的等级和权重。如果一位士兵成功的执行了战术策略,则他的军衔就会相应上升。然而这一上升并不是永恒的。随着战争的进展,所有士兵的军衔和权重将根据战略的成功而更新。

随着战争接近尾声,国王、指挥官和士兵在接近目标时的位置将会非常接近。以下是位置更新的数学描述:

其中,Xi(t+1)是士兵T+1次迭代的位置,Xi(t)是T次迭代的位置,C是指挥官的位置,K是国王的位置,Wi是权重。值得注意的是,其他竞争算法(如GWO、WOA、GSA、PSO)中的权重因子将线性变化,而在当前提出的WSO算法中,权重(Wi)作为系数α呈指数变化。

士兵周围的彩色圆圈代表着基于Wi×k− Xi(t)所形成的轨迹点。

 

如果Wi>1,则Wi×k− Xi(t)在当前国王位置之外,因此士兵的更新位置在指挥官位置之外。如果Wi<1,则Wi×k− Xi(t)处于国王和当前士兵之间。与之前的情况相比,士兵的更新后的位置更接近他本来的位置。如果Wi趋向于零,则士兵的更新位置将非常接近代表战争最后阶段的指挥官位置。

  1. RANK AND WEIGHT UPDATION(等级和权重更新策略)

 

每个士兵的位置更新取决于国王、指挥官和每个士兵军衔的交互作用。每个士兵的军衔取决于他在先前战场上的成绩,每个士兵的军衔反映了士兵与目标的距离(适合度值)。

如果新位置(Fn)的攻击力(适应度)小于当前位置(Fp),士兵将保持当前位置。

如果士兵更新位置成功,士兵的Ri军衔将升级。

 

同时,根据士兵的军衔不同,士兵所占的权重也会发生变化。新权重计算如下:

 

C.DEFENSE STRATEGY(防御策略)

 

在该策略中,位置的更新基于国王、指挥官和随机士兵的位置。而军衔和权重的更新保持不变。

Xrand (t)为第 t 次迭代士兵的随机位置,其他参数意义不变。

与之前的策略相比,这种战争策略探索了更多的搜索空间,因为它涉及到随机士兵的位置。对于较大的Wi值,士兵们会采取较大的步骤并更新他们的位置。对于较小的值,Wi士兵在更新位置时会采取较小的步骤。

  1. REPLACEMENT/RELOCATION OF WEAK SOLDIERS(弱士兵的替换/重新安置)

对于每次迭代,我们都会出现攻击力(适应度)最低的弱士兵。在一场战争中没有伤亡似乎是不切实际的,同理,我们需要处理这些弱士兵。最简单的方法是用一个随机的士兵替换弱士兵。

当然,这看起来似乎有些残忍。那么第二种方法是在战场上将虚弱的士兵安置在靠近整个军队中间的地方,将他们保护起来。这种方法改善了算法的收敛性能。

 Xw(t+1)为第 t + 1次迭代替换或安置的弱兵位置; U b 、 L b 为搜索空间的上、下限值; Xw(t) 为第 t次迭代弱兵位置; randn 为 0 和 1 之间均匀分布的随机数; median (.) 为中位数函数。

算法具有的优点:

1.该算法实现了探索与开发的良好平衡。

2每个解决方案(士兵)有一个独特的、基于其军衔的权重。

3如果士兵在更新步骤中成功提高了适合度,才更新每个士兵的权重。因此,权值更新纯粹取决于士兵相对于国王和指挥官位置的位置。

4.权重将非线性变化。权重在早期迭代中变化较大,在最后迭代中变化较小。这将导致更快地收敛到全局最优值。

5.更新过程包括两个阶段。这提高了对全局最优解的探索能力。

代码流程:(简单的英文,如果看懂了上面这里应该毫无难度。)

 

探索(全局最优)和开发(收敛)是任何元启发式优化算法的两个主要标准。这两种现象之间的良好平衡将使算法更加鲁棒和高效。攻击策略代表着开发,防御策略代表着探索。影响本文算法勘探开发能力的其他主要因素有:

  1. 首先,变量“rand”可以取“0”到“1”之间的任意值。这个“rand”变量决定了士兵的移动是以探索解空间为导向还是以收敛为导向。
  2. 其次,因子ρr有助于用户根据目标函数灵活地选择一个值。通过对不同测试函数的实验,得出ρr值在(0-0.5)范围内最适合单峰函数,ρr值在(0.5-1)范围内最适合多峰函数。
  3. 第三,士兵向Xrand方向移动,使算法对搜索空间中的突出区域进行搜索,以达到全局最优。
  4. 最后,Wi因素影响士兵向最佳位置的方向。Wi使士兵在全局范围内移动并进行探索,随着搜索过程的推进和到达最后阶段,它将使士兵更具有收敛性。

算法伪代码:

初始化士兵的规模(S)(种群规模),战争空间的维度(问题的维度),搜索空间的下界和上界,国王的位置(K),指挥官(C),随机数ρr 如下:

  1. = 30; C = zeros (1, dim); K = zeros (1, dim); Max-iterations = 1000; ρr = 0.5

初始化参数:R=zeros (1, soldier size); W = 2×ones (1, soldier size)

在作战空间中随机均匀分配士兵(随机攻击):

FOR 1:soldier_size

     为每位士兵赋攻击力值

END

对所有士兵的攻击力量(适应度)进行排序,选择适应度最好的士兵为国王,第二好的为指挥官。

 

欢迎各位进行群智能算法交流学习!

 

更多推荐

智能优化算法:战争策略算法详解/个人学习笔记

本文发布于:2024-02-06 15:49:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749997.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   详解   学习笔记   策略   战争

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!