Knapsack Problem
# Knapsack Problem
Given n items where the $i^{th}$ item has a weight $w_i$ and value $v_i$
Find the largest total value of items that fits in a knapsack of capacity $C$.
# Problem Formulation
Let $P(C, j)$ be the max profit by selecting a subset of j objects with knapsack capacity C.
Base case: Capacity or number of items is 0 $$P(C,0)=P(0,j)=0 $$ Otherwise, the solution to a knapsack of capacity C can be found using the solutions to the subproblems of capacity $C-w_i$ for items $i=1 \to n$. For each item, we can choose either include or not include it in the knapsack: $$P(C,j)=max(P(C,j-i), P(C-w_j,j-1)+v_j) $$
# Strategy
Profit table:
# Pseudocode
# Greedy Heuristics
Maximizing by the profit per weight:
# Exercises
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 | 50 |
4 | 0 | 0 | 40 | 40 | 50 |
5 | 0 | 10 | 40 | 40 | 50 |
6 | 0 | 10 | 40 | 40 | 50 |
7 | 0 | 10 | 40 | 40 | 90 |
8 | 0 | 10 | 40 | 40 | 90 |
9 | 0 | 10 | 50 | 50 | 90 |
10 | 0 | 10 | 50 | 70 | 90 |