前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【算法】动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )

【算法】动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )

作者头像
韩曙亮
发布2023-03-30 18:26:41
5410
发布2023-03-30 18:26:41
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、动态规划四要素


在上一篇博客 【算法】动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 ) 中 , 不管是 自底向上的动态规划 还是 自顶向下的动态规划 , 实现 动态规划 算法时 , 需要实现 4 个步骤 , 分别是

  • 状态 State
  • 初始化 Initialize
  • 方程 Function
  • 答案 Answer

1、动态规划状态 State

动态规划 的 状态 State , 与 递归的定义 对应 ;

使用 一维数组 f[i] 或者 二维数组 f[i][j] 表示 特定条件下 规模更小 的问题的答案 ;

使用 i 或 i , j 参数 将 大规模的问题 划分成 小规模问题 ;

一维数组 f[i] 或者 二维数组 f[i][j] 中的元素值 可能是 :

  • 某个小规模问题的 最大值 结果
  • 某个小规模问题的 最小值 结果
  • 方案可行性 , 如 : 是 True 或 否 False 的 布尔值

上一篇博客 【算法】动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 ) 中 , 动态规划 状态 State 就是 二维数组 dp , dp[i][j] 表示从 第 i 行 第 j 列的元素出发 , 数组的元素值就是走到最底层的最短路径 ; 是 小规模问题的 最小值结果 ;

2、动态规划初始化 Initialize

动态规划 的 初始化 Initialize , 与 递归的出口 对应 ;

当 大规模问题 无法 拆解成 小规模问题 时的 最小状态 , 就是 动态规划初始化 Initialize ;

在 自底向上 的 动态规划 中 , 初始化 就是 最底层 的数据 ;

在 自顶向下 的 动态规划 中 , 初始化 就是 最顶层 的数据 ;

另外 无法代入 到 动态规划方程 Function 中的数据 , 也要并入到 动态规划初始化 Initialize 范畴中 , 对这部分数据也要进行初始化操作 ; 如 : 上一篇博客 【算法】动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 ) 中 自顶向下的动态规划示例 中 , 对 数字三角形 左右两边 的 两列 数据进行初始化 操作 ;

3、动态规划方程 Function

动态规划 的 方程 Function , 与 递归的拆解 对应 ;

动规方程 主要用于 描述 大规模问题 如何 拆解成 小规模问题 , 即 大规模问题 是 如何 依赖于 小规模问题的 , 如 :

  • 大规模问题的结果 由 小规模问题 的计算结果 相加
  • 大规模问题的结果 由 小规模问题 的计算结果 取最大值
  • 大规模问题的结果 由 小规模问题 的计算结果 取最小值
  • 大规模问题的结果 由 小规模问题 的计算结果 必须全部可行
  • 大规模问题的结果 由 小规模问题 的计算结果 只要有一个可行即可
  • 大规模问题的结果 由 小规模问题 的计算结果 没有可行结果
  • 大规模问题的结果 由 小规模问题 的计算结果 可行方案总数

小规模问题的 结果 存放在 一维数组 f[i] 或者 二维数组 f[i][j] 中 ;

4、动态规划答案 Answer

动态规划 的 答案 Answer , 与 递归的调用 对应 ;

动态规划 方程 执行后 , 得到 一堆 小规模问题的计算结果 , 小规模问题的 结果 存放在 一维数组 f[i] 或者 二维数组 f[i][j] 中 ;

  • 大规模问题的结果 由 小规模问题 的计算结果 相加
  • 大规模问题的结果 由 小规模问题 的计算结果 取最大值
  • 大规模问题的结果 由 小规模问题 的计算结果 取最小值
  • 大规模问题的结果 由 小规模问题 的计算结果 必须全部可行
  • 大规模问题的结果 由 小规模问题 的计算结果 只要有一个可行即可
  • 大规模问题的结果 由 小规模问题 的计算结果 没有可行结果
  • 大规模问题的结果 由 小规模问题 的计算结果 可行方案总数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、动态规划四要素
    • 1、动态规划状态 State
      • 2、动态规划初始化 Initialize
        • 3、动态规划方程 Function
          • 4、动态规划答案 Answer
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档