算法笔记八之0/1背包问题实例分析(动态规划)【应试版】

提示:本文章不含代码,纯应试解题~(中国地质大学(武汉)研究生算法考试题目)


前言

背包问题是一种组合优化的问题,它在计算机科学和运筹学中非常常见。问题的基本形式是:给定一组物品,每个物品都有一个重量和一个价值,确定在不超过背包容量的前提下,所选物品的总价值最大是多少。

说人话就是——想象一下,你去超市购物,你的背包有一定的容量限制,比如说能装10公斤的东西。超市里有很多商品,每种商品都有自己的重量和价格。你的目标是在不超过背包容量的情况下,买的东西总价值最高。

关于背包问题的简要介绍可以参考:算法笔记六之背包问题(简化)【应试版】


提示:以下是本篇文章正文内容

一、0/1背包问题

对于0/1背包问题,可以通过做出变量 x 1 , x 2 , . . . x i x_1,x_2,...x_i x1,x2,...xi的一个决策序列来得到它的解。而对变量 x x x的决策就是决定是取0值还是1值。假定决策这些 x x x的次序为 x n , x n − 1 , . . . , x 1 x_n,x_{n-1},...,x_1 xn,xn1,...,x1。在对 x n x_n xn做出决策后,问题处于下列两种状态之一:背包的剩余容量为 M M M,没产生任何效益;剩余容量为 M − w M-w Mw,效益值增长了 p p p。显然,余下来对 x n − 1 , x n − 2 , . . . , x 1 x_{n-1},x_{n-2},...,x_1 xn1,xn2,...,x1的决策相对于决策 x x x所产生的问题状态应该是最优的,否则 x n , x n − 1 , . . . , x 1 x_n,x_{n-1},...,x_1 xn,xn1,...,x1就不可能是最优决策序列。

如果设 f j ( x ) f_j(x) fj(x) K N A P ( 1 , j , x ) KNAP(1,j,x) KNAP(1,j,x)最优解的值,那么, f n ( M ) f_n(M)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值