码迷,mamicode.com
首页 > 其他好文 > 详细

动态规划初步

时间:2017-10-27 01:35:00      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:决策   这一   独立   背包   线性结构   问题   模型   style   硬币   

动态规划的核心是状态和状态转移方程。

 

计算状态转移方程的方法:

   1、递归计算。

   用直接递归的方法计算状态转移方程,效率往往十分低下。其原因是相同的子问题被重复计算了多次。

   2、递推计算。

   递推的关键是边界和计算顺序。

   3、记忆化搜索。

   不必事先确定各状态的计算顺序,但需要记录每个状态“是否已经计算过”。

 

动态规划基础:DAG上的动态规划

   1、矩阵嵌套。(看清题意,是<,不是<=)

   2、硬币问题。

 

多阶段决策问题

    DAG看成多阶段决策问题就是,每走一步对应一个阶段,这一步可以选择那几条路径对应几个决策。

    多阶段决策的最优化问题往往可以用动态规划解决,状态及状态转移类似于解答树,阶段就是解答树中的层数,几个决策对应几个分支。

    1、多段图的最短路。

    2、0-1背包问题。

 

更多经典模型

    1、线性结构上的动态规划。

       1>最长上升子序列问题。

       2>最长公共子序列问题。

    2、树上的动态规划。

       1>树的最大独立集。

       2>树的重心。

       3>树的最长路径。

    3、复杂状态的动态规划。

       1>最优配对问题。

       2>货郎担问题。

       3>图的色数。

      

 

 

  

 

 

  

 

 

  

 

动态规划初步

标签:决策   这一   独立   背包   线性结构   问题   模型   style   硬币   

原文地址:http://www.cnblogs.com/mu-ye/p/7739722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!