📄 gagrefenstette.m
字号:
function [bestpath,minpathlong]=GAGrefenstette(TSPMatrix,Popsize,MaxGeneration,Pm,Pc)
%使用Grefenstette编码方式,进行旅行商问题遗传算法求解
path=Initialize(Popsize,TSPMatrix);%初始化路矩阵
for i=1:MaxGeneration
FP=Fitness(path,TSPMatrix);%计算适应度
Gpath=GTrans(path);%进行Grefenstette编码转换
Gpath=Select(Gpath,FP,Popsize);%轮盘赌选择
Gpath=CrossOver(Gpath,Pc,Popsize);%单点交叉,可变
Gpath=Mutation(Gpath,Pm,Popsize);%位对调变异,可变
path=Decode(Gpath);%解码
avgpathlong(i)=sum(pathlong(path,TSPMatrix))/Popsize;%求平均长度
bestpathlong(i)=min(pathlong(path,TSPMatrix));%求最短路径长度
end
[bestpath,minpathlong]=Output(path,TSPMatrix,Popsize);
[bestpath,minpathlong]=Output(path,TSPMatrix);
plot(avgpathlong);
hold on
plot(bestpathlong,'r');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -