1 简介
人工免疫算法具有快速随机的全局搜索能力,但对于系统中的反馈信息利用不足,往往做大量无为的冗余迭代,求解效率低.蚁群算法具有分布式并行全局搜索能力,通过信息素的积累和更新收敛于最优路径上,但初期信息素匮乏,求解速度慢.该文提出一种基于人工免疫算法和蚁群算法的混合算法,采用人工免疫算法生成信息素分布,利用蚁群算法求优化解.将该算法用于求解旅行商问题进行计算机仿真,结果表明,该算法是一种收敛速度和寻优能力都比较好的优化方法.
人工免疫算法是近几年才提出的一种随机优化方法,它模拟生物免疫系统,用亲和力来描述抗体与抗原之间的匹配程度,用排斥力来描述两个抗体之间的相似程度,依据抗体与抗原之间的亲和力以及抗体与抗体之间的排斥力来选择抗体。在用求解优化问题时,一个抗体用一个字符串表示,满足约束条件的最优解即是抗原,候选解即是抗体。抗体与抗原之间的亲和力反映了候选解与最
优解的接近程度,也即反映候选解对目标函数和约束条件的满足程度;抗体与抗体之间的排斥力反映了不同候选解之间的异同,也即反映了抗体的多样性。保持抗体的多样性可以防止算法陷入局部最优解。具有快速随机的全局搜索能力,但对于系统中的反馈信息利用不足,当求解到一定范围时往往做大
量无为的冗余迭代,求解效率低。蚁群算法是由意大利学者 等在90 年代初提出来的一类新的模拟进化算法,它通过信息素的积累和更新来寻求最优解。
它的特点是模拟自然界中蚂蚁的群体行为。科学家们发现,蚂蚁有能力在没有任何提示下找到从巢穴到食物源的最短路径,并且能随环境的变化而变化,适应性地搜索新的路径,产生新的选择。经研究发现,其根本原因是蚂蚁在寻找食物源时,在其走过的路上释放一种特殊的分泌物FF信息素,后来的蚂蚁选择该路径的概率与当时这条路径上该物质的强度成正比。当一定路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多,后来的蚂蚁选择该路径的概率也越高,从而更增加了该路径的信息素强度。而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制。通过这种正反馈机制,蚂蚁最终可以发
现最短路径。特别是,当蚂蚁巢穴与食物源之间出现障碍物时,蚂蚁不仅可以绕过障碍物,而且通过蚁群信息素轨迹在不同路径上的变化,经过一定时间的正反馈,最终收敛到最短路径。&’& 具有分布式并行全局搜索能力,但由于初期信息素匮乏,致使求解速度缓慢。
该文提出的算法汲取了人工免疫算法和蚁群算法的优点,采用人工免疫算法生成信息素分布,利用蚁群算法求优化解,优势互补,在收敛速度和寻优能力两方面较原有算法都有明显改善。当用于求解TSP 问题时,该算法在收敛速度上优于 ACO,在寻优能力上优于AIA,是一种收敛速度和寻优能力都比较好
的优化方法。
2 部分代码
function pher=as_pher_update(pher_evap_rate,city_num,ant_num,dist,as_type,pher,ant)%蚂蚁系统信息素更新pher=pher*pher_evap_rate; %信息素蒸发switch as_type case 'ant_density' for i=1:ant_num %蚁密系统 for j=1:city_num m=ant(i).tour(j); n=ant(i).tour(j+1); pher(m,n)=pher(m,n)+1; pher(n,m)=pher(m,n); end end case 'ant_quantity' for i=1:ant_num %蚁量系统 for j=1:city_num m=ant(i).tour(j); n=ant(i).tour(j+1); pher(m,n)=pher(m,n)+1/dist(m,n); pher(n,m)=pher(m,n); end end case 'ant_cycle' for i=1:ant_num %蚁周系统 for j=1:city_num m=ant(i).tour(j); n=ant(i).tour(j+1); pher(m,n)=pher(m,n)+1/ant(i).length; pher(n,m)=pher(m,n); end endend
3 仿真结果
4 参考文献
[1]胡纯德, 祝延军, 高随祥. 基于人工免疫算法和蚁群算法求解旅行商问题[J]. 计算机工程与应用, 2004, 040(034):60-63.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。