我在想,如果你可能有一些洞察到一个问题,我们考虑的优化问题:动态规划方法
最大Σ从j = 1到FJ(XJ)正使得Σj = 1至XJ正< = B
XJ> = 0,整数
其中B是正整数和fj是真实实际
我试图使用动态编程配制的溶液,并找出这种方法的时间复杂度。
林有点困惑的动态规划方法,你将如何实现它的功能,例如F1(X)=开方如果n = 5,B = 10
亲切的问候
我在想,如果你可能有一些洞察到一个问题,我们考虑的优化问题:动态规划方法
最大Σ从j = 1到FJ(XJ)正使得Σj = 1至XJ正< = B
XJ> = 0,整数
其中B是正整数和fj是真实实际
我试图使用动态编程配制的溶液,并找出这种方法的时间复杂度。
林有点困惑的动态规划方法,你将如何实现它的功能,例如F1(X)=开方如果n = 5,B = 10
亲切的问候
您的问题是解决
max(g(n,s) for s=0 to B)
其中s
是sum(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.
谢谢,我确定你是对,虽然......可以理解,但是......这是什么状态和递归表达呢?是时间复杂度O(nB)? – user87545 2013-04-07 17:58:22
在阅读了这个更接近我相信我们正从功能选择中最大化的时候,它们有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
@ user87545:好的,你原来的问题被说成好像每个x [j]都有一个不同的f [j],但是好像你试图找到最好的f,所以我就这样设置它。 – 2013-04-07 18:15:25
什么是你发现的最大结束了吗? X [j]的? – 2013-04-07 16:11:58
可能是http://math.stackexchange.com/问题 – 2013-04-07 16:16:11
我找到Σf(x)的最大值,其中j从1到n – user87545 2013-04-07 16:20:49