什么是蚁群算法
蚁群算法就是模拟蚂蚁寻找食物的过程,它能够求出从原点出发,经过若干个给定的需求点,最终返回原点的最短路径。这也就是著名的旅行商问题。
蚁群算法原理
1.蚂蚁在路径上释放信息素。
2.碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。
3.信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。
4.最优路径上的信息素浓度越来越大。
5.最终蚁群找到最优寻食路径。
蚁群算法基本流程
代码实现
%% 旅行商问题(TSP)优化
%% 清空环境变量
clear all
clc
%% 导入数据
load citys_data.mat
%% 计算城市间相互距离
fprintf('Computing Distance Matrix... \n');
n = size(citys,1);
D = zeros(n,n);
for i = 1:n
for j = 1:n
if i ~= j
D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2));
else
D(i,j) = 1e-4;
end
end
end
%% 初始化参数
fprintf('Initializing Parameters... \n');
m = 50; % 蚂蚁数量
alpha = 1; % 信息素重要程度因子
beta = 2; % 启发函数重要程度因子
rho = 0.7; % 信息素挥发因子
Q = 1; % 常系数
Eta = 1./D; % 启发函数
Tau = ones(n,n); % 信息素矩阵
Table = zeros(