动态规划16之总结

原创 2016年05月31日 12:41:11

    动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解

    动态规划的基本思想其实就是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。

    使用动态规划时的一般步骤为:
1、找出最优解的性质;
2、递归地定义最优值(写出动态规划方程);
3、以自底向上的方式计算出最优值;
4、根据计算最优值时得到的信息,构造一个最优解。

   对于最优化的问题,搜索可以说是万能的。所以动态规划可以解决的问题,搜索也一定可以解决。把一个动态规划算法改写成搜索是非常方便的,状态转移方程、规划方程以及边界条件都可以直接“移植”,所不同的只是求解顺序。动态规划是自底向上的递推求解,而深度搜索则是自顶向下的递归求解。

    对比之前所学的几种算法可以知道:若每个阶段只有一个状态->递推;若每个阶段的最优状态都是由上一个阶段的最优状态得到的->贪心;若每个阶段的最优状态是由之前所有阶段的状态的组合得到的->搜索;若每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到而不管之前这个状态是如何得到的->动态规划。

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

相关文章推荐

nyoj-16 矩形嵌套 (DAG上的动态规划,记忆化搜索)

矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c...

100道动态规划——16 UVA 1627 Team them up! 二分图,背包,不过关键还是学会转化

确实,这道题目只要知道怎么看之后就好写很多了,关键在于知道这样看。 判定每一个连通块是不是一个二分图,假若有一个不是的话,那就是无解。 一个连通块被划为二分图是唯一的嘛(反证法),然后就可以处理出两队...

算法导论 16-1.1活动选择问题 动态规划解

#include #include using namespace std; #define N 11void dynamic_activity_selector(int c[N+1][N+1],...

NYOJ 16 矩阵嵌套(动态规划思想)

NYOJ 16 矩阵嵌套(动态规划思想)

HDU3998 Sequence 动态规划+最大流2011 Multi-University Training Contest 16 - Host by TJU

Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su...

搞个大矩阵(动态规划+bitset加速+滚动数组)(北理16校赛)

时间限制1秒 内存限制153600KB 题目描述:         hybest担任着拯救文太的任务。        ...

NYOJ 16 矩形嵌套(动态规划)

时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d...

acm动态规划总结

  • 2013-11-29 17:56
  • 538KB
  • 下载

NOIP算法总结——关于简单 线性动态规划

动态规划,显然是一个很让人头疼的地方,也没有个固定的算法,最多就是有一些模板(比如背包啊),要是想要增大做出来的机率,也就只好多做做题找找感觉了~线性动态规划可以说是DP中最简单的类型了,当然里面很多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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