单目标优化问题 常用的 测试函数(MATLAB版)
###############################################
# 测试函数 #
###############################################
#1. De jong 函数F1
# min f1(x1,x2,x3) = x1^2+x2^2+x3^2; -5.12<=x1,x2,x3<=5.12;
# 一个极小点f1(0,0,0)=0
# 《遗传算法原理及应用》周明 孙树栋 编著 p125。
# GA参数取默认值(以下未交代的GA参数都取默认值)
# xu注:注意,含下标的变量在变量定义域表达式的表示形式要和数学表达式
# 中的一致!
#
x1^2+x2^2+x3^2; -5.12<=x1,x2,x3<=5.12;
# 以连加形式表示上式(只可以字母i为变量下标):
sum(1, 3, xi^2); -5.12<=xi<=5.12;
sum(1, 3, x[i]^2); -5.12<=x[i]<=5.12;
# 指定 i 或 k 或 j 等字母为变量下标的连加形式表达式:
# 说明:当指定某字母为变量下标,其变量名就不能含该字母 !
sumx(1, 3, i, xi^2); -5.12<=xi<=5.12;
sumx(1, 3, k, xk^2); -5.12<=xk<=5.12;
sumx(1, 3, j, xj^2); -5.12<=xj<=5.12;
# 变量下标带 [ ] 的连加形式表达式:
sumx(1, 3, i, x[i]^2); -5.12<=x[i]<=5.12;
#1-a min f(x) = sum(1, 100, (x-0.5)^2);
# 0<=xi<=1.0; i=1, 2, ..., 100;
# 最优解:f(0.5, 0.5, ..., 0.5) = 0
#
sum(1, 100, (xi-0.5)^2); 0<=xi<=1.0;
#1-1. * De jong 函数F2 , 又称 Rosonbrock马鞍函数
# min f2(x1,x2) = 100*(x1^2-x2)^2+(1-x1)^2;
# 它具有一个全局极小点f(1,1)=0 .该函数虽然
# 是单峰值函数,但它却是病态的(螺旋型),难以进行全局极小化。
# 摘自: 《遗传算法原理及应用》p125
#
# 这函数是二参数、单极值的非二次函数,但在x2=x1处有一狭
# 长深谷,其最小值在(x1,x2)=(1,1)时,min f=0,
# 寻优中可能陷入局部解.
#
# Rosenbrock 函数是一个二维单峰值函数,具有一个全局极小点
# f(1.0,1.0)=0.0,但它却是病态的,在函数曲面上沿着曲线x2=x1^2
# 有一条较为狭窄的山谷,传统的梯度优化方法搜索到谷边缘时,往往
# 会发生振荡,难以进行全局优化。
# 但它在全局极小点邻近的狭长区域内取值变化极为缓慢, 可用于评价
# 算法的搜索性能。
# 摘自:多点正交交叉的遗传算法 刘 清等
# xu注:当变量定义域表达式中存在二个以上的变量时得用','分隔!
#
100*(x1^2-x2)^2+(1-x1)^2; -2.048<=x1,x2<=2.048;
100*(x1^2-x2)^2+(1-x1)^2; -10.0<=x1,x2<=10.0;
100*(x1^2-x2)^2+(1-x1)^2; -100.0<=x1,x2<=100.0;
#1-2. De jong 函数F3
# min f3(x1,x2,...,x5)=sum(integer(xi));
# -5.12<=xi<=-5.12 i=1,2,...,5 这是一个不连续函数,
# 该函数参数多,不可导,是五参数的阶梯函数,
# 在 -5.12<=xi<=-5.0 区域内的每一点,它都取全局极小值:
# f3(x1,x2,x3,x4,x5)= -30。
# 摘自:《遗传算法原理及应用》p125
#
floor(x1)+ floor(x2)+floor(x3)+floor(x4)+floor(x5); -5.12<=x1,x2,x3,x4,x5<=5.12;
sum(1, 5, floor(xi)); -5.12<=xi<=5.12;
sumx(1, 5, i, floor(xi)); -5.12<=xi<=5.12;
#1-3 De Jong 函数F4
# min f4(x1,x2,...,x30)=sum(i*xi^4)+rnd;
# -1.28<=xi<=1.28, i=1,2,...,30;
# 这是一个含噪声rnd的4次函数,当不考虑噪声的影响时,它具有
# 一个全局极小值f4(0,0,...,0)=0。
# 摘自:《遗传算法原理及应用》p125
# 原De Jong 函数,该噪声是分布为N(0,1)的高斯随机变量
# RandG(0,1)。据文献介绍,当函数不存在全局最小值时,该函数
# 是有缺陷的。
# 为此,有人建议以均匀分布的[0,1)的随机变量代替之。这可保证
# 最小值定位于0。
# Quartic [F4] is a simple unimodal function padded with noise.
# The gaussian noise makes sure that the algorithm never gets
# the same value on the same point.Algorithms that do not do
# well on this test function will do poorly on noisy data.
#
sum(1,30,i*xi^4)+RandG(0,1); -5.12<=xi<=5.12;
sum(1,30,i*xi^4)+rand(0,1); -5.12<=xi<=5.12;
#1-4 De Jong 函数F5
# min f5(x1,x2)=1/(1/500+sum(1/(j+sum((xi-aij)^6)))),
# -65.536<=xi<=65.536, j=1,2,...,25; i=1,2;
# a1j= -32,-16,0,16,32, -32,-16,...,0,16,32
# a2j= -32,-32,-32,-32,-32, -16,-16,...,32,32,32
# 它总共有25个局部极小值,其中有一个是全局极小值:
# f5(-32,-32)=0.998。
# 摘自:《遗传算法原理及应用》p125
# 该函数是具有 2 5 个稀疏尖峰的多模态函数。
# xu注: 本程序规定常数项一维数组命名为c, 二维数组命名为a,
# 即分别以c[j]和a[i,j]表示。
# 它们的二组数据即可记录在同一txt文件中,也可分别记
# 录在二个不同的txt文件中。文件应保存在本地文件夹内。
# 该数学表达式的常数项数组可调用1-4 ConstTermsData.txt
# 给予输入。
# xu注:min f( -31.97833, -31.97833 ) = 0.998003840
# 若是f5(x1,x2)=0.002+sum(1/(j+sum((xi-aij)^6)))
# min f = 0.00200
1/(1/500+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6)))); -65.536<=xi<=65.536;
1/(0.002+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6)))); -65.536<=xi<=65.536;
0.002+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6))); -65.536<=xi<=65.536;
#2. Schaffer函数
# min f(x1, x2), 该函数在(x[1], x[2])=(0,0)处有一个全局最小值0。
#
0.5+((sin(sqrt(x[1]^2+x[2]^2))*sin(sqrt(x[1]^2+x[2]^2))-0.5)/((1.0+0.001*(x[1]^2+x[2]^2))*(1.0+0.001*(x[1]^2+x[2]^2)))); -100<=x[1],x[2]<=100;
0.5+((sin(sqrt(x1^2+x2^2)))^2-0.5)/(1.0+0.001*(x1^2+x2^2))^2; -100<=x1,x2<=100;
0.5+((sin(sqrt(pow(x1,2)+pow(x2,2))))^2-0.5)/(1.0+0.001*(pow(x1,2)+pow(x2,2)))^2; -100<=x1,x2<=100;
#3. * Schaffer函数
# 在其定义域内只有一个全局极小点min f(0,0)=0, -100<=x1,x2<=100;
#
((x^2+y^2)^0.25)*((sin(50*(x^2+y^2)^0.1)^2)+1.0); -5.12<=x,y<=5.12;
((x1^2+x2^2)^0.25)*((sin(50*(x1^2+x2^2)^0.1)^2) +1.0); -10<=x1,x2<=10;
pow(pow(x1,2)+pow(x2,2), 0.25)*(pow(sin(50*pow((x1^2+x2^2),0.1)),2)+1.0); -100<=x1,x2<=100;
#3-1 min f=sum(1, D-1, pow(x[i+1]^2+x[i]^2, 0.25)
# *(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2, 0.1)), 2))),
# -100<=x[i],x[i+1]<=100, i=1,2,...,D-1;
# 其min f(0,0,...,0)=0; 其全局极小点与邻近的局部极小点之间
# 有High barrier height.是演化算法的典型测试函数。
# 摘自:《快速演化算法研究》 高飞等。
sum(1, 9, pow(x[i+1]^2+x[i]^2, 0.25)*(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2, 0.1)), 2))); -100<=x[i],x[i+1]<=100;
sum(1, 29, pow(x[i+1]^2+x[i]^2, 0.25)*(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2, 0.1)), 2))); -100<=x[i],x[i+1]<=100;
#4. * Schaffer's 函数
# 此函数只有一个最小值点min f(0,0)=-1;
# 该最小值点周围有很多局部极值点,形成二圈圈沟,其函数值分别为
# -0.990283和-0.962776,因此很容易陷入在这些极小点处。
# 注:也可按多峰值函数处理,效果亦佳。
#
(sin(sqrt(x^2+y^2))^2-0.5)/(1+0.001*(x^2+y^2))^2 -0.5; -100<x,y<100;
#4-1 Schaffer 函数, 此函数有一个全局最大值解 max f(0,0)=1.0 。
# 该最大值点周围有两圈圈脊,取值分别为0.990284 和0.962776,
# 而且这些局部极值与最大值间的值差很小,因此,优化过程中极易
# 停滞在这些局部极值点处。因而,该函数可以很好地衡量进化算法
# 的性能.
#
0.5-((sin(sqrt(x^2+y^2)))^2-0.5)/(1.0+0.001*(x^2+y^2))^2;-100<x,y<100;
#4-2 Multimodal sine envelope sine wave function.
# min f=sum(1, D-1, 0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2
# -0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2),
# -100<=x[i],x[i+1]<=100, i=1,2,...,D-1;
# 该函数有一个全局极小值 min f(0, 0,..., 0)=0, 该全局极小点
# 被无数的局部极小点所围绕, 并且全局极小点与这些局部极小点之
# 间存在极大值点。该函数是评价演化算法全局收敛性及搜索性能的
# 经典函数。
# 摘自:快速演化算法研究 高飞等.
#
sum(1, 9, 0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2-0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2); -100<=x[i],x[i+1]<=100;
sum(1, 29, 0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2-0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2); -100<=x[i],x[i+1]<=100;
#4-3 min f(x1,x2)=(((sin(sqr(x1^2+x2^2))^2-0.5)
# /(1+0.001*(x1^2+x2^2))^2))-0.5; -4<=x1,x2<=4;
# 其全局最优值在点(0,0).在全局最优值附近有无穷个取值相同的局部
# 最优值,且性态震荡强烈,一般的优化算法很难找到其全局最优解, 因
# 此常常被国内外很多学者用于对优化问题的测试.
# 摘自: Tang W, Guo ZM, Tang JH, Li DP. Optimizing complex
# functions by chaos genetic algorithm. Journal of Harbin
# Engineering University, 2000,21(5):1~5 (in Chinese with
# English abstract).
# 其全局最优的精确解为(f=0.3679, x1=0, x2=0 ?);
# xu注:f(x1,x2) = -1.00000, x1=0, x2=0;
#
(((sin(sqrt(x1^2+x2^2)))^2-0.5)/(1.0+0.001*(x1^2+x2^2))^2)-0.5; -4<=x1,x2<=4;
#5. * Shubert函数
# min f(x,y)=(sum(i*cos((i+1)*x)+i))*(sum(i*cos((i+1)*y)+i)),
# i=1:5, -10<=x,y<=10
# 该函数是一个多模态函数, 在其定义域内共有760个局部最小点,
# 其中的18 个点是全局最小点f = -186. 731 ,
# 因而该函数对于测试小生境遗传算法性能是非常适合的.
# 摘自: MICHALEWICZ Z.
# Genetic Algorithms + Data Structures = Evolution Programs [M] .
# Beijing :Science Press ,2000 :1 - 128.
# xu注:取小生境距=0.50~0.80, 最优保存数=22
(cos(2*x[1]+1)+2*cos(3*x[1]+2)+3*cos(4*x[1]+3)+4*cos(5*x[1]+4)+5*cos(6*x[1]+5))*(cos(2*x[2]+1)+2*cos(3*x[2]+2)+3*cos(4*x[2]+3)+4*cos(5*x[2]+4)+5*cos(6*x[2]+5)); -10<= x[1],x[2]<=10;
sum(1,5,i*cos((i+1)*x1+i))*sum(1,5,i*cos((i+1)*x2+i)); -10<=x1,x2<=10;
sum(1,5,i*cos((i+1)*x+i))*sum(1,5,i*cos((i+1)*y+i)); -10<=x,y<=10;
#5-1 f(x)=sum(1,5,i*cos((i+1)*x1+i))*sum(1,5,i*cos((i+1)*x2+i))
+(x1+1.42513)^2+(x2+0.80032)^2;
# where -10 ≤ xi ≤ 10, i = 1, 2. There are about 760 local minima
# and one global minimum f* = -176.1375 at x* = (-1.3068,-1.4248).
# Levy No. 5-1 is identical to Levy No. 5 except for the addition
# of a quadratic term. The large number of local optimizers makes
# it extremely difficult for any approximation method to find the
# global minimizer.
# 摘自:《An Evolutionary Algorithm for Minimizing Multimodal
# Functions》D.G. Sotiropoulos, V.P. Plagianakos and M.N.
# Vrahatis University of Patras, Department of Mathematics,
# Division of Computational Mathematics & Informatics,
# xu注:f( -1.42513, -0.80032 ) = -186.730911255 ?
sum(1, 5, i*cos((i+1)*x1+i))*sum(1,5,i*cos((i+1)*x2+i))+(x1+1.42513)^2+(x2+0.80032)^2; -10<=x1,x2<=10;
#6. Shubert函数
# 该函数有9个全局最小值-24.062499,位于(x,y):
# (-6.774576,-6.774576)、(-6.774576,-0.491391)、
# (-6.774576,5.791794)、(-0.491391,-6.774576)、
# (-0.491391,-0.491391)、(-0.491391,5.791794)、
# (5.791794,-6.774576)、(5.791794,-0.491391)、
# (5.791794,5.791794)
# 取最优保存数=10~12, 其余默认值。
#
-(sin(2*x+1)+2*sin(3*x+2)+3*sin(4*x+3)+4*sin(5*x+4)+5*sin(6*x+5))-(sin(2*y+1)+2*sin(3*y+2)+3*sin(4*y+3)+4*sin(5*y+4)+5*sin(6*y+5)); -10<=x,y<=10;
-sum(1,5,i*sin((i+1)*x+i))-sum(1,5,i*sin((i+1)*y+i)); -10<=x,y<=10;
#7. Easom函数
# min f(x1,x2) = -cos(x1)*cos(x2)*exp(-((x1-pi)^2)-(x2-pi)^2);
# -10<x1,x2<10 ;
# 在(x1,x2)=(pi, pi)处有全局最小值-1。
#
-cos(x1)*cos(x2)*exp(-((x1-pi)^2)-(x2-pi)^2); -10<x1,x2<10 ;
-cos(x1)*cos(x2)*exp(-((x1-pi)^2)-(x2-pi)^2); -100<=x1,x2<=100;
-cos(x1)*cos(x2)*exp(-pow((x1-pi),2)-pow((x2-pi),2)); -500<=x1,x2<=500;
#7-1 min f(x,y) = sin(x)*sin(y); -pi<=x,y<=pi;
# 有二个全局最小值:
# 1. f( 1.57080, -1.57080 ) = -1.000000000
# 2. f( -1.57080, 1.57080 ) = -1.000000000
# 来源:一种基于多群体搜索的实数遗传算法 程之刚等 国防科技大学。
#
sin(x)*sin(y); -pi<=x,y<=pi;
#8. Branin RCOS函数 在三个不同点:
# (x[1],x[2])=(-pi,12.275) 、(pi, 2.2750)和(9.42478, 2.4750)
# 处有全局最小值 0.397887
# xu注:当有二个以上的变量定义域表达式时,表达式之间得用'&&'分隔。
# 如下式有 0<=x[2]<=15 && -5<=x[1]<=10;
#
(x[2]-(5.1/(4*3.14159265359^2))*x[1]^2+(5/3.14159265359)*x[1]-6)*(x[2]-(5.1/(4*3.14159265359^2))*x[1]^2+(5/3.14159265359)*x[1]-6)+10*(1-1/(8*3.14159265359))*cos(x[1])+10; 0<=x[2]<=15 && -5<=x[1]<=10;
(x[2]-(5.1/(4*3.14159265359^2))*x[1]^2+(5/3.14159265359)*x[1]-6)*(x[2]-(5.1/(4*3.14159265359^2))*x[1]^2+(5/3.14159265359)*x[1]-6)+10*(1-1/(8*3.14159265359))*cos(x[1])+10; -5<=x[1]<=10 && 0<=x[2]<=15;
(x[2]-(5.1/(4*pi*pi))*x[1]*x[1]+(5/pi)*x[1]-6)*(x[2]-(5.1/(4*pi*pi))*x[1]*x[1]+(5/pi)*x[1]-6)+10*(1-1/(8*pi))*cos(x[1])+10; -5<=x[1]<=10 && 0<=x[2]<=15;
#9. Six-hump Camel Back Function 六峰驼返回函数
# 该函数共有六个局部极小点,其中
# f(-0.089842,0.71266)=f(0.089842,-0.71265)=-1.031628489
# 为二个全局最小点。
# 来源: MICHALEWICZ Z.
# Genetic Algorithms + Data Structures = Evolution Programs [M] .
# Beijing :Science Press ,2000 :1 - 128.
# xu注:当有二个以上的变量定义域表达式时,表达式之间得用'&&'分隔。
# 如0<=x[2]<=15 && -5<=x[1]<=10;
#
(4.0-2.1*x[1]^2+(1/3.0)*x[1]^4)*x[1]^2+x[1]*x[2]+(-4.0+4.0*x[2]^2)*x[2]^2; -3<=x[1]<=3 && -2<=x[2]<=2;
(4.0-2.1*pow(x1,2)+(1/3.0)*pow(x1,4))*pow(x1,2)+x1*x2+(-4.0+4.0*pow(x2,2))*pow(x2,2); -3<=x1<=3 && -2<=x2<=2;
#10. 在定义域内有200个极大和极小值
#
fabs((1-x)*x^2*sin(200*pi*x)); 0<x<1;
#11 * Rosenbrock's函数:
# sum(1, D-1, 100*(x[i]^2-x[i+1])^2+(1-x[i])^2)
# -5.12<=x[i]<=5.12 i=1:D
# De jong 函数F2 的高维函数。
# 最优解 min f(1,1,1, ..., 1,1)=0.0;
# 文献[10]中采用传统GA求解了n=2时的问题.在Rosenbrock函数曲面山谷
# 中的点的最速下降方向几乎与到函数最小值的最好方向垂直,因而传统算
# 法(如最速下降法)较难求解此问题.在高维情况下传统GA难以高效地求
# 解该问题.
#
# xu注:D=30, 小生境初距=0.3 终止代数=1000,其余参数取默认值;
# (090408)
#
sum(1,3,100*(x[i]^2-x[i+1])^2+(1-x[i])^2); -5.12<=x[i],x[i+1]<=5.12;
sum(1,5,100*(x[i]^2-x[i+1])^2+(1-x[i])^2); -5.12<=x[i],x[i+1]<=5.12;
sum(1,10,100*(x[i]^2-x[i+1])^2+(1-x[i])^2); -5.12<=x[i],x[i+1]<=5.12;
sum(1,30,100*(x[i]^2-x[i+1])^2+(1-x[i])^2); -5.12<=x[i],x[i+1]<=5.12;
sum(1,30,100*(x[i+1]-x[i]^2)^2+(x[i]-1)^2); -30<=x[i],x[i+1]<=30;
#11-1.Rosenbrock's 函数 A widely used multimodal test function
# sum(1, D-1, 100*(x[i+1]-xi^2)^2+(1-xi)^2);
# =sum(1, D-1, 100*(x[i]-x[i-1]^2)^2+(1-x[i-1])^2;
# global minimum f(x) = 0 x(i) = 1.0, i=1:D
# Rosenbrock 函数是一个经典复杂优化问题,可被当成多模优化函数,
# 它的全局最优点位于一个平滑、狭长的抛物线形山谷内.由于函数仅
# 为优化算法提供了少量信息,使算法很难辨别搜索方向,找到全局最小
# 点的机会微乎其微,该函数通常用于评价优化算法的执行效率.
# 在下一节的实验测试过程中,我们也发现优化算法一般只能获得该函
# 数的局部极值.其全局最优解:f(1,1,1,...,1)=0.
# 摘自:《多点交叉学习组织进化算法》 吕艳萍1,2, 李绍滋1+, 周昌乐1
# Journal of Software 软件学报 Vol.18, Supplement, December 2007
#
sum(1, 30, 100*(x[i+1]-x[i]^2)^2+(1-x[i])^2);-2.048<=x[i],x[i+1]<=2.048;
sum(1, 50, 100*(x[i+1]-x[i]^2)^2+(1-x[i])^2);-2.048<=x[i],x[i+1]<=2.048;
sum(1, 100, 100*(x[i+1]-x[i]^2)^2+(x[i]-1)^2);-2.048<=x[i],x[i+1]<=2.048;
#11-2 Min f(x)=(sin(pi*y1))^2+sum(1, n-1, (y1-1)^2
# *(1+10*(sin(pi*y[i+1]))^2))+(y[n]-1)^2
# where yi=1+(xi-1)/4, (i = 1, . . . , n) and xi ∈ [-10, 10],
# i = 1, 2, 3. There are about 125 local minima and one global
# minimum f* = 0 at x* = (1, 1, 1). No. 5-2 is difficult
# due to the combinations of diffirent periods of the sine
# function.
# 摘自:《An Evolutionary Algorithm for Minimizing Multimodal
# Functions》D.G. Sotiropoulos, V.P. Plagianakos and M.N.
# Vrahatis University of Patras, Department of Mathematics,
# Division of Computational Mathematics & Informatics,
#
(sin(pi*(1+(x[1]-1)/4)))^2+sum(1, 2, ((1+(x[1]-1)/4)-1)^2*(1+10*(sin(pi*(1+(x[i+1]-1)/4)))^2))+((1+(x[3]-1)/4)-1)^2; -10<=x[1],x[3],x[i+1]<=10;
(sin(pi*(1+(x[1]-1)/4)))^2+sum(1, 9, ((1+(x[1]-1)/4)-1)^2*(1+10*(sin(pi*(1+(x[i+1]-1)/4)))^2))+((1+(x[10]-1)/4)-1)^2; -10<=x[1], x[10],x[i+1]<=10;
(sin(pi*(1+(x[1]-1)/4)))^2+sum(1, 29, ((1+(x[1]-1)/4)-1)^2*(1+10*(sin(pi*(1+(x[i+1]-1)/4)))^2))+((1+(x[30]-1)/4)-1)^2; -10<=x[1],x[30],x[i+1]<=10;
(sin(pi*(1+(x[1]-1)/4)))^2+sum(1, 99, ((1+(x[1]-1)/4)-1)^2*(1+10*(sin(pi*(1+(x[i+1]-1)/4)))^2))+((1+(x[100]-1)/4)-1)^2; -10<=x[1],x[100],x[i+1]<=10;
#12. * X.FenXiang函数 这是一个多峰函数,有四个全局最小点:
# f(1,1)=0, f(-1,1)=0, f(1,-1)=0, f(-1,-1)=0
# 较难完全同时搜索到全局极小化点,很有代表性。
#
100*(x[1]^2-x[2]^2)^2+(1-x[1]^2)^2; -2.048<=x[1],x[2]<=2.048;
#13. Goldstein and Price function (GP) 该函数在其定义域内
# 只有一个全局极小值 f(0,-1)=3.0 。
#
(1+(x1+x2+1)^2*(19-14*x1+3*x1^2-14*x2+6*x1*x2+3*x2^2))*(30+(2*x1-3*x2)^2*(18-32*x1+12*x1^2+48*x2-36*x1*x2+27*x2^2)); -2<=x1,x2<=2;
#14. Hump function(HM) 该函数有二个全局最小值:
# f(0.0898,-0.7126)=f(-0.0898,0.7126) = 0.0
#
1.0316285+4*x1^2-2.1*pow(x1,4)+1/3*pow(x1,6)+x1*x2-4*x2^2+4*pow(x2,4); -5<x1,x2<5;
#15 * Rastrigin's Function
# A widely used multimodal test function Minimize:
# min f(x)=10.0*n+sum(x[i]^2 - 10.0*cos(2*Pi*x[i]))
# -5.12<= x[i]<=5.12
# global minimum f(x)=0 x[i]=0, i=1:n
# Rastrigin’s 函数是一个复杂的多模问题, 具有大量的
# 局部极值点, 主要用于检验算法的群体多样性.
#
10.0*2+x1^2+x2^2-10*(cos(2*pi*x1)+cos(2*pi*x2));-5.12<=x1,x2<=5.12;
10.0*10+sum(1,10,x[i]^2-10.0*cos(2*pi*x[i])); -5.12<=x[i]<=5.12;
#15-1.* Rastrigin's函数
# min f5=sum(1, D, xi^2-10*cos(2*pi*xi)+10);
# -5.12<=xi<=5.12; min f5(0, 0, ... , 0)=0;
# 函数是一个复杂的多模问题, 在xi=0(i=1,2,...,n)时达到全局极小点,
# 存在10D个的局部极值点(0.995,1.990,2.985,3.980,4.985 等).
# 主要用于检验算法的群体多样性.
#
sum(1, 30, xi^2-10*cos(2*pi*xi)+10); -5.12<=xi<=5.12;
sum(1, 50, xi^2-10*cos(2*pi*xi)+10); -5.12<=xi<=5.12;
sum(1, 80, xi^2-10*cos(2*pi*xi)+10); -5.12<=xi<=5.12;
sum(1, 100, xi^2-10*cos(2*pi*xi)+10); -5.12<=xi<=5.12;
#16. Bohachevsky函数#1 有一个f(0,0)=0.0 全局最小值。
#
x1^2+2*x2^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7; -50<=x1,x2<=50;
#17. Bohachevsky 函数 #2 有f(0,0)=0 全局最小值。
#
x1^2+2*x2^2-0.3*cos(3*pi*x1)*cos(4*pi*x2)+0.3; -50<=x1,x2<=50;
#18. Bohachevsky 函数 #3 有f(0,0)=0 全局最小值。
#
x1^2+2*x2^2-0.3*cos(3*pi*x1+4*pi*x2)+0.3; -50<=x1,x2<=50;
#19. Bohachevsky测试函数 3,最优解为-0.24,分布在[0,-0.24]
# 和[0,0.24]。
# xu注:取小生境距=0.2(取小于两峰值间距,变量定义域也不大),
# 其余默认值;
#
x^2+y^2-0.3*cos(3*pi*x)+0.3*cos(4*pi*y)+0.3; -1.0<=x,y<=1.0;
#20. 多峰函数,有四个全局最大值2.118,对称分布于
# (+0.64,+0.64),(-0.64,-0.64),(+0.64,-0.64),
# (-0.64,+0.64),存在大量局部极大值,
# 尤其是在中间区域有一取值与全局最大值很接近的局部极大值
# 2.077)凸台。
# xu注:
# 最小值:
# f( -0.64097, -0.64097 ) = -2.118763447
# f( -0.64097, 0.64097 ) = -2.118763447
# f( 0.64097, -0.64097 ) = -2.118763447
# f( 0.64097, 0.64097 ) = -2.118763447
# 最大值:
# f( -0.88118, -0.88118 ) = 0.632694185
# f( -0.88118, 0.88118 ) = 0.632694185
# f( 0.88118, -0.88118 ) = 0.632694185
# f( 0.88118, 0.88118 ) = 0.632694185
#
-(1+x*sin(4*pi*x)-y*sin(4*pi*y+pi)+sin(6*sqrt(x^2+y^2))/(6*sqrt(x^2+y^2+10^(-15)))); -1<=x,y<=1;
#21. 函数6,有四个全局最小值-2.260,分布在:
# (0.63492,0.63492),(-0.63492,0.63492),
# (0.63492,-0.63492),(-0.63492,-0.63492)
# xu注:
# f( 0.63492, 0.63492 ) = -2.259986401
# f( -0.63492, 0.63492 ) = -2.259986401
# f( -0.63492, -0.63492 ) = -2.259986401
# f( 0.63492, -0.63492 ) = -2.259986401
#
-(1+x*sin(4*pi*x)-y*sin(4*pi*y+pi)); -1<=x,y<=1;
#22. Needle-in-a-haystack问题,当a=0.05;b=3,其最优解近似
# 为-3600,分布在(0,0)。
# 4个局部极值点为(+5.12,+5.12),(-5.12,-5.12),
# (+5.12,-5.12),(-5.12,+5.12)。
# xu注:
# 1. f( 0.00000, 0.00000 ) = -3600.000000000
# 2. f( -5.12000, -5.12000 ) = -2748.782226563
# 3. f( -5.12000, 5.12000 ) = -2748.782226563
# 4. f( 5.12000, -5.12000 ) = -2748.782226563
# 5. f( 5.12000, 5.12000 ) = -2748.782226563
#
-((3/(0.05+(x^2+y^2)))^2+(x^2+y^2)^2); -5.12<=x,y<=5.12;
#23. Camel函数,有6个局部极小点:
# (1.607105, 0.568651),(-1.607105, -0.568651)、
# (1.703607, -0.796084),(-1.703607, 0.796084)、
# (-0.0898,0.7126), (0.0898,-0.7126),
# 其中(-0.0898,0.7126)和(0.0898,-0.7126)
# 为两个全局最小点,最小值为-1.031628。
# xu注:
# 1. f( -0.08984, 0.71266 ) = -1.031628489
# 2. f( 0.08984, -0.71266 ) = -1.031628489
#
(4-2.1*(x^2)+x^4/3)*x^2+x*y+(-4+4*y^2)*y^2; -5.12<=x,y<=5.12;
#24. Rastrigrin 函数,全局最小值为0,分布在(0,0)处。
#
20+x^2-10*cos(2*pi*x)+y^2-10*cos(2*pi*y); -5.12<=x,y<=5.12;
#25. Sphere Model函数,全局最小值为0,分布在(0,0)。
#
x^2+y^2; -5.12<=x,y<=5.12;
#26. * Rana函数:
# min f = x*sin(sqrt(fabs(y+1-x)))*cos(sqrt(fabs(y+1+x)))
# +(y+1)*cos(sqrt(fabs(y+1-x)))*sin(sqrt(fabs(y+1+x)));
# -512<=x,y<=512; 全局最优解约为-511.708,分布在(-512,-512)。
# The Rana function is a non-separable, highly multimodal
# function.The left figure shows the two dimensional landscape of
# the non-rotated version. The best solutions are at the corners.
# Applying a simple parameter shift makes this function
# non-symmetric.
# 来源:Genitor Colorado State University.
# xu注:较难找到最优解,其实最优解还不是-511.708892822,但经常找到
# 的是它。
# f( -512.00000, -511.99540 ) = -511.708892822 多数情况
# f( -512.00000, -511.99560 ) = -511.708892822
# f( -488.63258, 512.00000 ) = -511.732879639
# 小生境初距=500~1000,其余默认值
# f( 487.50042, 504.22052 ) = -552.609375000
# f( 505.20298, 486.14774 ) = -564.045166016
# 采用多峰值函数寻优方式,同时得到:
# 1. f( -488.63258, 512.00000 ) = -511.732879639
# 2. f( -512.00000, -511.99560 ) = -511.708892822
#
x*sin(sqrt(fabs(y+1-x)))*cos(sqrt(fabs(y+1+x)))+(y+1)*cos(sqrt(fabs(y+1-x)))*sin(sqrt(fabs(y+1+x))); -512<=x,y<=512;
x*sin(sqrt(fabs(y+1-x)))*cos(sqrt(fabs(y+1+x)))+(y+1)*cos(sqrt(fabs(y+1-x)))*sin(sqrt(fabs(y+1+x))); -512<=x,y<=512;
#27. 函数16,全局最小值f(0,0)=0
#
fabs(x)+fabs(y)+fabs(x)*fabs(y); -10<=x,y<=10;
#28. Michalewicz's 函数,函数有1个全局极小值点取值近似为
# -1.8013,在(2.0230,2.0230)处。
# xu注:f( 2.20291, 1.57080 ) = -1.801303387
#
-sin(x)*(sin(x^2/pi))^20-sin(y)*(sin(2*y^2/pi))^20; 0<=x,y<=pi;
-sin(x)*pow((sin(x^2/pi)),20)-sin(y)*pow((sin(2*y^2/pi)),20); 0<=x,y<=pi;
#28-1 Michalewicz's function
# min f(...)=-sum(1, N, sin(xi)*pow(sin(i*xi^2/pi),20));
# 0<=xi<=pi; 最小值:-99.2784。
# 摘自:《用于函数优化的正交Multi-Agent遗传算法》,薛明志等,
# 系统工程与电子技术,第26卷第9期,2004年9月。
#
# The Michalewicz function is a multimodal test function
# (owns n! local optima).The parameter m defines the "steepness"
# of the valleys or edges.Larger m leads to more difficult search.
# For very large m the function behaves like a needle in the
# haystack(the function values for points in the space outside the
# narrow peaks give very little information on the location of the
# global optimum). Function has the following definition
# f(x) = -sum( sin(x(i)) * (sin(i*x(i)^2/pi))^(2*m) ),
# i=1:n, m=10 0<=x(i)<=pi. global minimum:
# f(x)=-4.687 (n=5); x(i)=???, i=1:n.
# f(x)=-9.66 (n=10); x(i)=???, i=1:n.
# 摘自:GEATbx: Example Functions (single and multi-objective
# functions) 2 Parametric Optimization
# xu注:从该函数3D图可见,随维数增加,该函数出现'平台'和狭长的'山谷',
# '平台'的出现不利于靠目标函数值(适应度)的变化进行的寻优,
# '平台'上的搜索点很难起导向性的搜索,而是呈现盲目性随机的搜索。
# 只有搜索点随机地落入'山谷',才有可能朝最优解方向搜索。这是造成
# 高维的该函数寻优的难度,使其寻优偶然性很大,取得最优解成功率不高。
# n<=10很容易得到最优解,再高后难度增加。
# n=5, 群体个体数=30,最优保存数=10,其它取默认值。
# f( 2.20291, 1.57080, 1.28499, 1.92306, 1.72047 )
# = -4.687658310
# n=10, 群体个体数=30,最优保存数=10,其它取默认值。
# f( 2.20291, 1.57080, 1.28499, 1.92306, 1.72047,
# 1.57080, 1.45441, 1.75609, 1.65572, 1.57080 )
# = -9.660151482
# n=30, 群体个体数=15 最优保存数=15 其余取默认值。
# 当迭代数到10左右,解要达到27~28时,才有希望达到最优解!
# 得到最优解的成功率不如n<=10.
# f( 2.20291, 1.57080, 1.28499, 1.92306, 1.72047, 1.57080,
# 1.45441, 1.75609, 1.65572, 1.57080, 1.49773, 1.69662,
# 1.63008, 1.57080, 1.51755, 1.66606, 1.61633, 1.57080,
# 1.52891, 1.64746, 1.60776, 1.57080, 1.53627, 1.63493,
# 1.60190, 1.57080, 1.54144, 1.62593, 1.59765, 1.57080 )
# = -29.630884171
#
# n=50 终止代数=1000,其余取默认值。
# f( 2.20291, 1.57080, 1.28499, 1.92306, 1.72047, 1.57080,
# 1.45441, 1.75609, 1.65572, 1.57080, 1.49773, 1.69662,
# 1.63008, 1.57080, 1.51755, 1.66606, 1.61633, 1.57080,
# 1.52891, 1.64746, 1.60776, 1.57080, 1.53627, 1.63493,
# 1.60190, 1.57080, 1.54144, 1.62593, 1.59765, 1.57080,
# 1.54525, 1.61914, 1.59442, 1.57080, 1.54819, 1.61384,
# 1.59188, 1.57080, 1.55053, 1.60959, 1.58984, 1.57080,
# 1.55242, 1.60610, 1.58815, 1.57080, 1.55400, 1.60319,
# 1.58674, 1.57080 ) = -49.624832153
#
-sum(1, 5, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
-sum(1, 10, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
-sum(1, 30, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
-sum(1, 50, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
-sum(1, 100, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
#28-2 Michalewicz’s function
# max f(...) = sum(1, N, sin(xi)*(sin(i*xi^2/pi))^20)
# 0.0<=xi<=3.14;
# 当N=100时,据介绍,最大值为99.2784,
# 来源作者的计算结果为99.61630365;
# 摘自:《适用于高维优化问题的改进进化策略》王湘中,喻寿益
#
#
sum(1, 10, sin(xi)*pow(sin(i*xi^2/pi),20)); 0<=xi<=pi;
sum(1, 10, sin(xi)*(sin(i*xi^2/pi))^20); 0.0<=xi<=pi;
sum(1, 30, sin(xi)*(sin(i*xi^2/pi))^20); 0.0<=xi<=pi;
sum(1, 100, sin(xi)*(sin(i*xi^2/pi))^20); 0.0<=xi<=pi;
#29. Schwefel's函数,是一个典型的欺骗问题,有1个全局极小值点
# 取值近似为-837.9658,在(420.96875,420.96875)处,距离另
# 一个局部最优点很远,因此如果陷入局部最优就很难跳出。
# xu注:f( 420.96875, 420.96875 ) = -837.965759277
#
-x*sin(sqrt(fabs(x)))-y*sin(sqrt(fabs(y))); -500<=x,y<=500;
#30. Schwefel's function
# sum(1, D, -x(i)·sin(sqrt(abs(x(i)))));
# i=1:D; -500<=x(i)<=500;
# global minimum: f(x) = -D·418.9829;
# x(i)=420.9687, i=1:D.
# xu注: 基本同#31
# D=2, f( 420.96875, 420.96875 ) = -837.965759277
# D=3, f( 420.96875, ..., 420.96875)=-1256.948608398;
# D=10, f( 420.96875, ..., 420.96875)=-4189.829101563;
# D=30,f( 420.96875, ..., 420.96875)=-12569.486328125
#
-x1*sin(sqrt(fabs(x1)))-x2*sin(sqrt(fabs(x2)));-500<=x1,x2<=500;
sum(1,2,-xi*sin(sqrt(fabs(xi))));-500<=xi<=500;
sum(1,2,-x[i]*sin(sqrt(fabs(x[i]))));-500<=x[i]<=500;
sum(1,3,-x[i]*sin(sqrt(fabs(x[i]))));-500<=x[i]<=500;
sum(1,10,-x[i]*sin(sqrt(fabs(x[i]))));-500<=x[i]<=500;
sum(1,30,-x[i]*sin(sqrt(fabs(x[i]))));-500<=x[i]<=500;
-sum(1,30,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
# *31. Schwefel's 函数 (Sine Root)function,
# A widely used multimodal test function:
# f(x) = 418.9829*n + sum(1, n, -x(i)*sin(sqrt(abs(x(i))));
# -500 <= x(i) <= 500;
# global minimum f(x) = 0, x(i)=420.9687, i=1:n
# Schwefel's function [7] is deceptive in that the global
# minimum is geometrically distant from the next best local
# minima.
# 由于其全局最优解点周围存在局部极值点,因此搜索难以抵达全局
# 最优解点,主要用于检验算法的种群多样性.
#
# http://www.aridolan.com/ga/gaa/Schwefel.html
#
# xu注:常数418.9829精度不过,为418.982887272433799才有足过精度,
# 即 418.982887272433799*D + sum(1,D, -x(i)*sin(sqrt(abs(x(i))));
# 才能global minimum f(x) = 0
#
# 118.439及228.765,236.877,473.753 ,592.192等是其局部极值?
# 容易停滞在这些点上.
#
#
#
418.9829*2+sum(1,2,-xi*sin(sqrt(fabs(xi)))); -500<=xi<=500;
418.982887272433*2-sum(1,2,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433*2-sum(1,2,xi*sin(sqrt(fabs(xi))));-500<=xi<=500;
418.982887272433*3-sum(1,3, xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433*3-sum(1,3, xi*sin(sqrt(fabs(xi))));-500<=xi<=500;
418.982887272433*5-sum(1,5,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433*5-sum(1,5, xi*sin(sqrt(fabs(xi))));-500<=xi<=500;
418.982887272433*10-sum(1,10,xi*sin(sqrt(fabs(xi))));-500<=xi<=500;
418.982887272433*30-sum(1,30,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433*30-sum(1,30,xi*sin(fabs(xi)^(1/2)));-512<=xi<=512;
418.982887272433*30-sum(1,30,xi*sin(fabs(xi)^(1/2)));-520<=xi<=520;
418.982887272433*40-sum(1,40,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*50-sum(1,50,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*60-sum(1,60,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*70-sum(1,70,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*80-sum(1,80,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*90-sum(1,90,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
418.982887272433799*100-sum(1,100,xi*sin(fabs(xi)^(1/2)));-500<=xi<=500;
#32. Ackley's Path function ,函数有1个全局极小值点取值为0,
# 在(0,0)处。Ackley’s 函数在狭长的全局极值点周围拥有很多
# 的局部极值.主要用以测试算法的收敛率.
#
-20*exp(-0.2*sqrt(0.5*(x^2+y^2)))-exp(0.5*(cos(2*pi*x)+cos(2*pi*y)))+exp(1)+20; -30<=x,y<=30;
20+e-20*exp(-0.2*sqrt(1/30*sum(1,30,xi^2)))-exp(1/30*sum(1,30,cos(2*pi*xi))); -32.768<=x,y<=32.768;
20+e-20*exp(-0.2*sqrt(1/100*sum(1,100,xi^2)))-exp(1/100*sum(1,100,cos(2*pi*xi))); -32.768<=x,y<=32.768;
#32-1 玄光男的遗传算法讲稿,有图. 有一最小值:
# Optimal solution(x*,y*)=(0,0) f(x*,y*)=0
#
-20*exp(-0.2*sqrt(0.5*(x^2+y^2)))-exp(0.5*(cos(2*pi*x)+cos(2*pi*y)))+exp(1)+20; -5<=x,y<=5;
#32-2. Ackley's函数
# f2=20+e-20*exp(-0.2*sqrt(1/D*sum(1,D,xi^2)))
# -exp(1/D*sum(1,D,cos(2*pi*xi));-32.768<=xi<=32.768;
# min f2(0,0,...,0) = 0;
# Ackley’s 函数在狭长的全局极值点周围拥有很多的局部极值,
# 它是6个基准测试函数中最容易得到最优解的,主要用以测试算法的
# 收敛率。
# 摘自:《多点交叉学习组织进化算法》 吕艳萍1,2, 李绍滋1+, 周昌乐1
# Journal of Software 软件学报 Vol.18, Supplement, December 2007
#
20+e-20*exp(-0.2*sqrt(1/30*sum(1,30,xi^2)))-exp(1/30*sum(1,30,cos(2*pi*xi))); -32.768<=xi<=32.768;
20+e-20*exp(-0.2*sqrt(1/100*sum(1,100,xi^2)))-exp(1/100*sum(1,100,cos(2*pi*xi))); -32.768<=xi<=32.768;
#33. Hansen函数,函数有一个全局最小值-176.541793,在下面九
# 个点处取值:
# (-7.589893,-7.708314)、(-7.589893,-1.425128)、
# (-7.589893,4.858057)、(-1.306708,-7.708314)、
# (-1.306708,-1.425128)、(-1.306708,4.858057)、
# (4.976478,-7.708314)、(4.976478,-7.708314)、
# (4.976478,4.858057) 函数共有760个局部极小值。
#
(cos(1)+2*cos(x+2)+3*cos(2*x+3)+4*cos(3*x+4)+5*cos(4*x+5))*(cos(2*y+1)+2*cos(3*y+2)+3*cos(4*y+3)+4*cos(5*y+4)+5*cos(6*y+5)); -10<=x,y<=10;
#34. Griewangk's 函数(similar to Rastrigin's function)函数
# 有1个全局极小值点取值为0,在(0,0)处。
#
(x^2+y^2)/4000-cos(x)*cos(y/sqrt(2))+1; -600<=x,y<=600;
sum(1,2,xi^2)/4000-prod(1,2, cos(xi/sqrt(i)))+1; -600<=xi<=600;
sum(1,5,xi^2)/4000-prod(1,5, cos(xi/sqrt(i)))+1; -10<=xi<=10;
#35. Griewangk's function is similar to Rastrigin's
# function. It has many widespread local minima.However,
# the location of the minima are regularly distributed.
# global minimum:
# f(x)=0; x(i)=0, i=1:n.
# f8(x)=sum(x(i)^2/4000)-prod(cos(x(i)/sqrt(i)))+1, i=1:n
# -600<=x(i)<=600.
#
x1^2/4000+x2^2/4000-cos(x1/sqrt(1.0))*cos(x2/sqrt(2.0))+1; -600<=x1,x2<=600;
x1^2/4000+x2^2/4000-cos(x1/sqrt(1.0))*cos(x2/sqrt(2.0))+1; -10<=x1,x2<=10;
#36. min. F=(X[1]-1)*(X[1]-1)+(X[2]-1/2)*(X[2]-1/2)
# +(X[3]-1/3)*(X[3]-1/3)+...+(X[100]-1/100)
# *(X[100]-1/100)
# s.t. -10<=X[I]<=10,I=1,2,...,100
# 全局最小值 0
# 10维:f( 1.00000, 0.50000, 0.33333, 0.25000, 0.20000, 0.16667,
# 0.14286, 0.12500, 0.11111, 0.10000 ) = 0.000000000
# 20维:f( 1.00000, 0.50000, 0.33333, 0.25000, 0.20000, 0.16667,
# 0.14286, 0.12500, 0.11111, 0.10000, 0.09091, 0.08333,
# 0.07692, 0.07143, 0.06667, 0.06250, 0.05882, 0.05556,
# 0.05263, 0.05000 ) = 0.000000000
# 100维:f( 1.00000, 0.50000, 0.33333, 0.25000, 0.20000,
# 0.16667, 0.14286, 0.12500, 0.11111, 0.10000, 0.09091,
# 0.08333, 0.07692, 0.07143, 0.06667, 0.06250, 0.05882,
# 0.05556, 0.05263, 0.05000, 0.04762, 0.04545, 0.04348,
# 0.04167, 0.04000, 0.03846, 0.03704, 0.03571, 0.03448,
# 0.03333, 0.03226, 0.03125, 0.03030, 0.02941, 0.02857,
# 0.02778, 0.02703, 0.02632, 0.02564, 0.02500, 0.02439,
# 0.02381, 0.02326, 0.02273, 0.02222, 0.02174, 0.02128,
# 0.02083, 0.02041, 0.02000, 0.01961, 0.01923, 0.01887,
# 0.01852, 0.01818, 0.01786, 0.01754, 0.01724, 0.01695,
# 0.01667, 0.01639, 0.01613, 0.01587, 0.01562, 0.01538,
# 0.01515, 0.01493, 0.01471, 0.01449, 0.01429, 0.01408,
# 0.01389, 0.01370, 0.01351, 0.01333, 0.01316, 0.01299,
# 0.01282, 0.01266, 0.01250, 0.01235, 0.01219, 0.01205,
# 0.01190, 0.01176, 0.01163, 0.01149, 0.01136, 0.01124,
# 0.01111, 0.01099, 0.01087, 0.01075, 0.01064, 0.01053,
# 0.01042, 0.01031, 0.01020, 0.01010, 0.01000 )
# = 0.000000000
#
sum(1,10,(xi-1/i)^2);-10<=xi<=10;
sum(1,20,(xi-1/i)^2);-10<=xi<=10;
sum(1,100, (xi-1/i)^2);-10<=xi<=10;
#*37. min.F=Abs(X[1]-1)+Abs(X[2]-2)+Abs(X[3]-3)+...
# +Abs(X[100]-100)
# s.t. -100<=X[I]<=100,I=1,2,...100
# 全局最小值 0。不易达到高精度的零值!
#
sum(1,100,fabs(xi-i));-100<=xi<=100;
#38. min.F=-(X[1]+X[2]+X[3]+...+X[100])
# s.t. X[1]*X[1]+X[2]*X[2]+...+X[100]*X[100]<=100
# 0<=X[I]<=2, I=1,2,...,100
# 有不等式约束的函数优化!
# 全局最小值-100
#
-sum(1,100,xi); 0<=xi<=2;
#39. min.F=Exp(-X[1])*Sin(X[1])+Exp(-X[2])*Sin(2*X[2])
# +Exp(-X[3])*Sin(3*X[3])+...+Exp(-X[10])*Sin(10*X[10])
# s.t. 0<=X[I]<=10,I=1,2,...,10
# f( 3.92699, 2.12437, 1.46355, 1.11685, 0.90300, 0.75787,
# 0.65293, 0.57350, 0.51130, 0.46127 ) = -3.815545082
# f( 3.92788, 2.12437, 1.46355, 1.11685, 0.90300, 0.75787,
# 0.65293, 0.57350, 0.51130, 0.46127 ) = -3.815545082
# f( 3.92621, 2.12437, 1.46355, 1.11685, 0.90300, 0.75787,
# 0.65293, 0.57350, 0.51130, 0.46127 ) = -3.815545082
#
sum(1,10, exp(-xi)*sin(i*xi)); 0<=xi<=10;
#40. min.F(x1,x2,...,x10) = Exp(-(X[1]+X[2]))*Sin(X[1]*X[2])
# + Exp(-(X[2]+X[3]))*Sin(2*X[2]*X[3])
# + Exp(-(X[3]+X[4]))*Sin(3*X[3]*X[4])
# + ...
# + Exp(-(X[10]+X[1]))*Sin(10*X[10]*X[1])
# s.t. 0<=X[I]<=10,I=1,2,...,10
# 全局最小值:
# f(0.66911, 4.37878, 1.28379, 1.14085, 0.98864, 0.90701,
# 0.83424,0.77432, 0.73665, 0.68502 ) = -1.430215716;
# f(0.66065, 9.75233, 1.30341, 1.13164, 0.99241, 0.90636,
# 0.83268, 0.77762, 0.73170, 0.69156 ) = -1.430215716;
#
sum(1,9,exp(-(x[i]+x[i+1]))*sin(i*x[i]*x[i+1]))+exp(-(x[10]+x[1]))*sin(10*x[10]*x[1]); 0<=x[i],x[i+1],x[10]<=10;
#41. * min.F=sum(sin(x[i]*sin(i*x[11-i])))
# -prod(cos(x[i]*cos(i*x[11-i])));
# 0<=xi<=10; i=1:n;
# 该函数的极值如麦田的麦芒一样不计其数,要找出其中最矮的
# 一株其难度是可想而知的,基础遗传算法和一些改进遗传算法
# 都搜索不到全局最小值。
# 二维:f( 5.68795, 8.44250 ) = -2.999561787
# 三维:f( 3.44036, 8.44916, 9.90141 ) = -3.984106541(几率最高)
# f( 3.44787, 8.44916, 9.88799 ) = -3.992382526 (090308)
# f( 5.63505, 8.44916, 8.44181 ) = -3.998083591 (090308)
#
# xu注:以多峰值函数方式寻优,会取得更好的效果。
#
sum(1,2,sin(x[i]*sin(i*x[3-i])))-prod(1,2,cos(x[i]*cos(i*x[3-i])));0<=x[i],x[3-i]<=10;
sum(1,3,sin(x[i]*sin(i*x[4-i])))-prod(1,3,cos(x[i]*cos(i*x[4-i])));0<=x[i],x[4-i]<=10;
#42 Salomon's function
# min f(x)=- cos(2*pi*sqrt(sum(1,D,xi^2)))
# + 0.1*sqrt(sum(1,D,xi^2))+1
# min f(0,0,...,0)=0.0;
# 来源:http://www.it.lut.fi/ip/evo/functions/node12.html
-cos(2*pi*sqrt(sum(1,10,xi^2))) + 0.1*sqrt(sum(1,10,xi^2))+1; -10<=xi<=10;
#43. min f(x1,x2)=exp(sin(50.x1))+sin(60*exp(x2))+sin(70*sin(x1))
# +sin(sin(80*x2))-sin(10*(x1+x2))+(x1^2+x2^2)/4;
# f(x1=-0.0244030794174338178, x2=0.210612427162285371)
# = -3.30686864747523535
# 来源:《NONLINEAR OPTIMIZATION IN MODELING ENVIRONMENTS》
# xu注:f( -0.02440, 0.21061 ) = -3.306868553
#
exp(sin(50*x1))+sin(60*exp(x2))+sin(70*sin(x1))+sin(sin(80*x2))-sin(10*(x1+x2))+(x1^2+x2^2)/4; -3<=x1,x2<=3;
exp(sin(50*x1))+sin(60*exp(x2))+sin(70*sin(x1))+sin(sin(80*x2))-sin(10*(x1+x2))+(x1^2+x2^2)/4; -100<=x1,x2<=30;
#44. Shekel SQRN5
# 带有一维数组c[j]和二维数组a[i,j], 它们的二组数据放在本地
# 文件夹的#44 ConstTermsData.txt。
# D=5, Min f(x1,x2,x3,x4) = f(4,4,4,4) = -10.15320;
# D=7, Min f(x1,x2,x3,x4) = f(4,4,4,4) = -10.402820;
# D=10, Min f(x1,x2,x3,x4) = f(4,4,4,4) = -10.53628;
# 摘自:<演化程序-遗传算法和数据编码的结合> p258
# xu注: 本程序规定常数项一维数组命名为c, 二维数组命名为a,
# 即分别以c[j]和a[i,j]表示。
# 它们的二组数据即可拷贝在同一txt文件中,也可分别记
# 录在二个不同的txt文件中。文件应保存在本地文件夹内。
# 该数学表达式的常数项数据拷贝在#44 D5 常数项数据.txt
# 、#44 D7 常数项数据.txt和#44 D10 常数项数据.txt
# xu注:
# D=5
# f( 4.00004, 4.00013, 4.00004, 4.00013 ) = -10.152723312
# D=7,
# f( 4.00057, 4.00069, 3.99949, 3.99960 ) = -10.402464867
# D=10, 参数取默认值。
# f( 4.00075, 4.00059, 3.99966, 3.99951 ) = -10.535933495
#
-sumx(1, 5, j, 1/(sumx(1,4,i,(xi-a[i,j])^2)+c[j])); 0<=xi<=10;
-sumx(1, 7, j, 1/(sumx(1,4,i,(xi-a[i,j])^2)+c[j])); 0<=xi<=10;
-sumx(1, 10, j, 1/(sumx(1,4,i,(xi-a[i,j])^2)+c[j])); 0<=xi<=10;
#46
# max f(x,y)=(a/(b+(x^2+y^2)))^2+(x^2+y^2); -5.12<=x,y<=5.12;
# 其中,a=3.0, b= 0.05, max f(0,0) =3600, 4个局部极值点为
# (-5.12,5.12),(-5.12, -5.12),(5.12, -5.12)和(5.12, 5.12),
# 函数值为2748.78 ,这是一类全局最优解被次优解所包围,隔断了模式
# 的重组过程,使得GA搜索长期陷入局部极值点,随着参数a ,b的变化,
# 该函数将形成不同严重程度的GA欺骗问题。
# 摘自:李敏强, 寇纪淞. 遗传算法的模式欺骗性. 中国科学(E缉),
# 2002, 构造的一类大海捞针问题
# xu注: f( 0.00000, -0.00000 ) = 3600.000000000
#
(3.0/(0.05+(x^2+y^2)))^2+(x^2+y^2); -5.12<=x,y<=5.12;
#47 max f1=-sum(1,D,sin(xi)+sin(2*xi/3)); 3<=xi<=13;
# Optimum 1.21598D
# xu注:
# 3维: f( 5.36225, 5.36225, 5.36225 ) = 3.647946596
# 10维:f( 5.36225, ...,5.36225, 5.36225 ) = 12.159821510
# 30维:f( 5.36225, ..., 5.36225, 5.36225 ) = 36.479465485
# 100维:f( 5.36225, ...,5.36225, 5.36225 ) = 120.306587219
#
-sum(1, 3, sin(xi)+sin(2*xi/3)); 3<=xi<=13;
-sum(1, 10, sin(xi)+sin(2*xi/3)); 3<=xi<=13;
-sum(1, 30, sin(xi)+sin(2*xi/3)); 3<=xi<=13;
-sum(1, 100, sin(xi)+sin(2*xi/3)); 3<=xi<=13;
#48 max f2=-sum(1,D-1,sin(x[i]+x[i+1])+sin(2*x[i]*x[i+1]/3));
# 3<=x[i],x[i+1]<=13 Optimum ~2D(max)
# D=5时,采用多峰值函数寻优方式,
# 取最有保存数=20,其余取默认值。
# 1.f( 5.31950, 11.95926, 5.31950, 11.95926, 5.31950 )=8.000000000
# 2.f( 11.95926, 5.31950, 11.95926, 5.31950, 11.95926 )=8.000000000
# 3.f( 3.42233, 7.57324, 3.42233, 7.57324, 3.42233 )=8.000000000
# 4.f( 7.37571, 9.90305, 7.37571, 9.90305, 7.37571 )=8.000000000
#
-sum(1,4,sin(x[i]+x[i+1])+sin(2*x[i]*x[i+1]/3)); 3<=x[i],x[i+1]<=13;
#49 max f6=sum(1,D,xi*sin(10*pi*xi));
# -1.0<=xi<=2.0; Optimum 1.85D(max)
# xu注:f( 1.85055, 1.85055 ) = 3.700547457
#
sum(1,2,xi*sin(10*pi*xi)); -1.0<=xi<=2.0;
#50 求Max f(x)=10+sin(1/x)/((x-0.16)^2+0.1) 0<x<1
# 全局最优值f(x)=19.8949; x=0.1275
# 该函数引自文献: 张讲社,徐宗本,梁怡.整体退火遗传算法及其收敛充
# 要条件.
# 中国科学(E辑),1997,27(2):154~164.
# xu注:f( 0.12749 ) = 19.894897461
10+sin(1/x)/((x-0.16)^2+0.1); 0.01<x<1;
# 注:以下#52~#57六个函数来源于:
# 《多点交叉学习组织进化算法》 吕艳萍1,2, 李绍滋1+, 周昌乐1
# Journal of Software 软件学报 Vol.18, Supplement, December 2007
#53 Ackley’s 函数
#54. * Griewank's函数
# min f(...)=1/4000*sum(1,D,xi^2)-prod(1,D,cos(xi/sqrt(i)))+1;
# -600<=xi<=600; min f3(0,0,...,0)=0;
# 该函数由于其各维上的变量是密切相关的,互相作用,因此很难取得最
# 优解。
# 摘自:《多点交叉学习组织进化算法》 吕艳萍1,2, 李绍滋1+, 周昌乐1
# Journal of Software 软件学报 Vol.18, Supplement, December 2007
# xu注:参数取默认值(090318).
1/4000*sum(1,2,xi^2)-prod(1,2,cos(xi/sqrt(i)))+1; -600<=xi<=600;
1/4000*sum(1,10,xi^2)-prod(1,10,cos(xi/sqrt(i)))+1; -600<=xi<=600;
1/4000*sum(1,30,xi^2)-prod(1,30,cos(xi/sqrt(i)))+1; -600<=xi<=600;
1/4000*sum(1,100,xi^2)-prod(1,100,cos(xi/sqrt(i)))+1; -600<=xi<=600;
#55. *Weierstrass's函数
# min f=sum(1, D, sum(0, kmax, a^k*cos(2*pi*b^k*(xi+0.5))))
# -D*sum(0, kmax, a^k*cos(2*pi*b^k*0.5));
# a=0.5, b=3, kmax=20; -0.5<=xi<=0.5;
# min f4(0,0,...,0) = 0;
# Weierstrass's 是一个处处连续又只在有限的几个点可微分的函数。
# 摘自:《多点交叉学习组织进化算法》 吕艳萍1,2, 李绍滋1+, 周昌乐1
# Journal of Software 软件学报 Vol.18, Supplement, December 2007
# D=30 小生境初距=0.1,衰减参数=8.0,终止代数=50;
#
sumx(1, 10, i, sumx(0, 20, k, 0.5^k*cos(2*pi*3^k*(xi+0.5))))-10*sumx(0,20, k, 0.5^k*cos(2*pi*3^k*0.5)); -0.5<=xi<=0.5;
sumx(1, 30, i, sumx(0, 20, k, 0.5^k*cos(2*pi*3^k*(xi+0.5))))-30*sumx(0, 20, k, 0.5^k*cos(2*pi*3^k*0.5)); -0.5<=xi<=0.5;
sumx(1, 100, i, sumx(0, 20, k, 0.5^k*cos(2*pi*3^k*(xi+0.5))))-100*sumx(0, 20, k, 0.5^k*cos(2*pi*3^k*0.5)); -0.5<=xi<=0.5;
#56 Rastrigin’s 函数
#57 Schwefel’s 函数
#58 max f(x1,x2)= 21.5+ x1*sin(4*pi*x1) + x2*sin(20*pi*x2)
# s.t. -3.0<=x1<=12.1; 4.1<=x2<=5.8;
# 函数有许多极值点。
# 全局最大值解 f(11.622766, 5.624329)=38.737524;
# 来源:tw01-IntroGA-v1.1ray.ppt
# xu注: 应是max f( 11.62554, 5.72504 ) = 38.850296021;
#
21.5+ x1*sin(4*pi*x1) + x2*sin(20*pi*x2); -3.0<=x1<=12.1 && 4.1<=x2<=5.8;
#59 max f(x,y)=6-4.5*x+4*y-x^2-2*y^2+2*x*y-x^4+2*x^2*y;
# -8<=x,y<=8; f(-1.09326171875,1.01171875)=10.5020508424479
# 来源:xoBox算法
# xu注: 应是:max f( -1.05274, 1.02776 ) = 10.513409615;
#
6-4.5*x+4*y-x^2-2*y^2+2*x*y-x^4+2*x^2*y; -8<=x,y<=8;
#60 Bobachevsky 函数
# x1^2+2*x2^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7;
# x1^2+2*x2^2-0.3*cos(3*pi*x1)*cos(4*pi*x2)+0.3;
# x1^2+2*x2^2-0.3*cos(3*pi*x1+4*pi*x2)+0.3;
# -50<=x1,x2<=50;
# 3个函数在(x1,x2)=(0,0)处有全局最小值0.0;
# References: MICHALEWICZ Z.
# Genetic Algorithms + Data Structures = Evolution Programs [M] .
# Beijing :Science Press ,2000 :1 - 128.
x1^2+2*x2^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7; -50<=x1,x2<=50;
x1^2+2*x2^2-0.3*cos(3*pi*x1)*cos(4*pi*x2)+0.3; -50<=x1,x2<=50;
x1^2+2*x2^2-0.3*cos(3*pi*x1+4*pi*x2)+0.3; -50<=x1,x2<=50;
#61 Zakharov's Function
# Min f(xi) = sum(1, D, xi^2)+(sum(1, D, i/2*xi))^2
# + (sum(1, D, i/2*xi))^4;
# -5.12<=xi<=5.12;
# 来源:一种高效Multi-agent仿生算法用于设计优化
# 梁昌勇,张俊岭,杨善林
# (合肥工业大学计算机网络系统研究所,合肥 230009)
#
sum(1, 30, xi^2)+(sum(1, 30, i/2*xi))^2+(sum(1, 30, i/2*xi))^4; -5.12<=xi<=5.12;
sum(1, 100, xi^2)+(sum(1, 100, i/2*xi))^2+(sum(1, 100, i/2*xi))^4; -5.12<=xi<=5.12;
#62 max f(...)= -1/N*sum(1, N, xi^4-16*xi^2+5*xi);
# -5.0<=xi<=5.0, 当N=100时,理论最大值=78.33236;
# 摘自:《适用于高维优化问题的改进进化策略》王湘中,喻寿益
# xu注:采用单峰值函数寻优方式
# f( -2.90353,..., -2.90353 ) = 78.332328796
# 采用多峰值函数方式:
# f( ) = 78.332328796
#
-1/100*sum(1, 100, xi^4-16*xi^2+5*xi);-5.0<=xi<=5.0;
#63 max f(...)= -(sum(1, N, fabs(xi))+prod(1, N, fabs(xi)));
# -10<=xi<=10, 当N=100时,理论最大值=0;
# 摘自:《适用于高维优化问题的改进进化策略》王湘中,喻寿益
-(sum(1, 50, fabs(xi))+prod(1, 50, fabs(xi)));-10<=xi<=10;
#64 max f(x)=20+x+10*sin(4*pi)+8*cos(3*x); 0<=x<=10;
# 该函数有多个极大值点,其全局最大点:f(8.291484)=45.865 953;
# xu注:f(8.39147) = 36.384525299
# 摘自:《一种求解参数优化问题的引导交叉算子》 陈乔礼等,
# 计算机工程, 2008 年1 月。
#
20+x+10*sin(4*pi)+8*cos(3*x); 0<=x<=10;
#65 max f(x,y)=sin(sqrt(x^2+y^2))-cos(sqrt(fabs(x^2-y^2)))
# -0.02*(y-4.96)^2-0.02*(x-5.87)^2;
# -10<=x,y<=10;
# 该函数是一个多峰的非线性函数,一般的遗传算法很容易陷入局部极值。
# xu注: f( 5.97715, 5.08469 ) = 1.999437094
# 摘自:《基于立队竞争的演化算法》黄樟灿等 有图!
sin(sqrt(x^2+y^2))-cos(sqrt(fabs(x^2-y^2)))-0.02*(y-4.96)^2-0.02*(x-5.87)^2; -10<=x,y<=10;
#66 min f(x)=1/D*sum(1, D, xi^2)-4*D*prod(1, D, cos(xi));
# -5<=xi<=5; i=1,2,...,D 多峰性质的函数,
# 这个函数在全局最小值周围有大量的局部极小值.全局最小值点为
# (0,0,...,0),相应最小值为-4D.
# 摘自:<一种函数优化问题的混合遗传算法> 彭伟 卢锡城
1/10*sum(1, 10, xi^2)-4*10*prod(1, 10, cos(xi)); -5<=xi<=5;
1/100*sum(1, 100, xi^2)-4*100*prod(1, 100, cos(xi)); -5<=xi<=5;
#67 Himmelblau's function
# Max f(x,y)=200-(x^2+y-11)^2-(x+y^2-7)^2;
# This is a funtion of two variabes, x,y,(which Deb modified to
# a maximization problem) given by f(x,y).
# This has four maxima of equal heigh(200) approximately
# (3.58, -1.86),(3.0, 2.0), (-2.815, 3.125) and (-3.78, -3.28).
# A 30-bit chromosome is used to represent two 15-bit, binary-coded
# parameters, in the range -6<=x,y<=+6. The distance metric is the
# Eucidian distance in x-y space.
# 摘自:《A Sequential Niche Technique for Multimodal Function
# Optimization》 David Beasley Department of Computing
# Mathematics, University of Wales etc.
# xu注:
# 单峰值函数寻优,小生境初距=2.0,其余默认值;
# 多峰单峰值函数寻优,小生境初距=
# 1. f( -3.77931, -3.28319 ) = 200.000000000
# 2. f( -2.80512, 3.13131 ) = 200.000000000
# 3. f( 3.00000, 2.00000 ) = 200.000000000
# 4. f( 3.58443, -1.84813 ) = 200.000000000
# 5. f( -2.81439, 3.18689 ) = 199.871505737
#
200-(x^2+y-11)^2-(x+y^2-7)^2; -6<=x,y<=6;
#67-1 Himmelbau 函数
# max f(x,y)=660-(x^2+y-11)^2-(x+y^2-7); -6<=x,y<=6;
# 此函数为线性不可分的等高、不等距多峰函数,有4个极大值点,理论值
# 为660.0.
# 摘自:多模态函数优化的多种群进化策略 王湘中 ,喻寿益
# xu注:
# 1. f( 3.00000, 2.00000 ) = 660.000000000
# 2. f( -3.77931, -3.28319 ) = 660.000000000
# 3. f( -2.80512, 3.13131 ) = 660.000000000
# 4. f( 3.58443, -1.84813 ) = 660.000000000
#
660-(x^2+y-11)^2-(x+y^2-7)^2; -6<=x,y<=6;
#68 max f(x,y)=f(x,y)=21.5+x*sin(4*PI*x)+y*sin(20*PI*y)
# 定义域 D: -3<=x<=12.1 , 4.1<=y<=5.8
# 该函数是典型的多峰(震动剧烈)的函数。
# 目前最好结果:f(11.6255448,5.7250441)=38.8502944790207
# xu注:f(11.62554, 5.72504) = 38.850296021
#
21.5+x*sin(4*pi*x)+y*sin(20*pi*y); -3<=x<=12.1 && 4.1<=y<=5.8;
#69 min f(x,y)=-(x*sin(9*pi*y)+y*cos(25*pi*x)+20);
# -10<=x<=10, -10<=y<=10;
# 使其满足非线性不等式 x^2+y^2<=9^2;
# 因为 D的面积很大 ,所以sin (9 πy) 与cos (25 πx) 分别在不同方向
# 上高频振荡。 函数的深谷密集在圆 x^2+y^2<=9^2上的4个点
# (9/sqrt(2),,9/sqrt(2)) , (9/sqrt(2) , - 9/sqrt(2)) ,
# (-9/sqrt(2) ,9/sqrt(2)) , ( - 9/sqrt(2),- 9/sqrt(2)的附近。
# 求解这个函数的优化问题不仅传统的算法无能为力 ,而且即使采用最新的
# 演化算法(遗传算法或演化策略等)也很难求解。
# 采用郭涛算法获得的精确到小数点后 14 位的最优解是
# minf(x,y)=f(- 6.440025882216888 , - 6.27797201362437)
# = - 32.71788780688353 ,
# 这个最优解在10次运算中只得到了1~3次。在此应注明的是,该问题的真
# 正最优解是未知的,认为它可能就是最优解。
# 摘自:郭涛算法及应用 李艳 康卓 刘溥 (武汉大学计算中心)
# xu注:不考虑非线性不等式时,
# f( 9.96002, -9.94457 ) = -39.904514313;
# f( -10.00000, 9.94457 ) = -39.944507599;
# 取-6.5<=x<=6.5&&-6.3<=y<=6.3时很快得
# (本程序还未实现有约束寻优):
# f( -6.44003, -6.27797 ) = -32.717887878;
#
-(x*sin(9*pi*y)+y*cos(25*pi*x)+20);-10<=x,y<=10;
-(x*sin(9*pi*y)+y*cos(25*pi*x)+20);-6.5<=x<=6.3 && -6.3<=y<=6.3;
#70 max f(x1, x2, x3, x4)=
# fabs(prod(1, 2, xi*sin(xi)))*prod(3, 4, xi*sin(xi));
# 0<=xi<=3*pi, i=1, 2, 3, 4; 最优解:3926.3
# 来源:基于搜索空间信息的新型遗传算法
# 李 航,李敏强,寇纪淞 (天津大学系统工程研究所)
# xu注:f( 7.97867, 7.97867, 7.97867, 7.97867 ) = 3928.102050781
#
fabs(prod(1, 2, x[i]*sin(x[i])))*prod(1, 2, x[i+2]*sin(x[i+2])); 0<=x[i], x[i+2]<=9.42468;
fabs(prod(1, 2, x[i]*sin(x[i])))*prod(3, 4, x[i]*sin(x[i])); 0<=x[i]<=9.42468;
#71 max f(x1, ..., x5)=0.5+((sin(sqrt(x1^2+x2)))^2-0.5)
# /(1+0.0001*(x1^2+x2^2))^2+(x3^2+x4^2+x5^2)/12000;
# -20<=xi<=20, i=1, 2, 3, 4, 5;
# 最优解:1.0072
# 来源:基于搜索空间信息的新型遗传算法
# 李 航,李敏强,寇纪淞 (天津大学系统工程研究所)
# xu注:文中公式可能有误:sqrt(x1^2+x2)似应为sqrt(x1^2+x2^2)!
# 下式可能为正确的表达式。
# 最大值
# f( 0.63695, 1.43569, 20.00000, 20.00000, 20.00000 )
# = 1.099753380;
#
# 1. f( -1.56924, -0.06635, 20.00000, -20.00000, -20.00000 )
# = 1.099753380
# 2. f( -1.41341, 0.68497, 20.00000, -20.00000, -20.00000 )
# = 1.099753380
# 3. f( -1.40904, 0.69392, 20.00000, -20.00000, 20.00000 )
# = 1.099753380
# 最小值 f(0, 0, ..., 0)=0.0;
#
0.5+((sin(sqrt(x1^2+x2^2)))^2-0.5)/(1.0+0.0001*(x1^2+x2^2))^2+(x3^2+x4^2+x5^2)/12000; -20.0<=x1,x2, x3, x4, x5<=20.0;
#72 Leung&Wang’s Function9:
# Min f(xi) = 1/D*sum(1, D, xi^4-16*xi^2+5*xi);
# -5<=xi<=5;
# 全局最小值=-78.33236;
# 来源:一种高效Multi-agent仿生算法用于设计优化
# 梁昌勇,张俊岭,杨善林
# (合肥工业大学计算机网络系统研究所,合肥 230009)
# xu注: 终止代数=100,其余默认值。
# D=10
# f( -2.90353, -2.90353, ..., -2.90353 ) = -7.833233356
# D=30
# f( -2.90353, -2.90353, ..., -2.90353 ) = -78.332328796
# D=100
# f( -2.90353, -2.90353, ..., -2.90353 ) = -78.332328796
#
1/30*sum(1, 30, xi^4-16*xi^2+5*xi); -5.0<=xi<=5.0;
1/100*sum(1, 100, xi^4-16*xi^2+5*xi); -5.0<=xi<=5.0;
#73 Hwang&He's Function15
# Max f(xi) = sum(1, D, ((-1)^(i+1))*xi^2);
# -100<=xi<=100;
# 来源:一种高效Multi-agent仿生算法用于设计优化
# 梁昌勇,张俊岭,杨善林
# (合肥工业大学计算机网络系统研究所,合肥 230009)
# xu注:
# D=30
# f( -100.00000, 0.00000, -100.00000, 0.00000, -100.00000,
# ..., 0.00000, -100.00000, 0.00000 ) = 150000.000000000
# D=100
# f( -100.00000, 0.00000, 100.00000, 0.00000, -100.00000,
# ..., 0.00000, -100.00000, 0.00000 ) = 500000.000000000
#
sum(1, 30, (-1)^(i+1)*xi^2); -100<=xi<=100;
sum(1, 30, pow(-1.0, i+1)*pow(xi, 2)); -100<=xi<=100;
sum(1, 100, (-1)^(i+1)*xi^2); -100<=xi<=100;
#74 Ellipsoidal Function:
# Min f(xi) = sum(1, D, (xi-i)^2);
# -100<=xi<=100;
# 来源:一种高效Multi-agent仿生算法用于设计优化
# 梁昌勇,张俊岭,杨善林
# (合肥工业大学计算机网络系统研究所,合肥 230009)
# xu注:
# D=30 f(1,2,3,...,29,30)=0.000000000
# D=100 f(1,2,3,...,99,100)=0.000000000
#
sum(1, 30, (xi-i)^2); -100<=xi<=100;
sum(1, 100, (xi-i)^2); -100<=xi<=100;
#75 max f(x1, x2)=(a/(b+x1^2+x2^2))^2+(x1^2+x2^2)^2;
# -5.12<=x1,x2<=5.12;
# 在函数中,a=3.0, b=0.05, max f(0, 0)=3600,
# 4个局部极值为(-5.12 5.12), (-5.12, -5.12), (5.12 -5.12)
# 和(5.12, 5.12) ,函数值则为2748.78,这是一类全局最优解
# 被次优解所包围,隔断了模式的重组过程,使得搜索长期陷入
# 局部极值点.
# 来源:求解多峰函数的改进粒子群算法的研究 江宝钏, 胡俊溟
#
(3.0/(0.05+x1^2+x2^2))^2+(x1^2+x2^2)^2; -5.12<=x1,x2<=5.12;
#76 Simple Test Function with 16 Global Optima
# Min f(x) = fabs((x-3)*(x-6)*(x-9)*(x-12))
# +fabs((y-4)*(y-8)*(y-12)*(y-16));
# -20<=x, y<=20;
# 具有16个全局最小值。
# 来源:A Simple, Powerful Differential Evolution Algorithm
# for Finding Multiple Global Optima.pdf
# xu注:最优保存数=20~22,其余默认值。
# 1. f( 3.00000, 4.00000 ) = 0.000000000
# 2. f( 3.00000, 8.00000 ) = 0.000000000
# 3. f( 3.00000, 12.00000 ) = 0.000000000
# 4. f( 3.00000, 16.00000 ) = 0.000000000
# 5. f( 6.00000, 4.00000 ) = 0.000000000
# 6. f( 6.00000, 8.00000 ) = 0.000000000
# 7. f( 6.00000, 12.00000 ) = 0.000000000
# 8. f( 6.00000, 16.00000 ) = 0.000000000
# 9. f( 9.00000, 4.00000 ) = 0.000000000
# 10. f( 9.00000, 8.00000 ) = 0.000000000
# 11. f( 9.00000, 12.00000 ) = 0.000000000
# 12. f( 9.00000, 16.00000 ) = 0.000000000
# 13. f( 12.00000, 4.00000 ) = 0.000000000
# 14. f( 12.00000, 8.00000 ) = 0.000000000
# 15. f( 12.00000, 12.00000 ) = 0.000000000
# 16. f( 12.00000, 16.00000 ) = 0.000000000
#
fabs((x-3)*(x-6)*(x-9)*(x-12))+fabs((y-4)*(y-8)*(y-12)*(y-16)); -20<=x, y<=20;
#77 Branin's Function 变型
# Min f(x) = (x2-5/(4*pi^2)*x1^2+5/pi*x1-6)^2+10*(1-1/(8*pi))*cos(x1)+10;
# -5<=x1<=10 && 0<=x2<=15; 将其中cos(x1)改为cos(x2).
# 有全局极小值4个:
# 1. f( 10.39528, 3.14159 ) = 0.397887349
# 2. f( 14.43913, 9.42478 ) = 0.397887349
# 3. f( -1.87276, 9.42478 ) = 0.397887349
# 4. f( 2.17109, 3.14159 ) = 0.397887349
#
(x2-5/(4*pi^2)*x1^2+5/pi*x1-6)^2+10*(1-1/(8*pi))*cos(x2)+10; -5<=x1,x2<=15;
#78 Rosenbrock's Saddle function
# Min f(x) = sum(1, n/2, 100*(x[2*i]-x[2*i-1])^2+(1-x[2*i-1])^2);
# -10<=xi<=10; for i=1,2,...,n;
# This equation has only one global optimal solution.
# 来源:A Simple, Powerful Differential Evolution Algorithm
# for Finding Multiple Global Optima.pdf
# xu:
# f( 1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000,
# 1.00000, 1.00000, 1.00000, 1.00000 ) = 0.000000000
# xu注:注意,含下标的变量在变量定义域表达式的表示形式要和数学表达式
# 中的一致!
#
sum(1, 5, 100*(x[2*i]-x[2*i-1])^2+(1-x[2*i-1])^2); -10<=x[2*i],x[2*i-1]<=10;
sum(1, 10, 100*(x[2*i]-x[2*i-1])^2+(1-x[2*i-1])^2); -10<=x[2*i],x[2*i-1]<=10;
sum(1, 30, 100*(x[2*i]-x[2*i-1])^2+(1-x[2*i-1])^2); -10<=x[2*i],x[2*i-1]<=10;
#79 Branin's function is defined as:
# f(x)=(1-2*x2+1/20*sin(4*pi*x2)-x1)^2+(x2-1/2*sin(2*pi*x1))^2;
# -10<=x1,x2<=10; which has five solutions:
# f(1, 0)=0;
# f(0.148696, 0.402086)=0;
# f(0.402537, 0.287408)=0;
# f(1.59746, -0.287408)=0;
# f(1.85130, -0.402086)=0;
# 来源:http://www.staff.brad.ac.uk/jpli/research/scga/function/branin.htm
# xu注:
# 单峰值函数寻优方式,默认值。运行100次人为终止;
# 多峰值函数寻优方式,小生境初距=0.15,最优保存数=8,其余默认值;
# 1. f( 0.14870, 0.40209 ) = 0.000000000
# 2. f( 0.40254, 0.28741 ) = 0.000000000
# 3. f( 1.00000, 0.00000 ) = 0.000000000
# 4. f( 1.59746, -0.28741 ) = 0.000000000
# 5. f( 1.85130, -0.40209 ) = 0.000000000
#
(1-2*x2+1/20*sin(4*pi*x2)-x1)^2+(x2-1/2*sin(2*pi*x1))^2; -10<=x1,x2<=10;
#80 Test tube holder function(a):
# min f(x) = -4*fabs(sin(x1)*cos(x2)*exp(fabs(cos((x1^2+x2^2)/200))));
# -10<=x1,x2<=10;
# 这是多模式函数. 我们在定义域中的最优解:-10.8723。
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India). 有图!
# xu注:取默认值
# 1. f( 1.57060, 0.00000 ) = -10.872300148
# 2. f( -1.57060, 0.00000 ) = -10.872300148
#
-4*fabs(sin(x1)*cos(x2)*exp(fabs(cos((x1^2+x2^2)/200)))); -10<=x1,x2<=10;
#81 Holder table function
# This 'tabular holder' function has multiple local minima with
# four global minima at f(x*)=26.92. This function is geven as:
# f(x) = -fabs(cos(x1)*cos(x2)*exp(fabs(1-((x1^2+x2^2)^0.5)/pi)));
# -10<=x1,x2<=10;
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India). 有图!
# xu注:多峰值函数寻优方式,最优保存数=6 ,其余默认值。
# 1. f( -9.64617, -9.64617 ) = -26.920335770
# 2. f( -9.64617, 9.64617 ) = -26.920335770
# 3. f( 9.64617, -9.64617 ) = -26.920335770
# 4. f( 9.64617, 9.64617 ) = -26.920335770
#
-fabs(cos(x1)*cos(x2)*exp(fabs(1-((x1^2+x2^2)^0.5)/pi))); -10<=x1,x2<=10;
# 82. Egg holder function: This function is in m (m>=2) variable and
# given as:
# Min f(x)= sum(1, m-1, -(x[i+1]+47)*sin(sqrt(fabs(x[i+1]+x[i]/2+47)))
# +sin(sqrt(fabs(x[i]-(x[i+1]+47))))*(-x[i]));
# -512<=x[i], x[i+1]<=512;
# We obtain Min f(512, 404.2319)=959.64. It is a difficult function
# to optimize.
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India). 有图!
# xu注:
# m=2 取默认值
# f( 512.00000, 404.23181 ) = -959.640686035
# m=3 取默认值 采用多峰值函数寻优方式成功率更高!
# f( 481.46189, 436.93043, 451.77073 ) = -1888.321289063
# m=10 群体个体数=15, 最优保存数=30, 小生境初距=10
# 终止代数=300;
# f( 480.85241, 431.37422, 444.90869, 457.54722, 471.96252,
# 427.49729, 442.09134, 455.11942, 469.42931, 424.94060
# ) = -8291.240234375
#
sum(1, 1, -(x[i+1]+47)*sin(sqrt(fabs(x[i+1]+x[i]/2+47)))+sin(sqrt(fabs(x[i]-(x[i+1]+47))))*(-x[i])); -512<=x[i], x[i+1]<=512;
sum(1, 2, -(x[i+1]+47)*sin(sqrt(fabs(x[i+1]+x[i]/2+47)))+sin(sqrt(fabs(x[i]-(x[i+1]+47))))*(-x[i])); -512<=x[i], x[i+1]<=512;
sum(1, 9, -(x[i+1]+47)*sin(sqrt(fabs(x[i+1]+x[i]/2+47)))+sin(sqrt(fabs(x[i]-(x[i+1]+47))))*(-x[i])); -512<=x[i], x[i+1]<=512;
#83. Pen holder function: This is a multi-modal function with
# f(x*) = -0.96354 in search domain -11<=x1,x2<=11, given as
# min f(x) = -exp(-1/fabs(cos(x1)*cos(x2)
# *exp(fabs(1-((x1^2+x2^2)^0.5/pi)))));
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India). 有图!
# xu注:取默认值
# 1. f( -9.64617, -9.64617 ) = -0.963534832
# 2. f( 9.64617, -9.64617 ) = -0.963534832
# 3. f( -9.64617, 9.64617 ) = -0.963534832
# 4. f( 9.64617, 9.64617 ) = -0.963534832
#
-exp(-1/fabs(cos(x1)*cos(x2)*exp(fabs(1-((x1^2+x2^2)^0.5/pi))))); -11<=x1,x2<=11;
#84. Bird function: This is a bi-modal function with f(x*)=-106.764637
# in the search domain -pi<=x1,x2<=pi; give as
# min f(x) = sin(x1)*exp((1-cos(x2))^2)+cos(x2)*exp((1-sin(x1))^2)
# +(x1-x2)^2;
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India)。 有图!
# xu注:取默认值
# f( -1.58214, -3.13025 ) = -106.764533997
#
sin(x1)*exp((1-cos(x2))^2)+cos(x2)*exp((1-sin(x1))^2)+(x1-x2)^2; -pi<=x1,x2<=pi;
#85. Giunta function: In the search domain -1<=x1,x2<=1 this function is
# defined as follows and has min f(0.45834282, 0.45834282)=0.0602472184.
# f(x) = 0.6+sum(1, 2, sin(16/15*xi-1)+sin(16/15*xi-1)^2
# +1/50*sin(4*(16/15*xi-1)));
# We have obtained min f(0.4673199, 0.4673183)=0.06447.
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India)。 有图!
# xu注:取默认值
# f( 0.46732, 0.46732 ) = 0.064470418
#
0.6+sum(1, 2, sin(16/15*xi-1)+sin(16/15*xi-1)^2+1/50*sin(4*(16/15*xi-1))); -1<=xi<=1;
#86. Crowned cross function: This function is the negative form of the
# cross in tray function. It has f(x*) = 0 in search domain
# -10<=x1, x2<=10. It is a difficult function to optimize. The minimal
# value obtained by us is approximately 0.1. This function is given as:
# f(x) = 0.0001*pow(fabs(sin(x1)*sin(x2)
# *exp(fabs(100-((x1^2+x2^2)^0.5)/pi)))+1.0),0.1);
# 来源:Some New Test Functions for Global Optimization
# and Performance of Repulsive Particle Swarm Method
# SK Mishra Dept. of Economics North-Eastern Hill University
# Shillong (India)。 有图!
# xu注:采用多峰值函数寻优方式。群体个体数=20, 最优保存数=30,
# 其余默认值。
# 全局最小值:无数个,呈+字分布,符合该函数的图形情况。
# 全局最大值:
# 1. f( -1.34941, -1.34941 ) = 2.062611818
# 2. f( -1.34941, 1.34941 ) = 2.062611818
# 3. f( 1.34941, -1.34941 ) = 2.062611818
# 4. f( 1.34941, 1.34941 ) = 2.062611818
#
0.0001*pow(fabs(sin(x1)*sin(x2)*exp(fabs(100-((x1^2+x2^2)^0.5)/pi))+1.0), 0.1); -10<=x1, x2<=10;
#87. min f(x,y)=-0.2*(sin(x+4*y)-2*cos(2*x+3*y)-3*sin(2*x-y)+4*cos(x-2*y));
# -5<=x, y<=5;
# 最小值:
# 1. f( 2.84989, -4.99798 ) = -1.937273502
# 2. f( -3.43330, 1.28520 ) = -1.937273502
# 3. f( -3.43330, -4.99798 ) = -1.937273502
# 4. f( 2.84989, 1.28520 ) = -1.937273502
# 最大值:
# f( -0.29171, 4.42680 ) = 1.937273502
# f( -0.29171, -1.85639 ) = 1.937273502
#
-0.2*(sin(x+4*y)-2*cos(2*x+3*y)-3*sin(2*x-y)+4*cos(x-2*y)); -5<=x, y<=5;
#88. min f(x) = 1/N*sum(1, N, xi^4-16*xi^2-5*xi); -5<=xi<=10;
# 全局最优值 -78.33236
# 来源:用于全局优化的混合正交遗传算法 江中央,蔡自兴,王 勇
# (中南大学信息科学与工程学院,长沙 410083)
#
1/100*sum(1, 100, xi^4-16*xi^2-5*xi); -5<=xi<=10;
单目标优化问题 常用的 测试函数(MATLAB版)的更多相关文章
- [MCM] 多目标优化 MOP(multi-objective programming)
生活中许多问题都是由相互冲突和影响的多个目标组成.人们会经常遇到使多个目标在给定区域同时尽可能最佳的优化问题,也就是多目标优化问题.优化问题存在的优化目标超过一个并需要同时处理就成为多目标优化问题. ...
- 群智能优化算法-测试函数matlab源码
群智能优化算法测试函数matlab源代码 global M; creatematrix(2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %画ackley图. %%%% ...
- (C/C++学习)20.基于C++改进的单目标遗传算法
说明:在学习生活中,经常会遇到各种各样的最优问题,其中最常见的就是求某个多维(多个自变量)函数在各个自变量各取何值时的最大值或最小值:例如求函数 f(x) = (x-5)2+(y-6)2+(z-7)2 ...
- (C/C++学习)19.单目标遗传算法的C程序实现
说明:在学习生活中,经常会遇到各种各样的最优问题,其中最常见的就是求某个多维(多个自变量)函数在各个自变量各取何值时的最大值或最小值:例如求函数 f(x) = (x-5)2+(y-6)2+(z-7)2 ...
- 多目标优化算法(一)NSGA-Ⅱ(NSGA2)(转载)
多目标优化算法(一)NSGA-Ⅱ(NSGA2) 本文链接:https://blog.csdn.net/qq_40434430/article/details/82876572多目标优化算法(一)NSG ...
- Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解
视频目标跟踪问题分析 视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...
- Linux 系统基础优化和常用命令
目录 Linux 系统基础优化和常用命令 软连接 tar解压命令 gzip命令 netstart命令 ps命令 kill命令 killall命令 SELinux功能 iptables防火墙 Linux ...
- 运维 07 Linux系统基础优化及常用命令
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...
- (转)Unity Cinemachine插件,实现单目标和多目标之间切换
Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...
随机推荐
- ZC_C++类函数指针_模拟_Delphi类函数指针
ZC: C++的类函数指针 不像 Delphi的类函数指针,前者 需要规定死 是哪个类的函数的指针,后者就不需要 很灵活. 测试环境: Win7x64 cn_visual_studio_2010_ul ...
- SSD论文理解
SSD论文贡献: 1. 引入了一种单阶段的检测器,比以前的算法YOLO更准更快,并没有使用RPN和Pooling操作: 2. 使用一个小的卷积滤波器应用在不同的feature map层从而预测BB的类 ...
- windows 网页打不开github网站
gitbub是外网,经常会遇到访问不了的问题,并且有时能访问也网速好慢. 解决这个问题的方法是 更改hosts文件,地址:C:\Windows\System32\Drivers\etc 我在hosts ...
- Codeforces 862B - Mahmoud and Ehab and the bipartiteness
862B - Mahmoud and Ehab and the bipartiteness 思路:先染色,然后找一种颜色dfs遍历每一个点求答案. 代码: #include<bits/stdc+ ...
- 顶点与UV
1.顶点坐标和UV坐标是三维模型重要的两个坐标系统. 2.什么是UV?UV分别是图像在显示器水平和垂直方向上坐标,值在 0 - 1 之间 ,即水平方向的第 U 个做像素/图片宽度,垂直方向的第 V 个 ...
- Short Encoding of Words
2018-07-02 09:48:48 问题描述: 问题求解: 方法一.问题给了规模n = 2000,也就是说用BF在O(n^2)的时间复杂度可以过,因此,第一个方法就是BF,但是需要注意的是这里已经 ...
- oracle创建/删除表空间、创建/删除用户并赋予权限
创建表空间 分开执行如下sql语句 --创建临时表空间 CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP11" TEMPFILE 'E:\ap ...
- nyoj737石子合并(一)
先得出区间为1和2时的结果.用arr[i][j]记录i,j内的和.dp[i][j]记录i,j区间全加起来的最小花费.那么区间大小为1和2时都是明显的.为3时枚举断点.其中一个区间大小为1也是可行的. ...
- UVA-10726 Coco Monkey(递推)
题目大意:n个人,m个猴子分桃,第一个人把桃子分成n份余下m个,第一个人将余下的给猴子,拿走自己的那份.第二个人把剩下的桃子也分成n份,余下m个,将余下的分给猴子,拿走自己的那份.………… 直到n个人 ...
- Bata验收互评
小组的名字和链接 优点 缺点,bug报告 最终名次 编程题全队 ①限制用户重复注册同一个邮箱②注册之后可以弹出用户名,不用手动输入③细节考虑到位④面板可拖动,增删改查,还能添加成员 Q1:程序有什么具 ...