Linear constraints over Boolean variables
[Using integer variables and constraints]
Functions | |
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() |
Detailed Description
All variants for linear constraints over Boolean variables share the following properties:
- Bounds consistency (over the real numbers) is supported for all constraints (actually, for disequlities always domain consistency is used as it is cheaper).
- Variables occurring multiply in the argument arrays are replaced by a single occurrence: for example,
becomes
.
- If in the above simplification the value for
(or for
and
) exceeds the limits for integers as defined in Int::Limits, an exception of type Int::OutOfLimits is thrown.
- Assume the constraint
. If
exceeds the limits for integers as defined in Int::Limits, an exception of type Int::OutOfLimits is thrown.
- In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).
Function Documentation
void Gecode::linear | ( | Home | home, | |
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
int | c, | |||
IntConLevel | icl | |||
) |
Post propagator for .
void Gecode::linear | ( | Home | home, | |
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
int | c, | |||
Reify | r, | |||
IntConLevel | icl | |||
) |
Post propagator for .
void Gecode::linear | ( | Home | home, | |
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
IntVar | y, | |||
IntConLevel | icl | |||
) |
Post propagator for .
void Gecode::linear | ( | Home | home, | |
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
IntVar | y, | |||
Reify | r, | |||
IntConLevel | icl | |||
) |
Post propagator for .
void Gecode::linear | ( | Home | home, | |
const IntArgs & | a, | |||
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
int | c, | |||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
void Gecode::linear | ( | Home | home, | |
const IntArgs & | a, | |||
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
int | c, | |||
Reify | r, | |||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
void Gecode::linear | ( | Home | home, | |
const IntArgs & | a, | |||
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
IntVar | y, | |||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
void Gecode::linear | ( | Home | home, | |
const IntArgs & | a, | |||
const BoolVarArgs & | x, | |||
IntRelType | irt, | |||
IntVar | y, | |||
Reify | r, | |||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.