Dynamic Programming21 sections · 916 units
Open in Course

Knapsack 2 - Walkthrough

Value-based DP trace

Let's trace value-based Knapsack with items [(w=10,v=1),(w=20,v=2),(w=30,v=3)][(w=10, v=1), (w=20, v=2), (w=30, v=3)] and capacity W=50W=50. The DP is dp[v]dp[v] = minimum weight to achieve value vv. Start with dp[0]=0dp[0]=0, all others == \infty. After item 1 (v=1,w=10v=1, w=10): dp[1]=10dp[1]=10. After item 2 (v=2,w=20v=2, w=20): dp[2]=20dp[2]=20, dp[3]=30dp[3]=30. After item 3 (v=3,v=3, w=30=30): dp[3]=min(30,30)=30dp[3]=\min(30, 30)=30, dp[4]=40dp[4]=40, dp[5]=50dp[5]=50, dp[6]=60dp[6]=60.

Answer: the maximum vv where dp[v]50dp[v] \leq 50 is v=5v=5 (weight 5050). We took items 2 and 3.