iatsp.m

来自「基于信息熵的免疫算法」· M 代码 · 共 26 行

M
26
字号
function [bestpath,minpath]=IATSP(TSPMatrix,CM,Popsize,TC,Pc,Pm)
%使用免疫算法解决旅行商问题
path=Initpath(TSPMatrix,Popsize);%初始化路径
MemoryLab=InitLab(TSPMatrix,CM);%初始化记忆库
[ktjqhl,ktyqhl]=qinheliCalculate(path,TSPMatrix);%计算抗体间亲和力和抗体与抗原亲和力
MemoryLab=GenerateM(path,ktyqhl,CM,TSPMatrix,MemoryLab);%生成记忆库
for i=1:TC
    SelectP=CalculateSelectP(ktjqhl,ktyqhl);%按照亲和力计算选择概率
    path=Select(path,SelectP);%轮盘赌选择
    path=GGenerateNewpath(path,Pc,Pm);%进行遗传操作生成种群 
    [ktjqhl,ktyqhl]=qinheliCalculate(path,TSPMatrix);
    MemoryLab=GenerateM(path,ktyqhl,CM,TSPMatrix,MemoryLab);
    path=UGenerateNewpath(path,MemoryLab);%与记忆库中抗体一起生成新种群
    avgpathlong(i)=sum(pathlong(path,TSPMatrix))/Popsize;%平均长度;
    bestpathlong(i)=min(pathlong(path,TSPMatrix));%最短长度
end
[bestpath,minpath]=Output(path,TSPMatrix);%输出结果
%绘图
plot(avgpathlong);
hold on
plot(bestpathlong,'r');
    
    
    
    
    

⌨️ 快捷键说明

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