标题:谁有蚁群算法的matlab源码?
只看楼主
夜凉如水
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-20
 问题点数:0 回复次数:10 
谁有蚁群算法的matlab源码?

哪位大侠有蚁群算法的matlab源码?能否给我传一份?谢谢了!
我的邮箱:heimeiray1218@163.com

搜索更多相关主题的帖子: matlab 源码 算法 
2006-10-31 15:20
hitzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:369
专家分:52
注 册:2006-9-24
得分:0 

这是一个例子:



1.function Q = FINDabc(A) %给定B1,B2两点坐标计算平面参数a,b,c
v = 1e-3*[1 1 1 1];r=1.3;l=0;
K=6;
a = RAND;
a = RESHAP_MAX(A,a,K);
while(sum(STAND(A,a(K,:))>v)~=0)
l=0;
[Q,w]=REF(a,r,K);
while((~D_ZONE1(Q))|(COMP(A,Q)>=COMP(A,a(K,:))))
[Q,w]=REF(a,w,K);
if (w<=eps^12)

a(K,:)=[];
K=K-1;
l = 1;
end
if(l==1)
break;
end
end
if(~l)
a(K,:)=Q;
end
if(K<=1)
a=FINDabc(A);
break;
end
a = RESHAP_MAX(A,a,K);
end
if(K<=1)
Q = a(1,:);
else Q=sum(a)./K;
end

11
2.function P=TEXT(i) %对i组[a,b,c]检验,返回[a,b,c,a',b',c']
j = 1;
while(j<=i)
A(1,1:2)= CREAT_RAND12;
A(1,3)=CREAT_RAND3;
if(D_ZONE(A(1,:))==1)
b(j,:)=A(1,:);j=j+1;
end
end
for j=1:i
c(j,:)=Fx(b(j,:));
d(j,:)=FINDabc(c(j,:));
e(j,:)=(d(j,:)-b(j,:))./b(j,:);
end
P=[b,d,e];
plot(e(:,1),'b--o');hold on;
plot(e(:,2),'g-.x');
plot(e(:,3),'r:+');


3.function p = recognize(i) %分辨率的影响
j = 1;
while(j<=i)
a(1,1:2) = CREAT_RAND12 ();
a(1,3) = CREAT_RAND3();
if(D_ZONE(a(1,:)))
b(j,:) = a(1,:);
j = j+1;
end
end
for j = 1:i
c(j,:) = Fx(b(j,:));
e(j,:)=1e-4*round(1e4*c(j,:));
end
for j = 1:i
f(j,1:3) = FINDabc(e(j,:));
end
hl = (b-f)./b;
for j = 1:3
h(:,j)=sum(abs(hl(:,j)))/i*ones(i,1);
end
plot(h(:,1),'--r');hold on;plot(h(:,2),'-y');plot(h(:,3),':k');
p = h;
12
4.function Q_C12 =CREAT_RAND12 ()
if(y_C12<=0.5)
Q_C12(1) =0.0017 *rand(1);
else
Q_C12(1) = -0.0017*rand(1);
end
y_C12 = rand(1);
if(y_C12<=0.5)
Q_C12(2) = 0.0017*rand(1);
else
Q_C12(2) = -0.0017*rand(1);
End


5.function Q_C = CREAT_RAND3()
y_C = rand(1);
if(y_C<=0.5)
Q_C = 3*1e-6*rand(1);
else
Q_C = -3*1e-6*rand(1);
end

6.function y = D_ZONE(Q_D)
p = pi/180/10;
a=Q_D(1);b=Q_D(2);c=Q_D(3);
if((abs(c)<3*1e-6)&((a^2+b^2)<(1/cos(p))^2-1))
y =1;
else
y=0;
end

7.function y = D_ZONE1(Q_D)

p = pi/180/10;
a=Q_D(1);b=Q_D(2);c=Q_D(3);
if((abs(c)<=3*1e-6)&((a^2+b^2)<=4*(1/cos(p))^2-1))
y =1;
else
y=0;
end


13
8.function Q_F = Fx(x)
D=-7*1e-1;h=3*1e-1;
B = -0.253; F = -0.259;
a = x(1);
b = x(2);
c = x(3);
s3 = 2*(c+D)/(1+a^2+b^2);
s2=-b*s3;
s1=-a*s3;

c13 = (c+D)/(1-b*B);
c12 = B*c13;

c23 = (c+D)/(1-b*F);
c22 = F*c23;

B11 = (h-s3)*(-s1)/(c13-s3)+s1;
B12 = (h-s3)*(c12-s2)/(c13-s3)+s2;
B21 = (h-s3)*(-s1)/(c23-s3)+s1;
B22 = (h-s3)*(c22-s2)/(c23-s3)+s2;
Q_F=[B11,B12,B21,B22];

9.function A = RAND()
i = 1;
while(i<=6)
A(i,1:2)= CREAT_RAND12;
A(i,3)=CREAT_RAND3;
if(D_ZONE(A(i,:))==1)
i=i+1;
end
end


10.function [Q,w] = REF(C,r,k)
B=C(k,:);C(k,:)=[];A=zeros(1,3);
for i=1:(k-1)
A=A+C(i,:);
end
if k>=2
A=A/(k-1);
end
Q = A+r*(A-B);
w=r/2;
end 14
11.function Q_M = RESHAP_MAX(B,A,K)
p=0;a=0;
for i =1:K
x(i)=COMP(B,A(i,:));
end
j=max(x);
for i=1:K
if x(i)==j,p=i;
end
end
a=A(p,:);
A(p,:) = A(K,:);
A(K,:)=a;
Q_M=A;
End


12.function w=STAND(A,R)
D=-7*1e-1;h=3*1e-1;
B = -.253; F = -.259;
a = R(1);
b = R(2);
c = R(3);

B11 = A(1);
B12 = A(2);
B21 = A(3);
B22 = A(4);
s3 = 2*(c+D)/(1+a^2+b^2);
s2=-b*s3;
s1=-a*s3;
c13 = (c+D)/(1-b*B);
c12 = B*c13;
c23 = (c+D)/(1-b*F);
c22 = F*c23;

F11 = (h-s3)*(-s1)/(c13-s3)+s1;
F12 = (h-s3)*(c12-s2)/(c13-s3)+s2;
F21 = (h-s3)*(-s1)/(c23-s3)+s1;
F22 = (h-s3)*(c22-s2)/(c23-s3)+s2;
w(1)=abs(B11-F11);
w(2)=abs(B12-F12);
w(3)=abs(B21-F21);
w(4)=abs(B22-F22);


2006-11-01 13:38
夜凉如水
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-20
得分:0 
感谢!!!!
2006-11-07 15:16
yfpop11
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-15
得分:0 
你好!
我打算用matlab做一个蚁群算法pid控制的程序,我打算先用简单函数替代pid参数(如y=x^2),
但是又有几个疑问:
1 初始化后要求从起始点向下一个节点随即运动(如(0,0)到(1,9)),但是又受到信息素影响,
这句话怎么编?tsp中有句:
%按概率原则选取下一个城市
Pcum=cumsum(P);
Select=find(Pcum>=rand);
to_visit=J(Select(1));
Tabu(i,j)=to_visit; 看的不是很明白
2 对于一个简单函数,能见度怎么表示?自己给定一个数么?
3 tsp是将信息素留在路经上,pid控制是留在节点上,这个区别在哪儿?
望大虾指教!!
如果有程序更好~~
多谢!!!
2007-04-15 13:34
tangbaggio
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-17
得分:0 

给我发个蚁群算法解TSP问题的MATLAB源程序吧,作毕业设计急用,不胜感激,谢谢!liang0507@163.com

2007-05-17 09:34
liaohuituan
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-29
得分:0 
做蚁群算法对PID参数优化的加我呀,QQ:176383170
2007-05-17 15:52
yulinwang2008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-16
得分:0 
谁有蚁群算法的程序,最好是航迹规划方面的(当然其他的也好),可以发来参考一下么,邮箱:yulinwang2008@
不胜感激!
2008-11-16 19:07
xg826250
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-21
得分:0 
基于MATLAB的基本蚁群算法聚类程序谁有啊
有的大哥请发一份学习学习   不胜感激
qxjxg82625@

新手上路,
2010-04-21 16:23
chengketty
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-15
得分:0 
能不能发我一份啊,我是新手菜鸟,谢谢了。QQ:877370596
2010-07-15 19:54
taohong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-4
得分:0 
基于MATLAB的基本蚁群算法聚类程序谁有啊
有的话请发一份学习学习   不胜感激
 
2010-11-04 21:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-99925-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.105921 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved