Dynamic programming algorithms for the Zero-One Knapsack Problem

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.ZusammenfassungEs 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.