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

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

标签: 算法图形function
2007-05-21 16:28 37960人阅读 评论(25) 收藏 举报
 分类:
粒子群算法研究(8) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

第一个函数: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

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

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

  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. Matlab粒子群算法搜索费马点-求到多个点距离之和最小的点

    0. 前言 本文是在我之前一篇博客的基础上进行了扩展和延申,原文使用了matlab自带的优化函数,而本文采用了一个比较经典的随机优化算法--粒子群算法,对给定的目标函数进行求解. Matlab实现搜索 ...

  5. 多目标粒子群算法(MOPSO)的原理和matlab实现

    算法原理部分参考文献基于改进多目标粒子群算法的配电网储能选址定容 0.前言 初学者面对多目标优化问题可能比较困难,写下这篇博客记录一下自己学习的心得,希望能和大家一起交流学习. 采用粒子群求单目标优化 ...

  6. 数学建模国赛 常考赛题类型(模拟退火算法、粒子群算法、遗传算法)

    不知小伙伴们有没有发现,在1992~2020年历年国赛赛题中,优化类赛题所占的比例非常大,如在近五年的题目中: 2016A:系泊系统的设计: 2017B:"拍照赚钱"的任务定价 2 ...

  7. 粒子群算法(PSO)的python实现

    文章目录 前言 一.粒子群算法的原理 二.python代码实现 总结 前言 CSDN上找了一圈粒子群算法的python代码,全是以类来写的,由于对类不感冒(其实是不咋会用),于是参照matlab版本的 ...

  8. 【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)

    目录 0.背景 1.粒子群算法 1.1.算法简介 1.2.算法步骤 1.3.算法举例 2.PID自整定 2.1.基于M文件编写的PID参数自整定 *2.2.复杂系统的PID自整定(基于simulink ...

  9. 遗传-粒子群算法遗传-禁忌搜索算法求解TSP问题

    1. 前言 上一篇博文[五种常见启发式算法求解TSP问题-总结篇]中,总结了五种常见启发式算法在求解TSP问题上的效果,其中遗传算法的求解质量最差,而粒子群算法和禁忌搜索算法的求解效果最佳,因此本文计 ...

  10. python路径规划算法可视化_基于粒子群算法的牙齿正畸路径规划方法python实现

    这篇是基于粒子群算法的牙齿正畸路径规划研究的python实现,参考的是徐晓强等人的<基于改进粒子群算法的牙齿正畸路径规划方法>,与这篇文章的区别在于: 1.徐等的文章设计了一种改进的粒子群 ...

最新文章

  1. Spring源码分析【0】-框架的基础:继承和接口调用链
  2. Storm 01之 Storm基本概念及第一个demo
  3. package.json 中的 bin 字段作用
  4. js 时间戳转为日期格式
  5. 阻塞队列的使用案例-注册成功后增加积分
  6. 【C++基础】时间类型详解(转)
  7. 路由器 android 打印机,谷歌关闭云打印服务,安卓和Chrome办公用户要慌了
  8. Apache RewriteCond %{REQUEST_FILENAME} 不起作用问题
  9. cordova 打包vue 集成的app , router-view 默认首页白屏
  10. 在Windows NT上装还原卡
  11. 专利分析:数字人民币的“双离线”支付问题
  12. Centos隐藏桌面图标
  13. 农民伯伯android,Android3.1r1API中文文档——ImageView(cnmahj+农民伯伯).doc.doc
  14. C/C++后台开发基础知识
  15. 红绿灯的html代码,红绿灯.html
  16. 人机交互知识 理论篇1
  17. Git出现Failed to connect to github.com port 443:Operation timed out问题解决
  18. Excel-VBA:根据正则表达式提取文本(字符串、内容)
  19. 上三角矩阵的压缩存储
  20. P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布(结构体)

热门文章

  1. gradle教程java_Gradle教程系列 ——Gradle基本语法
  2. Yamaha Vocaloid 5.6.2 x64 WiN 歌声合成器
  3. 喜欢的抖音视频只能收藏,不能保存?一篇文章教会你使用Python下载抖音无水印视频
  4. android ddms监听动态资源,Smail动态调试之Android Studio
  5. 在校大学生如何申请免费教育版 Intellij IDEA
  6. Mac怎么读写NTFS格式?
  7. 电脑上如何图片文字识别?哪个工具识别的准确?
  8. matlab中样条插值,样条插值的MATLAB实现
  9. 计算机科学与技术哪些专业课,计算机科学与技术专业课程有哪些 计算机科学与技术有哪些科目...
  10. win10:如何书写.reg文件修改注册表