1.蚁群算法(ant colony algorithm,ACA)起源和发展历程\ Marco Dorigo等人在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,于是在1991年在其博士论文中首次系统地提出一种基于蚂蚁种群的新型智能优化算法“蚂蚁系统(Ant system,简称AS)”,后来,提出者及许多研究者对该算法作了各种改进,将其应用于更为广泛的领域,如图着色问题、二次分配问题、工件排序问题、车辆路径问题、车间作业调度问题、网络路由问题、大规模集成电路设计等。近些年来,M.Dorigo等人把蚂蚁算法进一步发展成一种通用的优化技术“蚁群优化(Ant Colony Optimization,简称ACO)”,并将所有符合ACO框架的算法称为“蚁群优化算法(ACO algorithm)”。\ \ 具体来说,各个蚂蚁在没有事先告知食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种挥发性分泌物pheromone (称为信息素,该物质随着时间的推移会逐渐挥发消失,信息素浓度的大小表征路径的远近)信息素能够让其他蚂蚁感知从而起到一个引导的作用。通常多个路径上均有信息素时,蚂蚁会优先选择信息素浓度高的路径,从而使浓度高的路径信息素浓度更高,形成一个正反馈。有些蚂蚁并没有像其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果另开辟的道路比原来的其他道路更短,那么,渐渐地,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。最终,信息素浓度最高的路径即是最终被蚂蚁选中的最优路径。\ 与其他算法相比,蚁群算法是一种比较年轻的算法,具有分布式计算、无中心控制、个体之间异步间接通信等特点,并且易于与其他优化算法相结合,经过不少仁人志士的不断探索,到今天已经发展出了各式各样的改进蚁群算法,不过蚁群算法的原理仍是主干。\ 2蚁群算法的求解原理\ 基于上述对蚁群觅食行为的描述,该算法主要对觅食行为进行以下几个方面模拟:\ 1模拟的图场景中包含了两种信息素,一种表示家,一种表示食物的地点,并且这两种信息素都在以一定的速率进行挥发。\ 2 每个蚂蚁只能感知它周围的小部分地方的信息。蚂蚁在寻找食物的时候,如果在感知范围内,就可以直接过去,如果不在感知范围内,就要朝着信息素多的地方走,蚂蚁可以有一个小概率不往信息素多的地方走,而另辟蹊径,这个小概率事件很重要,代表了一种找路的创新,对于找到更优的解很重要。\ 3、蚂蚁回窝的规则与找食物的规则相同。\ 4、蚂蚁在移动时候首先会根据信息素的指引,如果没有信息素的指引,会按照自己的移动方向惯性走下去,但也有一定的机率改变方向,蚂蚁还可以记住已经走过的路,避免重复走一个地方。\ 5、蚂蚁在找到食物时留下的信息素最多,然后距离食物越远的地方留下的信息素越少。找到窝的信息素留下的量的规则跟食物相同。蚁群算法有以下几个特点:正反馈算法、并发性算法、较强的鲁棒性、概率型全局搜索、不依赖严格的数学性质、搜索时间长,易出现停止现象。\ 蚂蚁转移概率公式:\
\ 公式中:是蚂蚁k从城市i转移到j的概率;α,β分别为信息素和启发式因子的相对重要程度;为边(i,j)上的信息素量;为启发式因子;为蚂蚁k下步允许选择的城市。上述公式即为蚂蚁系统中的信息素更新公式,是边(i,j)上的信息素量;ρ是信息素蒸发系数,0<ρ<1;为第k只蚂蚁在本次迭代中留在边(i,j)上的信息素量;Q为一正常系数;为第k只蚂蚁在本次周游中的路径长度。\ 在蚂蚁系统中,信息素更新公式为:\
\ 3蚁群算法的求解步骤:\ 1.初始化参数在计算之初,需要对相关参数进行初始化,如蚁群规模(蚂蚁数量)m、信息素重要程度因子α、启发函数重要程度因子β、信息素会发银子ρ、信息素释放总量Q、最大迭代次数itermax、迭代次数初值iter=1。\ 1. 构建解空间将各个蚂蚁随机地置于不同的出发点,对每个蚂蚁k(k=1,2,3…m),按照(2-1)计算其下一个待访问城市,直到所有蚂蚁访问完所有城市。\ 2. 更新信息苏计算每个蚂蚁经过路径长度Lk(k=1,2,…,m),记录当前迭代次数中的最优解(最短路径)。同时,根据式(2-2)和(2-3)对各个城市连接路径上信息素浓度进行更新。\ 3. 判断是否终止若iter\max,则令iter=iter+1,清空蚂蚁经过路径的记录表,并返回步骤2;否则,终止计算,输出最优解。\ 4. 判断是否终止若iter\max,则令iter=iter+1,清空蚂蚁经过路径的记录表,并返回步骤2;否则,终止计算,输出最优解。3. 判断是否终止若iter\max,则令iter=iter+1,清空蚂蚁经过路径的记录表,并返回步骤2;否则,终止计算,输出最优解。\

```
clc;
clear;
%% initialization
% Define the position of the robots
% % Robot_position=[1,2;1,4;1,6;1,8;1,10];
% UAV_position=[5,7;3,2;7,13;6,9;5,5];
% % Define the target positions
% Target_position=[3,6;5,4;5,6;5,8;8,6];
% Random position
UAV_number=3; % The number of UAVs
task_number=5; % The number of Target positions
SizeofMap = [1 100]; % Map size
size_UAV = 0;
size_task = 0;
% while (sizeUAVnumber && sizetask < tasknumber)
% UAVposition = randi(SizeofMap,UAVnumber,3);
% Targetposition = randi(SizeofMap,tasknumber,3);
% % UAVposition = unique(UAVposition,'rows');
% % Targetposition = unique(Targetposition,'rows');
% sizeUAV = size(unique(UAVposition,'rows'),1);
% sizetask = size(unique(Targetposition,'rows'),1);
% end
Target_position =[63,87,84;22,24,100;74,41,51;44,59,4;68,61,36];
UAV_position = [6,6,85;88,6,3;92,98,16];
% Initial the speed of UAVs
UAVspeed=ones(UAVnumber,1)*10;
% Define the plot color for each UAV
Color_all = [0 1 0; 0 0 1; 1 1 0; 1 0 1; 0 1 1; 0 0 0];
Color = zeros(UAV_number,3);
% for i = 1 : UAV_number
% Color(i,:) = Color_all(randi(6),:) ;
% end
Color(1,:)= [0 0 0];
Color(2,:)= [1 0 1];
Color(3,:)= [0 1 0];
maxT=10; % The maximum tasks can be done by a single worker
taskfixednumber=1; % The number of workers are required for a single task
% unfinishtasknumber=tasknumber;
antnumTA=30; % The numbder of ants in Task Allocation
antnumPP=30; % The numbder of ants in Path Planning
iteratornum_TA=30; % The iteration times in Task Allocation
iteratornum_PP=30; % The iteration times in Path Planning
%% The implementation of Hungrain Algorithm
[timecostHungrain, distancecostHungrain, travelledtimeHungrain] = HungrainAlgorithmMethod(UAVposition,Targetposition,UAVnumber,UAVspeed,task_number,...
SizeofMap, Color);
%% The implementation of Ant Colony Algorithm
[timecostant,distancecostant, travelledtimeant]=AntColonyAlgorithmMethod(UAVposition,Targetposition,UAVnumber,UAVspeed,task_number,...
antnumTA, iteratornumTA, maxT,taskfixednumber, antnumPP, iteratornumPP,SizeofMap, Color);
%% The implementation of Ant Colony Algorithm in real time
[timecostantrealtime, distancecostantrealtime,travelledtimeantrealtime] = AntColonyAlgorithmMethodrealtime(UAVposition,Targetposition,UAVnumber,UAVspeed,task_number,...
antnumTA, iteratornumTA, maxT,taskfixed_number, SizeofMap, Color);
%% Comparision
figure(4);
% type = categorical({'Hungrain','Ant Colony','Ant Colony Real Time'});
timecost = [timecostHungrain, distancecostHungrain, travelledtime_Hungrain;...
timecostant,distancecostant, travelledtimeant;...
timecostantrealtime, distancecostantrealtime, travelledtimeant_realtime];
%
% bar(type, time_cost)
% xlabel('Algorithms')
% ylabel('Costs')
% title('Comparision between different Algorithms applied on Task Allocation')
% legend('Computational time (s)', 'Sum of UAVs Travelled Distance (m)', 'Sum of UAVs Travelled Time (m)');
bar(time_cost, 'grouped')
set(gca, 'XTickLabel',{'Hungrain', 'Ant Colony', 'Ant Colony Real Time'}, 'FontSize', 18);
set(gca, 'ygrid','on','GridLineStyle','-');
xlabel('Algorithms','FontSize',18)
ylabel('The meansured data used to appraise algorithm performance','FontSize',18)
title('Comparision of the performance between different algorithms in MRTA problem','FontSize',18)
legend('Computational time (s)', 'Sum of UAVs Travelled Distance (m)', 'Sum of UAVs Traveled Time (s)','FontSize',18); ```
[1] Chen, Xia, and Yan-zhi Qiao. "Summary of unmanned aerial vehicle task allocation." Journal of Shenyang Aerospace University 33.6 (2016): 1-7.
[2] Wang, Jianping, Yuesheng Gu, and Xiaomin Li. "Multi-robot task allocation based on ant colony algorithm." Journal of Computers 7.9 (2012): 2160-2167.
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类