【问题标题】:Maximizing a function by minimizing its inverse通过最小化函数的逆来最大化函数
【发布时间】:2022-01-04 10:41:08
【问题描述】:

假设我在给定范围 [a,b] 上定义了一个函数 f(x),其中 f(x) > 0。我想最大化 f,但我的算法只能最小化给定函数。

鉴于前提,最小化 -f(x) 或 1/f(x) 有什么区别? 对我来说,鉴于 f(x) 始终为正,根本没有区别,因为在任何一种情况下,全局最大值都变成了 [a,b] 的全局最小值。 精度:我对这个过程使用标准的遗传算法。我主要关心的是它如何根据使用的功能探索空间,但到目前为止,似乎完全没有区别。

【问题讨论】:

  • 1/f(x) 是倒数,函数逆是完全不同的东西。
  • 我认为任何最小化算法都使用梯度或其近似值,并且 1/f(x) 的梯度与 f(x) 的梯度完全不同。在简单的情况下可能无关紧要,但当涉及到有限精度时,您最好小心。
  • @n.m.:遗传算法通常依赖于函数评估,而不是梯度。
  • @timk:更喜欢 -f,计算速度更快,数值中性。

标签: algorithm function optimization


【解决方案1】:

如 cmets 中所述,您可能会遇到数值问题。例如,如果 [a,b] 范围内的 f(x) 占用较大的值,如果使用 1/f(x) 而不是 -f(x),则最终可能会出现舍入错误。我会坚持最小化 -f(x)。

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 2019-03-21
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多