智能优化算法:变色龙算法
文章目录
- 智能优化算法:变色龙算法
- 1.算法原理
- 1.1初始化
- 1.2 搜索猎物
- 1.3 变色龙眼睛旋转
- 1.4 捕获猎物
- 2.实验结果
- 3.参考文献
- 4.Matlab
- 4.Matlab
摘要:变色龙算法(Chameleon Swarm Algorithm,CSA)是于2021年提出的一种新型智能优化算法。主要模拟了变色龙在树木、沙漠和沼泽附近寻找食物时动态行为。具有寻优能力强,收敛速度快,精度高等特点。
1.算法原理
该算法对变色龙寻找食物的行为步骤进行数学建模和实现,其中包括将眼睛旋转近360度进行猎物定位、用高速发射的粘性舌头捕获猎物。
1.1初始化
该算法与其他优化算法一样,在搜索范围内随机初始化。
1.2 搜索猎物
变色龙的搜索猎物的方式可以用下式表示:
式中,为变色龙 在维度中当前、下一步的位置;为当前最优个体位置;为变色龙 迄今为止的最好位置;、是控制勘探能力的两个参数;、、,均为[0,1]内的随机数,表示变色龙感知猎物的概率。分别表示第维的上、下限。为1或-1,主要影响勘探和开发方向。的计算方式为:
其中分别为1、3.5、3, 为当前迭代次数,为最大迭代次数。
1.3 变色龙眼睛旋转
此阶段模拟变色龙通过眼睛旋转定位猎物时的位置更新:
式中为变色龙在位置旋转前的各维度平均位置,为旋转后的坐标,为旋转中心坐标:
这里为定心坐标:
表示变色龙位置旋转的旋转矩阵:
其中为坐标空间中的两个正交向量,指定义的各轴中的旋转矩阵; 是变色龙眼睛的旋转角:
这里为[0,1]内一随机值,所以这样就可以将角度限定在[-180°,180°]内。
1.4 捕获猎物
变色龙的舌头落向猎物时的速度定义为:
其中为当前最优个体位置;为变色龙迄今为止的最好位置;控制着对弹舌速度的影响;
的更新方式为:
这里是控制开发能力的参数。当变色龙的舌头向猎物投射时,其位置隐含地表示变色龙的位置,可根据第三运动方程计算:
式中为弹舌的加速度:
算法伪代码如下:
1: Pp ← 0.1 (the position update probability)
2: r 1 , r 2 , r 3 , r i are random numbers between 0 and 1
3: u and l are the upper and lower bounds of the search area
4: d ← dimension of the problem
5: y i t is the center of the current position of chameleon i at iteration t
6: yr i t is the rotating centered coordinates of chameleon i at iteration t which can be defined using Eq. (4)
7: Randomly initialize the position of a swarm of n chameleons in the search space.
8: Initialize the velocity of dropping chameleons’ tongues
9: Evaluate the position of the chameleons
10: while (t < T) do
11: Define the parameter μ using Eq. (6)
12: Define the inertia weight ω using Eq. (9)
13: Define the acceleration rate a using Eq. (11)
14: for i = 1 to n do
15: for j = 1 to d do
16: do Eq(1)
17: end for
18: end for
19: for i = 1 to n do
20: do Eq(5)
21: end for
22: for i = 1 to n do
23: for j = 1 to d do
24: do Eq(8),(10)
25: end for
26: end for
27:Adjust the chameleons’ positions according to u and l
28:Evaluate the new positions of the chameleons
29:Update the position of the chameleons
30:t=t+1
31:end while
2.实验结果
3.参考文献
[1] Braik M S . Chameleon Swarm Algorithm: A Bio-inspired Optimizer for Solving Engineering Design Problems[J]. Expert Systems with Applications, 2021, 174(1):114685.
4.Matlab
for Solving Engineering Design Problems[J]. Expert Systems with Applications, 2021, 174(1):114685.
4.Matlab