📄 gamain.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -