粒子群算法(6)-----几个适应度评价函数
来源:互联网 发布:数据库基础教程 编辑:程序博客网 时间:2024/05/04 05:26
下面给出几个适应度评价函数,并给出图形表示
头几天机子种了病毒,重新安装了系统,不小心把程序全部格式化了,痛哭!!!没办法,好多程序不见了,现在把这几个典型的函数重新编写了,把他们给出来,就算粒子群算法的一个结束吧!痛恨病毒!!!!
函数图形如下所示
头几天机子种了病毒,重新安装了系统,不小心把程序全部格式化了,痛哭!!!没办法,好多程序不见了,现在把这几个典型的函数重新编写了,把他们给出来,就算粒子群算法的一个结束吧!痛恨病毒!!!!
第一个函数:Griewank函数,图形如下所示:
适应度函数如下:(为了求最大值,我去了所有函数值的相反数)
function y = Griewank(x)% Griewan函数% 输入x,给出相应的y值,在x = ( 0 , 0 ,…, 0 )处有全局极小点0.% 编制人:% 编制日期:[row,col] = size(x);if row > 1 error( ' 输入的参数错误 ' );endy1 = 1 / 4000 * sum(x. ^ 2 );y2 = 1 ;for h = 1 :col y2 = y2 * cos(x(h) / sqrt(h));endy = 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)]); endendsurf(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( ' 输入的参数错误 ' );endy = 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)]); endendsurf(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
0 0
- 粒子群算法(6)-----几个适应度评价函数
- 粒子群算法(6)-----几个适应度评价函数
- 粒子群算法的几个适应度评价函数
- 粒子群算法几个适应度评价函数
- 粒子群算法的几个适应度评价函数
- 粒子群算法解决函数优化问题
- 粒子群算法实例-求解函数极值
- 粒子群算法求函数极值
- 粒子群算法(1-6)----粒子群算法简介
- 粒子群优化算法(一):算法性能测试函数
- 【建模必备】遗传算法的基本原理与步骤(适应度函数与适应度分配)
- 遗传算法(2):对适应度函数的改进
- 粒子群优化算法在复杂函数参数估计中的应用
- 简单粒子群优化算法的函数寻优
- 粒子群PSO算法
- 粒子群算法介绍
- 粒子群算法(PSO)
- 粒子群优化算法
- JSP页面中调用Spring容器注入的Bean
- 日本谋杀案,找凶手
- Spark 源码解析之SparkContext家族(一)
- eclipse git控件操作 回退到历史提交 删除历史的某次提交
- 数字时钟
- 粒子群算法(6)-----几个适应度评价函数
- 基于高斯核的RBF神经网络
- tableviewcell自适应高度及stackview设置问题
- 诡异的指针
- 冷启动!Splash界面的秒开
- 【Unity】资源打包AssetBundle的概念和流程
- 单例模式(Java,Python)实现
- 李航·统计学习方法笔记·第6章 logistic regression与最大熵模型(2)·最大熵模型
- GPS坐标系互转