蚁群算法在最短路中应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下面的程序是蚁群算法在最短路中的应用,稍加扩展即可应用于机器人路径规划 function [ROUTES,PL,Tau]=ACASP(G,Tau,K,M,S,E,Alpha,Beta,Rho,Q) %% --------------------------------------------------------------- %? ACASP.m %? 蚁群算法动态寻路算法 %? ChengAihua,PLA Information Engineering University,ZhengZhou,China %? Email:aihuacheng@ %? All rights reserved %% --------------------------------------------------------------- %? 输入参数列表 %? G??????? 地形图为01矩阵,如果为1表示障碍物 %? Tau????? 初始信息素矩阵(认为前面的觅食活动中有残留的信息素) %? K??????? 迭代次数(指蚂蚁出动多少波) %? M??????? 蚂蚁个数(每一波蚂蚁有多少个) %? S??????? 起始点(最短路径的起始点) %? E??????? 终止点(最短路径的目的点) %? Alpha??? 表征信息素重要程度的参数 %? Beta???? 表征启发式因子重要程度的参数 %? Rho????? 信息素蒸发系数 %? Q??????? 信息素增加强度系数 % %? 输出参数列表 %? ROUTES?? 每一代的每一只蚂蚁的爬行路线 %? PL?????? 每一代的每一只蚂蚁的爬行路线长度 %? Tau????? 输出动态修正过的信息素 %% --------------------变量初始化---------------------------------- %load D=G2D(G); N=size(D,1);%N表示问题的规模(象素个数) MM=size(G,1); a=1;%小方格象素的边长 Ex=a*(mod(E,MM)-0.5);%终止点横坐标 if Ex==-0.5 ??? Ex=MM-0.5; end Ey=a*(MM+0.5-ceil(E/MM));%终止点纵坐标 Eta=zeros(1,N);%启发式信息,取为至目标点的直线距离的倒数 %下面构造启发式信息矩阵 for i=1:N ????if ix==-0.5 ??????? ix=MM-0.5; ??? end ??? iy=a*(MM+0.5-ceil(i/MM));??? ??? if i~=E ??????? Eta(1,i)=1/((ix-Ex)^2+(iy-Ey)^2)^0.5; ??? else ??????? Eta(1,i)=100; ??? end end ROUTES=cell(K,M);%用细胞结构存储每一代的每一只蚂蚁的爬行路线 PL=zeros(K,M);%用矩阵存储每一代的每一只蚂蚁的爬行路线长度 %% -----------启动K轮蚂蚁觅食活动,每轮派出M只蚂蚁-------------------- for k=1:K ??? disp(k); ??? for m=1:M %%???? 第一步:状态初始化 ??????? W=S;%当前节点初始化为起始点 ??????? Path=S;%爬行路线初始化 ??????? PLkm=0;%爬行路线长度初始化 ??????? TABUkm=ones(1,N);%禁忌表初始化 ??????? TABUkm(S)=0;%已经在初始点了,因此要排除 ??????? DD=D;%邻接矩阵初始化 %%???? 第二步:下一步可以前往的节点 ??????? DW=DD(W,:); ??????? DW1=find(DW ??????? for j=1:length(DW1) ??????????? if TABUkm(DW1(j))==0 ??????????????? DW(j)=inf; ??????????? end ??????? end ??????? LJD=find(DW ??????? Len_LJD=length(LJD);%可选节点的个数 %%???? 觅食停止条件:蚂蚁未遇到食物或者陷入死胡同 ??????? while W~=ELen_LJD=1 %%???????? 第三步:转轮赌法选择下一步怎么走 ??????????? PP=zeros(1,Len_LJD); ??????????? for i=1:Len_LJD ??????????????? PP(i)=(Tau(W,LJD(i))^Alpha)*(Eta(LJD(i))^B

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档