A unifying survey of the literature related to the knapsack problem; that is, maximize equation image, subject to equation image and xi ⩾ 0, integer; where vi, wi and W are known integers, and wi (i = 1, 2, …, N) and W are positive. Various uses, including those in group theory and in other integer programming algorithms, as well as applications from the literature, are discussed. Dynamic programming, branch and bound, search enumeration, heuristic methods, and other solution techniques are presented. Computational experience, and extensions of the knapsack problem, such as to the multi-dimensional case, are also considered.