文档详情

粒子群算法几个适应度评价函数.pdf

发布:2025-02-14约3.79千字共8页下载文档
文本预览下载声明

粒子群算法几个适应度评价函数

第一个函数:Griewan函数,图形如下所示:

适应度函数如下:(为了求最大值,我去了所有函数值的相反数)

functiony=Griewank(x)

%Griewan函数

%输入x,给出相应的y值,在x=(0,0,…,0)处有全局极小点0.

%编制人:

%编制日期:

[row,col]=size(x);

ifrow1

error(输入的参数错误);

end

y1=1/4000*sum(x.^2);

y2=1;

forh=1:col

y2=y2*cos(x(h)/sqrt(h));

end

y=y1-y2+1;

y=-y;

绘制函数图像的代码如下:

functionDrawGriewank()

%绘制Griewank函数图形

x=[-8:0.1:8];

y=x;

[X,Y]=meshgrid(x,y);

[row,col]=size(X);

forl=1:co

forh=1:row

z(h,l)=Griewank([X(h,l),Y(h,l)]);

end

end

surf(X,Y,z);

shadinginterp

第二个函数:Rastrigin函数,图形如下所示:

适应度函数如下:(为了求最大值,我去了所有函数值的相反数)

functiony=Rastrigin(x)

%Rastrigin函数

%输入x,给出相应的y值,在x=(0,0,…,0)处有全局极小点0.

%编制人:

%编制日期:

[row,col]=size(x);

irow1

error(输入的参数错误);

end

y=sum(x.^2-10*cos(2*pi*x)+10);

y=-y;

绘制函数图像的代码如下:

functionDrawRastrigin()

%绘制Rastrigin函数图形

x=[-5:0.05:5];

y=x;

[X,Y]=meshgrid(x,y);

[row,col]=size(X);

forl=1:col

forh=1:row

z(h,l)=Rastrigin([X(h,l),Y(h,l)]);

end

end

surf(X,Y,z);

shadinginterp

第三个函数Schaer函数,图形如下所示:

函数的代码如下,因为该函数在(0,...,0)处有最大值1,因此不需要取相反数。

[c-sharp]viewplaincopyprint?

1.functionresult=Schaffer(x1)

2.%Schaffer函数

3.%输入x,给出相应的y值,在x=(0,0,…,0)处有全局极大1.

4.%编制人:

5.%编制日期:

6.[row,col]=size(x1);

7.ifrow1

8.error(输入的参数错误);

9.end

10.x=x1(1,1);

11.y=x1(1,2);

12.temp=x^2+y^2;

13.result=0.5-(sin(sqrt(temp))^2-0.5)/(1+0.001*temp)^2;

绘制函数代码图形的代码如下:

[c-sharp]viewplaincopyprint?

1.functionDrawSchaffer()

2.x=[-5:0.05:5];

3.y=x;

4.[X,Y]=meshgrid(x,y);

5.[row,col]=size(X);

6.forl=1:col

7.forh=1:row

8.z(h,l)=Schaffer([X(h,l),Y(h,l)]);

9.en

10.e

显示全部
相似文档