粒子群算法(6)-----几个适应度评价函数

下面给出几个适应度评价函数,并给出图形表示

 

     头几天机子种了病毒,重新安装了系统,不小心把程序全部格式化了,痛哭!!!没办法,好多程序不见了,现在把这几个典型的函数重新编写了,把他们给出来,就算粒子群算法的一个结束吧!痛恨病毒!!!!

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

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

function y = Griewank(x)
% Griewan函数
% 输入x,给出相应的y值,在x = ( 0 , 0 ,…, 0 )处有全局极小点0.
% 编制人:
% 编制日期:
[row,col]
= size(x);
if  row > 1
    error(
' 输入的参数错误 ' );
end
y1
= 1 / 4000 * sum(x. ^ 2 );
y2
= 1 ;
for  h = 1 :col
    y2
= y2 * cos(x(h) / sqrt(h));
end
y
= y1 - y2 + 1 ;
y
=- y;

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

function DrawGriewank()
% 绘制Griewank函数图形
x
= [ - 8 : 0.1 : 8 ];
y
= x;
[X,Y]
= meshgrid(x,y);
[row,col]
= size(X);
for  l = 1 :col
    
for  h = 1 :row
        z(h,l)
= Griewank([X(h,l),Y(h,l)]);
    end
end
surf(X,Y,z);
shading interp

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

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

function y = Rastrigin(x)
% Rastrigin函数
% 输入x,给出相应的y值,在x = ( 0 , 0 ,…, 0 )处有全局极小点0.
% 编制人:
% 编制日期:
[row,col]
= size(x);
if  row > 1
    error(
' 输入的参数错误 ' );
end
y
= sum(x. ^ 2 - 10 * cos( 2 * pi * x) + 10 );
y
=- y;

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

function DrawRastrigin()
% 绘制Rastrigin函数图形
x
= [ - 5 : 0.05 : 5 ];
y
= x;
[X,Y]
= meshgrid(x,y);
[row,col]
= size(X);
for  l = 1 :col
    
for  h = 1 :row
        z(h,l)
= Rastrigin([X(h,l),Y(h,l)]);
    end
end
surf(X,Y,z);
shading interp

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

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


  

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


  

第四个函数:Ackley函数,函数图形如下:

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


 

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


第五个函数是:Rosenbrock函数,该函数在(1,...,1)处有最小值0,为了得到最大值,取函数值的相反数。

函数图形如下所示

 

函数的代码:

 

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


这样粒子群算法不得不草草收场。

评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值