gamain.m

来自「基本遗传算法求解TSP问题」· M 代码 · 共 34 行

M
34
字号
function [betterscore,finalscore]=gamain(tspdist,popsize,pc,pm,alpha,k)
%遗传算法主函数
%tspdist为距离矩阵,popsize种群规模,
%pc交叉概率,pm变异概率,alpha选择操作参数,k迭代次数 

%1 初始化
citynum=length(tspdist);
gt=initializega(popsize,citynum);


for i=1:k

%2 判敛 
    for j=1:popsize%计算各条路经长度
        pathlength(j)=pathlong(gt(j,:),tspdist);%一维数组
    end
    betterscore(i)=min(pathlength);%记录当代最优解

%3 执行
    gt=select(gt,pathlength,alpha);%进行选择复制操作

%4 调整
    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

%5
for i=1:popsize
    var(i)=pathlong(gt(i,:),tspdist);
end
finalscore=min(var);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?