优化只能评估的未知函数?

计算科学 优化
2021-12-19 01:34:31

给定一个未知函数,我们可以在其域中的任何点计算它的值,但我们没有它的表达式。换句话说,对我们来说就像一个黑匣子。f:RdRf

的极小值问题的名称是什么?那里有哪些方法?f

求解方程的问题的名称是什么?那里有哪些方法?f(x)=0

在上述两个问题中,已知和参数被确定,然后最小化或找到它的根?(xi,f(xi)),i=1,,ngθθgθ

谢谢并恭祝安康!

3个回答

您正在寻找的方法——即仅使用函数评估而不使用导数的方法——称为无导数优化方法有大量关于它们的文献,您可以在大多数关于优化的书籍中找到有关此类方法的章节。典型的方法包括

  • 如果可以合理地期望函数是平滑的并且可能是凸的,则通过有限差分逼近梯度;
  • 蒙特卡罗方法,例如模拟退火;
  • 遗传算法。

我认为您应该从: GECCO 实参黑盒优化基准测试研讨会(BBOB 2016) http://numbbo.github.io/workshops/index.html

你会发现许多不同的算法在以前的比赛中使用过,并且在共同的基础上进行了比较。如果你从其他地方开始,你很快就会淹没在数百篇论文中,这些论文声称他们的方法和算法比其他人表现得更好,而这些说法几乎没有实际证据。

坦率地说,直到最近,INRIA、GECCO 和许多其他人在建立理性比较框架方面所做的努力都是一种可耻的事态和所有权力。

我只想补充一点,这里的关键之一是能够在多核 CPU上扩展优化方法。如果您可以同时执行多个功能评估,它会为您提供与所涉及的核心数量相等的加速。将此与仅使用稍微更准确的响应模型进行比较,这会使您的效率提高 10% 左右。

我建议看一下这段代码,它对可以访问许多内核的人很有用。本文描述了它背后的数学原理