Abstract
New dynamic programming algorithms for the solution of the Zero-One Knapsack Problem are developed. Original recursive procedures for the computation of the Knapsack Function are presented and the utilization of bounds to eliminate states not leading to optimal solutions is analyzed. The proposed algorithms, according to the nature of the problem to be solved, automatically determine the most suitable procedure to be employed. Extensive computational results showing the efficiency of the new and the most commonly utilized algorithms are given. The results indicate that, for difficult problems, the algorithms proposed are superior to the best branch and bound and dynamic programming methods.
Zusammenfassung
Es werden neue Algorithmen entwickelt, welcher das 0–1-Knapsack-Problem mit dynamischer Optimierung lösen. Für die Berechnung der Knapsack-Funktion werden rekursive Prozeduren vorgelegt, dann wird die Verwendung von Schranken untersucht, mit denen sich Zustände ausscheiden lassen, die nicht zu optimalen Lösungen führen. Die vorgeschlagenen Algorithmen bestimmen automatisch das am besten geeignete Lösungsverfahren. Ausführliche numerische Ergebnisse erlauben es, die neuen Algorithmen mit den gebräuchlichsten bekannten Verfahren zu vergleichen. Die Vergleiche weisen darauf hin, daß die vorgeschlagenen Algorithmen den besten bisher bekannten Ansätzen mit Branch and Bound und dynamischer Optimierung überlegen sind.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Ahrens, J. H., Finke, G.: Merging and sorting applied to the zero-one Knapsack problem. Operations Research23 (1975).
Barr, R. S., Ross, G. T.: A linked list data structure for a binary Knapsack algorithm. Research Report CCS 232, Centre for Cybernetic Studies, University of Texas (1975).
Greenberg, H., Hegerich, R. L.: A branch search algorithm for the Knapsack problem. Management Science16 (1970).
Horowitz, E., Sahni, S.: Computing partitions with applications to the Knapsack problem. J. ACM21 (1974).
Ingargiola, G. P., Korsh, J. F.: A reduction algorithm for zero-one single Knapsack problems. Management Science20 (1973).
Kolesar, P. J.: A branch and bound algorithm for the Knapsack problem. Management Science13 (1967).
Magazine, M., Nemhauser, G., Trotter, L.: When the greedy solution solves a class of Knapsack problems. Operations Research23 (19750.
Martello, S., Toth, P.: An upper bound for ther zero-one Knapsack problem and a branch and bound algorithm. European Journal of Operational Research1 (1977).
Martello, S., Toth, P.: The 0–1 Knapsack problem, in: Combinatorial optimization (Christofides, N., Mingozzi, A., Sandi, C., Toth, P., eds.). London: J. Wiley 1979.
Morin, T. L., Marsten, R. E.: Branch and bound strategies for dynamic programming. Operations Research24 (1976).
Nauss, R. M.: An efficient algorithm for the 0–1 Knapsack problem. Management Science23 (1976).
Toth, P.: A new reduction algorithm for 0–1 Knapsack problems. Presented at ORSA/TIMS Joint National Meeting, Miami (November 1976).
Zoltners, A. A.: A direct descent binary Knapsack algorithm. J. ACM25 (1978).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Toth, P. Dynamic programming algorithms for the Zero-One Knapsack Problem. Computing 25, 29–45 (1980). https://doi.org/10.1007/BF02243880
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02243880