Linear constraints
[Using finite domain integers]
Collaboration diagram for Linear constraints:
|
Detailed Description
All variants for linear constraints 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). Domain-consistency is supported for all non-reified constraint. As bounds-consistency for inequalities coincides with domain-consistency, the only real variation is for linear equations). Domain-consistent linear equations are exponential, so use with care!
- 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 Limits::Int, an exception of type Int::NumericalOverflow is thrown. - Assume the constraint
. If
exceeds the limits for doubles as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown. - In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).
Functions | |
| void | Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const BoolVarArgs &x, IntRelType r, int c, IntConLevel=ICL_DEF) |
Post propagator for . | |
| void | Gecode::linear (Space *home, const BoolVarArgs &x, IntRelType r, IntVar y, IntConLevel=ICL_DEF) |
Post propagator for . | |
Function Documentation
| void Gecode::linear | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| int | c, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
| void Gecode::linear | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| IntVar | y, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
| void Gecode::linear | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| int | c, | |||
| BoolVar | b, | |||
| IntConLevel | icl = ICL_DEF | |||
| ) |
| void Gecode::linear | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| IntVar | y, | |||
| BoolVar | b, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
| void Gecode::linear | ( | Space * | home, | |
| const IntArgs & | a, | |||
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| int | c, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
Post propagator for
.
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
| void Gecode::linear | ( | Space * | home, | |
| const IntArgs & | a, | |||
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| IntVar | y, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
Post propagator for
.
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
| void Gecode::linear | ( | Space * | home, | |
| const IntArgs & | a, | |||
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| int | c, | |||
| BoolVar | b, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
Post propagator for
.
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
| void Gecode::linear | ( | Space * | home, | |
| const IntArgs & | a, | |||
| const IntVarArgs & | x, | |||
| IntRelType | r, | |||
| IntVar | y, | |||
| BoolVar | b, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
Post propagator for
.
Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.
| void Gecode::linear | ( | Space * | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| int | c, | |||
| IntConLevel | = ICL_DEF | |||
| ) |
| void Gecode::linear | ( | Space * | home, | |
| const BoolVarArgs & | x, | |||
| IntRelType | r, | |||
| IntVar | y, | |||
| IntConLevel | = ICL_DEF | |||
| ) |

.
.
.
.