智能优化算法及其MATLAB实例(第二版)——免疫算法4.1

智能优化算法及其MATLAB实例(第二版)——免疫算法4.1_第1张图片 

解:仿真过程如下:
(1)初始化免疫个体维数为D-10,免疫种群个体数为NP-100,最大免疫代数为G500,变异概率为P=0.7,激励度系数为alfa=1, belta=1,相似度阈值为detas=0.2,克隆个数为N=10。
(2)随机产生初始种群,计算个体亲和度、抗体浓度和激励度,并按激励度排序。
(3)取激励度前 NP/2 个个体进行克隆、变异、克隆抑制的免疫操作,免疫后的种群进行激励度计算。
(4)随机生成 NP/2 个个体的新种群,并计算个体亲和度、抗体浓度和激励度;免疫种群和随机种群合并,按激励度排序,进行免疫迭代。
(5)判断是否满足终止条件:若满足,则结束搜索过程,输出优化值;若不满足,则继续进行迭代优化。
优化结束后,亲和度进化曲线如图所示

%%%%%%%%%%%%%%%%%免疫算法求函数极值%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;                                %清除所有变量
close all;                                %清图
clc;                                      %清屏
D=10;                                     %免疫个体维数
NP=100;                                   %免疫个体数目
Xs=20;                                    %取值上限
Xx=-20;                                   %取值下限
G=500;                                    %最大免疫代数
pm=0.7;                                   %变异概率
alfa=1;                                   %激励度系数
belta=1;                                  %激励度系数   
detas=0.2;                                %相似度阈值
gen=0;                                    %免疫代数
Ncl=10;                                   %克隆个数
deta0=1*Xs;                               %邻域范围初值
%%%%%%%%%%%%%%%%%%%%%%%初始种群%%%%%%%%%%%%%%%%%%%%%%%%
f=rand(D,NP)*(Xs-Xx)+Xx;
for np=1:NP
    MSLL(np)=func1(f(:,np));
end
%%%%%%%%%%%%%%%%%计算个体浓度和激励度%%%%%%%%%%%%%%%%%%%
for np=1:NP
    for j=1:NP     
        nd(j)=sum(sqrt((f(:,np)-f(:,j)).^2));
        if nd(j)Xs)  |  (Na(ii,j)

 运行结果:

智能优化算法及其MATLAB实例(第二版)——免疫算法4.1_第2张图片

你可能感兴趣的:(matlab,算法,开发语言)