Generated on Fri Oct 24 2014 15:20:41 for Gecode by doxygen 1.8.8
Gecode::Search::Sequential::Path Class Reference

Depth-first path (stack of edges) supporting recomputation. More...

#include <path.hh>

Classes

class  Edge
 Search tree edge for recomputation More...
 

Public Member Functions

 Path (int l)
 Initialize with no-good depth limit l. More...
 
int ngdl (void) const
 Return no-good depth limit. More...
 
void ngdl (int l)
 Set no-good depth limit to l. More...
 
const Choicepush (Worker &stat, Space *s, Space *c)
 Push space c (a clone of s or NULL) More...
 
bool next (void)
 Generate path for next node and return whether a next node exists. More...
 
Edgetop (void) const
 Provide access to topmost edge. More...
 
bool empty (void) const
 Test whether path is empty. More...
 
int lc (void) const
 Return position on stack of last copy. More...
 
void unwind (int l)
 Unwind the stack up to position l (after failure) More...
 
void commit (Space *s, int i) const
 Commit space s as described by stack entry at position i. More...
 
Spacerecompute (unsigned int &d, unsigned int a_d, Worker &s)
 Recompute space according to path. More...
 
Spacerecompute (unsigned int &d, unsigned int a_d, Worker &s, const Space *best, int &mark)
 Recompute space according to path. More...
 
int entries (void) const
 Return number of entries on stack. More...
 
void reset (void)
 Reset stack. More...
 
virtual void post (Space &home)
 Post no-goods. More...
 
- Public Member Functions inherited from Gecode::NoGoods
 NoGoods (void)
 Initialize. More...
 
unsigned long int ng (void) const
 Return number of no-goods posted. More...
 
void ng (unsigned long int n)
 Set number of no-goods posted to n. More...
 
virtual ~NoGoods (void)
 Destructor. More...
 

Protected Attributes

Support::DynamicStack< Edge, Heapds
 Stack to store edge information. More...
 
int _ngdl
 Depth limit for no-good generation. More...
 
- Protected Attributes inherited from Gecode::NoGoods
unsigned long int n
 Number of no-goods. More...
 

Detailed Description

Depth-first path (stack of edges) supporting recomputation.

Maintains the invariant that it contains the path of the space 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 61 of file path.hh.

Constructor & Destructor Documentation

Gecode::Search::Sequential::Path::Path ( int  l)
inline

Initialize with no-good depth limit l.

Definition at line 208 of file path.hh.

Member Function Documentation

int Gecode::Search::Sequential::Path::ngdl ( void  ) const
inline

Return no-good depth limit.

Definition at line 212 of file path.hh.

void Gecode::Search::Sequential::Path::ngdl ( int  l)
inline

Set no-good depth limit to l.

Definition at line 217 of file path.hh.

const Choice * Gecode::Search::Sequential::Path::push ( Worker stat,
Space s,
Space c 
)
inline

Push space c (a clone of s or NULL)

Definition at line 222 of file path.hh.

bool Gecode::Search::Sequential::Path::next ( void  )
inline

Generate path for next node and return whether a next node exists.

Definition at line 234 of file path.hh.

Path::Edge & Gecode::Search::Sequential::Path::top ( void  ) const
inline

Provide access to topmost edge.

Definition at line 246 of file path.hh.

bool Gecode::Search::Sequential::Path::empty ( void  ) const
inline

Test whether path is empty.

Definition at line 252 of file path.hh.

int Gecode::Search::Sequential::Path::lc ( void  ) const
inline

Return position on stack of last copy.

Definition at line 263 of file path.hh.

void Gecode::Search::Sequential::Path::unwind ( int  l)
inline

Unwind the stack up to position l (after failure)

Definition at line 276 of file path.hh.

void Gecode::Search::Sequential::Path::commit ( Space s,
int  i 
) const
inline

Commit space s as described by stack entry at position i.

Definition at line 257 of file path.hh.

Space * Gecode::Search::Sequential::Path::recompute ( unsigned int &  d,
unsigned int  a_d,
Worker s 
)
inline

Recompute space according to path.

Definition at line 291 of file path.hh.

Space * Gecode::Search::Sequential::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 355 of file path.hh.

int Gecode::Search::Sequential::Path::entries ( void  ) const
inline

Return number of entries on stack.

Definition at line 271 of file path.hh.

void Gecode::Search::Sequential::Path::reset ( void  )
inline

Reset stack.

Definition at line 285 of file path.hh.

void Gecode::Search::Sequential::Path::post ( Space home)
virtual

Post no-goods.

Reimplemented from Gecode::NoGoods.

Definition at line 43 of file path.cpp.

Member Data Documentation

Support::DynamicStack<Edge,Heap> Gecode::Search::Sequential::Path::ds
protected

Stack to store edge information.

Definition at line 105 of file path.hh.

int Gecode::Search::Sequential::Path::_ngdl
protected

Depth limit for no-good generation.

Definition at line 107 of file path.hh.


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