⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iga_cross.m

📁 我自己编的免疫遗传算法
💻 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 + -