Gecode::Int::GCC Namespace Reference
Detailed Description
Global cardinality propagators.
- Note:
- The global cardinality propagator with fixed cardinalities does not not support sharing!
Classes | |
class | SharingTest |
Sharing test for the bounds-consistent global cardinality propagator. More... | |
class | SharingTest< IntView, OccurBndsView > |
Specialization of class SharingTest for the case of fixed cardinalities using IntView as View1 and OccurBndsView as View2. More... | |
class | UnReachable |
Class for computing unreachable values in the value GCC propagator. More... | |
class | Rank |
Maps domain bounds to their position in hall[].bounds. More... | |
class | MaxInc |
Compares two indices i, j of two views ![]() ![]() | |
class | MinInc |
Compares two indices i, j of two views ![]() ![]() | |
class | PartialSum |
Partial sum structure for constant time computation of the maximal capacity of an interval. More... | |
class | HallInfo |
Container class provding information about the Hall structure of the problem variables. More... | |
class | VVGNode |
Base class for nodes in the variable-value-graph. More... | |
class | VarNode |
Variable Node More... | |
class | ValNode |
Value node. More... | |
class | Edge |
Class for edges ![]() | |
class | VarValGraph |
Variable-value-graph used during propagation. More... | |
class | OccurBndsView |
Tuple conataining the lower and upper cardinality bounds. More... | |
class | CardView |
Card integer view. More... | |
class | Bnd |
Bounds-consistent global cardinality propagator. More... | |
class | BndImp |
Implementation of the bounds consistent global cardinality propagator. More... | |
class | Dom |
Domain-consistent global cardinality propagator. More... | |
class | Val |
Value consistent global cardinality propagator. More... | |
GCC-Bnd-Support | |
template<class View, class Card, bool shared> | |
ExecStatus | prop_card (Space *home, ViewArray< View > &x, ViewArray< Card > &k, bool &mod) |
Bounds consistency check for cardinality variables. | |
template<class View, class Card> | |
bool | card_consistent (int &smin, int &smax, ViewArray< View > &x, ViewArray< Card > &k, bool &all) |
Consistency check, whether the cardinality values are feasible. | |
Path compression | |
Each of the nodes on the path from start to end becomes a direct child of to. | |
void | pathset_ps (HallInfo hall[], int start, int end, int to) |
Path compression for potentially stable set structure. | |
void | pathset_s (HallInfo hall[], int start, int end, int to) |
Path compression for stable set structure. | |
void | pathset_t (HallInfo hall[], int start, int end, int to) |
Path compression for capacity pointer structure. | |
void | pathset_h (HallInfo hall[], int start, int end, int to) |
Path compression for hall pointer structure. | |
Path minimum | |
returns the smalles reachable index starting from i | |
int | pathmin_h (const HallInfo hall[], int i) |
Path minimum for hall pointer structure. | |
int | pathmin_t (const HallInfo hall[], int i) |
Path minimum for capacity pointer structure. | |
Path maximum | |
returns the greatest reachable index starting from i | |
int | pathmax_h (const HallInfo hall[], int i) |
Path maximum for hall pointer structure. | |
int | pathmax_t (const HallInfo hall[], int i) |
Path maximum for capacity pointer structure. | |
int | pathmax_s (const HallInfo hall[], int i) |
Path maximum for stable set pointer structure. | |
int | pathmax_ps (const HallInfo hall[], int i) |
Path maximum for potentially stable set pointer structure. | |
Enumerations | |
enum | BC { UBC = 1, LBC = 0 } |
Bounds constraint (BC) type. More... | |
Functions | |
template<class View, class Card, bool isView, bool shared> | |
ExecStatus | prop_bnd (Space *home, ViewArray< View > &x, ViewArray< Card > &k, PartialSum< Card > *&lps, PartialSum< Card > *&ups, bool card_fixed, bool card_all, bool nolbc) |
Performs bounds-consistent global cardinality propagation. | |
template<class Card> | |
void | reduce_card (int cmin, int cmax, ViewArray< Card > &k) |
Assert consistency in the cardinality specification for bounds propagation. | |
std::ostream & | operator<< (std::ostream &os, VarNode *v) |
Debugging: print a variable node. | |
std::ostream & | operator<< (std::ostream &os, ValNode *v) |
Debugging: print a value node. | |
std::ostream & | operator<< (std::ostream &os, Edge *e) |
Debugging: print an edge. | |
template<class View, class Card, bool shared> | |
ExecStatus | lbc (Space *home, ViewArray< View > &x, int &nb, HallInfo hall[], Rank rank[], PartialSum< Card > *lps, int mu[], int nu[]) |
Lower Bounds constraint (LBC) stating ![]() | |
std::ostream & | operator<< (std::ostream &os, OccurBndsView &xs) |
Debugging: print a fixed cardinality. | |
template<class T> | |
int | lookupValue (T &a, int v) |
Return the index of v in the array. | |
template<class View, class Card, bool shared> | |
ExecStatus | ubc (Space *home, ViewArray< View > &x, int &nb, HallInfo hall[], Rank rank[], PartialSum< Card > *ups, int mu[], int nu[]) |
Upper Bounds constraint (UBC) stating ![]() | |
template<class View, class Card, bool isView> | |
ExecStatus | prop_val (Space *home, ViewArray< View > &x, ViewArray< Card > &k, bool &_cardall) |
Performs value-consistent global cardinality propagation. | |
template<class Card> | |
bool | check_alldiff (int n, ViewArray< Card > &k) |
Check whether gcc can be rewritten to distinct. | |
template<class View> | |
int | x_card (ViewArray< View > &x, IntConLevel icl) |
Compute the cardinality of the union of all variable domains in x. | |
template<class Card, class View> | |
void | initcard (Space *home, ViewArray< View > &x, ViewArray< Card > &k, int lb, int ub, IntConLevel icl) |
Initialize the cardinalities for the values in k. | |
template<class Card, class View, bool isView> | |
void | setcard (Space *home, ViewArray< View > &x, ViewArray< Card > &k, int xmin, int xmax) |
Reset already existing cardinalities to zero. | |
template<class Card, bool isView> | |
ExecStatus | card_cons (Space *home, ViewArray< Card > &k, int n, bool all) |
Check whether the cardinalities are consistent. | |
template<class View, class Card, bool isView> | |
void | post_template (Space *home, ViewArray< View > &x, ViewArray< Card > &k, IntConLevel &icl, bool &all) |
Template to post the global cardinality constraint for the different interfaces. |
Enumeration Type Documentation
|
Bounds constraint (BC) type. If BC = UBC, then we argue about the Upper Bounds Constraint else we use the functions for the Lower Bounds Constraint Definition at line 30 of file graphsup.icc. |
Function Documentation
|
Performs bounds-consistent global cardinality propagation. This function implements the propagation algorithm for the bounds-consistent global cardinality propagator implemented in GCC::Bnd. It is available as seperate function in order to allow staging for GCC::Dom and GCC::Bnd though staging is currently not used due to technical difficulties. |
|
Bounds consistency check for cardinality variables.
Definition at line 47 of file gccbndsup.icc. |
|
Consistency check, whether the cardinality values are feasible.
Definition at line 136 of file gccbndsup.icc. |
|
Path compression for potentially stable set structure.
Definition at line 577 of file gccbndsup.icc. |
|
Path compression for stable set structure.
Definition at line 586 of file gccbndsup.icc. |
|
Path compression for capacity pointer structure.
Definition at line 595 of file gccbndsup.icc. |
|
Path compression for hall pointer structure.
Definition at line 604 of file gccbndsup.icc. |
|
Path minimum for hall pointer structure.
Definition at line 621 of file gccbndsup.icc. |
|
Path minimum for capacity pointer structure.
Definition at line 628 of file gccbndsup.icc. |
|
Path maximum for hall pointer structure.
Definition at line 643 of file gccbndsup.icc. |
|
Path maximum for capacity pointer structure.
Definition at line 652 of file gccbndsup.icc. |
|
Path maximum for stable set pointer structure.
Definition at line 661 of file gccbndsup.icc. |
|
Path maximum for potentially stable set pointer structure.
Definition at line 669 of file gccbndsup.icc. |
|
Assert consistency in the cardinality specification for bounds propagation. This is done by ensuring that only those values are specified with cardinalities, which are not smaller than the smallest value of all variable domains and not greater than the greatest value of all variable domains. Definition at line 688 of file gccbndsup.icc. |
|
Debugging: print a variable node.
Definition at line 423 of file graphsup.icc. |
|
Debugging: print a value node.
Definition at line 435 of file graphsup.icc. |
|
Debugging: print an edge.
Definition at line 985 of file graphsup.icc. |
|
Lower Bounds constraint (LBC) stating
|
|
Debugging: print a fixed cardinality.
|
|
Return the index of v in the array.
Complexity is |
|
Upper Bounds constraint (UBC) stating
|
|
Performs value-consistent global cardinality propagation. This function implements the propagation algorithm for the value-consistent global cardinality propagator implemented in GCC::Val. |
|
Check whether gcc can be rewritten to distinct.
If the number of available values equals |
|
Compute the cardinality of the union of all variable domains in x.
|
|
Initialize the cardinalities for the values in k.
|
|
Reset already existing cardinalities to zero.
|
|
Check whether the cardinalities are consistent.
|
|
Template to post the global cardinality constraint for the different interfaces.
|