Knapsack problems and constrained optimization