Not really a complete answer, but this is how I would start looking at a model for solving this.
I would start with introducing decision variables:
s(i) = 1 if row i is selected
0 otherwise
w(i) ≥ 0 weight of row i (not sure about the role of the weights)
The objective can look like:
min/max sum( (i,j)|j∈C, s(i)*w(i)*a(i,j) )
Here we could sum over a subset of all columns. a(i,j)
is our data matrix.
The constraints can look like:
s(i)*20 ≤ s(i)*a(i,'x2') ≤ s(i)*40
s(i)*(-.1) ≤ s(i)*a(i,'y') ≤ s(i)*.4
This can be solved with a Mixed-Integer Programming Solver (as long as we keep things linear). The objective looks quadratic right now (s(i)*w(i)
) but that can be linearized or we can use a non-convex MIQP solver.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…