Generated on Mon Aug 25 11:35:47 2008 for Gecode by doxygen 1.5.6

Cardinality constraints
[Using finite domain integers]


Detailed Description

Note:
Domain consistency on the extended cardinality variables of the Global Cardinality Propagator is only obtained if they are bounds consistent, otherwise the problem of enforcing domain consistency on the cardinality variables is NP-complete as proved by Qumiper et. al. in Improved Algorithms for the Global Cardinality Constraint"


Functions

void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, IntVar y, IntRelType r, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, const IntArgs &y, IntRelType r, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r z$.
void Gecode::count (Space *home, const IntVarArgs &x, IntVar y, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r z$.
void Gecode::count (Space *home, const IntVarArgs &x, const IntArgs &y, IntRelType r, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r z$.
void Gecode::count (Space *home, const IntVarArgs &x, const IntVarArgs &c, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Posts a global count (cardinality) constraint.
void Gecode::count (Space *home, const IntVarArgs &x, const IntSetArgs &c, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Posts a global count (cardinality) constraint.
void Gecode::count (Space *home, const IntVarArgs &x, const IntVarArgs &c, const IntArgs &v, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Posts a global count (cardinality) constraint.
void Gecode::count (Space *home, const IntVarArgs &x, const IntSetArgs &c, const IntArgs &v, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Posts a global count (cardinality) constraint.
void Gecode::count (Space *home, const IntVarArgs &x, const IntSet &c, const IntArgs &v, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Posts a global count (cardinality) constraint.


Function Documentation

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
int  n,
IntRelType  r,
int  m,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r m$.

Supports domain consistent propagation only.

Definition at line 43 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
IntVar  y,
IntRelType  r,
int  m,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r m$.

Supports domain consistent propagation only.

Definition at line 82 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntArgs &  y,
IntRelType  r,
int  m,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r m$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 119 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
int  n,
IntRelType  r,
IntVar  z,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\sim_r z$.

Supports domain consistent propagation only.

Definition at line 163 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
IntVar  y,
IntRelType  r,
IntVar  z,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r z$.

Supports domain consistent propagation only.

Definition at line 201 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntArgs &  y,
IntRelType  r,
IntVar  z,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\sim_r z$.

Supports domain consistent propagation only.

Throws an exception of type Int::ArgumentSizeMismatch, if x and y are of different size.

Definition at line 237 of file count.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntVarArgs &  c,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=j\}=c_j$ and $ \bigcup_i \{x_i\} \subseteq \{0,\ldots,|c|-1\}$ (no other value occurs).

Supports value (icl = ICL_VAL, default), bounds (icl = ICL_BND), and domain consistency (icl = ICL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 237 of file gcc.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntSetArgs &  c,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=j\}\in c_j$ and $ \bigcup_i \{x_i\} \subseteq \{0,\ldots,|c|-1\}$ (no other value occurs).

Supports value (icl = ICL_VAL, default), bounds (icl = ICL_BND), and domain consistency (icl = ICL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Definition at line 346 of file gcc.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntVarArgs &  c,
const IntArgs &  v,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}=c_j$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (icl = ICL_VAL, default), bounds (icl = ICL_BND), and domain consistency (icl = ICL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if cards and values are of different size.

Definition at line 195 of file gcc.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntSetArgs &  c,
const IntArgs &  v,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}\in c_j$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (icl = ICL_VAL, default), bounds (icl = ICL_BND), and domain consistency (icl = ICL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if cards and values are of different size.

Definition at line 246 of file gcc.cc.

void Gecode::count ( Space *  home,
const IntVarArgs &  x,
const IntSet &  c,
const IntArgs &  v,
IntConLevel  icl = ICL_DEF,
PropKind  pk = PK_DEF 
)

Posts a global count (cardinality) constraint.

Posts the constraint that $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=v_j\}\in c$ and $ \bigcup_i \{x_i\} \subseteq \bigcup_j \{v_j\}$ (no other value occurs).

Supports value (icl = ICL_VAL, default), bounds (icl = ICL_BND), and domain consistency (icl = ICL_DOM).

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

Throws an exception of type Int::ArgumentSizeMismatch, if cards and values are of different size.

Definition at line 354 of file gcc.cc.