1. 关键概念
1.两个阶段:搜索和攻击猎物。本文提出的算法(SCSO)就包括了这两个阶段,此外,还提出了一种机制来实现探索和利用阶段的平衡。
2.算法运行时首先根据问题的规模( N pop × N d ) , ( pop = 1 , . . . , n =1,…,n=1,…,n)利用沙丘猫群创建一个候选矩阵,然后就目标函数对每个沙丘猫进行适应度评估,选择出其中最优的个体,其他的个体都朝向该个体移动。
2. 搜索猎物(探索)
2.1常规的灵敏度
沙丘猫的敏感范围:2 kHz 到 0 kHz。
其中:
rG是迭代过程中沙丘猫的敏感度,随着迭代的进行值从sM递减到0。
sM是沙猫的敏感最大值,此例子中设为2,可根据具体应用来设定。
iterc是当前迭代次数,itermax是最大迭代次数。
2.2 沙丘猫的灵敏度
为避免陷入局部最优,每只沙丘猫的灵敏度范围是不同的:
此外,r用于探索或利用阶段的操作,rG用于导引参数R 以实现在这些阶段间转移控制。
3. 控制探索和利用之间转换
控制探索和利用之间转换的主要由参数R决定,R则由式子1中的参数rG决定,其表达式如下:
4. 目标函数(适应度函数)
一般根据具体应用例子来定,例如将目标函数设定为误差,则使得目标函数值(即误差)最小的猫则是最优解。
5. 沙猫位置更新
5.1 探索时
其中:
Posbc(t)是第t次迭代时的最优位置(最优解)。最优解根据目标函数的值来确定!
Posc(t)是第t次迭代时沙猫的当前位置。
5.2利用时
同时假设沙丘猫的灵敏度范围是一个圆,这样移动的方向就可以通过圆上的一个随机角度 θ 确定。由于所选的随机角度在0到360之间,其值将在−1到1之间。这样,群体中的每个成员都能够在搜索空间中沿着不同的圆周方向移动。SCSO利用轮盘选择算法为每只沙丘猫选择一个随机角度。用这种方法,沙丘猫可以接近狩猎位置,为避免陷入局部最优,采用了随机角度。
5.3探索和利用(搜寻和攻击)
6. 算法整体流程
7.参考文献
[1] Seyyedabbasi A , Kiani F . Sand Cat swarm optimization: a nature-inspired algorithm to solve global optimization problems[J]. Engineering with Computers, 2022:1-25.
[2] https://blog.csdn.net/hba646333407/article/details/124988573
8.应用举例
SCSO优化PID参数为例子,给出分析问题的思路、过程以及matlab实现代码。
待续…