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

第一个函数: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 :coly2 = 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 :colfor  h = 1 :rowz(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 :colfor  h = 1 :rowz(h,l) = Rastrigin([X(h,l),Y(h,l)]);end
end
surf(X,Y,z);
shading interp

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


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

function result=Schaffer(x1)
%Schaffer 函数
%输入x,给出相应的y值,在x=(0,0,…,0) 处有全局极大点1.
%编制人:
%编制日期:
[row,col]=size(x1);
if row>1  error('输入的参数错误');
end
x=x1(1,1);
y=x1(1,2);
temp=x^2+y^2;
result=0.5-(sin(sqrt(temp))^2-0.5)/(1+0.001*temp)^2;  

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

function DrawSchaffer()
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)=Schaffer([X(h,l),Y(h,l)]);
end
end
surf(X,Y,z);
shading interp  

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

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

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

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

function DrawAckley()
%绘制Ackley函数图形
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)=Ackley([X(h,l),Y(h,l)]);  end
end
surf(X,Y,z);
shading interp  

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

函数的代码:

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

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

function DrawRosenbrock()
%绘制Rosenbrock函数图形,大铁锅函数,哈哈
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)=Rosenbrock([X(h,l),Y(h,l)]);  end
end
surf(X,Y,z);
shading interp 

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

附注:本文为转载文章

出处:http://blog.csdn.net/niuyongjie/article/details/1619496

原作者:niuyongjie

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

  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. Sublime Text 2 安装配置插件
  3. 开发资源库(repositiory)
  4. CSS清除浮动常用方法小结
  5. JavaScript:向数组开头添加
  6. 解决wmv播放的问题
  7. ubuntu intellij java_在Linux上,安装Intellij IDEA进行Scala开发
  8. Spring Boot + Spring Data + Elasticsearch实例
  9. UI设计师样机模型|超酷折叠屏UI设计指南
  10. 解析带有命名空间问题web.xml
  11. Visual C# .NET2003语言的改变
  12. Python学习路程-常用设计模式学习
  13. Delphi Invalidate的用法
  14. DirectX 9高层着色语言介绍4——语言基础(3)
  15. 练手小程序之约瑟芬杀人法
  16. 反向题在测试问卷信效度_调查问卷的信效度分析
  17. 圣诞老人python代码_用Python画圣诞老人的N种方法
  18. 创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型
  19. vue 实时搜索 防抖功能
  20. 游戏音效中竟然有3D音效,这是什么鬼?

热门文章

  1. LabVIEW开放神经网络交互工具包【ONNX】,大幅降低人工智能开发门槛,实现飞速推理
  2. 天池大数据竞赛——UI特征统计
  3. QGIS免费获取并加载行政区边界
  4. 032-OpenCV模板匹配单个对象、多个对象
  5. oracle 分区交换
  6. 最新服务器处理器天梯,服务器CPU性能排行榜天梯图(双路/三路/四路)
  7. 打印机简体打出繁体、乱码解决办法
  8. Android 清理app缓存数据的方法
  9. MySQL数据库-表索引-唯一索引
  10. 软件测试面试题和简历模板(面试前准备篇)