2011-02-04 86 views
4

我需要找到一個最大的功能:查找最大功能的

A1^* X1 + const1--它A2^X2 * CONST2 + ... + AK^* XK = constk qaulity

其中xk> 0且xk是整數。 AK是恆定的。

約束: A1^* X1 * const1--它FUNC(X1)+ A2^X2 * CONST2 * FUNC(×2)+ ... + AK^* XK * constk FUNC(XK)<預算

凡func是離散功能:

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

k可能很大(超過1000)。 x小於100. 什麼是最好的方法?

+0

您有超過1000個變量的功能......? – 2011-02-04 19:46:38

+0

是的,幾千個變量... – Neir0 2011-02-04 20:00:00

回答

2

有一些技術像nelder-mead優化(我相信GSL實現),但大多數技術都假設某種特殊的結構(即凸性或連續性)。取決於函數的值,可能不存在唯一的最佳值,或者甚至不存在正常下坡法可找到的最佳值。