2013-04-07 118 views
0

我在想,如果你可能有一些洞察到一個問題,我們考慮的優化問題:動態規劃方法

最大Σ從j = 1到FJ(XJ)正使得Σj = 1至XJ正< = B

XJ> = 0,整數

其中B是正整數和fj是真實實際

我試圖使用動態編程配製的溶液,並找出這種方法的時間複雜度。

林有點困惑的動態規劃方法,你將如何實現它的功能,例如F1(X)=開方如果n = 5,B = 10

親切的問候

+0

什麼是你發現的最大結束了嗎? X [j]的? – 2013-04-07 16:11:58

+0

可能是http://math.stackexchange.com/問題 – 2013-04-07 16:16:11

+0

我找到Σf(x)的最大值,其中j從1到n – user87545 2013-04-07 16:20:49

回答

0
(X)

您的問題是解決

max(g(n,s) for s=0 to B) 

其中ssum(x[i] for i = 1 to j)

其中g可以遞歸表示爲

g(0,s) = 0 
g(j,s) = max(g(j-1,s-x[j])) + f[j](x[j]) for x[j]=0 to s) 

這可以有效地通過計算g作爲表來解決:

g(0,s) = 0 
g(1,s) = max(g(0,s-x1) + f1(x1) for x1=0 to s) 
g(2,s) = max(g(1,s-x2) + f2(x2) for x2=0 to s) 
etc. 
+0

謝謝,我確定你是對,雖然......可以理解,但是......這是什麼狀態和遞歸表達呢?是時間複雜度O(nB)? – user87545 2013-04-07 17:58:22

+0

在閱讀了這個更接近我相信我們正從功能選擇中最大化的時候,它們有n個,但是之後給出了5個,f1(x)= squrt(x),f2(x)= log x + 1),f3(x)= x(20-x)/ 25,f4(x)= x/2和f5(x)= 4(1-e ^( - x/5)你提供的仍然是正確的還是我需要重新配置它? – user87545 2013-04-07 18:09:13

+0

@ user87545:好的,你原來的問題被說成好像每個x [j]都有一個不同的f [j],但是好像你試圖找到最好的f,所以我就這樣設置它。 – 2013-04-07 18:15:25