是否有一组测试函数来衡量给定算法的性能(在速度方面,也许是准确性的权衡(,该算法的任务是找到给定间隔内实值函数的全局最小值?最终:这个问题是一个开放问题,还是存在用于此类任务的理论最佳算法?
编辑:对函数没有任何限制,除了应该有界。
除了有界性之外,函数没有任何限制,似乎不可能总是找到它的全局最小值,更不用说在合理的时间内了。
考虑在 [0..1] 上定义的实值函数系列:
f (x0) = y0
f (x) = 0 for all other x in [0..1]
对于任何固定x0 in [0..1]
和y0 < 0
,最小值为 x0
。尽管如此,任何没有先验知识的算法x0
都很难找到它。
中为 0,对于未知 c> 对于不计算 f (x( 的每个点,函数为 0。如果你想要它连续,那么如果 x 介于 a 和 b 之间,其中 a 和 b 是你计算 f (a( 和 f (b( 的相邻点,那么 f 从 f (a( = 0 到 f ((a + b(/2( = c 和线性到 f (b( = 0。
显然,每次计算f(x(时,都会得到零。由于您从不评估其他任何内容,因此您的算法无法得出全局最大值为零的结论 - 这是错误的。