算法导论动态规划章节中rod-cutting的一个问题

dracularking 2016-05-04 10:03:31
为了计算最优的原木切割法,公式是这样的:

可后来就变形成这样了,没明白这样怎么也可以(左手段换成了p):



p:不切割,直接卖的价值
r:优化方式切割后的总价值
...全文
446 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2016-12-29
  • 打赏
  • 举报
回复
公式2 是做了简化,从左边切下长度为i的一段,然后只对右边长度为n-i长度的钢条进行切割,对左边的不再切割了
dracularking 2016-05-09
  • 打赏
  • 举报
回复
谢谢回答,确实是这样,不管怎样分割,只要最优分割后,总能从最后的分割结果中,找出一个p[i](未必是单价最高), 重新组合成这样: r[n] = p[i] + r[n-i] (1<=i<=n) 说明这种分割方式总能组成最优解,是不是这样?
Tiger_Zhao 2016-05-04
  • 打赏
  • 举报
回复
r 是1个或多个 p 组成的集合。

怎么推导不知道,不过可以反过来论证:
1)假定已经按公式1找到了最优的r[n];
2)那么从里面拿走单价最高的一条p[k]
2.a)如果k=n,直接符合公式2
2.b)如果k<n,剩下集合必定是最优r[n-k],否则用最优的r[n-k]和p[k]可以组成更优的r[n]了。

所以公式2是正确的:
要么是 p[n] 直接组成最优的 r[n];
要么是某个最优的 r[n-i] 加上 p[n] 组成最优的 r[n]。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧