Optimizing Knapsack Problem Solutions through Dynamic Programming
40 likes | 78 Vues
Explore how dynamic programming revisits knapsack problems, maximizing benefits within weight constraints. Learn the recurrence equations for optimal solutions and purging dominated or exceeded solutions.
Optimizing Knapsack Problem Solutions through Dynamic Programming
E N D
Presentation Transcript
ECE 665Spring 2005Computer Algorithms Dynamic Programming Knapsack revisited
Recurrence equation • Problem statement: max i pi, s.to: i wi M = knapsack volume pi = benefit of item i wi = weight of item i • Optimum solution at decision variable xn Fn(M) = max{fn-1(M), fn-1(M-wn)+pn)
Recurrence equation • For arbitrary fi(X): fi(X) = max{ fi-1(X), fi-1(X-wi)+pi } If item i is not added. If item i is added (with benefit cost pi, contributing weight wi) • We can represent solution space conveniently in terms of pairs (wi, pi)
(P,W) =(ipi, iwi) (0,0) X1=1 X3=0 X1=0 X2=0 X2=0 X2=1 X2=1 (0,0) (0,0) (1,2) (0,0) (2,3) (3,5) (1,2) X3=0 X3=1 X3=0 X3=1 X3=1 X3=1 X3=0 (5,4) (2,3) (7,7) (1,2) (6,6) (3,5) (8,9) Knapsack Solution space (pi,wi) M=6 • Purge solution (Pj, Wj)dominated by (Pk, Wk)if Pj Pkand Wj Wk • Delete solutions with W > M (knapsack volume exceeded