基于matlab的蚂蚁算法例子

基于matlab的蚂蚁算法例子

ID:11932400

大小:36.50 KB

页数:3页

时间:2018-07-15

基于matlab的蚂蚁算法例子_第1页
基于matlab的蚂蚁算法例子_第2页
基于matlab的蚂蚁算法例子_第3页
资源描述:

《基于matlab的蚂蚁算法例子》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于matlab的蚂蚁算法例子  %蚁周模型,解决TSP问题  functionAS()  %clc  %初始化  formatshort;  n=6;%n城市数目  m=30;%m蚂蚁数量  Nmax=100;%最大循环次数  %d(i,j)城市i,j之间的距离,disan*nmatrix  d=[inf,1,inf,inf,8,inf;1,inf,8,inf,4,5;inf,8,inf,3,6,7;inf,inf,3,inf,inf,10;8,4,6,inf,inf,9;inf,5,7,10,9,inf];  y=zeros(n,n);%y(i,j)=1/d(i,

2、j)在TSP问题中,启发信息  fori=1:n  forj=1:n  y(i,j)=1/d(i,j);  end  end  e=1;%信息启发因子  f=1;%期望启发因子  Q=20;%  S=ones(n,n);%(i,j)路段初始化起始信息素  fori=1:n  forj=1:n  ifd(i,j)==inf  S(i,i)=0;  end  end  end  S1=zeros(n,n);%(i,j)路段信息素增量  s=zeros(n,n,m);%s(i,j,k)蚂蚁k在路径i,j上残留的信息素  notallowed=ones(m,n);%禁忌表,0

3、表示已经访问过  a=zeros(m,n);%蚂蚁循环一次的路径  fork=1:m  a(k,1)=1+round(rand*(n-1));%将蚂蚁随机放到n个城市上  end  fork=1:m%将初始城市放入禁忌表中  notallowed(k,a(k,1))=0;  end  forN=1:Nmax%N循环次数  t=2;  L=zeros(1,m);  whilet<=n%重复直至禁忌表满为止  fork=1:m  %计算蚂蚁k转移的概率  i=a(k,t-1);  p=zeros(1,n);%p(j)蚂蚁k选择路径i,j的概率  forj=1:n  ifn

4、otallowed(k,j)~=0  u=(S(i,j)^e)*(y(i,j)^f);  v=0;  forw=1:n  v=v+(S(i,w)^e)*(y(i,w)^f)*notallowed(k,w);  end  ifv~=0  p(j)=u/v;  end  end  end  [pk,j]=max(p);  notallowed(k,j)=0;  L(k)=L(k)+d(i,j);  a(k,t)=j;  end  t=t+1;  end  fork=1:m  L(k)=L(k)+d(a(k,n),a(k,1));  end  %一次循环结束,回到起始位置 

5、 %更新  fork=1:m  fori=1:n-1  s(a(k,i),a(k,i+1),k)=Q/L(k);  end  s(a(k,n),a(k,1),k)=Q/L(k);  end  fori=1:n  forj=1:n  ifd(i,j)~=inf  fork=1:m  S1(i,j)=S1(i,j)+s(i,j,k);  end  end  end  end  fori=1:n  forj=1:n  ifd(i,j)~=inf  S(i,j)=(1-rand)*S(i,j)+S1(i,j);  end  end  end  fork=1:m%将禁忌表中除起

6、始城市,全都置为未访问  fort=1:n  ift~=a(k,1)  notallowed(k,t)=1;  end  end  end  S1=zeros(n,n);%(i,j)路段信息素增量清零  s=zeros(n,n,m);%s(i,j,k)蚂蚁k在路径i,j上残留的信息素清零  end%循环最大次数结束  [result,k]=min(L)a(k,:)http://wenku.baidu.com/view/aac83acfa1c7aa00b52acbbd.html

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。