动态规划(DP)

一、基本思想

将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

二、与分治法的异同

同:基本思想一致(如上)

异:适用动规求解的问题,经分解得到的子问题往往不是相互独立的。而适用分治法的往往相互独立。

三、动态规划算法的基本要素

1、最优子结构性质:问题的最优解包含了其子问题的最优解。

2、重叠子问题性质:若自顶向下求解问题时则每次产生的子问题不总是新问题,有些子问题被反复计算多次。

四、算法步骤

1、找出最优解的性质,并刻画其结构特征

2、递归地定义最优值

3、以自底向上的方式计算最优值

4、根据计算最优值时得到的信息构造最优解

五、经典例题

(1)最大字段和(2)最长公共子序列

(3)矩阵连乘(4)揹包问题

六、碰到的例题

(1)Count number of binary strings without consecutive 1’s

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章