Cover Inequalities for Knapsack-Type Constraints

Introduces knapsack constraints over 0-1 variables, the notion of a cover, the corresponding cover inequality, and the strengthening obtained by restricting to minimal covers.

Step 1 of 157%

Tutorial

Knapsack Constraints and Covers

A knapsack constraint is a single linear inequality on binary variables of the form

j=1najxjb,\sum_{j=1}^n a_j x_j \leq b,

where aj>0a_j > 0, b>0b > 0, and each xj{0,1}x_j \in \{0,1\}. The name comes from the 0-1 knapsack problem: aja_j is the weight of item jj, bb is the capacity, and xjx_j indicates whether item jj is packed.

A cover for this constraint is a subset C{1,2,,n}C \subseteq \{1, 2, \ldots, n\} whose total weight exceeds the capacity:

jCaj>b.\sum_{j \in C} a_j > b.

In words, CC is a cover if packing every item in CC would overflow the knapsack — so no feasible 0-1 solution can have xj=1x_j = 1 for every jCj \in C.

For example, consider the constraint 3x1+4x2+5x3+6x493x_1 + 4x_2 + 5x_3 + 6x_4 \leq 9. The set C={2,3,4}C = \{2,3,4\} is a cover, since

a2+a3+a4=4+5+6=15>9.a_2 + a_3 + a_4 = 4 + 5 + 6 = 15 > 9.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle