Algorithms for Knapsack Problems

https://doi.org/10.1016/S0304-0208(08)73237-7Get rights and content

Publisher Summary

This chapter presents a great variety of practical problems that are represented by a set of entities, each having an associated value, from which one or more subsets has to be selected in such a way that the sum of the values of the selected entities is maximized and some predefined conditions. The most common condition is obtained by associating a size to each entity and establishing that the sum of the entity sizes in each subset does not exceed some prefixed bound. These problems are generally called knapsack problems, as they recall the situation of a hitch-hiker having to fill up knapsack by selecting from among various possible objects those that provides the maximum comfort. The entities are called as items and their number is indicated by n. The value and size associated with the j-th item are called as profit and weight. The majority of problems are considered as single knapsack problems, where one container must be filled with an optimal subset of items. The chapter reviews both exact and approximate algorithms for the solution of the most important types of knapsack problems. Exact solutions are obtained through branch-and-bound algorithms or dynamic programming, or a combination of the two approaches. The performances of these algorithms are evaluated by computational experiments with randomly generated test problems. Approximate algorithms are of the greedy type or are based on scaling. They are evaluated on the basis of their worst-case performance.

References (81)

  • L.G. Babat

    Linear Functions on the N-dimensional Unit Cube

    Doklady Akademiia Nauk SSSR

    (1975)
  • E. Balas et al.

    An Algorithm for Large Zero-One Knapsack Problems

    Operations Research

    (1980)
  • R.S. Ban et al.

    A Linked List Data Structure for a Binary Knapsack Algorithm

    Research Report CCS

    (1975)
  • R. Bellman et al.

    Applied Dynamic Programming

    (1962)
  • A.V. Cabot

    An Enumeration Algorithm for Knapsack Problems

    Operations Research

    (1970)
  • S.K. Chang et al.

    Algorithmic Solution of the Change-Making Problem

    Journal of ACM

    (1970)
  • S.K. Chang et al.

    Algorithm 397. An Integer Programming Problem

    Communications of ACM

    (1970)
  • L. Chang et al.

    Canonical Coin-Changing and Greedy Solutions,

    Journal of ACM

    (1976)
  • N. Christofides G. Carpaneto A. Mingozzi P. Toth The Loading of Liquids into Tanks〉, Imperial College Research Report...
  • V. Chvatal

    Hard Knapsack Problems

    Operations Research

    (1980)
  • J. Cord

    A Method for Allocating Funds to Investment Projects when Returns are Subject to Uncertainty,

    Management Science

    (1964)
  • G.B. Dantzig

    Discrete Variable Extremum Problems

    Operations Research

    (1957)
  • R.S. Dembo et al.

    A Reduction Algorithm for Knapsack Problems,

    Methods of Operations Research

    (1980)
  • K. Dudzinski S. Walukiewicz 〈Upper Bounds for the 0-1 Knapsack Problem,〉 Report MPD-10-49/84, Systems Research...
  • B. Faaland

    Solution of the Value-Independent Knapsack Problem by Partitioning,

    Operations Research

    (1973)
  • D. Fayard et al.

    Resolution of the 0-1 Knapsack Problem: Comparison of Methods

    Mathematical Programming

    (1975)
  • D. Fayard et al.

    An Algorithm for the Solution of the 0-1 Knapsack Problem

    Computing

    (1982)
  • J.C. Fisk et al.

    A Heuristic Routine for Solving Large Loading Problems

    Naval Research Logistics Quarterly

    (1979)
  • M.R. Garey et al.

    Computers and Intractability:a Guide to the Theory of NP-Completeness

    (1979)
  • R.S. Garfinkel et al.

    Integer Programming

    (1972)
  • G.V. Gens et al.

    Fast Approximation Algorithms for Knapsack Type Problems

  • P.C. Gilmore et al.

    A Linear Programming Approach to the Cutting Stock Problem I

    Operations Research

    (1961)
  • P.C. Gilmore et al.

    A Linear Programming Approach to the Cutting Stock Problem II

    Operations Research

    (1963)
  • P.C. Gilmore et al.

    Multi-Stage Cutting Stock Problems of Two and More Dimensions

    Operations Research

    (1965)
  • P.C. Gilmore et al.

    The Theory and Computation of Knapsack Functions

    Operations Research

    (1966)
  • H. Greenberg et al.

    A Branch Search Algorithm for the Knapsack Problem

    Management Science

    (1970)
  • D.S. Hirshberg et al.

    A Polynomial-Time Algorithm for the Knapsack Problem with Two Variables

    Journal of ACM

    (1976)
  • E. Horowitz et al.

    Computing Partitions with Applications to the Knapsack Problem

    Journal of ACM

    (1974)
  • T.C. Hu

    Integer Programming and Network Flows

    (1969)
  • P.D. Hudson 〈Improving the Branch and Bound Algorithms for the Knapsack Problem〉, Queen's University Research Report,...
  • Cited by (44)

    • Towards scalable and efficient Deep-RL in edge computing: A game-based partition approach

      2022, Journal of Parallel and Distributed Computing
      Citation Excerpt :

      First, this problem is apparently in NP as any solution to its decision form can be validated in polynomial time. Then, we conduct a reduction from MADP to the classical NP-complete knapsack problem (KP) [19,26] in polynomial time, to show the hardness of MADP. For the reduction purposes, we transform the original minimization of MADP into an equivalent maximization goal.

    • Improved Task Allocation in Mobile Crowd Sensing Based on Mobility Prediction and Multi-objective Optimization

      2024, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    View all citing articles on Scopus
    View full text