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