美文网首页
动态规划问题

动态规划问题

作者: dreamsfuture | 来源:发表于2018-02-28 17:27 被阅读0次

动态规划问题是一种分而治之的策略,需要确定动态规划的三个要素:

    (1)问题的各个阶段 

    (2)每个阶段的状态(用什么信息做状态?)

    (3)从前一个阶段转化到后一个阶段之间的递推关系。

递推关系可能写出来,比如数学计算大小等优化问题,也可能写不出来,例如字符处理优化问题就只能通过叙述来完成。

动态规划思想有递推的思想,但是优点就是避免了计算重复的数据,减少了时间复杂度,代价就是增加了空间复杂度。

动态规划问题由思考到编程实现:

    (1)从大到小分析,从外到内分析,也即得出 F(i,j) = Max{F(i-1,j), F(i,j-1)} + A(i,j),再分析细节;

    (2)从小到大求解,从内到外求解,也即先得出F(0,0), F(0,1), F(1,0) ..... 再求后面的 F(i-1,j), F(i,j-1), F(i,j);

动态规划有类似累积的性质,例如“累加”、“累乘”等等;

[1] java 动态规划策略原理及例题.http://blog.csdn.net/QuinnNorris/article/details/77484573(此文章包含动态规划问题的编程实现,可以理解编程实现的细节对比)

[2] java算法之动态规划基本思想以及具体案例.http://blog.csdn.net/likailonghaha/article/details/53561646(此文章可以作为上面的补充,从其他角度理解动态规划的特点)

[3] 动态规划.http://www.cppblog.com/menjitianya/archive/2015/10/23/212084.html.(此文章总结的比较好,可以重点参考)

相关文章

  • 浅层理解动态规划及利用动态规划解决最长公共子串等问题

    动态规划基本思想 动态规划的工作原理是先解决子问题,再逐步解决大问题。 用动态规划解决旅游规划问题 目前面对的问题...

  • 什么是动态规划

    目录 动态规划解决了什么 什么是动态规划 典型的动态规划 1. 动态规划解决了什么 的思想就是将大问题拆分成小问题...

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

  • 其他来源:数据结构/算法学习笔记

    动态规划问题(Dynamic Programming) 首先,动态规划问题的一般形式就是求最值。动态规划其实是运筹...

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 337. House Robber III

    key tips 动态规划返回两个状态 algorithm 1 尝试动态规划问题存在子问题结构,首先考虑动态规划在...

  • 动态规划(1)

    什么动态规划 动态规划是一种解决棘手问题的方法,它将问题分成小问题,并着手先解决这些小问题 动态规划的使用场景 g...

  • 算法3:动态规划

    5.动态规划5.1 什么是动态规划?5.2 自底向上的动态规划:5.3 自顶向下的动态规划5.4 0-1背包问题:...

  • LeetCode基础算法-动态规划

    LeetCode基础算法-动态规划 LeetCode 动态规划 动态规划的核心步骤: 查看大问题的最优解能否使用小...

  • 算法笔记(二)-动态规划问题

    引言:动态规划介绍 什么时候可以使用动态规划:求最优解问题的时候动态规划的两个主要问题:最优子结构和重叠子问题,一...

网友评论

      本文标题:动态规划问题

      本文链接:https://www.haomeiwen.com/subject/wndixftx.html