DP问题的核心即确定动态转移方程。

(1)寻找变量,确定子问题。DP表一般为二维,故需要两个变量。

(2)寻找总问题与子问题迭代关系,确定中间值、迭代值

例1:

有5个物品,其重量分别是{2, 2, 6, 5, 4},价值分别为{6, 3, 5, 4, 6},背包的容量为10,计算背包所能装入物品的最大价值。

(1)寻找变量

在这个问题中,每个物品所对应的重量与价值是确定的。故将物品数量与可分配容量作为变量。

总问题转化为在前5件物品中挑选容量不超过10的物品,使价值最大。

子问题转化为在前件物品中挑选容量不超过的物品,使价值最大。

(2)迭代关系

状态值:最大价值

DP表中状态值一般包含两种情形:当前问题仍保留前一个状态值作最优解;通过中间值更新当前问题的最优解。通过第二种情形可以确定所有子问题的最优解。

中间值:更新当前问题的最优解时,需要对前一个状态值累加中间值。背包问题的中间值就是更新最优解时加入物品的价值。

存在两种情况:

(1)如果第i个物品没有装入背包,则背包中物品的价值就等于把前i-1个物品装入容量为j的背包中所取得的价值。而第一种情况又可以细分为以下两种情况

① 背包可分配容量不够

② 可以加入背包,但加入后的总价值低于不加入时只考虑前i-1个物品的总价值,即不加入此物品可以更好的分配其他物品从而获得最优解。

(2)如果把第i个物品装入背包,则背包中物品的价值等于把前i-1个物品装入容量为j-wi的背包中的价值加上第i个物品的价值vi;

动态规划——状态转移方程相关推荐

  1. 动态规划-状态转移方程练习

    1.给定一个数组penny表示可用的零钱都有哪些面值,再给定一个整数n表示penny的长度,再给定一个整数m表示需要换零钱的整钱面值,输出换钱的方案有几种. 样例: [1,2,4],3,3 返回:2 ...

  2. 背包问题与动态规划状态转移方程1

    阿福是一名经验丰富的大盗.趁着月黑风高,阿福打算今晚洗劫一条街上的店铺. 这条街上一共有 N 家店铺,每家店中都有一些现金.阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动 ...

  3. c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周三算法与数据结构专题的第12篇文章,动态规划之零一背包问题. 在之前的文章当中,我们一起探讨了二分.贪心.排序和搜索算法,今天我们来 ...

  4. 运筹学状态转移方程例子_如何确定动态规划的转移方程

    先观察最后一个状态 比如 LintCode 114 ,题意是从一个二维数组的左上角走到右下角共有多少种不同的路径.且每次只能向下或者向右走一步,最后一个状态就是右下角 2. 观察到达最后一个状态的前面 ...

  5. 运筹学状态转移方程例子_动态规划 Dynamic Programming

    从运筹学和算法的角度综合介绍动态规划 规划论 Mathematical Programming / Mathematical Optimization In mathematics, computer ...

  6. 【C++】动态规划之状态转移方程(单串)

    目录 一.单串 最长递增子序列(依赖O(n)个子问题) 300. 最长递增子序列 673. 最长递增子序列的个数 最大子数组和(依赖O(1)个子问题,可以用滚动数组优化空间复杂度) 53.最大子数组和 ...

  7. 动态规划(一)一一状态定义和状态转移方程

    动态规划真让人看得头疼,这只是一种思想,并没有一定的解题规律,当问题出现的时候,对于不太熟悉动态规划的人来说,确实有点难以想到,一般都是采用暴力求法.这里贴一个知乎链接,我觉得动态规划讲的还挺好的,什 ...

  8. 动态规划-如何推导出状态转移方程?

    今天学习了<程序员的数据基础课>中的动态规划小节.如果你觉得这个课程对你有启发,请通过 分享一个IT专属的数学课,让这个冬天不太冷 下方的链接购买,加我微信 somenzz,返你 12 元 ...

  9. 动态规划总结以及状态转移方程的推导(一)

    动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程. 动态规划算法题如今很常见,通常用在求最优解问题上.DP作为求最优化的算法为什么会快?我们可以这 ...

  10. 动态规划学习笔记 // /经典问题/状态表示/状态转移方程

    因为网络原因,图片以及部分经典问题没有上传成功,详见PDF. 首先要做的是--写出状态表示和状态转移方程,有可能会引入k,即对于子问题的界定.--状态值dp[][]要和题目所求内容的要求符合! 子问题 ...

最新文章

  1. 无意中发现的,自己看吧
  2. C# Jpush 极光推送消息推送
  3. 要比惨吗?看看这个女人
  4. MySQL count(1) , count(*), count(列名) 的异同
  5. idea报“Usage of API documented as @since 1.7”这一问题的解决方法
  6. [转]四种π型RC滤波电路
  7. 写出杨辉三角_认识杨辉三角
  8. 编程时程序无错却崩溃_程序员极度崩溃的 60 个瞬间,看到哪一个你哭了?
  9. 汇编debug与masm命令
  10. xp 无法运行 php.exe,【xpexe文件不能执行】xp exe文件打不开_xp系统exe文件打不开-系统城...
  11. 【To Do!】程序员面试金典——18.8子串判断
  12. 分解得到的时频域特征_AI大语音(四)| MFCC特征提取(深度解析)
  13. 基于HTML仿华为手机网站电商项目的设计与实现
  14. android退出中国,曾经的安卓机皇宣布关闭中国社区,彻底放弃手机业务了?
  15. 项目上线工作流程梳理
  16. 同步异步数据采集卡参数选择
  17. IndexError: Target 25 is out of bounds.
  18. 阿里云产品试用更新,产品组合试用装更划算,快来免费上云吧
  19. window——生成ssh密钥
  20. 手机蓝牙音响音质测试软件,多款蓝牙音箱对比评测 | 声音性能及产品硬素质对比评测_什么值得买...

热门文章

  1. 安卓dj专业打碟机软件_djay Pro 2 for mac(专业DJ打碟软件)
  2. Kali暴力破解Wifi密码完整步骤(学习记录)
  3. 设计模式-模板方法模式-以简历模板为例
  4. ibm arm-linux,CentOS Linux 7.5 (build 1804) 现可用于IBM POWER9体系结构
  5. IntelliJ IDEA 2017完全破解方法
  6. 三款免费的直播推流软件介绍
  7. 软件测试——测试分类及测试工具的简介
  8. 胡小羊的前端专栏(1期)
  9. OSEK network management
  10. 泛微E8、E9二次开发、泛微开发获取流程文档主、明细表单值,提供泛微ecology8二次开发完整项目下载,泛微把流程文档内容推送HR、ERP、SAP操作,泛微与ERP、SAP、HR集成