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

第一个函数: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,因此不需要取相反数。

[c-sharp] view plaincopy
  1. function result=Schaffer(x1)
  2. %Schaffer 函数
  3. %输入x,给出相应的y值,在x=(0,0,…,0) 处有全局极大点1.
  4. %编制人:
  5. %编制日期:
  6. [row,col]=size(x1);
  7. if row>1
  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] view plaincopy
  1. function DrawSchaffer()
  2. x=[-5:0.05:5];
  3. y=x;
  4. [X,Y]=meshgrid(x,y);
  5. [row,col]=size(X);
  6. for l=1:col
  7. for h=1:row
  8. z(h,l)=Schaffer([X(h,l),Y(h,l)]);
  9. end
  10. end
  11. surf(X,Y,z);
  12. shading interp

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

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

[c-sharp] view plaincopy
  1. function result=Ackley(x)
  2. %Ackley 函数
  3. %输入x,给出相应的y值,在x=(0,0,…,0) 处有全局极小点0,为得到最大值,返回值取相反数
  4. %编制人:
  5. %编制日期:
  6. [row,col]=size(x);
  7. if row>1
  8. error('输入的参数错误');
  9. end
  10. result=-20*exp(-0.2*sqrt((1/col)*(sum(x.^2))))-exp((1/col)*sum(cos(2*pi.*x)))+exp(1)+20;
  11. result=-result;

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

[c-sharp] view plaincopy
  1. function DrawAckley()
  2. %绘制Ackley函数图形
  3. x=[-8:0.1:8];
  4. y=x;
  5. [X,Y]=meshgrid(x,y);
  6. [row,col]=size(X);
  7. for l=1:col
  8. for h=1:row
  9. z(h,l)=Ackley([X(h,l),Y(h,l)]);
  10. end
  11. end
  12. surf(X,Y,z);
  13. shading interp

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

函数图形如下所示

函数的代码:

[c-sharp] view plaincopy
  1. function result=Rosenbrock(x)
  2. %Rosenbrock 函数
  3. %输入x,给出相应的y值,在x=(1,1,…,1) 处有全局极小点0,为得到最大值,返回值取相反数
  4. %编制人:
  5. %编制日期:
  6. [row,col]=size(x);
  7. if row>1
  8. error('输入的参数错误');
  9. end
  10. result=100*(x(1,2)-x(1,1)^2)^2+(x(1,1)-1)^2;
  11. result=-result;

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

[c-sharp] view plaincopy
  1. function DrawRosenbrock()
  2. %绘制Rosenbrock函数图形,大铁锅函数,哈哈
  3. x=[-8:0.1:8];
  4. y=x;
  5. [X,Y]=meshgrid(x,y);
  6. [row,col]=size(X);
  7. for l=1:col
  8. for h=1:row
  9. z(h,l)=Rosenbrock([X(h,l),Y(h,l)]);
  10. end
  11. end
  12. surf(X,Y,z);
  13. shading interp

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

转载:http://blog.csdn.net/niuyongjie/article/details/1619496

粒子群算法的几个适应度评价函数相关推荐

  1. 粒子群算法(1)----粒子群简要

    一.历史粒子群算法  从复杂适应系统衍生PSO算法(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主体.比方研究鸟群系统,每一个鸟在这个系 ...

  2. 【转】粒子群算法----粒子群算法简介

    一.粒子群算法的历史  粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主体.比如研究鸟群系统,每个鸟在这个系统 ...

  3. 6套粒子群算法(内含matlab代码)

    粒子群算法(1)----粒子群算法简介 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主 ...

  4. 【ELMAN预测】基于粒子群算法改进ELMAN动态递归神经网络实现数据预测matlab源码

    一.Elman神经网络介绍 1.特点 Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特 ...

  5. 群智能算法第3关:粒子群算法 - 目标函数最优解计算

    任务描述 本关任务:使用 python 实现粒子群算法,并求解目标函数最优解. 相关知识 为了完成本关任务,你需要掌握:1.编码与适应度函数,2.粒子群算法原理,3.粒子群算法流程,4.使用 pyth ...

  6. 相控阵天线(四):阵列天线波束赋形(遗传算法、粒子群算法、进化差分算法、含python代码)

    目录 波束赋形简介 遗传算法波束赋形 粒子群算法波束赋形 差分进化算法波束赋形 智能算法比较 遗传算法波束赋形代码示例 波束赋形简介 根据期望的方向图辐射特性(如方向图形状.主瓣宽度.副瓣电平.方向性 ...

  7. 基于粒子群算法优化的ELMAN动态递归神经网络预测-附代码

    基于粒子群算法优化的ELMAN动态递归神经网络预测及其MATAB实现 文章目录 基于粒子群算法优化的ELMAN动态递归神经网络预测及其MATAB实现 1. 模型与算法描述 1.1 ELMAN神经网络预 ...

  8. 非线性方程的粒子群算法matlab,求解非线性方程组的量子行为粒子群算法

    好文网为大家准备了关于求解非线性方程组的量子行为粒子群算法的文章,好文网里面收集了五十多篇关于好求解非线性方程组的量子行为粒子群算法好文,希望可以帮助大家.更多关于求解非线性方程组的量子行为粒子群算法 ...

  9. 实验二:群智能算法,第3关:粒子群算法 - 目标函数最优解计算

    文章目录 任务描述 相关知识 编码与适应度函数 粒子群算法原理 粒子群算法流程 使用python实现粒子群算法 编程要求 测试说明 完整代码 任务描述 本关任务:使用 python 实现粒子群算法,并 ...

  10. 【优秀作业】粒子群算法(Python)

    粒子群优化算法 一.概述 粒子群优化算法(Particle Swarm Optimization,PSO)的思想来源于对鸟捕食行为的模仿,最初,Reynolds.Heppner 等科学家研究的是鸟类飞 ...

最新文章

  1. 发改委:互联网企业没有出现大规模裁员现象
  2. Nilearn教程系列(3)-ICA静息功能磁共振成像的分组分析:CanICA
  3. osgi实战学习之路:8. Service-3之ServiceTracker
  4. django的from组件
  5. affiliate的使用方式
  6. JVM学习笔记之-运行时数据区概述及线程概述,程序计数器(PC寄存器),虚拟机栈(栈,局部变量表,操作数栈,动态连接,方法调用,方法返回地址等),本地方法接口,本地方法栈
  7. 6.1 范数最小解,右逆,零空间映射矩阵
  8. 图像融合亮度一致_博文精选 | 基于深度学习的低光照图像增强方法总结
  9. 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中
  10. 部分xcode插件可能有新版本
  11. 使TextView在Android上可滚动
  12. 【动态规划】区间dp:P1005矩阵取数
  13. Nashorn Multithreading and MT-safety
  14. mysql拼装字段_Mysql 实现字段拼接的三个函数
  15. 车路协同发展挑战与影响解析
  16. 香橙派python编程_香橙派4B Python3.7安装OpenCV
  17. lol服务器维护 胜率,说下这游戏服务器控制胜率怎么来的。
  18. sequence与sequencer
  19. linux 硬盘满了如何处理
  20. SRGAN超分辨率网络

热门文章

  1. 汉编国有资产综合管理系统简介
  2. Teamviewer远程工具使用
  3. android使用谷歌插件下载图片,Image Downloader:批量图片下载
  4. 苹果7plus元件分布图_苹果iPhone7Plus元件分布图+电路原理图+位置图PDF
  5. Websocket测试工具
  6. FakeUserAgentError('Maximum amount of retries reached') 彻底解决办法
  7. python选择题题库
  8. 微信小程序实现下拉刷新和上拉触底,获取新数据
  9. r语言和pythonjava_python和R语言有什么区别?
  10. php开发微信小程序教程,从零开始开发微信小程序步骤(三)