一、分治法
1、设计思想
将一个难以直接解决的大问题,分割成k个规模较小的子问题,这些子问题相互独立,且与原问题相同,然后各个击破,分而治之。
2、递归算法
分治法常常与递归结合使用:通过反复应用分治,可以使子问题与原问题类型一致而规模不断缩小,最终使子问题缩小到很容易求出其解,由此自然导致递归算法。
3、子问题规模
根据分治法的分割原则,应把原问题分割成多少个子问题才比较适宜?每个子问题是否规模相同或怎样才为适当?这些问题很难给与肯定的回答。但人们从大量实践中发现,在使用分治法时,最好均匀划分,且在很多问题中可以取k=2。这种使子问题规模大致相等的做法源自一种平衡子问题的思想,它几乎总是比使子问题规模不等的做法好。
二、动态规划法
1、设计思想
动态规划法与分治法类似,其基本思想也是将原问题分解成若干个子问题。与分治法不同的是,其分解出的子问题往往不是相互独立的。这种情况下若用分治法会对一些子问题进行多次求解,这显然是不必要的。动态规划法在求解过程中 把所有已解决的子问题的答案保存起来,从而避免对子问题重复求解。
2、解决最优化问题
动态规划常用于解决最优化问题;全局最优
对一个最优化问题可否应用动态规划法,取决于该问题是否具有如下两个性质:
1)最优子结构性质
当问题的最优解包含其子问题的最优解时,称该问题具有最优子结构性质。
要证明原问题具有最优子结构性质,通常采用反证法。假设由问题的最优解导出

&spm=1001.2101.3001.5002&articleId=120872153&d=1&t=3&u=aa09bb35c6254c389f93cc0a405bb2d9)
5426

被折叠的 条评论
为什么被折叠?



