Domain consistent extensional propagator. More...
#include <extensional.hh>
Classes | |
class | SupportEntry |
Entry for storing support. More... | |
class | Work |
Work stack More... | |
class | WorkEntry |
Description of work to be done. More... | |
Public Member Functions | |
virtual ExecStatus | propagate (Space &home, const ModEventDelta &med) |
Perform propagation. More... | |
virtual PropCost | cost (const Space &home, const ModEventDelta &med) const |
Cost function. More... | |
virtual Actor * | copy (Space &home, bool share) |
Copy propagator during cloning. More... | |
size_t | dispose (Space &home) |
Delete propagator and return its size. More... | |
virtual ExecStatus | advise (Space &home, Advisor &a, const Delta &d) |
Give advice to propagator. More... | |
![]() | |
ModEventDelta | modeventdelta (void) const |
Return the modification event delta. More... | |
double | afc (const Space &home) const |
Return the accumlated failure count. More... | |
![]() |
Static Public Member Functions | |
static ExecStatus | post (Home home, ViewArray< View > &x, const TupleSet &t) |
Post propagator for views x. More... | |
![]() | |
static void * | operator new (size_t s, Space &home) |
Allocate memory from space. More... | |
static void | operator delete (void *p, Space &home) |
No-op for exceptions. More... | |
Protected Member Functions | |
Incremental (Space &home, bool share, Incremental< View > &p) | |
Constructor for cloning p. More... | |
Incremental (Home home, ViewArray< View > &x, const TupleSet &t) | |
Constructor for posting. More... | |
void | init_support (Space &home) |
Initialize support. More... | |
void | find_support (Space &home, Domain dom, int i, int n) |
Find a next support for view at position i and value n. More... | |
void | add_support (Space &home, Tuple l) |
Add support. More... | |
void | remove_support (Space &home, Tuple l, int i, int n) |
Remove support for view at position i and value n. More... | |
SupportEntry * | support (int i, int n) |
Creat support entry for view at position i and value n. More... | |
![]() | |
TupleSet::TupleSetI * | ts (void) |
Base (Space &home, bool share, Base< View, subscribe > &p) | |
Constructor for cloning p. More... | |
Base (Home home, ViewArray< View > &x, const TupleSet &t) | |
Constructor for posting. More... | |
void | init_last (Space &home, Tuple **source, Tuple *base) |
Initialize last support. More... | |
Tuple | last (int i, int n) |
Find last support for view at position i and value n. More... | |
Tuple | last_next (int i, int n) |
Find last support for view at position i and value n. More... | |
void | init_dom (Space &home, Domain dom) |
Initialize domain information. More... | |
bool | valid (Tuple t, Domain dom) |
Check wether tuple is valid for domain. More... | |
Tuple | find_support (Domain dom, int i, int n) |
Find support for view at position i and value n. More... | |
virtual | ~Base (void) |
Unused destructor (to avoid warnings) More... | |
![]() | |
Propagator (Home home) | |
Constructor for posting. More... | |
Propagator (Space &home, bool share, Propagator &p) | |
Constructor for cloning p. More... | |
Propagator * | fwd (void) const |
Return forwarding pointer during copying. More... | |
Protected Attributes | |
Work | w_support |
Work for finding support. More... | |
Work | w_remove |
Work for removing values. More... | |
SupportEntry ** | support_data |
Support information. More... | |
int | unassigned |
Number of unassigned views. More... | |
![]() | |
ViewArray< View > | x |
Variables. More... | |
TupleSet | tupleSet |
Definition of constraint. More... | |
Tuple ** | last_data |
Last tuple looked at Access real tuple-set. More... | |
Domain consistent extensional propagator.
This propagator implements an incremental propagation algorithm where supports are maintained explicitly.
Requires
Definition at line 343 of file extensional.hh.
|
inlineprotected |
Constructor for cloning p.
Definition at line 319 of file incremental.hpp.
|
inlineprotected |
Constructor for posting.
Definition at line 276 of file incremental.hpp.
|
inlineprotected |
Initialize support.
Definition at line 209 of file incremental.hpp.
|
inlineprotected |
Find a next support for view at position i and value n.
Definition at line 228 of file incremental.hpp.
|
inlineprotected |
Add support.
Definition at line 219 of file incremental.hpp.
|
inlineprotected |
Remove support for view at position i and value n.
Definition at line 244 of file incremental.hpp.
|
inlineprotected |
Creat support entry for view at position i and value n.
Definition at line 203 of file incremental.hpp.
|
virtual |
|
virtual |
Cost function.
If in stage for naive value propagation, the cost is high quadratic. Otherwise it is high cubic.
Reimplemented from Gecode::Int::Extensional::Base< View, false >.
Definition at line 343 of file incremental.hpp.
|
virtual |
Copy propagator during cloning.
Implements Gecode::Actor.
Definition at line 352 of file incremental.hpp.
|
inlinestatic |
Post propagator for views x.
Definition at line 307 of file incremental.hpp.
|
inlinevirtual |
Delete propagator and return its size.
Reimplemented from Gecode::Int::Extensional::Base< View, false >.
Definition at line 358 of file incremental.hpp.
|
virtual |
Give advice to propagator.
Reimplemented from Gecode::Propagator.
Definition at line 414 of file incremental.hpp.
|
protected |
Work for finding support.
Definition at line 440 of file extensional.hh.
|
protected |
Work for removing values.
Definition at line 442 of file extensional.hh.
|
protected |
Support information.
Definition at line 445 of file extensional.hh.
|
protected |
Number of unassigned views.
Definition at line 447 of file extensional.hh.