版权声明:欢迎大家转载,指正。 https://blog.csdn.net/yin__ren/article/details/83243368
1. 装配线调度问题
- 动态规划之 装配线调度问题 推荐阅读
1. 伪代码
2. Java 代码实现
二、钢条切割
- 算法导论-动态规划-钢条切割 推荐阅读
1. 自顶向下递归实现
1. 伪代码
CUT-ROD(p,n)
if n == 0
return 0
q = -1
for i = 1 to n
q = max(q,p[i] + CUT-ROD(p,n - i))
return q
2. 带备忘的自顶向下法
1. 伪代码
MEMOIZED-CUT-ROD(p,n)
let r[0..n] be a new array
for i = 0 to n
r[i] = -1
return MEMOIZED-CUT-ROD-AUX(p,n,r)
MEMOIZED-CUT-ROD-AUX(p,n,r)
if r[n] >= 0
return r[n]
if n == 0
q = 0
else
q = -1
for i = 1 to n
q = max(q,p[i] + MEMOIZED-CUT-ROD-AUX(p,n - i,r))
r[n] = q
return q
3. 自底向上法
1. 伪代码
BOTTOM-UP-CUT-ROD(p,n)
let r[0..n] be a new array
r[0] = 0
for j = 1 to n
q = -1
for i = 1 to j
q = max(q,p[i] + r[j - i])
r[j] = q
return r[n]