动态规划的理解

刚刚在看y总讲的二维费用背包再结合了最近看的一些书思考了一下,突然感觉一下子茅塞顿开,就浅浅的谈一下我的看法,大佬不喜勿喷QAQ

状态空间:就好像暴力枚举,把所有可能的情况全部遍历到,而dp就是对状态空间一个合理的遍历,要求不重不漏

按照闫氏dp分析法来看,里面的集合就对应着状态空间,就是令f是个啥

而状态计算,状态转移这个很关键了

通俗的来说就是上一个状态转移到下一个状态的过程,方程式(记住:状态转移是上一层转到这一层!!!这一层的状态空间还需要遍历,还需要分类)

而集合的划分则是现在状态的一个分类(高中数学的分类讨论都做过有木有啊有木有)

拿刚刚看的01背包举例:

现在的一个状态面临啥,面临着对于一个物品选还是不选的问题

状态计算又是个啥,则要在状态转移的基础上去计算(因为dp本质是个记忆化搜索,对于前面的状态都计算过并且记录下来了,可以直接用,这个之前做多重背包应该深有体会吧)

上一层的状态已经知道,那转移就具体分析好了

对于目前的状态分析:(因为就是想知道这一层的状态表示)

不选:前i个物品的重量已经知道,要是不选,状态转移:上一个状态转移到目前的状态,上一个还是i-1,变得只是物品的种类

所以不选的状态表示就是f[i-1][j][k]

选:(DP还要求的式等价变形):

上一个状态要是转移到目前的状态,上一个状态的式子是f[i-1][j-v[i][k-w[i]],转移过来就是上一个+新物品的重量和体积

哈哈,废话有点多,只是为了方便我自己理解

posted @   小志61314  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示