Generated on Wed Jan 4 17:49:17 2006 for Gecode by doxygen 1.4.6

Cardinality constraints
[Using finite domain integers]

Collaboration diagram for Cardinality constraints:


Functions

void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, int m, IntConLevel icl=ICL_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)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r m$.
void Gecode::count (Space *home, const IntVarArgs &x, int n, IntRelType r, IntVar z, IntConLevel icl=ICL_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)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\sim_r z$.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &c, int m, int unspec, int min, int max, IntConLevel icl)
 Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, 0, unspec) \not\in c: & & 0 \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec \end{eqnarray*}

.

void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &c, int m, int unspec_low, int unspec_up, int min, int max, IntConLevel icl)
 Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, unspec_{low}, unspec_{up}) \not\in c: & & unspec_{low} \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec_{up} \end{eqnarray*}

.

void Gecode::gcc (Space *home, const IntVarArgs &x, int ub, IntConLevel cl)
 Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb = \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} = ub $.
void Gecode::gcc (Space *home, const IntVarArgs &x, int lb, int ub, IntConLevel cl)
 Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub $.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntVarArgs &c, int min, int max, IntConLevel cl)
 Post propagator for $ \forall j \in \{0, \dots, |[min;max]| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j \wedge v_j \in [min;max]$.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &v, const IntVarArgs &c, int m, int unspec, bool all, int min, int max, IntConLevel icl)
 Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.
void Gecode::gcc (Space *home, const IntVarArgs &x, const IntArgs &v, const IntVarArgs &c, int m, int unspec_low, int unspec_up, bool all, int min, int max, IntConLevel icl)
 Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.


Function Documentation

GECODE_INT_EXPORT void Gecode::count Space *  home,
const IntVarArgs x,
int  n,
IntRelType  r,
int  m,
IntConLevel  icl = ICL_DEF
 

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

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

Definition at line 40 of file count.cc.

GECODE_INT_EXPORT void Gecode::count Space *  home,
const IntVarArgs x,
IntVar  y,
IntRelType  r,
int  m,
IntConLevel  icl = ICL_DEF
 

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

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

Definition at line 91 of file count.cc.

GECODE_INT_EXPORT void Gecode::count Space *  home,
const IntVarArgs x,
int  n,
IntRelType  r,
IntVar  z,
IntConLevel  icl = ICL_DEF
 

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

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

Definition at line 66 of file count.cc.

GECODE_INT_EXPORT void Gecode::count Space *  home,
const IntVarArgs x,
IntVar  y,
IntRelType  r,
IntVar  z,
IntConLevel  icl = ICL_DEF
 

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

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

Definition at line 116 of file count.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
const IntArgs c,
int  m,
int  unspec,
int  min,
int  max,
IntConLevel  icl
 

Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, 0, unspec) \not\in c: & & 0 \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec \end{eqnarray*}

.

Parameters:
m denotes the size of c
unspec denotes the upper bound for those values not specified in c
Let $ D:=\displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i)$ and $ V $ the set of values represented by c. Then this progator allows sets $ V\subset D$ as well as $ V=D$.

In this interface values $ v$ and their cardinality bounds have to specified such that c looks as follows (for example): $ c=[ (1,0,1), (2,1,3), \dots, (10,4,5)]$, where the value 1 may occur zero times or once, the value 2 must occur at least once at most three times and the value 10 must occur at least 4 times and at most 5 times.

Definition at line 309 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
const IntArgs c,
int  m,
int  unspec_low,
int  unspec_up,
int  min,
int  max,
IntConLevel  icl
 

Post propagator for

\begin{eqnarray*} \forall t=(v, lb, ub) \in c: & & lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub \\ \forall t=(v, unspec_{low}, unspec_{up}) \not\in c: & & unspec_{low} \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq unspec_{up} \end{eqnarray*}

.

Parameters:
m denotes the size of c
unspec_low denotes the lower bound for those values not specified in c
unspec_up denotes the upper bound for those values not specified in c
Let $ D:=\displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i)$ and $ V $ the set of values represented by c. Then this progator allows sets $ V\subset D$ as well as $ V=D$.

In this interface values $ v$ and their cardinality bounds have to specified such that c looks as follows (for example): $ c=[ (1,0,1), (2,1,3), \dots, (10,4,5)]$, where the value 1 may occur zero times or once, the value 2 must occur at least once at most three times and the value 10 must occur at least 4 times and at most 5 times.

Furthermore, this interface requires that $ \forall {i\in\{0, \dots, |x|-1\}}: dom(x_i) \subseteq [min, \dots, max]$.

Definition at line 254 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
int  ub,
IntConLevel  cl
 

Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb = \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} = ub $.

Parameters:
ub denotes the upper bound for all values specified in the array c, where this interface allows only value sets $ V=D \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i)$

Definition at line 332 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
int  lb,
int  ub,
IntConLevel  cl
 

Post propagator for $ \forall v \in \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i): lb \leq \#\{i\in\{0, \dots, |x| - 1\} | x_i = v\} \leq ub $.

Parameters:
lb denotes the lower bound for all values specified in the array c,
ub denotes the upper bound for all values specified in the array c, where this interface allows only value sets $ V=D \displaystyle \bigcup_{i\in\{0, \dots, |x|-1\}} dom(x_i)$

Definition at line 315 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
const IntVarArgs c,
int  min,
int  max,
IntConLevel  cl
 

Post propagator for $ \forall j \in \{0, \dots, |[min;max]| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j \wedge v_j \in [min;max]$.

This interface requires that $ \forall {i\in\{0, \dots, |x|-1\}}: dom(x_i) \subseteq [min, \dots, max]$.

Definition at line 336 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
const IntArgs v,
const IntVarArgs c,
int  m,
int  unspec,
bool  all,
int  min,
int  max,
IntConLevel  icl
 

Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.

This interface requires that $ \forall {i\in\{0, \dots, |x|-1\}} dom(x_i) \subseteq [min, \dots, max]$. If all is set to true, every value from the interval $ [min, \dots, max]$ is specified with cardinalities. Otherwise, only specified values in v are used and unspecified values may occur between 0 and unspec times.

Definition at line 386 of file gcc.cc.

GECODE_INT_EXPORT void Gecode::gcc Space *  home,
const IntVarArgs x,
const IntArgs v,
const IntVarArgs c,
int  m,
int  unspec_low,
int  unspec_up,
bool  all,
int  min,
int  max,
IntConLevel  icl
 

Post propagator for $ \forall j \in \{0, \dots, |v| - 1\}: \#\{i\in\{0, \dots, |x| - 1\} | x_i = v_j\} = c_j $.

This interface requires that $ \forall {i\in\{0, \dots, |x|-1\}} dom(x_i) \subseteq [min, \dots, max]$. If all is set to true, every value from the interval $ [min, \dots, max]$ is specified with cardinalities. Otherwise, only specified values in v are used and unspecified values may occur between unspec_low and unspec_up times.

Definition at line 392 of file gcc.cc.