为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
背包问题
来自NOCOW
目录 |
[编辑] 简介
背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkel和Hellman提出的。
[编辑] 形式化定义
今为一些函数,Q为一个常数,求出
使得:
最大
[编辑] 使用动态规划技术解决
- 这是最基本的背包问题,每个物品最多只能放一次。
- 第二个基本的背包问题模型,每种物品可以放无限多次。
- 每种物品有一个固定的次数上限
- 将前面三种简单的问题叠加成较复杂的问题
- 一个简单的常见扩展
- 一种题目类型,也是一个有用的模型。下一节的基础。
- 另一种给物品的选取加上限制的方法。
[编辑] 使用搜索技术解决
[编辑] 练习
[编辑] USACO中的背包问题
- Translate:USACO/inflate (基本多重背包)
- Translate:USACO/stamps(对初学者有一定挑战性)
- Translate:USACO/money (基本0-1背包)
- Translate:USACO/nuggets
- Translate:USACO/subset (基本0-1背包)
- Translate:USACO/rockers(另一类有趣的“二维”背包问题)
- Translate:USACO/milk4 (很怪的背包问题问法,较难用纯DP求解)