Knapsack problem

related topics
{math, number, function}
{rate, high, increase}
{company, market, business}

The knapsack problem or rucksack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. It derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most useful items.

The problem often arises in resource allocation with financial constraints. A similar problem also appears in combinatorics, complexity theory, cryptography and applied mathematics.

The decision problem form of the knapsack problem is the question "can a value of at least V be achieved without exceeding the weight W?"



In the following, we have n kinds of items, 1 through n. Each kind of item i has a value vi and a weight wi. We usually assume that all values and weights are nonnegative. To simplify the representation, we can also assume that the items are listed in increasing order of weight. The maximum weight that we can carry in the bag is W.

The most common formulation of the problem is the 0-1 knapsack problem, which restricts the number xi of copies of each kind of item to zero or one. Mathematically the 0-1-knapsack problem can be formulated as:

  • maximize \qquad \sum_{i=1}^n v_ix_i
  • subject to \qquad \sum_{i=1}^n w_ix_i \leqslant W, \quad \quad x_i \in \{0,1\}

Full article ▸

related documents
Net (mathematics)
Greatest common divisor
Binomial theorem
Polish notation
NP (complexity)
Direct product
Empty set
Affine transformation
Selection sort
Grover's algorithm
Ordered pair
Partially ordered set
Fundamental theorem of arithmetic
Graph theory
Normal space
Cyclic group
Delaunay triangulation
Pell's equation
A* search algorithm
Topological vector space
Naive Bayes classifier
Sheffer stroke
Banach space
Universal quantification
Minimum spanning tree
Brute force attack
Free group