一、变色龙算法CSA
变色龙算法(Chameleon Swarm Algorithm,CSA)是于2021年提出的一种新型智能优化算法。主要模拟了变色龙在树木、沙漠和沼泽附近寻找食物时动态行为。具有寻优能力强,收敛速度快,精度高等特点。
参考文献:[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.
二、旅行商问题
三、变色龙算法CSA求解旅行商问题
close all
clear
clc
%数据集参考文献 REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data
load('data.txt')%导入TSP数据集bayg29
Dim=size(data,1)-1;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=5000; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=CSA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
部分结果
算法得到的路径:1 > 28 > 8 > 23 > 27 > 24 > 13 > 16 > 7 > 25 > 19 > 4 > 15 > 11 > 22 > 17 > 14 > 18 > 10 > 20 > 2 > 21 > 5 > 29 > 3 > 26 > 9 > 12 > 6 > 1
算法求解的总路径总长:9637.8869
四、完整MATLAB代码
点击main.m即可运行,可调节种群大小和迭代次数,上下限无关紧要,也可以调节
Fun.m是目标函数
PlotLineArrow.m是画箭头的函数
PlotResult.m是独立展示文件,可以独立运行
Kd.txt是优化得到的城市序列
curve.txt是算法的收敛曲线
data.txt是城市坐标(可以更改)