gamain.m
来自「一个利用遗传算法解决TSP问题的程序,有利于对遗传算法进一步的理解.」· M 代码 · 共 23 行
M
23 行
function [betterscore,finalscore]=gamain(tspdist,popsize,pc,pm,alpha,k)
%遗传算法主函数
%tspdist为距离矩阵,popsize种群规模,
%pc交叉概率,pm变异概率,alpha选择操作参数,k迭代次数
%betterscore存储当代最优,finalscore存储最后一代结果
citynum=length(tspdist);
gt=initializega(popsize,citynum);
for i=1:k
for j=1:popsize%计算各条路经长度
pathlength(j)=pathlong(gt(j,:),tspdist);
end
betterscore(i)=min(pathlength);%记录当代最优解
gt=select(gt,pathlength,alpha);%进行选择复制操作
for j=1:2:(popsize-1)%进行交叉操作,交叉方案可变
[gt(j,:),gt(j+1,:)]=liucrossover(gt(j,:),gt(j+1,:),tspdist);
%[gt(j,:),gt(j+1,:)]=cross(gt(j,:),gt(j+1,:),pc);
end
gt=mutation(gt,pm);%进行变异操作
end
for i=1:popsize
var(i)=pathlong(gt(i,:),tspdist);
end
finalscore=min(var);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?