距离判断矩阵.docx

上传人:王** 文档编号:1027452 上传时间:2024-03-16 格式:DOCX 页数:2 大小:15.28KB
下载 相关 举报
距离判断矩阵.docx_第1页
第1页 / 共2页
距离判断矩阵.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《距离判断矩阵.docx》由会员分享,可在线阅读,更多相关《距离判断矩阵.docx(2页珍藏版)》请在优知文库上搜索。

1、由于蚁群算法的特殊性,在求解问题时往往需要消耗较多的时间,若不对具体问题进行细致的算法优化,会导致算法效率低下,运行时间极长,甚至会跌入死循环导致求解失败。为此,本文提出以下算法优化策略,降低运行时间提升算法效率。距离判断矩阵distance算法会首先计算各点间的间距,distance(i,j)即表示从i点到j点的距离。而由于数据集中点数繁多,若在每个位置对每点进行遍历则会导致算法复杂性大幅增加。引入j_distance矩阵。根据题目给出的kesi(0.001)与theta(数据集一30,数据集二20),若从i点到j点的距离大于theta/kesi则令LdiStanCe(i,j)为0,即表示无

2、论前置误差情况如何,从i点都无法到达j点,在后续遍历中仅需检索j_distance非0的点作为允许点的预选。相关matIb代码如下:fori=1:nnforj=i:nndistance(i,j)=sqrt(point(i,l)-point(j,1)2+(point(i,2)-point(j,2)2+(point(i,3)-point(j,3)2);j_distance(i,j)=distance(i,j);ifdistance(i,j)(theta/kesi)jdistance(i,j)=0;enddistance(j,i)=distance(i,j);j_distance(j,i)=j_di

3、stance(i,j);endendj_distance(:,1)=0;信息素损失策略在TSP问题中由于求解目的即为遍历所有点,不存在无效路径的情况。故不存在除迭代外针对信息素减小的操作。而针对本体问题,每只蚂蚁都存在走入“死胡同”的问题,即在当前点时,由于此时具有一定的水平/垂直误差,而当前点可到达的下一个点均不能满足对消除误差的要求,此时该蚂蚁所走路径即为无效路径。算法中,若不对无效路径进行处理,则会导致每只蚂蚁都有概率步入无效路径消耗解算时间,故引入信息素损失策略,若判断得到当前蚂蚁以“无路可走”,则对当前蚂蚁最后一步路径上的信息素进行减小,从而达到减小后续蚂蚁重蹈覆辙的概率。相关代码如

4、下:ifstep1Q(path_table(ant,step-1),path_table(ant,step)=O,99*Q(path_table(ant,step-1),path_table(ant,step);end迭代优化策略在每次迭代得到多条路径时,原生的蚁群算法将通过每条路径的长度为每条路径分配不同的信息素,路径短则信息素多,借此达到每次迭代朝向更短路径的目的,本文由于在算法中直接计算了每条路径的长度,为了加快算法的收敛速度,每次迭代将只对前IO条最短路径进行信息素增加操作,增大下次迭代时蚂蚁选择最短路径的概率,极大加快算法收敛速度。相关代码如下:path_long_temp,path_index=sort(path_long);temp2=find(pathtabIe(pathindex(i),:)=0);forj=1:temp2(l)-2Q(path_table(path_index(i),j),path_table(path_index(i),j+l)=Q(Path_table(Path_index,j),path_table(path_index(i),j+l)+Q_ant/path_long(i);end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!