nbhkdz.com冰点文库

蚁群算法的程序代码

时间:2013-10-14


function [BESTX,BESTY,ALLX,ALLY]=ACOUCP(K,N,Rho,Q,Lambda,LB,UB)
K=20%迭代次数
N=20%蚁群规模
Rho=0.85%信息素蒸发系数
Q=0.80%信息素增加强度
Lambda=0.3%蚂蚁爬行速度
LB=[40,0.6]'%决策变量的下界
UB=[120,0.8]'%决策变量的上界
%第一步:初始化
M=length(LB);%决策变量的个数
%蚁群位置初始化
X=zeros(M,N);
for i=1:M
x=unifrnd(LB(i),UB(i),1,N);
X(i,:)=x;
end
%输出变量初始化
ALLX=cell(K,1);%细胞结构,记录每一代的个体
ALLY=zeros(K,N); % KXN矩阵,记录每一代评价函数值
BESTX=cell(K,1);%细胞结构,记录每一代的最优个体
BESTY=ones(K,1); % KX1矩阵,记录每一代的最优个体的评价函数值
k=1;%迭代计数器初始化
Tau=zeros(1,N);%信息素初始化
Y=zeros(1,N);%适应值初始化
%第二步:迭代过程
While k<=K
YY=zeros(1,N);
for n=1:N
x=X(:,n);
YY(n)=FIT(x);
end
maxYY=min(YY);
temppos=find(YY==maxYY);
POS=temppos(1);
%蚂蚁随机探路
for n=1:N
if n~=POS
x=X(:,n);
Fx=FIT(x)
mx=GaussMutation(x,LB,UB)
Fmx=FIT(mx)
if Fmx<Fx
X (:,n)=mx;
Y(n)=Fmx;
elseif rand>1-(1/(sqrt(k)))
X(:,n)=mx;
Y(n)=Fmx;
X(:,n)=x;
Y(n)=Fx;

end
end
end
for n=1:N
if n~=POS
x=X(:,n);
Fx=FIT(x);
mx=GaussMutation(x,LB,UB);
Fmx=FIT(mx);
if Fmx<Fx
Y(n)=Fmx;
else if rand>1-(1/(sqrt(k)))
X(:,n)=mx;
Y(n)=Fmx;
else
X(: , n)=x;
Y(n)=Fx;
end
end
end
%朝信息素最大的地方移动
for n=1:N
if n~=POS
x=X(:,n);
r=(K+k)/(K+K);
p=randperm(N);
t=ceil(r*N)
pos=p(1:t)
TempTau=Tau(pos)
maxTempTau=max(TempTau)
post=find(TempTau==maxTempTau)
pos3=pos(pos2(1))
x2=X(:,pos3(1))
x3=(1-Lambda)*x+Lambda*x2
Fx=FIT(x);
Fx3=FIT(mx);
if Fx3<Fx
X(:,n)=x3;
Y(n)=Fx3;
else if rand>1一(1/(sqrt(k)))
X(:,n)=x3;
Y(n)=Fx3;
else
X(:,n)=x;
Y(n)=Fx;
end
end
end

%更新信息素并记录
Tau=Tau* (1-Rho)
maxY=max(Y)
mint=min(Y)
DeltaTau=(maxY-Y)/(maxY-minY);
Tau=Tau+Q * DeltaTau
ALLX {k}=X;
ALLY(k,:)=Y;
mint=min(Y);
pos4=find(Y==minY);
BESTX{k}=X(:,pos4(1));
BESTY(k)=minY;
disp(k);
k= k+l;
end


%交叉变异
function mx=GaussMutation(x,LB,UB)
aph=max(randU,0.618);
mx=LB+aph* (UB-LB);
%绘图
plot(BESTY,'-ko','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',2);
ylabel('Objective function values')
xlabel('Iteration times')
grid on



蚁群算法matlab程序代码.doc

蚁群算法matlab程序代码_数学_自然科学_专业资料。详细介绍了蚁群算法在ma

粒子群算法和蚁群算法优化路径问题MATLAB程序源代码.txt

粒子群算法和蚁群算法优化路径问题MATLAB程序源代码_计算机软件及应用_IT/计算机_专业资料。MATLAB 智能算法 粒子群算法和蚁群算法优化路径问题程序源代码---以旅行商...

蚁群算法代码.pdf

蚁群算法代码 - 算法解释: 程序开始运行,蚂蚁们开始从窝里出动了,寻找食物;他

10基于蚁群算法的机器人路径规划MATLAB源代码.doc

10基于蚁群算法的机器人路径规划MATLAB源代码 - 矩阵,最后基本思路是,使

蚁群算法(C++版).doc

蚁群算法(C++版)_计算机软件及应用_IT/计算机_专业资料。智能优化算法蚁群...刚开始看的时候,下面这段代码困惑了我很长时间,想不通为何要有这 段代码,...

蚁群算法MATLAB程序实例整理.doc

蚁群算法MATLAB程序实例整理 - function [y,val]=QACS

蚁群算法最短路径通用Matlab程序(附图).doc

程序(附图) 蚁群算法最短路径通用 Matlab 程序(附图)代码: 代码 fu

蚁群算法(C语言版).txt

蚁群算法(C语言版)_计算机软件及应用_IT/计算机_专业资料。蚁群算法的C语言实现 //段海滨教授主编的《蚁群算法原理及其应用》附录里的C程序代码. 并有几位网友...

蚁群算法matlab程序实例整理.doc

蚁群算法matlab程序实例整理_IT/计算机_专业资料。蚁群算法matlab实例整理 详细的...蚁群算法matlab程序代码 8页 1下载券 喜欢此文档的还喜欢 蚁群算法的Matlab程序...

蚁群算法路径规划MATLAB程序.txt

蚁群算法路径规划MATLAB程序 - function [ROUTES,PL,T

蚁群算法最短路径通用Matlab程序.doc

蚁群算法最短路径通用Matlab程序_信息与通信_工程科技_专业资料。蚁 蚁群算法最短路径通用 Matlab 程序下面的程序蚁群算法在最短路中的应用,稍加扩展即可应用于...

蚁群算法代码程序.doc

蚁群算法代码程序 - function [MRT,EDGES,cost]=ACA

蚁群算法MATLAB代码.doc

蚁群算法MATLAB代码 - function [y,val]=QACStic

蚁群算法MATLAB源码.doc

蚁群算法MATLAB源码_计算机软件及应用_IT/计算机_专业资料。functi

蚁群算法程序(matlab).txt

% 以下是蚁群算法MATLAB程序,请尊重原作者劳动,引用时请注明出处。 % 已经运行...蚁群算法matlab程序代码 8页 2下载券 基本粒子群算法的原理和... 6页 免费...

c蚁群算法最短路径代码.pdf

c蚁群算法最短路径代码_计算机软件及应用_IT/计算机_专业资料。c蚁群算法最短路径代码 c++蚁群算法最短路径代码 #include<stdlib.h> #include<fstream....

蚁群算法C语言版.pdf

蚁群算法(C 语言版) //段海滨教授主编的《蚁群算法原理及其应用》 附录里的 C 程序代码. 并有几位网友修改。 //Basic Ant Colony Algorithm for TSP #include...

基本蚁群算法程序.doc

基本蚁群算法程序 - //基本蚁群算法程序 //程序在 vc++6.0 下面同过,对原来的做了一点修改。 //你可以使用本代码,如果感到对你有用的话,请通知作者,作者会...

蚁群算法程序(matlab).doc

蚁群算法程序(matlab)_电子/电路_工程科技_专业资料。蚁群算法程序(matlab) ...蚁群算法matlab程序代码 8页 2下载券 基本粒子群算法的原理和... 6页 免费...

蚁群算法小程序(CC++语言实现).txt

蚁群算法小程序(CC++语言实现)蚁群算法小程序(CC++语言实现)隐藏>> 蚁群算法小...(访问论坛) RobotSky恭候您的投稿>>源代码如下: /*ant.c*/ #define SPACE...