动态规划算法思想及其步骤
动态规划算法思想及其步骤 动态规划是一种非常重要的算法思想,它的核心是将问题分解成多个子问题,然后通过解决这些子问题来解决整个问题。动态规划的思想是基于两个基本性质:最优子结构和子问题重叠性质。 最优子结构性质指问题的最优解包含了子问题的最优解,而子问题重叠性质指问题具有递归结构,子问题可能会被重复解决多次。动态规划通过记录已解决的问题的结果来避免重复解决相同的问题,从而提高算法的效率。 在动态规划中,状态表示是非常重要的一步,它决定了问题是否能够使用动态规划方法解决。状态表示是对问题的描述,它必须满足两个要求:正确描述子问题和描述的子问题满足最优子结构性质。 在状态表示中,我们需要选择合适的状态表示方法,以便正确地描述子问题。状态表示的选择会直接影响算法的效率和正确性。例如,在问题一中,我们可以使用一元组(X)或二元组(X,Y)来描述问题,但只有二元组(X,Y)能够满足最优子结构性质,从而使得动态规划方法可以应用。 在问题二中,我们需要将小岛划分为三角形区域,以便进行土地垦荒。我们可以使用多边形的自然特征来描述小岛,但需要选择合适的状态表示方法,以便正确地描述子问题。 动态规划是一种非常重要的算法思想,它可以解决很多复杂的问题。但是,动态规划的应用需要满足两个基本性质:最优子结构和子问题重叠性质。状态表示是动态规划的核心,选择合适的状态表示方法是非常重要的。 动态规划的步骤可以总结如下: 1.问题描述:描述问题的子结构和最优子结构性质。 2.状态表示:选择合适的状态表示方法,以便正确地描述子问题。 3.状态转移方程:根据状态表示,建立状态转移方程,以便计算问题的最优解。 4.求解问题:根据状态转移方程,求解问题的最优解。 动态规划是一种非常重要的算法思想,它可以解决很多复杂的问题。但是,动态规划的应用需要满足两个基本性质:最优子结构和子问题重叠性质。选择合适的状态表示方法是非常重要的,以便正确地描述子问题。
- city_walker2019-11-29感觉写得不是容易理解。
- 熊熊明2014-06-11全局优化算法,动态规划是较好的一种。值得学习
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之83-remove-duplicates-from-sorted-list.c
- C语言-leetcode题解之79-word-search.c
- C语言-leetcode题解之78-subsets.c
- C语言-leetcode题解之75-sort-colors.c
- C语言-leetcode题解之74-search-a-2d-matrix.c
- C语言-leetcode题解之73-set-matrix-zeroes.c
- 树莓派物联网智能家居基础教程
- YOLOv5深度学习目标检测基础教程
- (源码)基于Arduino和Nextion的HMI人机界面系统.zip
- (源码)基于 JavaFX 和 MySQL 的影院管理系统.zip