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 + -
显示快捷键?