Intro to the knapsack problem
Good overview
http://en.wikipedia.org/wiki/Knapsack_problem