免疫算法IA——3

1、题目

2、仿真过程

3、代码实现

4、结果展示

1、例题:

求函数f(x,y)=3cos(xy)+x+y的最小值,其中x的取值范围为[-4,4],y的取值范围[-4,4]。这是一个有多个局部极值的函数,其函数值图形如图所示 

2、仿真过程

(1)初始化免疫个体维数D=2,免疫种群个数NP=50,最大进化代数G=200,变异概率=0.7,激励度系数\alpha=2,\beta=1, 相似度阈值\delta=0.2,克隆个数Nc1=5.

(2)随机产生初始种群,计算个体亲和度、抗体浓度和激励度,并按激励度排序

(3)取激励度前 \frac{2}{NP}个个体进行克隆、变异、克隆抑制的免疫操作,免疫后的种群进行激励度计算。

(4)随机生成\frac{2}{NP}个个体的新种群,并计算个体亲和度,抗体浓度和激励度;免疫种群和随机种群合并,按激励度排序,进行免疫迭代。

(5)判断是否满足终止条件:若满足,则结束搜索过程,输出优化值,若不满足,则继续进行迭代优化。

优化结束后,亲和度进化曲线如图所示,优化后的结果为

X=

Y =   

3、代码实现

  3.1——图像代码

clear all;
close all;
clc;
x=-4:0.02:4;
y=-4:0.02:4;
N=size(x,2);
for i=1:N
    for j=1:N
        z(i,j)=3*cos(x(i)*y(j))+x(i)+y(j);
    end
end
mesh(x,y,z)
xlabel('x')
ylabel('y')

你可能感兴趣的