找到函数的最大值

时间:2011-02-04 19:43:16

标签: optimization math max

我需要找到最大的功能:

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

其中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。 什么是最好的方法?

1 个答案:

答案 0 :(得分:2)

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