智能优化算法:变色龙算法


文章目录

  • 智能优化算法:变色龙算法
  • 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 搜索猎物

变色龙的搜索猎物的方式可以用下式表示:
智能优化算法:变色龙算法 -附代码_算法
式中,智能优化算法:变色龙算法 -附代码_搜索_02为变色龙智能优化算法:变色龙算法 -附代码_算法_03 在维度智能优化算法:变色龙算法 -附代码_矩阵_04中当前、下一步的位置;智能优化算法:变色龙算法 -附代码_算法_05为当前最优个体位置;智能优化算法:变色龙算法 -附代码_算法_06为变色龙智能优化算法:变色龙算法 -附代码_算法_03 迄今为止的最好位置;智能优化算法:变色龙算法 -附代码_搜索_08智能优化算法:变色龙算法 -附代码_算法_09是控制勘探能力的两个参数;智能优化算法:变色龙算法 -附代码_搜索_10智能优化算法:变色龙算法 -附代码_算法_11智能优化算法:变色龙算法 -附代码_算法_12智能优化算法:变色龙算法 -附代码_搜索_13均为[0,1]内的随机数,智能优化算法:变色龙算法 -附代码_优化算法_14表示变色龙感知猎物的概率。智能优化算法:变色龙算法 -附代码_动态规划_15分别表示第智能优化算法:变色龙算法 -附代码_矩阵_04维的上、下限。智能优化算法:变色龙算法 -附代码_优化算法_17为1或-1,主要影响勘探和开发方向。智能优化算法:变色龙算法 -附代码_搜索_18的计算方式为:
智能优化算法:变色龙算法 -附代码_算法_19
其中智能优化算法:变色龙算法 -附代码_算法_20分别为1、3.5、3,智能优化算法:变色龙算法 -附代码_优化算法_21 为当前迭代次数,智能优化算法:变色龙算法 -附代码_矩阵_22为最大迭代次数。

1.3 变色龙眼睛旋转

此阶段模拟变色龙通过眼睛旋转定位猎物时的位置更新:
智能优化算法:变色龙算法 -附代码_算法_23
式中智能优化算法:变色龙算法 -附代码_优化算法_24为变色龙在位置旋转前的各维度平均位置,智能优化算法:变色龙算法 -附代码_算法_25为旋转后的坐标,智能优化算法:变色龙算法 -附代码_算法_26为旋转中心坐标:
智能优化算法:变色龙算法 -附代码_算法_27
这里智能优化算法:变色龙算法 -附代码_优化算法_28为定心坐标:
智能优化算法:变色龙算法 -附代码_矩阵_29
智能优化算法:变色龙算法 -附代码_优化算法_30表示变色龙位置旋转的旋转矩阵:
智能优化算法:变色龙算法 -附代码_动态规划_31
其中智能优化算法:变色龙算法 -附代码_搜索_32为坐标空间中的两个正交向量,智能优化算法:变色龙算法 -附代码_优化算法_33指定义的各轴中的旋转矩阵; 智能优化算法:变色龙算法 -附代码_优化算法_34是变色龙眼睛的旋转角:
智能优化算法:变色龙算法 -附代码_动态规划_35
这里智能优化算法:变色龙算法 -附代码_动态规划_36为[0,1]内一随机值,所以这样就可以将角度限定在[-180°,180°]内。

1.4 捕获猎物

变色龙的舌头落向猎物时的速度定义为:
智能优化算法:变色龙算法 -附代码_矩阵_37
其中智能优化算法:变色龙算法 -附代码_算法_05为当前最优个体位置;智能优化算法:变色龙算法 -附代码_算法_06为变色龙迄今为止的最好位置;智能优化算法:变色龙算法 -附代码_矩阵_40控制着智能优化算法:变色龙算法 -附代码_优化算法_41对弹舌速度的影响;

智能优化算法:变色龙算法 -附代码_算法_42的更新方式为:
智能优化算法:变色龙算法 -附代码_算法_43
这里智能优化算法:变色龙算法 -附代码_动态规划_44是控制开发能力的参数。当变色龙的舌头向猎物投射时,其位置隐含地表示变色龙的位置,可根据第三运动方程计算:
智能优化算法:变色龙算法 -附代码_动态规划_45
式中智能优化算法:变色龙算法 -附代码_矩阵_46为弹舌的加速度:
智能优化算法:变色龙算法 -附代码_搜索_47
算法伪代码如下:

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.实验结果

智能优化算法:变色龙算法 -附代码_矩阵_48

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