DP总结之零:动态规划概述

零、前言

1.三个性质

有必要对动归的三个性质进行一些说明分析,以后的所有题都要贯穿这些思想

(1)相同子问题:

一个大问题分解为若干小问题,小问题与大问题形式上相同(下面例子中用箭头表示了状态的转移关系)

①数字三角形:从某一个点到底边的最大和<=其正下方点到底边的最大和和斜下方点到底边的最大和

②最长上升子序列:以某一个点i为结尾的最长上升子序列<=这个点之前任何一个满足a[j]<=a[i]的j为结尾的最长上升子序列

③爬楼梯:走n步的走法<=走n-1步的走法,走n-2步的走法

(2)最优子结构:

问题是最优的,它的子问题也必须是最优的

感觉蕴含在了相同子问题里面,大问题是求最优解,小问题当然也是求最优解,不过也说明了 有的问题虽然可以将大问题分解为若干相同的小问题,但大问题的最优解不等于若干小问题最优解的堆积,这一点很关键

(3)无后效性:

dp只能用于当前决策与过去状态无关的问题,即过去的决策是否会使得当前的决策受限,当前有的决策不能做或产生其他新决策

①数字三角形:在已知,正下方点到底边的最大和,斜下方点到底边的最大和,的情况下,可以确定该点到底边的最大和,无需考虑走到当前点的路径不同的话会不会导致现在的决策有一些不能做这样的问题

②最长上升子序列:(已知i,j定义的情况下)dp[i]必然会由dp[j]产生,无需考虑dp[j]内部到底有哪些元素,是否会导致a[i]不能选这样的问题

③爬楼梯:已知走n-1步的走法,走n-2步的走法,无需考虑这些走法中某些走法是不是可能导致当前无法走1步或2步这样的问题

2.解题步骤

1.确定状态,注意维度

2.确定状态转移方程,注意无后效性和边界设定

3.确定使用递推还是记忆化搜索来实现(可以递归的一定可以记忆化搜索,但有的只能记忆化搜索)

3.递推和记忆化搜索的问题

1.递推:(自底向上)问的是n状态,从1状态推得;有两种递推的情况,“人人为我”最为普遍,即以前的状态推得当前状态,“我为人人”即用当前更新了的状态更新所有这个状态可以更新到的状态,虽然这样的更新不一定就确定了后面的状态

2.记忆化搜索(递归):(自顶向下)问的是n状态,从n状态搜索需要的子状态,求出子状态并记录;能够只搜索有用的状态,但是,有可能会爆栈,而且不能够优化空间

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值