美文网首页
动态规划问题

动态规划问题

作者: 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.(此文章总结的比较好,可以重点参考)

    相关文章

      网友评论

          本文标题:动态规划问题

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