zoukankan      html  css  js  c++  java
  • 动态规划

             动态规划,具有“最优子结构”、“子问题重叠”、“边界”和“子问题独立”,当你发现你正在思考的问题具备这四个性质的话,那么恭喜你,你基本上已经找到了动态规划的方法。有了上面的这几点,我们就可以写出动态规划的转移方程。

            我们可以把问题的解放在一个变量中,如果再次遇到这个问题就直接从变量中获得答案,因此每一个问题仅会计算一遍,如果不做备忘的话,动态规划就没有任何优势可言了。

            面对问题要寻找动态规划的方法,首先要清楚一点,动态规划不是算法,它是一种方法,它是在一件事情发生的过程中寻找最优值的方法,因此,我们需要对这件事情所发生的过程进行考虑。而通常我们从过程的最后一步开始考虑,而不是先考虑过程的开始。考虑的最后一步,就是边界。

           那么遇到问题如何用动态规划去解决呢?

           1、构造问题所对应的过程。
           2、思考过程的最后一个步骤,看看有哪些选择情况。
           3、找到最后一步的子问题,确保符合“子问题重叠”,把子问题中不相同的地方设置为参数。
           4、使得子问题符合“最优子结构”。
           5、找到边界,考虑边界的各种处理方式。
           6、确保满足“子问题独立”,一般而言,如果我们是在多个子问题中选择一个作为实施方案,而不会同时实施多个方案,那么子问题就是独立的。
           7、考虑如何做备忘录。
           8、分析所需时间是否满足要求。
           9、写出转移方程式。
  • 相关阅读:
    抓取登录后的数据
    Form认证的几点说明
    eclipse启动错误:java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer
    mysql游标的使用 No data
    mysql insert 主键 重复问题
    tail 命令
    maven 打包可执行jar的方法
    maven中如何打包源代码
    工程师,请优化你的代码
    在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
  • 原文地址:https://www.cnblogs.com/cloudml/p/4175792.html
Copyright © 2011-2022 走看看