I have the following optimization problem. I want to solve it using a computer solver. But I am not sure which problem class it falls into or which solver to use.
Problem:
There is a set of objects where each object has the following parameters
- id
- price
- output1
- output2
- output3
- role
- group
Usually the number of objects in the list is above 500.
I have to find an optimal subset of 10 items. However the goal is to further select 3 subsets of 7 objects from the selected 10 objects that gives the maximum for sum(output1), sum(outptut2), sum(outptu3) reaspectively. ie the first subset will give the maximum sum for output1 from the selected 10 objects, second one will give the best sum for output2... all selected from the 10 objects we selected earilier
So the requirement is to select the 10 items from 500+ items that will give me the maximum for sum(output1) + sum(output2) + sum(output3) from all possible combinations.
So it looks like an LP inside of LP.
So I want to know what kind of an optimization problem is this? Can it be solved by an LP solver (like CPLEX, LP_SOLVE..)?
I am sorry if the question is not clear. Please ask me for any clarifications.
UPDATE: More precise problem statement
The solver must select the best 10 items and 'best' is defined as follows:
Let S = set of all the items (500+ items)
Let D = a subset of S with count = 10 (which the solver must find out)
Let X = maximum price (an integer)
Let total1 = sum of highest 7 output1s from D
Let total2 = sum of highest 7 output2s from D
Let total3 = sum of highest 7 output3s from D
Let score = total1+total2+total3
The solver must try to maximize score while making sure the sum(price) is below X
Ie there should not be a better combination of 10 items whose price is less than or equal to X which will give a higher score.
The constraints ( implicit in what you've said) of choose 10 items / choose 7 items are integer constraints and they turn the problem into an integer problem.
This looks like a linear problem - your objective function is linear and your constraints are linear. Additionally there are some integer constraints (choosing a set of 10 $= D$, selecting the seven items from that set that maximise your objective subject to the other constraints).
Your question was "what kind of problem is this" --- this is a Mixed Integer Linear Programming problem.
CPLEX will handle this for you. So will LP_SOLVE. Other solvers exist too and you could do a search for MILP solvers.