update knapsack