To express such a "disjunctive" constraint of this kind for current solvers,
you need to define a zero-one (or "binary") variable and to create two
constraints. The first constraint is equivalent to c1 when the binary
variable is 1, but is trivially satisfied when the binary variable is 0; the
second constraint is equivalent to c2 when the binary variable is 0, but is
trivially satisfied when the binary variable is 1.
The details depend on the specifics of your constraints. But as a simple
example if you want to specify
param a >= 0;
param b >= 0;
var x >= 0;
var y >= 0;
subj to eitheror: x >= a or y >= b;
then you can write
var u binary;
subj to eitherx: x >= a * u;
subj to eithery: y >= b * (1-u);
For other kinds of inequalities the formulation is a little different, but
it's not hard to find once you appreciate the principle involved.
> --
>
> You received this message because you are subscribed to the Google Groups
> "AMPL Modeling Language" group.
> To post to this group, send email to
am...@googlegroups.com.
> To unsubscribe from this group, send email to
>
ampl+uns...@googlegroups.com.
> For more options, visit this group at
>
http://groups.google.com/group/ampl?hl=.
>