Gecode::Search::Par::Path< Tracer > Class Template Reference
Depth-first path (stack of edges) supporting recomputation. More...
#include <path.hh>
Classes | |
class | Edge |
Search tree edge for recomputation More... | |
Public Types | |
typedef Tracer::ID | ID |
Identity type. | |
Public Member Functions | |
Path (unsigned int l) | |
Initialize with no-good depth limit l. | |
unsigned int | ngdl (void) const |
Return no-good depth limit. | |
void | ngdl (unsigned int l) |
Set no-good depth limit to l. | |
const Choice * | push (Worker &stat, Space *s, Space *c, unsigned int nid) |
Push space c (a clone of s or NULL). | |
void | next (void) |
Generate path for next node. | |
Edge & | top (void) const |
Provide access to topmost edge. | |
bool | empty (void) const |
Test whether path is empty. | |
int | lc (void) const |
Return position on stack of last copy. | |
void | unwind (int l, Tracer &t) |
Unwind the stack up to position l (after failure). | |
void | commit (Space *s, int i) const |
Commit space s as described by stack entry at position i. | |
Space * | recompute (unsigned int &d, unsigned int a_d, Worker &s, Tracer &t) |
Recompute space according to path. | |
Space * | recompute (unsigned int &d, unsigned int a_d, Worker &s, const Space &best, int &mark, Tracer &t) |
Recompute space according to path. | |
int | entries (void) const |
Return number of entries on stack. | |
void | reset (unsigned int l) |
Reset stack and set no-good depth limit to l. | |
bool | steal (void) const |
Make a quick check whether stealing might be feasible. | |
Space * | steal (Worker &stat, unsigned long int &d, Tracer &myt, Tracer &ot) |
Steal work at depth d. | |
virtual void | post (Space &home) const |
Post no-goods. | |
Protected Attributes | |
Support::DynamicStack< Edge, Heap > | ds |
Stack to store edge information. | |
unsigned int | _ngdl |
Depth limit for no-good generation. | |
unsigned int | n_work |
Number of edges that have work for stealing. |
Detailed Description
template<class Tracer>
class Gecode::Search::Par::Path< Tracer >
Depth-first path (stack of edges) supporting recomputation.
Maintains the invariant that it contains the path of the node being currently explored. This is required to support recomputation, of course.
The path supports adaptive recomputation controlled by the value of a_d: only if the recomputation distance is at least this large, an additional clone is created.
Definition at line 60 of file path.hh.
Member Typedef Documentation
template<class Tracer >
typedef Tracer::ID Gecode::Search::Par::Path< Tracer >::ID |
Constructor & Destructor Documentation
template<class Tracer >
Gecode::Search::Par::Path< Tracer >::Path | ( | unsigned int | l | ) | [inline] |
Member Function Documentation
template<class Tracer >
unsigned int Gecode::Search::Par::Path< Tracer >::ngdl | ( | void | ) | const [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::ngdl | ( | unsigned int | l | ) | [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::next | ( | void | ) | [inline] |
template<class Tracer >
Path< Tracer >::Edge & Gecode::Search::Par::Path< Tracer >::top | ( | void | ) | const [inline] |
template<class Tracer >
bool Gecode::Search::Par::Path< Tracer >::empty | ( | void | ) | const [inline] |
template<class Tracer >
int Gecode::Search::Par::Path< Tracer >::lc | ( | void | ) | const [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::unwind | ( | int | l, | |
Tracer & | t | |||
) | [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::commit | ( | Space * | s, | |
int | i | |||
) | const [inline] |
template<class Tracer >
Space * Gecode::Search::Par::Path< Tracer >::recompute | ( | unsigned int & | d, | |
unsigned int | a_d, | |||
Worker & | s, | |||
Tracer & | t | |||
) | [inline] |
template<class Tracer >
int Gecode::Search::Par::Path< Tracer >::entries | ( | void | ) | const [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::reset | ( | unsigned int | l | ) | [inline] |
template<class Tracer >
bool Gecode::Search::Par::Path< Tracer >::steal | ( | void | ) | const [inline] |
template<class Tracer >
void Gecode::Search::Par::Path< Tracer >::post | ( | Space & | home | ) | const [inline, virtual] |
Member Data Documentation
template<class Tracer >
Support::DynamicStack<Edge,Heap> Gecode::Search::Par::Path< Tracer >::ds [protected] |
template<class Tracer >
unsigned int Gecode::Search::Par::Path< Tracer >::_ngdl [protected] |
template<class Tracer >
unsigned int Gecode::Search::Par::Path< Tracer >::n_work [protected] |
The documentation for this class was generated from the following files: