全局路径规划算法—蚁群算法
蚁群算法(Ant Colony Algorithm, ACA) 于1992年在首次提出, 该算法模拟了自然界中蚂蚁的觅食行为。蚂蚁在寻找食物源时, 会在其经过的路径上释放一种信息素, 并能够感知其它蚂蚁释放的信息素。 信息素浓度的大小表征路径的远近, 信息素浓度越高, 表示对应的路径距离越短。通常, 蚂蚁会以较大的概率优先选择信息素浓度较高的路径, 并释放一定量的信息素, 以增强该条路径上的信息素浓度, 这样会形成一个正反馈。 最终蚂蚁能够找到一条从巢穴到食物源的 最佳路径, 即距离最短。
算法思想建模过程
流程图
dij:城市i与城市j之间的相互距离
allowk中的元素不断减少,直至为空,即表示所有的城市均访问完毕(不重复访问)
信息素浓度更新
信息素浓度更新部分代码
%% 更新信息素
% 计算每一条路径上的经过的蚂蚁留下的信息素
Delta_Tau = Delta_Tau_initial;
% 逐个蚂蚁计算
for i = 1:m
% 逐个节点间计算
for j = 1:length(route{i,1})-1
node_start_temp = route{i,1}(j);
node_end_temp = route{i,1}(j+1);
idx = find(Delta_Tau{node_start_temp, 2} == node_end_temp);
Delta_Tau{node_start_temp,3}(idx) = Delta_Tau{node_start_temp,3}(idx) + Q/Length(i);
end
end