On 04/25/2018 03:15 AM, Matt wrote:
> Hi all,
> 
> I'm trying to model a problem but it turned out to be non linear.
> 
> A simplified version of the model is written below. Basically it
> averages the weighted value of all enabled points, provided there are
> exactly M enabled points.
> 
> *max sum(i) { enabled[i] * value[i] * weight[i] } / sum(i) { enabled[i]
> * weight[i] }*
> *s.t. sum (i) enabled[i] = M

If there are no further constraints there is no need for a MIP solver.
The problem can be solved by sorting by value and weight.

If the number of binaries is small (<= 20) you will be able to iterate
over all permutations with sum(enabled) = M sorted by descending
objective and to take the first combination satisfying all constraints.

Regards

Heinrich

> *
> 
> - *value*is a vector of decimal numbers in [0, 1] (precomputed)
> - *weight*is a vector of decimal numbers in [0, 1] (precomputed)
> - *enabled*is a vector of either 0 or 1 (decision variable)
> 
> The model is very simple so I'm guessing there probably is a way to
> linearize it or some workaround I'm not aware of.
> 
> Thanks,
> Matt
> 
> 
> _______________________________________________
> Help-glpk mailing list
> Help-glpk@gnu.org
> https://lists.gnu.org/mailman/listinfo/help-glpk
> 


_______________________________________________
Help-glpk mailing list
Help-glpk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to