多目标蚁群算法及其实现
蚁群算法的原理与实现

蚁群算法的原理与实现蚁群算法的原理与实现蚁群算法是一种基于蚁群行为觅食的启发式搜索算法,它模拟了蚁群觅食的过程,通过蚂蚁之间的信息交流和相互合作,最终找到最优解。
蚁群算法具有自组织、分布式计算和并行搜索等特点,被广泛应用于优化问题的求解。
蚁群算法的基本原理是模拟蚂蚁觅食的行为。
在蚂蚁觅食的过程中,蚂蚁们会释放信息素,并根据信息素的浓度选择路径。
当一只蚂蚁找到食物后,它会返回蚁巢,并释放更多的信息素,吸引其他蚂蚁跟随它的路径。
随着时间的推移,路径上的信息素浓度会逐渐增加,越来越多的蚂蚁会选择这条路径,形成正反馈的效应。
最终,蚂蚁们会找到一条最优路径连接蚁巢和食物。
蚁群算法的实现过程可以分为两个阶段,即路径选择阶段和信息素更新阶段。
在路径选择阶段,蚂蚁根据信息素的浓度和距离选择路径。
通常情况下,蚂蚁倾向于选择信息素浓度高且距离短的路径。
在信息素更新阶段,蚂蚁会根据路径的质量释放信息素。
一般来说,路径质量好的蚂蚁会释放更多的信息素,以吸引更多的蚂蚁跟随。
为了实现蚁群算法,需要定义一些重要的参数,如信息素浓度、信息素挥发率、蚂蚁的移动速度和路径选择的启发因子等。
信息素浓度表示路径上的信息素浓度大小,信息素挥发率表示信息素的衰减速度,蚂蚁的移动速度表示蚂蚁在路径上的移动速度,路径选择的启发因子表示蚂蚁在选择路径时信息素和距离的权重。
蚁群算法的优势在于它能够找到全局最优解,并且对解空间的搜索范围不敏感。
同时,蚁群算法还能够处理具有多个局部最优解的问题,通过信息素的传播和挥发,逐渐淘汰次优解,最终找到全局最优解。
然而,蚁群算法也存在一些不足之处。
首先,算法的收敛速度较慢,需要进行多次迭代才能达到较好的结果。
此外,算法的参数设置对算法的性能影响较大,需要进行调优。
最后,蚁群算法在处理大规模问题时,需要消耗较大的计算资源。
总的来说,蚁群算法是一种有效的优化算法,能够解决许多实际问题。
通过模拟蚂蚁的觅食行为,蚁群算法能够找到最优解,具有自组织、分布式计算和并行搜索等特点。
多目标蚁群算法

多目标蚁群算法
多目标蚁群算法是蚁群算法在处理多目标优化问题时的一种改进方法。
在传统的蚁群算法中,仅考虑了单个目标函数的优化,而在多目标优化问题中,通常存在多个冲突的目标函数,不可能找到一个最优解同时使所有目标函数达到最优。
多目标蚁群算法通过引入多个目标函数的权重,将多目标优化问题转化为单目标优化问题。
具体来说,多目标蚁群算法将每个蚂蚁的路径长度替换为一个评价函数,该评价函数综合考虑了所有目标函数的权重,并将其最小化作为优化目标。
在多目标蚁群算法中,蚂蚁的行为规则和信息素更新规则与传统的蚁群算法相似。
蚂蚁通过局部搜索和信息素引导搜索解空间,并不断更新信息素以反映搜索结果。
然而,多目标蚁群算法需要在每个蚂蚁进行信息素更新时考虑所有目标函数对当前解的影响,以动态调整信息素更新速率。
多目标蚁群算法的优势在于能够有效地处理多目标优化问题,并在有限时间内生成一系列近似的非劣解。
这些非劣解构成了问题的帕累托前沿,为决策者提供了一系列可供选择的最优解。
由于多目标蚁群算法只需要对目标函数进行加权求和,因此算法的复杂度与目标函数的规模无关。
这使得多目标蚁群算法在处理实际复杂问题时具有较好的可扩展性和泛化能力。
多目标蚁群算法及其实现

多目标蚁群算法及其实现李首帅(2012101020019)指导老师:张勇【摘要】多目标优化问题对于现阶段来说,是十分热门的。
本文将对多目标规划当中的旅行商问题,通过基于MATLAB的蚁群算法来解决,对多目标问题进行局部优化。
【关键词】旅行商问题;蚁群算法;MATLAB一、背景介绍旅行商问题是物流领域当中的典型问题,它的求解十分重要。
蚁群算法是受自然界中真实蚁群的集体行为的启发而提出的一种基于群体的模拟进化算法,属于随机搜索算法。
M. Dorigo等人充分利用了蚁群搜索食物的过程与旅行商问题(TSP)之间的相似性,通过人工模拟蚁群搜索食物的行为(即蚂蚁个体之间通过间接通讯与相互协作最终找到从蚁穴到食物源的最短路径)来求解TSP问题。
为区别于真实蚁群,称算法中的蚂蚁为“人工蚂蚁”。
人们经过大量研究发现,蚂蚁个体之间是通过一种称之为信息素(pheromone)的物质进行信息传递,从而能相互协作,完成复杂的任务。
蚁群之所以表现出复杂有序的行为,个体之间的信息交流与相互协作起着重要的作用。
蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且能够感知这种物质的存在及其强度,并以此指导自己的运动方向。
蚂蚁倾向于朝着该物质强度高的方向移动。
因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。
二、蚁群算法原理介绍1.蚁群在路径上释放信息素;2.碰到还没走过的路口,就随机挑选一条路走。
同时释放与路径长度有关的信息素;3.信息素浓度与路长成反比;4.最优路径上的信息浓度越来越大;5.最终蚁群找到最优路径。
其实自然界中,蚁群这种寻找路径的过程表现是一种正反馈的过程,与人工蚁群的优化算法很相近。
所以我们简单功能的工作单元视为蚂蚁,则上述的搜寻路径过程可以用来解释人工蚁群搜寻过程。
人工蚁群和自然界蚁群各具特点。
蚁群算法(ACA)及其Matlab实现

蚁群算法(ACA)及其Matlab实现1基本原理:本质上也是⼀种概率算法,通过⼤概率收敛到最佳值,和其他的智能算法很相似。
蚁群分泌的信息素存在正反馈,使得较佳的解具有⼤概率被选到,当全局都选⽤较佳的解,变可以得到整体的最优解。
2⼏个关键点:1)概率选择:受信息素浓度和启发函数影响,启发函数为距离的倒数2)信息素挥发考虑到信息素随时间的挥发,加⼊挥发因⼦3程序设计步骤:1初始化各个参数:包括各点的距离,信息素的初始浓度,蚂蚁数量,信息素挥发因⼦,信息素和启发函数的重要度因⼦,启发函数,最⼤迭代次数,路径记录表等等2迭代:对每个蚂蚁随机制定初始值,再根据概率选择,选择出每只蚂蚁的路径,确定每只蚂蚁的路径总长度,以及蚁群的最佳路径长度和平均长度,并对信息素进⾏更新。
3展⽰:展⽰出最佳路径,以及最佳路径对迭代的变化图4Matlab代码clc,clear %清空环境中的变量load data.txt %读⼊城市的坐标t0 = clock; %程序计时开始%%%%%%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%city=data;n = size(city,1); %城市距离初始化D = zeros(n,n);for i = 1:nfor j = 1:nif i ~= jD(i,j) = sqrt(sum((city(i,:) - city(j,:)).^2));elseD(i,j) = 0; %设定的对⾓矩阵修正值endendendm=30; %蚂蚁数量alpha = 1; % 信息素重要程度因⼦beta = 5; % 启发函数重要程度因⼦v = 0.1; % 信息素挥发因⼦Q = 0.5; % 信息因⼦常系数H= 1./D; % 启发函数T= ones(n,n); % 信息素矩阵Table = zeros(m,n); % 路径记录表iter = 1; % 迭代次数初值iter_max = 50; % 最⼤迭代次数best_route = zeros(iter_max,n); % 各代最佳路径best_length = zeros(iter_max,1); % 各代最佳路径的长度%%while iter<=iter_max% 随机产⽣每只蚂蚁的起点城市start = zeros(m,1);for i = 1:mtemp = randperm(n);start(i) = temp(1);endTable(:,1) = start;city_index=1:n;for i = 1:m% 逐个城市路径选择for j = 2:ntabu = Table(i,1:(j - 1)); % 已访问的城市集合allow =city_index( ~ismember(city_index,tabu)); % 筛选出未访问的城市集合P = zeros(1,length(allow));% 计算相连城市的转移概率for k = 1:length(allow)P(k) = T(tabu(end),allow(k))^alpha * H(tabu(end),allow(k))^beta;endP = P/sum(P);% 轮盘赌法选择下⼀个访问城市Pc = cumsum(P); %参加说明2(程序底部)target_index = find(Pc >= rand);target = allow(target_index(1));Table(i,j) = target;endend% 计算各个蚂蚁的路径距离Length = zeros(m,1);for i = 1:mRoute = [Table(i,:) Table(i,1)];for j = 1:nLength(i) = Length(i) + D(Route(j),Route(j + 1));endend%对最优路线和距离更新if iter == 1[min_length,min_index] = min(Length);best_length(iter) = min_length;best_route(iter,:) = Table(min_index,:);else[min_length,min_index] = min(Length);if min_length<best_length(iter-1)best_length(iter)=min_length;best_route(iter,:)=Table(min_index,:);elsebest_length(iter)=best_length(iter-1);best_route(iter,:)=best_route(iter-1,:);endend% 更新信息素Delta_T= zeros(n,n);% 逐个蚂蚁计算for i = 1:m% 逐个城市计算Route = [Table(i,:) Table(i,1)];for j = 1:nDelta_T(Route(j),Route(j+1)) = Delta_T(Route(j),Route(j+1)) +D(Route(j),Route(j+1))* Q/Length(i); endendT= (1-v) * T + Delta_T;% 迭代次数加1,并清空路径记录表iter = iter + 1;Table = zeros(m,n);end%--------------------------------------------------------------------------%% 结果显⽰shortest_route=best_route(end,:); %选出最短的路径中的点short_length=best_length(end);Time_Cost=etime(clock,t0);disp(['最短距离:' num2str(short_length)]);disp(['最短路径:' num2str([shortest_route shortest_route(1)])]);disp(['程序执⾏时间:' num2str(Time_Cost) '秒']);%--------------------------------------------------------------------------%% 绘图figure(1)%采⽤连线图画起来plot([city(shortest_route,1);city(shortest_route(1),1)], [city(shortest_route,2);city(shortest_route(1),2)],'o-');for i = 1:size(city,1)%对每个城市进⾏标号text(city(i,1),city(i,2),[' ' num2str(i)]);endxlabel('城市位置横坐标')ylabel('城市位置纵坐标')title(['蚁群算法最优化路径(最短距离):' num2str(short_length) ''])figure(2)%画出收敛曲线plot(1:iter_max,best_length,'b')xlabel('迭代次数')ylabel('距离')title('迭代收敛曲线') 程序说明:采⽤蚁群算法求取TSP问题,共有34个城市,从txt⽂件加载数据:运⾏结果:。
多目标优化中基于多策略蚁群算法的研究

多目标优化中基于多策略蚁群算法的研究随着现代科技不断发展,人们对于优化问题的解决方案越来越重视。
优化问题是现代科学、工程等领域中一个重要的研究方向,其目的在于找到最优的解决方案。
然而,现实问题的复杂性往往导致解决方案不止一个,并且在权衡多重限制的情况下产生的多个解决方案并不一定相同。
这就需要多目标优化的方法来解决这样的问题,而蚁群算法是多目标优化问题中的重要算法之一。
蚁群算法最初是基于实际观察到的蚂蚁生物行为而生的,该算法模仿了蚂蚁在食物寻求中的集群行为,并通过模拟这种行为来寻找问题的解决方案。
在蚁群算法中,虚拟的"蚂蚁"会在解决方案空间中搜索并不断交流,通过信息素感知和沉淀来更新搜索路径,最终找到最优解。
然而,传统的蚁群算法并不能适用于多目标优化问题。
多目标优化问题的特点往往是相互矛盾的多个目标函数,如在设计一款汽车时,一方面要追求高速度和性能,但是另一方面还要兼顾低燃料消耗和环保减排。
针对这样的情况,我们需要一种新的蚁群算法模型——基于多策略蚁群算法。
多策略蚁群算法结合了传统的蚁群算法和多策略决策的方法,通过在搜索过程中使用多个策略来解决多目标优化问题。
具体来说,多策略蚁群算法会在搜索过程中更新和选择相应的策略方案,而不是一味地选择单一策略运算。
这种方法能够让解决方案更加均衡和多样,更加符合多目标优化问题的特点。
多策略蚁群算法中的策略有很多种,比如多目标参数控制策略、快速非支配排序策略、最短路径选择策略、局部搜索策略等。
不同的策略针对不同的多目标优化问题具有不同的优缺点,使用多个策略进行比较和综合能够得到更优解。
例如,在汽车设计问题中,对于速度和性能这两个目标函数,可以使用多目标参数控制策略和最短路径选择策略来解决,通过控制和更新参数,同时指导路径的选择能够找到相对更优的设计方案。
总的来说,基于多策略蚁群算法的多目标优化方法是一种有效的解决方案,能够满足多目标优化问题的特点,使得解决方案更加稳定和多样。
基于蚁群算法的多目标路径规划研究

基于蚁群算法的多目标路径规划研究在现代社会,路径规划已经成为了人们生活的必需品。
无论是在城市导航、物流配送还是机器人自动导航等领域,都需要实现高效、准确的路径规划。
而蚁群算法则是一种非常有效的方法,可以在多目标路径规划中得到广泛应用。
本文将介绍基于蚁群算法的多目标路径规划研究。
一、路径规划路径规划是一种解决从起点到终点之间如何到达的问题。
在计算机科学中,路径规划是一种基本问题,针对不同的应用有不同的算法。
在实际应用中,进行路径规划时一般需要考虑多个因素,如路况、距离、时间、速度、安全等等。
因此,对多目标路径规划的研究具有重要的意义。
二、蚁群算法蚁群算法最初是受到蚂蚁觅食的行为启发而提出的。
在蚁群算法中,一群蚂蚁在寻找食物的过程中,会通过信息素的传递和蒸发来寻找最短路径,并最终找到食物。
这一过程可以非常好地应用于路径规划问题。
蚁群算法具有以下特点:(1)多个人工蚂蚁共同搜索蚁群算法是通过多个人工蚂蚁在搜索空间中移动,从而寻找目标的最优解。
(2)信息素在蚁群算法中,每个人工蚂蚁都会释放信息素,这些信息素会在搜寻过程中在路径上积累,蚂蚁会选择信息素强度大的路径来移动。
(3)正反馈在蚁群算法中,信息素的强度会随着蚂蚁的路径选择而发生变化,当某条路径被选择后,信息素的强度会增加,从而更有可能吸引其他蚂蚁选择这条路径。
三、多目标路径规划在多目标路径规划中,需要同时考虑多种因素。
例如,在城市导航中,既需要考虑最短距离,同时还需要考虑路况、道路拥堵等因素;在机器人自动导航中,既需要考虑路径的连贯性,同时还需要避开障碍物、保证安全等等。
传统的路径规划算法通常采用单一的评价函数,而对于多目标问题,通常采用Pareto最优解来解决问题。
其中,Pareto最优解指的是在多个目标之间不存在更好的解,而多个目标之间又相互独立。
四、基于蚁群算法的多目标路径规划应用基于蚁群算法的多目标路径规划方法原理简单、易于实现,并且可以较好地找到Pareto最优解。
基于蚁群算法的多目标优化设计方法在机械优化设计中的应用

基于蚁群算法的多目标优化设计方法在机械优化设计中的应用在机械设计中,优化设计一直是一个重要而必要的工作。
而多目标优化设计已经成为如今机械优化设计的主流方向之一。
为了达到多目标优化的目的,各种优化算法被提出并应用于机械设计中。
其中,基于蚁群算法的多目标优化设计方法逐渐受到了设计者们的关注。
在本篇文章中,将介绍基于蚁群算法的多目标优化设计方法在机械优化设计中的应用。
一、蚁群算法简介蚁群算法是一种新颖的、基于群体智能的算法。
它是源于蚂蚁在寻找食物时发现的一种优化策略,也被称为蚁群优化算法。
蚂蚁为了寻找食物,会在路径上释放出一种化学物质,并再次回到巢穴来引导其他蚂蚁在这条路径上寻找食物。
这样不断的寻找,最终整个蚁群就建立了一条到达食物的最短路径。
蚁群算法就是基于这种思想而发展起来的算法。
在蚁群算法中,每一只蚂蚁都代表解空间里的一个个体,它们会在解空间中搜索最优解,而搜索的过程又会受到其他蚂蚁的影响。
此外,蚁群算法还包括了信息素的概念,信息素在蚂蚁的搜索过程中扮演了引导的角色。
通过不断的搜索和更新信息素,在多次的迭代中,蚂蚁们会逐渐聚集到最佳解处,从而找到最优解。
二、蚁群算法在多目标优化设计中的应用在机械优化设计中,通常会出现多个目标函数需要优化的情况,这样就需要多目标优化来解决。
蚁群算法在多目标优化中的优点在于,它不仅可以找到最优解,还可以找到Pareto解集。
Pareto解集是指在多目标优化中,不可再改进的解集,即没有一种改进方案能使多目标函数同时得到更好的结果。
在实际优化问题中,Pareto解集往往是设计者所追求的最优化解。
蚁群算法在多目标优化中的基本步骤如下:1. 定义目标函数和设计变量在多目标优化中,需要定义多个目标函数用于评估设计的优劣。
同时需要定义一些设计变量,用于优化过程中的搜索。
这些目标函数和设计变量应该能够在某种程度上反映机械系统的性能和特点。
2. 初始化蚂蚁群体在蚁群算法中,需要定义一个蚂蚁群体,并初始化这个群体。
一种求解多目标优化问题的改进蚁群算法

一种求解多目标优化问题的改进蚁群算法1.简介多目标优化问题在实际应用中普遍存在,例如工程设计、金融投资与风险管理等领域。
而蚁群算法(Ant Colony Optimization,ACO)作为一种基于自组织方法的启发式优化算法,已经在许多领域得到了成功的应用。
然而,原始的ACO 算法仅适用于单目标优化问题,而多目标优化问题则需要改进ACO 算法才能更好地解决。
在本文中,我们将介绍一种改进的ACO 算法,用于求解多目标优化问题。
该算法结合了传统的ACO 算法与一些有效的技术,并优化了算法的选择策略和信息素更新策略,以实现更准确和高效的解。
2.多目标优化问题多目标优化问题(Multi-objective Optimization Problem,MOP)通常包括一个目标函数集合,每个目标函数都需要最小化或最大化。
与单目标优化问题不同的是,MOP 存在多个最优解,而这些最优解不可比较显著。
例如,对于两个最优解x1 和x2,如果x1 的第一个目标函数优于x2,但x2 的第二个目标函数优于x1,则无法判断哪个解更好。
在MOP 中,通常是存在一个Pareto 最优集合P,其中的解都是不可比较的最优解。
在求解过程中,我们希望找到尽可能多的Pareto 最优解。
因此,MOP 的求解算法需要能够实现有效的Pareto 最优搜索,并在保证收敛性和多样性的同时尽可能接近Pareto 最优集合。
3.ACO 算法ACO 算法是群智能中的一种最受欢迎的启发式优化算法,已经在许多领域得到了广泛应用。
在ACO 算法中,许多无序的蚂蚁会在图中随机移动并留下信息素,通过信息素的积累和更新,最终使整个蚁群能够找到最佳路径。
ACO 算法的核心是信息素的积累和更新,以及蚂蚁的选择策略。
在ACO 算法中,每个蚂蚁都有一个当前城市和一些已经遍历过的城市。
蚂蚁在城市之间移动时,将信息素沿其路径释放。
当选择下一个城市时,蚂蚁会考虑信息素和城市间的距离,并采用轮盘赌选择策略选择下一个城市。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多目标蚁群算法及其实现
李首帅(2012101020019)
指导老师:张勇
【摘要】多目标优化问题对于现阶段来说,是十分热门的。
本文将对多目标规划当中的旅行商问题,通过基于MATLAB的蚁群算法来解决,对多目标问题进行局部优化。
【关键词】旅行商问题;蚁群算法;MATLAB
一、背景介绍
旅行商问题是物流领域当中的典型问题,它的求解十分重要。
蚁群算法是受自然界中真实蚁群的集体行为的启发而提出的一种基于群体的模拟进化算法,属于随机搜索算法。
M. Dorigo等人充分利用了蚁群搜索食物的过程与旅行商问题(TSP)之间的相似性,通过人工模拟蚁群搜索食物的行为(即蚂蚁个体之间通过间接通讯与相互协作最终找到从蚁穴到食物源的最短路径)来求解TSP问题。
为区别于真实蚁群,称算法中的蚂蚁为“人工蚂蚁”。
人们经过大量研究发现,蚂蚁个体之间是通过一种称之为信息素(pheromone)的物质进行信息传递,从而能相互协作,完成复杂的任务。
蚁群之所以表现出复杂有序的行为,个体之间的信息交流与相互协作起着重要的作用。
蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且能够感知这种物质的存在及其强度,并以此指导自己的运动方向。
蚂蚁倾向于朝着该物质强度高的方向移动。
因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。
二、蚁群算法原理介绍
1.蚁群在路径上释放信息素;
2.碰到还没走过的路口,就随机挑选一条路走。
同时释放与路径长度有关的信息素;
3.信息素浓度与路长成反比;
4.最优路径上的信息浓度越来越大;
5.最终蚁群找到最优路径。
其实自然界中,蚁群这种寻找路径的过程表现是一种正反馈的过程,与人工蚁群的优化算法很相近。
所以我们简单功能的工作单元视为蚂蚁,则上述的搜寻路径过程可以用来解释人工蚁群搜寻过程。
人工蚁群和自然界蚁群各具特点。
人工蚁群具有一定的记忆能力。
它能够记忆已经访问过的节点;另外,人工蚁群在选择下一条路径的时候并不是完全盲目的,而是按一定的算法规律有意识地寻找最短路径。
而自然界蚁群不具有记忆的能力,它们的选路凭借外激素,或者
道路的残留信息来选择,更多地体现正反馈的过程。
人工蚁群和自然界蚁群的相似之处在于,两者优先选择的都是含“外激素”浓度较大的路径; 两者的工作单元(蚂蚁)都是通过在其所经过的路径上留下一定信息的方法进行间接的信息传递。
三、基于MATLAB 的蚁群算法求解旅行商问题
TSP 问题描述如下:
设有n 个城市C=(1,2,...,n ),任意两个城市i ,j 之间的距离为d ,求一条经过每个城市的路径π=(π(1),π(2),...,π(n )),使得距离最小。
第一步:初始化
将m 只蚂蚁随机放到n 个城市,每只蚂蚁的禁忌表为蚂蚁当前所在城市,各边信息初始化为c 。
禁忌表体现了人工蚂蚁的记忆性,使得蚂蚁不会走重复道路,提高了效率。
第二步:构造路径
在t 时刻,蚂蚁k 从城市i 转移到城市j 的概率为:
其中,Tabu k 是保存了每只蚂蚁k 已经到访过的城市集合,J k ={N-Tabu k },
α,β是系统参数,分别表示信息素、距离对蚂蚁的选择路径的影响程度。
τ(i,j)表示边L(i,j)上的信息度强度。
()j i ,ϕ表示由i 到j 的期望程度,一般为1/d ij 。
α=0的时候,为最邻近城市选取概率最大。
β=0的时候,蚂蚁完全只根据信息浓度确定路径。
第三步:更新信息
在所有蚂蚁找到一条合法的路径后对信息进行更新。
()()()()∑+∆+-=+m k ij
ij ij t t t p t 1,11τττ
()()⎪⎩⎪⎨⎧=+∆否则若蚂蚁经过,0,,1,j i L Q t t k k ij
τ 其中p 为信息素的挥发速率,小于1的正数,可取0.5。
ij τ∆表示蚂蚁在本次运行中留在路径L(i ,j)上的信息速度。
k
ij
τ∆表示蚂蚁k 放置在边上L(i ,j)的信息速度。
()()[]()[]()[]()[]()⎪⎩
⎪⎨⎧∈**=∑∈0,,,,,,p k k i J s J j s i s i j i j i j i k 如果βαβ
αϕτϕτ
Q表示蚂蚁所留轨迹为正常数(10,10000)。
L k表示第k只蚂蚁在本次周游中所走过的路径长度和。
第四步:输出结果
若迭代次数小于预定的迭代次数,且无退化行为(找到的都是相同的解)则转步骤二,否则输出目前的最优解。
四、数据实验及结果
通过计算机仿真,令参数为m=31,α=1,β=5,ρ=0.5,NC_max=200,Q=100,城市的数目为31。
如图所示:
五、结论
本文设计了一种基于MATLAB实现的蚁群算法,用以求解组合优化难题中的典型代表旅行商问题。
对31个城市旅行商问题进行了测试,所得结果能达到优化作用,实现了本文的研究目标。
可以发现蚁群算法的优点:不依赖于所求问题的具体数学表达式描述,具有很强的找到全局最优解的优化能力,正反馈、较强的鲁棒性、全局性、普遍性,优良的分布式并行计算机制,易于与其他方法相结合。
缺点:模型普适性不强,不能直接应用于实际优化问题,局部搜索能力较弱,易出现停滞和局部收敛、收敛速度慢等问题,长时间花费在解的构造上,导致搜索时间过长,算法最先基于离散问题,不能直接解决连续优化问题。
由于蚁群算法对图的对称性以及目标函数无特殊要求,因此可以解决各种对称、非对称问题,线性、非线性问题。
参考文献
[1]黄友锐, 智能优化算法及其应用 (不要加书名号), 国防工业出版社, 2008
[2]雷德明,严新平,多目标智能优化算法及其应用,科学出版社,2009。