【问题标题】:Find maximum of a function求函数的最大值
【发布时间】:2023-03-20 21:25:01
【问题描述】:

我需要找到函数的最大值:

a1^x1 * const1 + a2^x2 * const2 +....+ ak^xk * constk = 质量

其中 xk>0 且 xk 是整数。 ak 是常数。

约束: a1^x1 * const1*func(x1) + a2^x2 * const2*func(x2) +....+ ak^xk * constk*func(xk)

其中 func 是离散函数:

func(x)
{
    switch(x)
    {
        case 1: return 423;
        case 2: return 544;
        ...
        etc
    }
}

k 可能很大(超过 1000)。 x 小于 100。 最好的方法是什么?

【问题讨论】:

  • 你有超过 1000 个变量的函数...?
  • 是的,有几千个变量...
  • 这不是变相的背包问题吗?
  • 这被称为整数规划,解决整数规划的方法之一是分支定界搜索

标签: optimization math max


【解决方案1】:

有诸如 nelder-mead 优化之类的技术(我相信 GSL 实现了),但大多数技术都假设某种特殊结构(即凸性或连续性)。根据函数的值,可能不存在唯一的最优值,甚至没有正常下坡方法可以找到的最优值。

【讨论】:

  • 您的意思是“正常下坡方法无法找到的最佳值”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2016-01-27
相关资源
最近更新 更多