动态规划算法的一般解题思路

原创 2015年11月17日 16:18:05

1. 证明优化子结构

对于问题的优化子结构,给出问题具有优化子结构的解代价,利用反证法,假设上解不是最优的,则存在另外一个解,其解优于上解,这与上解是最优的矛盾,于是该问题具有优化子结构。

证明优化子结构问题主要利用反证法。

2. 证明重复子问题

给出问题的递归公式则重叠子问题鍀证。

3. 递归的定义最优解的代价

给出最有解的代价递归公式,利于代码编写。

4. 自底向上计算最优解的代价

一般利用二维矩阵求解代价,或一行一行计算代价,或按列计算代价,或按照对角线逐级计算代价。

5. 构造最优解

根据最有接的代价矩阵信息,编写函数构造最优解。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【算法笔记】动态规划,三个例题(解题思路与C++代码)

这个笔记参考了《算法导论》第二版和第三版两版里,关于动态规划的基本模型范例:“装配线调度”,“切割钢条”,再加上一个比较简单的ACM入门题“拦截导弹”,来分析一下动态规划的具体内容。 从个...

动态规划-问题示例与解题思路(采药问题 - nefu19)

题目: 有一个药圃中种了一些药材,采摘不同药材需要不同的时间,可以获得不同的收益,问在给定时间T内,采摘药材可以获得的最高的收益! * 输入: 第一行输入两个整数T和M,分别为给定时间和药材的数量;...

程序员面试金典(动态规划):1分,5分,10分,25分硬币面值组合问题(解题思路)

问题描述: 假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n。例如n=200,那么一种可能的组合方式为 200 = 3 * 1...

【动态规划】 之 动态规划解题的一般思路

许多求最优解的问题可以用动态规划来解决。用动态规划解题,首先要把原问题分解为若干个子问题,这一点和前面的递归方法类似。区别在于,单纯的递归往往会导致子问题被重复计算,而用动态规划的方法,子问题的解一旦...

HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】

HDU 动态规划(46道题目) 原作者网址:http://www.cppblog.com/doer-xee/archive/2010/01/28/102629.html#Post 先标记 以后慢慢...
  • yibcs
  • yibcs
  • 2013-07-07 23:26
  • 944

USACO humble,动态规划简直快得吐血(对比类似treap思路)

第一感觉是用类似于treap的方法,不过treap我没有独立实现过,怕细节上出错,但是思想还是可以借鉴的,于是就想到用STL的set来帮忙。看下面的图就知道了。只要在树中的节点就是可以扩展的节点,所以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)