在我们做智能优化算法的相关内容时,常常会用标准测试函数去评判算法的优化性能。不过大多情况下作者在文中并不会给出每一个标准测试函数的名称,而是直接以公式替代,这其实隐隐约约地造成了些许不便。比方说,某位读者和好朋友同时去改进一个算法,跑出数据以后大家相互交流,想比一比谁搞得效果更好,结果两人连函数名称都不熟悉,这就使得双方难以将话题进行下去。
2023-01-04 12:27:52 669KB 算法 测试函数
1
NSGA-Ⅱ算法大量测试函数实验结果展示
2022-12-14 22:42:50 2.04MB NSGA-Ⅱ算法
1
测试函数shubert是周期测试函数,拥有多个全局最优解,单周期内拥有一个全局最优解,粒子群算法具有收敛速度快,参数设置简单,容易理解的特点,用粒子群算法求解shubert函数,效果较好
1
Fmincon函数,采用内部牛顿映射法,求解精度较高,可以采用大型优化,测试函数Perm貌似只有一个波谷,很容易求解最小值,但是缩小图像范围后,图像中间位置有一个小峰,最优值及近似最优值分布在峰的周围,优化的时候收敛方向首先向下寻优,然后是弧形走势,对应很多算法而言,需要不断调整,趋近最优解后,收敛路线比较狭窄,这个时候,如果算法参数设置的不合理,很容易在收敛路线左右震荡缓慢收敛,貌似简单并不简单的一个函数,Fmincon求解结果可以精确度10^-14,求解精度较高
1
Fminunc函数,采用梯度法,求解精度较高,求解速度快,测试函数Perm貌似只有一个波谷,很容易求解最小值,但是缩小图像范围后,图像中间位置有一个小峰,最优值及近似最优值分布在峰的周围,优化的时候收敛方向首先向下寻优,然后是弧形走势,对应很多算法而言,需要不断调整,趋近最优解后,收敛路线比较狭窄,这个时候,如果算法参数设置的不合理,很容易在收敛路线左右震荡缓慢收敛,貌似简单并不简单的一个函数,Fmincon求解结果可以精确度10^-12,求解精度较高
1
最大最小优化函数是一个实用性较强的函数,可以出来很多问题,求解速度较快,perm函数貌似只有一个波谷,很容易求解最小值,但是缩小图像范围后,从图1看图像中间位置有一个小峰,最优值及近似最优值分布在峰的周围,优化的时候收敛方向首先向下寻优,然后是弧形走势,对应很多算法而言,需要不断调整,趋近最优解后,收敛路线比较狭窄,这个时候,如果算法参数设置的不合理,很容易在收敛路线左右震荡缓慢收敛,貌似简单并不简单的一个函数,用最大最小化Fminmax求解精度为9*10^-10
1
Perm函数是多自变量单目标函数,可以很好测试各种算法的全局收敛能力,既适合传统优化算法函数,也适合是测试智能启发式算法性能的,初学者者联系调试算法参数的一个入门级函数,有很好的实用性,大范围看,图像是一个漏斗形函数,人容易收敛,但是小范围看图像中间位置有一个小峰,最优值及近似最优值分布在峰的周围,优化的时候收敛方向首先向下寻优,然后是弧形走势,对应很多算法而言,需要不断调整,趋近最优解后,收敛路线比较狭窄,这个时候,如果算法参数设置的不合理,很容易在收敛路线左右震荡缓慢收敛,貌似简单并不简单的一个函数
1
Schwefel函数是一个典型的欺骗问题,有1个全局极小值点,距离另一个局部最优点很远,因此如果陷入局部最优就很难跳出,测试的是函数的全局搜索能力,和跳出局部最优的能力,对算法的要求较高,简单的算法不太可能求解最优解,一般需要启发式智能算法,比如粒子群算法,遗传算法,模拟退火算法,萤火虫算法,布谷鸟算法,灰狼算法,鲸鱼算法,鱼群算法,天牛须算法,烟花算法,蚁群算法,樽海鞘算法,鲸鱼算法,狮群算法等等各种来求解,后续会陆续推出这些算法的针对测试函数的求解代码,有疑问或者需要说明的,欢迎大家评论区留言,
1
Zakharov函数没有局部最小值,只有全局最小值,函数谷底明显,可以很好测试各种算法的全局收敛能力,是测试智能启发式算法性能的,初学者者联系调试算法参数的一个入门级函数,有很好的实用性
1
Rastrigin函数有几个局部极小值。它是高度多模态的,但最小值的位置是规则分布的,函数谷底不明显,次峰依次接近主谷底角度,可以很好测试各种算法的全局收敛能力,是测试智能启发式算法性能的,很多初级算法容易陷入局部最优,往往需要对算法进行改进才能很好的寻找到最优解,是测试算法改进性能的很好的一个测试函数,特别二次改进,或者深度改进算法的时候,依然可以做出来对比效果,有很好的实用性,
1