部分代码
num = size(G,1);
for i=1:num/2
for j=1:num
m=G(i,j);
n=G(num+1-i,j);
G(i,j)=n;
G(num+1-i,j)=m;
end
end
% drawShanGe(G,0)
% title('栅格地图')
%%
S = [1 1];
E = [num num];
G0 = G;
G = G0(S(1):E(1),S(2):E(2));
[Xmax,dimensions] = size(G); X_min = 1;
dimensions = dimensions - 2;
%% 参数设置
max_gen = 200; % 最大迭代次数
num_polution = 30; % 种群数量
fobj=@(x)fitness(x,G);
[Best_score,Best_pos,GA_curve]=GA(num_polution,max_gen,X_min,Xmax,dimensions,fobj,G);
%结果分析
Best_pos = round(Best_pos);
disp(['GA算法寻优得到的最短路径是:',num2str(Best_score)])
route = [S(1) Best_pos E(1)];
path_GA=generateContinuousRoute(route,G);
path_GA=GenerateSmoothPath(path_GA,G);
path_GA=GenerateSmoothPath(path_GA,G);
[Best_score,Best_pos,SSA_curve]=DBO(num_polution,max_gen,X_min,Xmax,dimensions,fobj,G);
%结果分析
Best_pos = round(Best_pos);
disp(['DBO算法寻优得到的最短路径是:',num2str(Best_score)])
route = [S(1) Best_pos E(1)];
path_DBO=generateContinuousRoute(route,G);
path_DBO=GenerateSmoothPath(path_DBO,G);
path_DBO=GenerateSmoothPath(path_DBO,G);
[Best_score,Best_pos,GWO_curve]=GWO1(num_polution,max_gen,X_min,Xmax,dimensions,fobj,G);
%结果分析
Best_pos = round(Best_pos);
disp(['GWO1算法寻优得到的最短路径是:',num2str(Best_score)])
route = [S(1) Best_pos E(1)];
path_GWO1=generateContinuousRoute(route,G);
path_GWO1=GenerateSmoothPath(path_GWO1,G);
path_GWO1=GenerateSmoothPath(path_GWO1,G);