gagrefenstette.m

来自「人工免疫算法程序,请大家多多关注」· M 代码 · 共 19 行

M
19
字号
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 + =
减小字号Ctrl + -
显示快捷键?