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

Gecode::Int::GCC::Bnd< View, Card, isView > Class Template Reference
[Integer propagators]

#include <gcc.hh>

List of all members.


Detailed Description

template<class View, class Card, bool isView>
class Gecode::Int::GCC::Bnd< View, Card, isView >

Bounds consistent global cardinality propagator.

[Reference]
The algorithm is taken from:
     @PROCEEDINGS{quimper-efficient,
     title     = {An Efficient Bounds Consistency Algorithm
                  for the Global Cardinality Constraint},
     year      = {2003},
     volume    = {2833},
     address   = {Kinsale, Ireland},
     month     = {September},
     author    = {Claude-Guy Quimper and Peter van Beek
                  and Alejandro López-Ortiz
                  and Alexander Golynski and Sayyed Bashir Sadjad},
     booktitle = {Proceedings of the 9th International Conference
                  on Principles and Practice of
                  Constraint Programming},
     pages     = {600--614},
     url       = {http://ai.uwaterloo.ca/~vanbeek/publications},
     }
     @TECHREPORT{quimper-efficientTR,
     author      = {Claude-Guy Quimper and Peter van Beek
                    and Alejandro López-Ortiz
                    and Alexander Golynski and
                    Sayyed Bashir Sadjad},
     title       = {An Efficient Bounds Consistency Algorithm
                    for the Global Cardinality Constraint,
                    Technical Report},
     institution = {School of Computer Science,
                    University of Waterloo, Waterloo, Canada},
     year        = {2003},
     url         = {http://ai.uwaterloo.ca/~vanbeek/publications},
     }
     
This implementation uses the code that is provided by Peter Van Beek:
http://ai.uwaterloo.ca/~vanbeek/software/software.html The code here has only been slightly modified to fit Gecode (taking idempotent/non-idempotent propagation into account) and uses a more efficient layout of datastructures (keeping the number of different arrays small).

The Bnd class is used to post the propagator and BndImp is the actual implementation taking shared variables into account.

Requires

 #include "gecode/int/gcc.hh" 

Definition at line 108 of file gcc.hh.


Static Public Member Functions

static ExecStatus post (Space *home, ViewArray< View > &x, ViewArray< Card > &k)
 Post propagator for views x and cardinalities k.

Member Function Documentation

template<class View, class Card, bool isView>
ExecStatus Gecode::Int::GCC::Bnd< View, Card, isView >::post ( Space home,
ViewArray< View > &  x,
ViewArray< Card > &  k 
) [inline, static]

Post propagator for views x and cardinalities k.

all denotes whether the propagator uses all values occuring in the domains of the problem views specified in x. Also checks whether x and k contain shared views.

Definition at line 638 of file bnd.icc.


The documentation for this class was generated from the following files: