社区
数据结构与算法
帖子详情
如何用动态规划解决无限背包问题?
baodepei1981
2002-10-12 07:31:41
设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为XK,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于XK,而价值的和为最大。
这道背包问题如何用动态规划的方式解??请高手指教,源代码及使用动态规划的原理!
...全文
291
3
打赏
收藏
如何用动态规划解决无限背包问题?
设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为XK,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于XK,而价值的和为最大。 这道背包问题如何用动态规划的方式解??请高手指教,源代码及使用动态规划的原理!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pebbleshx2002
2002-11-10
打赏
举报
回复
背包问题,用interger programming -- branch and bound
LeeMaRS
2002-10-12
打赏
举报
回复
有一个负重能力为m的背包和n件物品, 第i种物品的价值为v[i], 重量为w[i].
对于一个负重能力为m的背包, 如果我们选择装入第i种物品, 那么原背包问题就转化为m-w[i]的子背包问题. 原背包问题的最优值包含这个子背包问题的最优值.若我们用背包的负重能力来划分状态, 令状态变量s[k]表示负重能力为k的背包和n种物品的背包问题中选择物品价值之和的最大值, 那么s[m]值只取决于s[k](k<=m). 因此具有最优子结构.
状态转移方程为:
max{ s[k - w[i]] + v[i] } (其中1<=i<=n, 且k-w[i]>=0)
s[k]=
0 (否则)
renwanly
2002-10-12
打赏
举报
回复
关注
贪心法
背包问题
用贪心法
解决
背包问题
,背包装的物品可以
无限
分割
动态规划
Matlab实现-KnapsackProblem.zip
#
动态规划
Matlab实现 * 以
背包问题
为例: *
动态规划
只考虑拿走整件商品或者不拿,处理不了只拿一部分的问题 >* 毕竟
动态规划
的表格刻度不能
无限
化小,否则将导致表格太大 >* 贪婪算法可以轻松处理这种只拿一部分的问题 *
动态规划
要求每个子问题是离散的,且不能互相依赖 >* 一个子问题取值受其他子问题影响的情况,
动态规划
解决
不了 * 显然最优解时背包可能存在剩余空间却装不下其他东西 ## 可
解决
问题 >*
背包问题
>* 旅游行程最优化问题
【
动态规划
秘籍】
背包问题
和树形DP详解
通过本课程学习,全面系统掌握
动态规划
算法
解决
实际问题,精通
动态规划
算法不是梦。无论是对算法感兴趣的读者,参加算法竞赛的学生,还是想扎实内功,进入行业领先企业的求职者,想提升技术的在职人员,均可参加学习...
背包问题
9讲PDF详细说明
背包问题
(Knapsack Problem)是一种组合优化的NP完全问题。该问题可以被描述为:给定一组物品,每种物品都有自己的重量和价值,在限定的总重量内,如何选择,才能使得物品的总价值最大。问题的名字来源于如何选择最合适的物品放入一个固定容量的背包中。
背包问题
具有多种变体和扩展,包括但不限于: 0-1
背包问题
:每种物品只有一件,可以选择放或不放。 完全
背包问题
:每种物品有
无限
件,可以选择放多件。 多重
背包问题
:每种物品有有限件。 这些问题在计算机科学、运筹学和经济学等领域中有广泛的应用。
解决
背包问题
的常见方法包括
动态规划
、回溯法、分支限界法等。在实际应用中,
背包问题
也常用于资源分配、金融投资、决策分析等场景。 值得注意的是,由于
背包问题
是NP完全的,对于某些特定情况,可能无法找到多项式时间复杂度的算法来求得最优解。因此,在实际应用中,可能会采用近似算法或启发式算法来寻找接近最优的解。
leetcode浇花-LeetCode:LeetCode培训将于2018年6月21日开始
leetcode 浇花 :large_orange_diamond: LeetCode 训练练习网页供复习 为每个问题提供
解决
方案,包括不同的语言和不同的想法 挑战正在进行 (300/350) 100个问题
解决
:hollow_red_circle:
解决
了200个问题 :hollow_red_circle:
解决
了250个问题 :hollow_red_circle:
解决
了300个问题 :hollow_red_circle: 350个问题
解决
:cross_mark:
解决
了400个问题 :cross_mark: :pencil: 每周日上午 11:30 ~ 下午 1:00(1.5 小时) 算法专题 BFS 分布式文件系统 二叉树路径总和(简单) 求和的所有路径(中) 路径数总和(中) 具有给定序列的路径(中) 计算总和的路径(中等) 回溯 重复的子集(简单) 通过更改大小写的字符串排列(中) 平衡括号(硬) 唯一通用缩写(硬) (简单的) (中等的) 联合查找 二分查找 与顺序无关的二进制搜索(简单) 数字的上限(中) 下一封信(中) 数量范围(中) 在已排序的
无限
数组中搜索(中) 最小差分元素(中) 双音阵列最大值(简单) 贪心算法
动态规划
0/1 背包(中) 等子集和分区(中) 子集总和(中) 最小子集和差(硬) 滑动窗口 大小为 K 的最大和子数组(简单) 给定总和的最小子数组(简单) 具有 K 个
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章