clc
clearload data z information
%起点坐标
starty=5;
starth=3;%终点坐标
endy=8;
endh=5;n=10;
m=21;Best=[];
[path,information]=searchpath(n,m,information,z,starty,starth,endy,endh); %路径寻找
fitness=CacuFit(path); %适应度计算
[bestfitness,bestindex]=min(fitness); %最佳适应度
bestpath=path(bestindex,:);
Best=[Best;bestfitness];% %更新信息素
rou=0.2;
cfit=100/bestfitness;
k=2;
for i=2:m-1
information(k,bestpath(i*2-1),bestpath(i*2))=(1-rou)*information(k,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
end
for kk=1:1:100
kk
[path,information]=searchpath(n,m,information,z,starty,starth,endy,endh); %路径寻找
fitness=CacuFit(path); %适应度计算
[newbestfitness,newbestindex]=min(fitness); %最佳适应度
if newbestfitness<bestfitness
bestfitness=newbestfitness;
bestpath=path(newbestindex,:);
end
Best=[Best;bestfitness];
% %更新信息素
rou=0.2;
cfit=100/bestfitness;
k=2;
for i=2:m-1
information(k,bestpath(i*2-1),bestpath(i*2))=(1-rou)*information(k,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
end
endfor i=1:21
a(i,1)=bestpath(i*2-1);
a(i,2)=bestpath(i*2);
endk=1:21
figure(1)
x=1:21;
y=1:21;
[x1,y1]=meshgrid(x,y);
mesh(x1,y1,z)
load data z information
axis([1,21,1,21,0,2000])hold on
plot3(k',a(:,1)',a(:,2)'*200,'--o') figure(2)
plot(Best)
title('最佳个体适应度变化趋势')
xlabel('迭代次数')
ylabel('适应度值')
D127