Gecode::Search::Parallel::Path Class Reference
Depth-first path (stack of nodes) supporting recomputation.
More...
#include <path.hh>
List of all members.
Classes |
class | Node |
| Search tree node for recomputation More...
|
Public Member Functions |
| Path (void) |
| Initialize.
|
const Choice * | push (Worker &stat, Space *s, Space *c) |
| Push space c (a clone of s or NULL).
|
bool | next (Worker &s) |
| Generate path for next node and return whether a next node exists.
|
Node & | top (void) const |
| Provide access to topmost node.
|
bool | empty (void) const |
| Test whether path is empty.
|
int | lc (void) const |
| Return position on stack of last copy.
|
void | unwind (int l) |
| 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) |
| Recompute space according to path.
|
Space * | recompute (unsigned int &d, unsigned int a_d, Worker &s, const Space *best, int &mark) |
| Recompute space according to path.
|
int | entries (void) const |
| Return number of entries on stack.
|
size_t | size (void) const |
| Return size used.
|
void | reset (void) |
| Reset stack.
|
bool | steal (void) const |
| Make a quick check whether stealing might be feasible.
|
Space * | steal (Worker &stat, unsigned long int &d) |
| Steal work at depth d.
|
Protected Attributes |
Support::DynamicStack< Node, Heap > | ds |
| Stack to store node information.
|
unsigned int | n_work |
| Number of nodes that have work for stealing.
|
Detailed Description
Depth-first path (stack of nodes) 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 58 of file path.hh.
Constructor & Destructor Documentation
Gecode::Search::Parallel::Path::Path |
( |
void |
|
) |
[inline] |
Initialize.
Definition at line 202 of file path.hh.
Member Function Documentation
Push space c (a clone of s or NULL).
Definition at line 205 of file path.hh.
bool Gecode::Search::Parallel::Path::next |
( |
Worker & |
s |
) |
[inline] |
Generate path for next node and return whether a next node exists.
Definition at line 215 of file path.hh.
Path::Node & Gecode::Search::Parallel::Path::top |
( |
void |
|
) |
const [inline] |
Provide access to topmost node.
Definition at line 232 of file path.hh.
bool Gecode::Search::Parallel::Path::empty |
( |
void |
|
) |
const [inline] |
int Gecode::Search::Parallel::Path::lc |
( |
void |
|
) |
const [inline] |
Return position on stack of last copy.
Definition at line 249 of file path.hh.
void Gecode::Search::Parallel::Path::unwind |
( |
int |
l |
) |
[inline] |
Unwind the stack up to position l (after failure).
Definition at line 267 of file path.hh.
void Gecode::Search::Parallel::Path::commit |
( |
Space * |
s, |
|
|
int |
i | |
|
) |
| | const [inline] |
Commit space s as described by stack entry at position i.
Definition at line 243 of file path.hh.
Space * Gecode::Search::Parallel::Path::recompute |
( |
unsigned int & |
d, |
|
|
unsigned int |
a_d, |
|
|
Worker & |
s | |
|
) |
| | [inline] |
Recompute space according to path.
Definition at line 320 of file path.hh.
Space * Gecode::Search::Parallel::Path::recompute |
( |
unsigned int & |
d, |
|
|
unsigned int |
a_d, |
|
|
Worker & |
s, |
|
|
const Space * |
best, |
|
|
int & |
mark | |
|
) |
| | [inline] |
Recompute space according to path.
Definition at line 383 of file path.hh.
int Gecode::Search::Parallel::Path::entries |
( |
void |
|
) |
const [inline] |
Return number of entries on stack.
Definition at line 257 of file path.hh.
size_t Gecode::Search::Parallel::Path::size |
( |
void |
|
) |
const [inline] |
Return size used.
Definition at line 262 of file path.hh.
void Gecode::Search::Parallel::Path::reset |
( |
void |
|
) |
[inline] |
Reset stack.
Definition at line 279 of file path.hh.
bool Gecode::Search::Parallel::Path::steal |
( |
void |
|
) |
const [inline] |
Make a quick check whether stealing might be feasible.
Definition at line 286 of file path.hh.
Space * Gecode::Search::Parallel::Path::steal |
( |
Worker & |
stat, |
|
|
unsigned long int & |
d | |
|
) |
| | [inline] |
Steal work at depth d.
Definition at line 291 of file path.hh.
Member Data Documentation
Stack to store node information.
Definition at line 101 of file path.hh.
Number of nodes that have work for stealing.
Definition at line 103 of file path.hh.
The documentation for this class was generated from the following file: