I have a simple program that helps with purchasing decisions. The problem being solved is how to most profitably select products for a grocery shelf using competing products in different varieties. I'm looking for some pointers on ways to help me solve the following problem:
My program generates sets of data with three values: {price, value, type}. Each data point contains the absolute price for a resource, its expected value, and a classification. Given a maximum budget, say $1,000, I'd like to maximize my expected value. The tricky part is dealing with the constraints. I want to choose a combination of exactly 10 data points spread out among at least three classifications (diversification), but these 10 selections cannot exceed my budget.
Right now I do the obvious thing and pick the best 10 values and begin trading down until I satisfy my constraints (given the size of the data set, this is pretty fast). What are some mathematical principles I should apply to this problem? I'm not looking for an algorithm so much as some equations that would allow me to represent the problem visually on a graph.