Global cardinality propagators.
|
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 according to the ascending order of the views upper bounds. More...
|
class | MinInc |
| Compares two indices i, j of two views according to the ascending order of the views lower bounds. More...
|
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 in the variable-value-graph. More...
|
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 Hence the lbc constraints the variables such that every value occurs at least as often as specified by its lower cardinality bound.
|
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 Hence the ubc constraints the variables such that no value occurs more often than specified by its upper cardinality bound.
|
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.
|