这是一组测试功能,可用于测试全局优化算法的有效性。有些人很容易优化(rosenbrock,leon,......),其他人在不可能(crosslegtable,bukin6,...)旁边。
所有测试功能都取自[1],[2]或[3](见下文)。可以以两种方式调用所有功能:
[Dims,LB,UB,Sol,FVAL_SOL] = FUN()
(例如,没有输入参数)这返回函数的尺寸,默认下限和上限,解决方案向量,用于所有全局最小值和相应的功能值。要计算输入X的函数值,请使用:
val = fun([x1,x2,...,xn])
根据具体函数[有趣](对于大多数函数,n = 2),尺寸[n]。注意单个矢量参数 - 这是通过的,以便轻松将函数插入到在这些功能中插入[n x n]矩阵的全局优化器。
我还包括一个函数来显示大多数功能。这称为ezimage,可以用函数处理参数调用:
ezimage(@himmelblau)(绘制Himmelblau功能)
ezimage(@sinenvsin)(见截图)
......
或者只是如 - 是:
ezimage()
其中列出了所有功能并等待用户输入。这意味着对测试功能提供的挑战是什么的第一次印象。
未来的工作:
- 约束单目标函数
- (约束)多目标函数
来源:
[1] Mishra,Sudhanshu。“排斥粒子群方法的全局优化和性能的一些新的测试功能”。MPRA,2006年8月23日。http://mpra.ub.uni-muenchen.de/2718/
[2] Z.K.银渣。“找到二维峰值”。2004年3月11日。Arxiv预印迹:Arxiv:物理/ 0402085V3
[3] W. Sun,Ya-X。元。“优化理论与方法。非线性编程”。Springer Verlag,2006. ISBN-13:978-0-387-24975-9。
rody Oldenhuis(2021年)。全局优化算法的测试功能(https://github.com/rodyo/fex-testfunctions/releases/tag/v1.5),github。检索到。
代码中的一些评论需要修改。作为示例,Ackley函数的全局点是(0,0),而不是(3,0.5)。
谢谢你,先生