我需要找到最大的功能:
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。 什么是最好的方法?
答案 0 :(得分:2)
有一些技术,如nelder-mead优化(我相信GSL实现),但大多数技术都假设某种特殊结构(即凸性或连续性)。根据功能的值,可能不存在正常下坡法可以找到的唯一最优或甚至最优。