On Thu, Oct 20, 2011 at 1:09 AM, Michael Hennebry
<address@hidden> wrote:
On Wed, 19 Oct 2011, Kasper Tordrup wrote:
s.t. phase{u in U, j in 1..3}: sum{s in S} ((ps[s] * y[s,j,u]) / o[s,u]) =
d[j,u];
But since division with o[s,u] is not linear I can't do that.
So can anyone explain how one could make the constraint linear?
set S;
set U;
param ps {s in S}, integer, > 0;
var y {s in S, j in 1..3, u in U}, binary;
var o {s in S, u in U}, integer, >= 0;
var d {j in 1..3, u in U}, integer, >= 0;
It took me a while to analyze Xypron's solution.
It works if you make the change:
s.t. c{u in U, j in 1..3, s in S}: sum{o in O} y[s,j,u,o] <= 1;
The original y[s,j,u] is allowed to be zero.
--
Michael address@hidden
"Pessimist: The glass is half empty.
Optimist: The glass is half full.
Engineer: The glass is twice as big as it needs to be."