是否有一组测试函数来测量给定算法的性能(在速度方面,可能与准确性折衷),其任务是在给定的时间间隔内找到实值函数的全局最小值?最终:这个问题是一个开放的问题,还是存在一个理论上最好的算法来完成这样的任务?
编辑:对该功能没有任何限制,除此之外它应该是有限的。
答案 0 :(得分:1)
在评估f(x)的每个点上取一个0的函数,c表示未知的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)时,都会得到零。由于您从未评估过任何其他内容,因此您的算法无法得出全局最大值为零的结论 - 这是错误的。
答案 1 :(得分:1)
除了有界性之外,对函数没有限制,似乎总是找不到它的全局最小值,更不用说在合理的时间内了。
考虑在[0..1]上定义的实值函数族:
f (x0) = y0
f (x) = 0 for all other x in [0..1]
对于任何固定的x0 in [0..1]
和y0 < 0
,最低值为x0
。
但是,任何没有x0
先验知识的算法都很难找到它。