📄 iga_cross.m
字号:
%%%%%%%%%%%%%%%% 免疫遗传算法 %%%%%%%%%%%%%%
function IGA2_cross
%初始化
tic
Jmax = 0.6; % 最大亲和度
Maxiter = 1000; % 最大循环次数
pm = 0.5; % 突变概率
ps = 0.3; % 选择概率
pd=0.4; % 死亡概率
pu=0.1; % 更新概率
Num=8; % 一个群体中抗体的数目
LB=[-1,-1]; % 下限
UB=[1,1]; % 上限
iter=1;
iter1=1;
Ab=InitAb(Num,LB,UB);% 初始化抗体
% Ab=textread('aa.txt');
Ab0=Ab;
Aff0= AffinityAb(Ab0);%带入函数并计算亲和度
Aff=Aff0;
[BestAb,BestAff] = Best(Ab,Aff);
J(iter) = BestAff;
while (iter1<400 )
iter = iter + 1;
Ab1=CrossAb(Ab);%交叉iter<Maxiter&&J(iter)<Jmax
Ab1 = MutationAb(Ab1,pm,LB,UB);%变异
Ab0=Ab1;
Aff0= AffinityAb(Ab0);%计算亲和度
Aff1=Aff0;
[Ab,Aff] = UpdateAb(Ab,Aff,Ab1,Aff1,pu);%再生
[BestAb,BestAff(iter)] = Best(Ab,Aff);%记忆
[Ab,Aff] = DieAb(Ab,Aff,BestAff,pd);%死亡
Ab = RefreshAb(Ab,Aff,Num,LB,UB);%更新
Ab0=Ab;
Aff0= AffinityAb(Ab0);%带入函数并计算亲和度
Aff=Aff0;
J(iter) = BestAff(iter);
if J(iter)==J(iter-1)
iter1=iter1+1;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -