Generated on Mon Nov 30 23:53:51 2009 for Gecode by doxygen 1.6.1

Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx > Class Template Reference
[Integer propagators]

Domain consistent layered graph (regular) propagator. More...

#include <extensional.hh>

List of all members.

Classes

class  Edge
class  Index
 Advisors for views (by position in array). More...
class  IndexRange
 Range approximation of which positions have changed. More...
class  Layer
 Layer for a view in the layered graph. More...
class  LayerValues
 Iterator for telling variable domains by scanning support. More...
class  State
 States are described by number of incoming and outgoing edges. More...
class  Support
 Support information for a value. More...

Public Member Functions

template<class Var >
 LayeredGraph (Home home, const VarArgArray< Var > &x, const DFA &dfa)
 Constructor for posting.
virtual Actorcopy (Space &home, bool share)
 Copy propagator during cloning.
virtual PropCost cost (const Space &home, const ModEventDelta &med) const
 Cost function (defined as high linear).
virtual ExecStatus advise (Space &home, Advisor &a, const Delta &d)
 Give advice to propagator.
virtual ExecStatus propagate (Space &home, const ModEventDelta &med)
 Perform propagation.
virtual size_t dispose (Space &home)
 Delete propagator and return its size.

Static Public Member Functions

template<class Var >
static ExecStatus post (Home home, const VarArgArray< Var > &x, const DFA &dfa)
 Post propagator on views x and DFA dfa.

Protected Member Functions

template<class Var >
ExecStatus initialize (Space &home, const VarArgArray< Var > &x, const DFA &dfa)
 Initialize layered graph.
 LayeredGraph (Space &home, bool share, LayeredGraph< View, Val, Degree, StateIdx > &p)
 Constructor for cloning p.

Protected Attributes

Council< Indexc
 The advisor council.
int n
 Number of layers (and views).
const int n_states
 Number of states of DFA.
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.

Detailed Description

template<class View, class Val, class Degree, class StateIdx>
class Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >

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 dealing with multiple occurences of the same view.

Requires

Definition at line 69 of file extensional.hh.


Constructor & Destructor Documentation

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

Constructor for cloning p.

Definition at line 467 of file layered-graph.hpp.

template<class View , class Val , class Degree , class StateIdx >
template<class Var >
Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::LayeredGraph ( Home  home,
const VarArgArray< Var > &  x,
const DFA dfa 
) [inline]

Constructor for posting.

Definition at line 143 of file layered-graph.hpp.


Member Function Documentation

template<class View , class Val , class Degree , class StateIdx >
template<class Var >
ExecStatus Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::initialize ( Space home,
const VarArgArray< Var > &  x,
const DFA dfa 
) [inline, protected]

Initialize layered graph.

Definition at line 153 of file layered-graph.hpp.

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

Copy propagator during cloning.

Implements Gecode::Actor.

Definition at line 500 of file layered-graph.hpp.

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

Cost function (defined as high linear).

Implements Gecode::Propagator.

Definition at line 493 of file layered-graph.hpp.

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

Give advice to propagator.

Reimplemented from Gecode::Propagator.

Definition at line 236 of file layered-graph.hpp.

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

Perform propagation.

Implements Gecode::Propagator.

Definition at line 354 of file layered-graph.hpp.

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

Delete propagator and return its size.

Reimplemented from Gecode::Actor.

Definition at line 435 of file layered-graph.hpp.

template<class View , class Val , class Degree , class StateIdx >
template<class Var >
ExecStatus Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::post ( Home  home,
const VarArgArray< Var > &  x,
const DFA dfa 
) [inline, static]

Post propagator on views x and DFA dfa.

Definition at line 444 of file layered-graph.hpp.


Member Data Documentation

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

The advisor council.

Definition at line 146 of file extensional.hh.

template<class View, class Val, class Degree, class StateIdx>
int Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::n [protected]

Number of layers (and views).

Definition at line 148 of file extensional.hh.

template<class View, class Val, class Degree, class StateIdx>
const int Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::n_states [protected]

Number of states of DFA.

Definition at line 150 of file extensional.hh.

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

The layers of the graph.

Definition at line 152 of file extensional.hh.

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

The states used in the graph.

Definition at line 154 of file extensional.hh.

template<class View, class Val, class Degree, class StateIdx>
IndexRange Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::i_ch [protected]

Index range with in-degree modifications.

Definition at line 156 of file extensional.hh.

template<class View, class Val, class Degree, class StateIdx>
IndexRange Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::o_ch [protected]

Index range with out-degree modifications.

Definition at line 158 of file extensional.hh.


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