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
> [email protected]
> https://lists.gnu.org/mailman/listinfo/help-glpk
>
_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk