Large-size MILP problems; Complex constraints

16 views
Skip to first unread message

amiruw

unread,
Nov 17, 2010, 1:37:21 PM11/17/10
to AMPL Modeling Language
Hello,

I want a continuous variable (P) in my model to be zero or between a
predefined lower and upper bounds (Pmin & Pmax). One straightforward
approach is to define a binary variable (b) by adding the following
constraints:

subject to C1:
P - Pmin*b >= 0;
subject to C2:
P - Pmax*b <= 0;

This approach works great for relatively small-size problems; however,
for large-size problems, e.g., when P has several indices, the
computational time drastically increases.

For example, with P{i in I, t in T}, Pmin{i in I, t in T} and Pmax{i
in I, t in T}, we need to have the following constraints:

subject to C1{i in I, t in T}:
P[i,t] - Pmin[i,t]*b[i,t] >= 0;
subject to C2{i in I, t in T}:
P[i,t] - Pmax[i,t]*b[i,t] <= 0;

With 10-elements I and 120-elements T, we should have 1200 new binary
variables by adding 2400 constraints to implement that feature. I am
wondering if there are some approximate methods or if we can implement
this in a more efficient way for large-size problems. I already heard
about semi-continuous variables but I don't know exactly if that fits
my problem or even how to implement this in AMPL. Any suggestions will
be highly appreciated.

Regards,

Amiruw

Paul

unread,
Nov 17, 2010, 2:19:17 PM11/17/10
to AMPL Modeling Language
What you have in mind are in fact semicontinuous variables. Whether
the problem will solver faster with semicontinuous variables than with
binaries is hard to say.

Other possibilities (which are solver-dependent, and AFAIK cannot be
implemented in AMPL) are to include the binary variables but enter the
extra constraints as "lazy constraints" (kept in a pool and added to
the active set only when violated), or to include the binary variables
but not the extra constraints and then use a callback to add
constraints as needed (i.e., add C1[i,t] and C2[i,t] only if a
"solution" is found where 0 < P[i,t] < Pmin[i,t]). Again, your
mileage may vary.

/Paul
Reply all
Reply to author
Forward
0 new messages