我需要找到函数的最大值:
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。
最好的方法是什么?
最佳答案
有一些技术,如 nelder-mead 优化(我相信 GSL 实现了),但大多数技术都假设某种特殊结构(即凸性或连续性)。根据函数的值,可能不存在唯一的最优值,甚至不存在正常下坡方法可以找到的最优值。
关于optimization - 求一个函数的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902220/