主题:理解不了“动态规划”“动”在哪
wxljqi
[专家分:0] 发布于 2005-07-07 20:21:00
“动态规划”为什么取这个名字我看了好多例题,就是看不懂它“动”在哪,
懂这个的给偶一个提醒好吗,谢谢!
回复列表 (共5个回复)
沙发
wxljqi [专家分:0] 发布于 2005-07-08 18:20:00
不是吧,说说嘛,这里应该有很多高手的
板凳
ArrayNil [专家分:320] 发布于 2005-07-10 13:17:00
我倒不是高手,但dp的题还是有点感觉:
记忆化搜索在每次初始情况不同的时候程序会根据目前已知的结果进行比较好的选择,这种动态的选择加上记忆化搜索可以理解为动态规划的一部分
3 楼
sunnyfish [专家分:250] 发布于 2005-07-10 13:24:00
动态规划的基本的思路就是搜索,然后标记,再在没有标记的元素中继续搜索,我想这就是动吧!
4 楼
davidw017 [专家分:4170] 发布于 2005-07-10 15:24:00
动是与静相对的,比如一个图从 A 到 B 找最短路,如果是 dfs 的话只能一步一步地搜,搜过的在到 B 之前都不会改变,而 dp 就不同,是在时时变化的
5 楼
vcacm [专家分:1500] 发布于 2007-01-15 21:21:00
首先,能用DP问题解决的问题必须是具有最优子结构性质,即从总体考虑,自顶向下求解!
因为如果总体的解是最优的,那么将它分成两个子解,那么这两个子解必是这两个子问题的最优解:
可以用反证法证明:
假设分成的两面个子解不是这两个子问题的最优解,那么还有比它们更优的解,从而推出:总体不是最优解!与原解冲突!!!所以满足最大化原理!
其实,动态规划算法有两种实现方法:
NO.1 ( 动在自底向上)
先求出各个阶段的最优解,并填入表中,而当要求后面更长的阶段时只要利用表中已求的子阶段的解,而不必再去求子阶段的解,这样就动态避免了一些重叠的子问题的反复计算,从动态提高了解题效率!
NO.2 (动在自顶向下)
这种方法是递归穷举的改进算法!即(著名的备忘录算法);
我来回复