gpt4 book ai didi

math - 如何结合多个目标进行优化?

转载 作者:行者123 更新时间:2023-12-05 04:09:30 27 4
gpt4 key购买 nike

我不知道为什么这对我来说这么难弄清楚。

例如,我有两个函数,f(x, y)g(x, y)。我想找到 xy 的值,这样:

  • f(x, y) 处于目标值(最小化与目标的差异)
  • g(x, y) 被最小化(可以是负数,不会停在 0)
  • xy 是有界的(因此 g 的最小值不一定具有 0 的梯度)

因此,如果我只是为 f 寻找解决方案,我可以最小化 abs(f(x, y) - target),例如,它会命中找到解决方案时为零。但是有多种这样的解决方案,我也想找到最小化 g 的解决方案。

那么我如何将这两个函数组合成一个表达式,然后我可以最小化它(使用类似牛顿的方法)?

我的第一次尝试是 100*abs(f(x, y) - target) + g(x, y) 以强调首先击中目标,并且它适用于某些情况目标值,但对其他人来说失败了,因为 g(x, y) 可能变得如此负以至于它支配组合并且优化器不再关心 f。我如何保证 f 命中目标始终占优势?

是否有关于如何将多个目标合并为一个目标的一般规则?

最佳答案

有大量关于多目标优化的文献。两种流行的方法是加权目标法和字典法。

加权目标可以设计为:

min w1 * [f-target]^2 + w2 * g

对于某些权重 w1, w2 >= 0 .通常我们有 w1+w2=1所以我们也可以这样写:

min w1 * [f-target]^2 + (1-w1) * g

将 w1 设置为大于 w2 的值以强调 f 目标。

词典编纂方法假定目标的顺序。它看起来像:

  1. 解决第一个目标 z = min [f-target]^2 .设 z* 为最优目标。
  2. 在接近 z* 的情况下解决第二个目标: min g subject to [f-target]^2-z* <= tolerance

为了测量目标和 f 之间的偏差,我在这里使用了二次函数。您也可以使用绝对值。

关于math - 如何结合多个目标进行优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45873936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com