背包问题
想去的远方
做一个自由又自律的人,靠势必实现的决心认真地活着!
展开
-
背包问题问法的变化
前言:以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。例如,求解最多可以放多少件物品或者最多可以装满多少背包的空间。这都可以根据具体问题利用前面的方程求出所有状态的值(f数组)之后得到。还有,如果要求的是“总价值...原创 2020-02-27 23:39:43 · 324 阅读 · 0 评论 -
泛化物品
一、定义考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。一个费用为c价值为w的...原创 2020-02-27 22:02:25 · 254 阅读 · 0 评论 -
有依赖的背包问题
问题这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。一、算法这里将不依赖于别的物品的物品称为“主件”,依赖于某主件的物品称为“附件”。由这个问题的简化条件可知所有的物品由若干主件和依赖于每个主件的一个附件集合组成。按...原创 2020-02-27 21:55:47 · 1575 阅读 · 0 评论 -
分组的背包问题
问题有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。一、算法这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有:...原创 2020-02-26 23:51:27 · 227 阅读 · 0 评论 -
二维费用的背包问题
问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(例如:背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[i]。一、算法费用加了一维,只需状态也加...原创 2020-02-26 23:23:45 · 259 阅读 · 0 评论 -
混合三种背包问题
混合三种背包问题问题:如果将 01背包问题、完全背包问题、多重背包问题混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?一、背包与完全背包的混合考虑到在 01背包问题 和 完全背包问题 中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那...原创 2020-02-26 17:29:27 · 529 阅读 · 0 评论 -
多重背包问题(动态规划)
多重背包问题题目:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。一、基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i...原创 2020-02-26 00:18:10 · 8219 阅读 · 3 评论 -
完全背包问题(动态规划)
完全背包问题题目:有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。第 i 种物品的费用是 c[i],价值是 w[i] 。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。一、验证动态规划求解的可行性这个问题可以不可以像01背包问题一样使用动态规划来求解呢?来证明一下即可。首先,先用反证法证明最优化原理:假设完全背包...原创 2020-02-25 23:41:42 · 5889 阅读 · 13 评论 -
01背包问题(动态规划)
动态规划有关的理论知识一、最优化原理最优化原理指的最优策略具有这样的性质:不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简单来说就是一个最优策略的子策略也是必须是最优的,而所有子问题的局部最优解将导致整个问题的全局最优。如果一个问题能满足最优化原理,就称其具有最优子结构性质。这是判断问题能否使用动态规划解决的先决条件,如果一个问题不能满足最优化...原创 2020-02-24 23:55:34 · 8213 阅读 · 1 评论