算法动态规划 ⑧ ( 动态规划特点 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法动态规划 ⑧ ( 动态规划特点 )相关的知识,希望对你有一定的参考价值。

文章目录





一、动态规划特点




1、求解类型


求解类型 : 动态规划 必须是求 最值 , 可行性 , 方案数 , 三者之一 , 如果求其它内容 , 则不能使用动态规划算法 ;

  • 求最值 : 最大值 , 最小值 等 ;
    • 大规模问题的结果 由 小规模问题 的计算结果 取最大值
    • 大规模问题的结果 由 小规模问题 的计算结果 取最小值
  • 可行性 : 是否可行 , 只要有一种方案可行即可 ;
    • 大规模问题的结果 由 小规模问题 的计算结果 必须全部可行
    • 大规模问题的结果 由 小规模问题 的计算结果 只要有一个可行即可
    • 大规模问题的结果 由 小规模问题 的计算结果 没有可行结果
  • 方案数 : 求一个总数 , 不求具体的方案 ;
    • 大规模问题的结果 由 小规模问题 的计算结果 可行方案总数

2、方向性


方向性 : 动态规划 必须有 方向性 , 不能有反复 , 循环依赖 ;

如 : 骑士最短路径问题 , 骑士走 " 日 " 字形 , 可以走 8 个方向 , 在该问题中 , 我们将其行走方向 固定在了右侧的四个方向 , 这样就不会出现循环依赖 ;

如 : 数字三角形 , 在三角形中 , 只能 从上向下走 , 不能向上走 , 这样避免循环依赖 ;


3、动态规划状态选择


动态规划状态选择 : 在 坐标型 动态规划中 , 直接使用 坐标的下标 来标记 相同位置的 状态 ;


状态数组中存储的元素是 :

  • 最大值 | 最小值
  • 方案数
  • 可行性

4、动态规划方程设计


动态规划方程设计 : 动态规划方程 , 最主要的作用是 体现出 下一步坐标状态上一步坐标状态 之间的联系 ;


也就是 大规模问题解决方案 ( 下一步坐标状态 ) 与 小规模问题解决方案 ( 上一步坐标状态 ) 之间的联系 ;

以上是关于算法动态规划 ⑧ ( 动态规划特点 )的主要内容,如果未能解决你的问题,请参考以下文章

算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )

算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )

关于动态规划算法,哪位可以讲一下自己心得体会?

大厂面试算法动态规划问题

数据结构与算法题解|动态规划|——矩阵型动态规划

C++ 不知算法系列之深入动态规划算法思想