Knapsack problem - solver using combinations of dynamic programming/branch and bound