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

Gecode::Int::Extensional::LayeredGraph< View > Class Template Reference
[Integer propagators]

#include <extensional.hh>

Inherits Gecode::Propagator.

List of all members.


Detailed Description

template<class View>
class Gecode::Int::Extensional::LayeredGraph< View >

Domain consistent layered graph (regular) propagator.

The algorithm for the regular propagator is based on: Gilles Pesant, A Regular Language Membership Constraint for Finite Sequences of Variables, CP 2004. Pages 482-495, LNCS 3258, Springer-Verlag, 2004.

The propagator is not capable of multiple occurences of the same view.

Requires

Definition at line 72 of file extensional.hh.


Public Member Functions

 LayeredGraph (Space *home, ViewArray< View > &x, DFA &d)
 Constructor for posting.
virtual Actorcopy (Space *home, bool share)
 Copy propagator during cloning.
virtual PropCost cost (ModEventDelta med) const
 Cost function (defined as dynamic PC_LINEAR_HI).
virtual ExecStatus advise (Space *home, Advisor *a, const Delta *d)
 Give advice to propagator.
virtual ExecStatus propagate (Space *home, ModEventDelta med)
 Perform propagation.
virtual Reflection::ActorSpec spec (const Space *home, Reflection::VarMap &m) const
 Specification for this propagator.
virtual size_t dispose (Space *home)
 Delete propagator and return its size.
template<>
 LayeredGraph (Space *home, ViewArray< BoolView > &x0, DFA &d)

Static Public Member Functions

static void post (Space *home, Reflection::VarMap &vars, const Reflection::ActorSpec &spec)
 Post propagator according to specification.
static Gecode::Support::Symbol ati (void)
 Mangled name of this propagator.
static ExecStatus post (Space *home, ViewArray< View > &x, DFA &d)
 Post propagator on views x and DFA d.

Protected Member Functions

bool constructed (void) const
 Test whether layered graph has already been constructed.
void eliminate (void)
 Eliminate assigned prefix, return how many layers removed.
ExecStatus construct (Space *home)
 Construct layered graph.
ExecStatus prune (Space *home)
 Prune incrementally.
 LayeredGraph (Space *home, bool share, LayeredGraph< View > &p)
 Constructor for cloning p.

Protected Attributes

Council< Indexc
 The advisor council.
ViewArray< View > x
 The views.
DFA dfa
 The DFA describing the language.
int start
 The start state for graph construction.
Layerlayers
 The layers of the graph.
Statestates
 The states used in the graph.
IndexRange i_ch
 Index range with in-degree modifications.
IndexRange o_ch
 Index range with out-degree modifications.

Classes

class  Index
 Advisors for views (by position in array). More...
class  IndexRange
 Range approximation of which positions have changed. More...

Constructor & Destructor Documentation

template<class View>
Gecode::Int::Extensional::LayeredGraph< View >::LayeredGraph ( Space home,
bool  share,
LayeredGraph< View > &  p 
) [inline, protected]

Constructor for cloning p.

Definition at line 554 of file layered-graph.icc.

template<class View>
Gecode::Int::Extensional::LayeredGraph< View >::LayeredGraph ( Space home,
ViewArray< View > &  x,
DFA d 
) [inline]

Constructor for posting.

Definition at line 498 of file layered-graph.icc.

template<>
Gecode::Int::Extensional::LayeredGraph< BoolView >::LayeredGraph ( Space home,
ViewArray< BoolView > &  x0,
DFA d 
) [inline]

Definition at line 513 of file layered-graph.icc.


Member Function Documentation

template<class View>
bool Gecode::Int::Extensional::LayeredGraph< View >::constructed ( void   )  const [inline, protected]

Test whether layered graph has already been constructed.

Definition at line 199 of file layered-graph.icc.

template<class View>
void Gecode::Int::Extensional::LayeredGraph< View >::eliminate ( void   )  [inline, protected]

Eliminate assigned prefix, return how many layers removed.

Definition at line 205 of file layered-graph.icc.

template<class View>
ExecStatus Gecode::Int::Extensional::LayeredGraph< View >::construct ( Space home  )  [inline, protected]

Construct layered graph.

Definition at line 226 of file layered-graph.icc.

template<class View>
ExecStatus Gecode::Int::Extensional::LayeredGraph< View >::prune ( Space home  )  [inline, protected]

Prune incrementally.

Definition at line 307 of file layered-graph.icc.

template<class View>
Actor * Gecode::Int::Extensional::LayeredGraph< View >::copy ( Space home,
bool  share 
) [inline, virtual]

Copy propagator during cloning.

Implements Gecode::Actor.

Definition at line 597 of file layered-graph.icc.

template<class View>
PropCost Gecode::Int::Extensional::LayeredGraph< View >::cost ( ModEventDelta  med  )  const [inline, virtual]

Cost function (defined as dynamic PC_LINEAR_HI).

Implements Gecode::Propagator.

Definition at line 567 of file layered-graph.icc.

template<class View>
ExecStatus Gecode::Int::Extensional::LayeredGraph< View >::advise ( Space home,
Advisor a,
const Delta d 
) [inline, virtual]

Give advice to propagator.

Reimplemented from Gecode::Propagator.

Definition at line 394 of file layered-graph.icc.

template<class View>
ExecStatus Gecode::Int::Extensional::LayeredGraph< View >::propagate ( Space home,
ModEventDelta  med 
) [inline, virtual]

Perform propagation.

Implements Gecode::Propagator.

Definition at line 491 of file layered-graph.icc.

template<class View>
Reflection::ActorSpec Gecode::Int::Extensional::LayeredGraph< View >::spec ( const Space home,
Reflection::VarMap m 
) const [inline, virtual]

Specification for this propagator.

Reimplemented from Gecode::Actor.

Definition at line 579 of file layered-graph.icc.

template<class View>
void Gecode::Int::Extensional::LayeredGraph< View >::post ( Space home,
Reflection::VarMap vars,
const Reflection::ActorSpec spec 
) [inline, static]

Post propagator according to specification.

Definition at line 587 of file layered-graph.icc.

template<class View>
Gecode::Support::Symbol Gecode::Int::Extensional::LayeredGraph< View >::ati ( void   )  [inline, static]

Mangled name of this propagator.

Definition at line 573 of file layered-graph.icc.

template<class View>
size_t Gecode::Int::Extensional::LayeredGraph< View >::dispose ( Space home  )  [inline, virtual]

Delete propagator and return its size.

Reimplemented from Gecode::Actor.

Definition at line 526 of file layered-graph.icc.

template<class View>
ExecStatus Gecode::Int::Extensional::LayeredGraph< View >::post ( Space home,
ViewArray< View > &  x,
DFA d 
) [inline, static]

Post propagator on views x and DFA d.

Definition at line 536 of file layered-graph.icc.


Member Data Documentation

template<class View>
Council<Index> Gecode::Int::Extensional::LayeredGraph< View >::c [protected]

The advisor council.

Definition at line 104 of file extensional.hh.

template<class View>
ViewArray<View> Gecode::Int::Extensional::LayeredGraph< View >::x [protected]

The views.

Definition at line 106 of file extensional.hh.

template<class View>
DFA Gecode::Int::Extensional::LayeredGraph< View >::dfa [protected]

The DFA describing the language.

Definition at line 108 of file extensional.hh.

template<class View>
int Gecode::Int::Extensional::LayeredGraph< View >::start [protected]

The start state for graph construction.

Definition at line 110 of file extensional.hh.

template<class View>
Layer* Gecode::Int::Extensional::LayeredGraph< View >::layers [protected]

The layers of the graph.

Definition at line 112 of file extensional.hh.

template<class View>
State* Gecode::Int::Extensional::LayeredGraph< View >::states [protected]

The states used in the graph.

Definition at line 114 of file extensional.hh.

template<class View>
IndexRange Gecode::Int::Extensional::LayeredGraph< View >::i_ch [protected]

Index range with in-degree modifications.

Definition at line 116 of file extensional.hh.

template<class View>
IndexRange Gecode::Int::Extensional::LayeredGraph< View >::o_ch [protected]

Index range with out-degree modifications.

Definition at line 118 of file extensional.hh.


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