动态编程 - 修改自下而上的杆切割算法

时间:2014-04-08 00:33:52

标签: algorithm dynamic-programming bottom-up

我对如何修改自下而上的切杆算法以使每次切割包含固定成本c感到困惑。使收入成为碎片价格减去成本的总和。我有类似的东西,但我不确定我是否走在正确的轨道上。

MODIFY-BOTTOM-UP-CUT-ROD(p,n)
1.  let r[0..n] be a new array
2.  r[0] = 0
3.  for j = 1 to n
4.     q = -INF
5.     for i = 1 to j
6.        q = max(q,p[i] + r[j-i] - c)
7.     r[j] = q
8.  return r[n]

1 个答案:

答案 0 :(得分:0)

您需要进行修改以包括不进行任何削减的用例,其中不会产生固定成本“ c”。

修改

4. q = p[j]
5. for i = 1 to j-1

说明

第4行:在这里,初始化为-inf将错过用例,其中总成本不包括固定成本。

第5行:第4行的初始化包含i等于j的情况。

来源:http://ranger.uta.edu/~huang/teaching/CSE5311/HW3_Solution.pdf