智能优化算法:爬虫搜索算法 – 附代码

智能优化算法:爬虫搜索算法

1.算法原理

1.1 初始化

与其他优化算法一样,总体在搜索空间内随机初始化:
x_%7Bi%2C%20j%7D%3D%5Coperatorname%7Brand%7D%20%5Ctimes%28U%20B-L%20B%29%2BL%20B%2C%20j%3D1%2C2%2C%20%5Ccdots%2C%20n%20%5Ctag%7B1%7D
x_%7Bi%2Cj%7D表示第i个候选解第j维的位置;N为候选解的数量;n为给定问题的维度。rand是[0,1]之间的随机数,LBUB分别表示给定问题的下界和上界。

1.2 包围阶段(探索)

这个搜索阶段取决于两个条件。高空行走策略取决于t%5Cleq%20T/4,腹部行走策略取决于T/4%3Ct%20%5Cleq%20T/2。这意味着:这一条件将满足几乎一半的探索迭代次数(高空行走)和另一半的腹部行走。这是两种探索搜索方法。注意,对元素的随机比例系数进行检查,以生成更多不同的解决方案并探索不同的区域。探索阶段的位置更新方程,如式(2)所示。
x_%7B%28i%2C%20j%29%7D%28t%2B1%29%3D%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%20%5Ctext%20%7B%20Best%20%7D_%7Bj%7D%28t%29-%5Ceta_%7B%28i%2C%20j%29%7D%28t%29%20%5Ctimes%20%5Cbeta-R_%7B%28i%2C%20j%29%7D%28t%29%20%5Ctimes%20%5Ctext%20%7B%20rand%20%7D%2C%20%5Cquad%20t%20%5Cleq%20%5Cfrac%7BT%7D%7B4%7D%20%5C%5C%20%5Ctext%20%7B%20Best%20%7D_%7Bj%7D%20%5Ctimes%20x_%7B%28r%201%2C%20j%29%7D%20%5Ctimes%20E%20S%28t%29%20%5Ctimes%20%5Ctext%20%7B%20rand%20%7D%2C%20%5Cquad%20t%20%5Cleq%20%5Cfrac%7BT%7D%7B2%7D%20%5Ctext%20%7B%20and%20%7D%20t%3E%5Cfrac%7BT%7D%7B4%7D%20%5Cend%7Barray%7D%5Cright.%5Ctag%7B2%7D
其中,Best_j是当前最优解的第j维位置;rand为 (0,1) 之间的随机数;t为当前迭代次数;T为最大迭代次数;%5Ceta_%7B%28i%2C%20j%29%7D表示第i个候选解第j维的狩猎算子,计算如式(3)所示;%5Cbeta是一个敏感参数,控制迭代过程中包围阶段的探索精度(即高空行走),固定为0.1;缩减函数R_%7B%28i%2C%20j%29%7D%20%28t%29是一个用于减少搜索区域的值,使用式(4)计算;r_%7B1%7D是 $[1, N] $之间的随机整数,x_%7B%28r%201%2C%20j%29%7D表示第$r_{1} $个随机候选解的第j维位置;N是候选解数 量;进化因子ES%28t%29是一个概率比,在整个迭代过程中,取值在2和-2之间随机递减,使用式(5)计算。
%5Ceta_%7B%28i%2C%20j%29%7D%3D%5Coperatorname%7BBest%7D_%7Bj%7D%28t%29%20%5Ctimes%20P_%7B%28i%2C%20j%29%7D%20%5Ctag%7B3%7D

R_%7B%28i%2C%20j%29%7D%3D%5Cfrac%7B%5Coperatorname%7BBest%7D_%7Bj%7D%28t%29-x_%7B%28r_2%2C%20j%29%7D%7D%7B%5Coperatorname%7BBest%7D_%7Bj%7D%28t%29%2B%5Cvarepsilon%7D%5Ctag%7B4%7D

E%20S%28t%29%3D2%20%5Ctimes%20r_%7B3%7D%20%5Ctimes%5Cleft%281-%5Cfrac%7Bt%7D%7BT%7D%5Cright%29%20%5Ctag%7B5%7D

其中,%5Cvarepsilon是一个很小的正数;r_%7B2%7D是 $[1, N] $的随机整数;r_%7B3%7D表示%5B-1%2C1%5D之间的随机整数; $P_{(i, j)}%E8%A1%A8%E7%A4%BA%E6%9C%80%E4%BD%B3%E8%A7%A3%E5%92%8C%E5%BD%93%E5%89%8D%E8%A7%A3%E7%AC%ACj $维位置的百分比差异,计算如式(6)所示。
P_%7B%28i%2C%20j%29%7D%3D%5Calpha%2B%5Cfrac%7Bx_%7B%28i%2C%20j%29%7D-M%5Cleft%28x_%7Bi%7D%5Cright%29%7D%7B%5Coperatorname%7BBest%7D_%7Bj%7D%28t%29%20%5Ctimes%5Cleft%28U%20B_%7B%28j%29%7D-L%20B_%7B%28j%29%7D%5Cright%29%2B%5Cvarepsilon%7D%5Ctag%7B6%7D
其中, $M\left(x_{i}\right)%E8%A1%A8%E7%A4%BA%E7%AC%ACi$个候选解的平均位置,其计算如式(7)所示; $U B_{(j)} $和 $L B_{(j)}%E5%88%86%E5%88%AB%E8%A1%A8%E7%A4%BA%E7%AC%ACj$维位置的上界和下界;%5Calpha是一个敏感参数,用于控制迭代过程中狩猎合作的搜索精度(候选解之间的差异),本文将其固定为 0.1 。
M%5Cleft%28x_%7Bi%7D%5Cright%29%3D%5Cfrac%7B1%7D%7Bn%7D%20%5Csum_%7Bj%3D1%7D%5E%7Bn%7D%20x_%7B%28i%2C%20j%29%7D%20%5Ctag%7B7%7D

1.3 狩猎阶段(开发)

RSA的开发机制利用了搜索空间,并基于两种主要的搜索策略(狩猎协调和狩猎合作)找到了最优解,模型如式(8)所示。狩猎协调操作取决于t%20%5Cleq%203%20%5Cfrac%7BT%7D%7B4%7Dt%3E2%20%5Cfrac%7BT%7D%7B4%7D,狩猎合作操作取决于t%20%5Cleq%20Tt%3E3%20%5Cfrac%7BT%7D%7B4%7D
x%28i%2Cj%29%28t%2B1%29%3D%5Cbegin%7Bcases%7D%20Best_j%28t%29%5Ctimes%20P%28i%2Cj%29%28t%29%5Ctimes%20rand%2C%5Cquad%20w%5Cfrac%7BT%7D%7B4%7D%3Ct%5Cleq%20%5Cfrac%7B3T%7D%7B4%7D%5C%5C%20Best_j%28t%29-%5Ceta_%7B%28i%2C%20j%29%7D%28t%29%5Ctimes%5Cvarepsilon-R%28i%2Cj%29%28t%29%5Ctimes%20rand%2C%5Cquad%203%5Cfrac%7BT%7D%7B4%7D%3Ct%3CT%20%5Cend%7Bcases%7D%5Ctag%7B8%7D
其中Best_j%28t%29表示当前第j维的最佳位置;%5Ceta_%7B%28i%2Cj%29%7D表示第i个候选解第j维的狩猎算子,计算如式(3)所示;P_%7B%28i%2Cj%29%7D表示最佳解和当前解第j维位置的百分比差异,计算如式(6)所示;%5Cvarepsilon是一个很小的正数;缩减函数R_%7B%28i%2Cj%29%7D是一个用于减少搜索区域的值,使用式(4)计算。

算法流程图如下:

请添加图片描述

2.实验结果

请添加图片描述

3.参考文献

[1] Abualiga H L , Elaziz M A , Sumari P , et al. Reptile Search Algorithm (RSA): A nature-inspired meta-heuristic optimizer[J]. Expert Systems with Applications, 2021, 191(11):116158.

4.Matlab

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐