问题描述
- 给定 n n n种物品和一背包,物品 i i i的重量是 w i w_{i} wi,其价值为 v i v_{i} vi,背包的容量为 c c c
- 如何选择装入背包中的物品,使得装入背包中物品的总价值最大
形式化描述
- 给定 c > 0 c > 0 c>0, w i > 0 w_{i} > 0 wi>0, v i > 0 ( 1 ≤ i ≤ n ) v_{i} > 0 (1 \leq i \leq n) vi>0(1≤i≤n),找出一个 n n n元 0 − 1 0-1 0−1向量 ( x 1 , x 2 , ⋯ , x n ) (x_{1} , x_{2} , \cdots , x_{n}) (x1,x2,⋯,xn), x i ∈ { 0 , 1 } ( 1 ≤ i ≤ n ) x_{i} \in \set{0 , 1} (1 \leq i \leq n) xi∈{ 0,1}(1≤i≤n),使得 ∑ i = 1 n w i x i ≤ c \displaystyle\sum\limits_{i = 1}^{n}{w_{i} x_{i}} \leq c i=1∑nwixi≤c,而且 ∑ i = 1 n v i x i \displaystyle\sum\limits_{i = 1}^{n}{v_{i} x_{i}} i=1∑nvixi达到最大
- 0 − 1 0-1 0−1背包问题是一个特殊的整数规划问题
max ∑ i = 1 n v i x i { ∑ i = 1 n w i x i ≤ c x i ∈ { 0 , 1 } ( 1 ≤ i ≤ n ) \max\displaystyle\sum\limits_{i = 1}^{n}{v_{i} x_{i}} \kern{2em} \begin{cases} \displaystyle\sum\limits_{i = 1}^{n}{w_{i} x_{i} \leq c} \\ x_{i} \in \set{0 , 1} (1 \leq i \leq n) \end{cases} maxi=1∑nvix