Gecode::Gist::SpaceNode Class Reference
A node of a search tree of Gecode spaces. More...
#include <spacenode.hh>
Public Member Functions | |
SpaceNode (void) | |
Construct node. | |
SpaceNode (Space *root) | |
Construct root node from Space root and branch-and-bound object better. | |
~SpaceNode (void) | |
Destructor. | |
Space * | getSpace (BestNode *curBest, int c_d, int a_d) |
Return working space. Receiver must delete the space. | |
const Space * | getWorkingSpace (void) const |
Return working space (if present). | |
void | purge (void) |
Clear working space and copy (if present and this is not the root). | |
bool | isCurrentBest (BestNode *curBest) |
Return whether this node is the currently best solution. | |
int | getNumberOfChildNodes (NodeAllocator &na, BestNode *curBest, Statistics &stats, int c_d, int a_d) |
Compute and return the number of children. | |
NodeStatus | getStatus (void) const |
Return current status of the node. | |
bool | isStepNode (void) |
Return whether this node represents a propagation step. | |
void | setSpecialDesc (const SpecialDesc *d) |
Change the SpecialDesc to d. | |
void | setStepDesc (StepDesc *d) |
Change the StepDesc to d. | |
StepDesc * | getStepDesc (void) |
Return the StepDesc. | |
bool | isOpen (void) |
Return whether this node still has open children. | |
bool | hasFailedChildren (void) |
Return whether the subtree of this node has any failed children. | |
bool | hasSolvedChildren (void) |
Return whether the subtree of this node has any solved children. | |
bool | hasOpenChildren (void) |
Return whether the subtree of this node has any open children. | |
int | getNoOfOpenChildren (void) |
Return number of open children. | |
void | setNoOfOpenChildren (int n) |
Set number of open children to n. | |
bool | hasCopy (void) |
Return whether the node has a copy. | |
bool | hasWorkingSpace (void) |
Return whether the node has a working space. | |
SpaceNode * | getParent (void) |
Return the parent. | |
SpaceNode * | getChild (int i) |
Return child i. | |
int | getAlternative (void) |
Return alternative number of this node. | |
Protected Types | |
enum | SpaceNodeFlags { HASOPENCHILDREN = FIRSTBIT, HASFAILEDCHILDREN, HASSOLVEDCHILDREN } |
Flags for SpaceNodes. More... | |
Protected Member Functions | |
void | setDistance (unsigned int d) |
Set distance from copy. | |
unsigned int | getDistance (void) const |
Return distance from copy. | |
void | setFlag (int flag, bool value) |
Set status flag. | |
bool | getFlag (int flag) const |
Return status flag. | |
void | acquireSpace (BestNode *curBest, int c_d, int a_d) |
Acquire working space, either from parent or by recomputation. | |
Protected Attributes | |
Space * | copy |
A copy used for recomputation, or NULL. | |
Space * | workingSpace |
Working space used for computing the status. | |
union { | |
const Choice * branch | |
Choice. | |
const SpecialDesc * special | |
Special branching description. | |
StepDesc * step | |
Step description. | |
} | desc |
Static Protected Attributes | |
static const int | LASTBIT = HASSOLVEDCHILDREN |
Last bit used for SpaceNode flags. |
Detailed Description
A node of a search tree of Gecode spaces.
Definition at line 111 of file spacenode.hh.
Member Enumeration Documentation
enum Gecode::Gist::SpaceNode::SpaceNodeFlags [protected] |
Flags for SpaceNodes.
Definition at line 150 of file spacenode.hh.
Constructor & Destructor Documentation
Gecode::Gist::SpaceNode::SpaceNode | ( | void | ) | [inline] |
Construct node.
Definition at line 103 of file spacenode.hpp.
Gecode::Gist::SpaceNode::SpaceNode | ( | Space * | root | ) |
Construct root node from Space root and branch-and-bound object better.
Definition at line 334 of file spacenode.cpp.
Gecode::Gist::SpaceNode::~SpaceNode | ( | void | ) |
Destructor.
Definition at line 354 of file spacenode.cpp.
Member Function Documentation
void Gecode::Gist::SpaceNode::setDistance | ( | unsigned int | d | ) | [inline, protected] |
Set distance from copy.
Definition at line 90 of file spacenode.hpp.
unsigned int Gecode::Gist::SpaceNode::getDistance | ( | void | ) | const [inline, protected] |
Return distance from copy.
Definition at line 98 of file spacenode.hpp.
void Gecode::Gist::SpaceNode::setFlag | ( | int | flag, | |
bool | value | |||
) | [inline, protected] |
Set status flag.
Definition at line 51 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::getFlag | ( | int | flag | ) | const [inline, protected] |
Return status flag.
Definition at line 59 of file spacenode.hpp.
void Gecode::Gist::SpaceNode::acquireSpace | ( | BestNode * | curBest, | |
int | c_d, | |||
int | a_d | |||
) | [protected] |
Acquire working space, either from parent or by recomputation.
Definition at line 208 of file spacenode.cpp.
Return working space. Receiver must delete the space.
Definition at line 112 of file spacenode.hpp.
const Space * Gecode::Gist::SpaceNode::getWorkingSpace | ( | void | ) | const [inline] |
Return working space (if present).
Definition at line 120 of file spacenode.hpp.
void Gecode::Gist::SpaceNode::purge | ( | void | ) | [inline] |
Clear working space and copy (if present and this is not the root).
Definition at line 125 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::isCurrentBest | ( | BestNode * | curBest | ) | [inline] |
Return whether this node is the currently best solution.
Definition at line 139 of file spacenode.hpp.
int Gecode::Gist::SpaceNode::getNumberOfChildNodes | ( | NodeAllocator & | na, | |
BestNode * | curBest, | |||
Statistics & | stats, | |||
int | c_d, | |||
int | a_d | |||
) |
Compute and return the number of children.
On a node whose status is already determined, this function just returns the number of children. On an undetermined node, it first acquires a Space (possibly through recomputation), and then asks for its status. If the space is solved or failed, the node's status will be set accordingly, and 0 will be returned. Otherwise, the status is SS_BRANCH, and as many new children will be created as the branch has alternatives, and the number returned.
Definition at line 367 of file spacenode.cpp.
NodeStatus Gecode::Gist::SpaceNode::getStatus | ( | void | ) | const [inline] |
Return current status of the node.
Definition at line 85 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::isStepNode | ( | void | ) | [inline] |
Return whether this node represents a propagation step.
Definition at line 154 of file spacenode.hpp.
void Gecode::Gist::SpaceNode::setSpecialDesc | ( | const SpecialDesc * | d | ) | [inline] |
Change the SpecialDesc to d.
Definition at line 144 of file spacenode.hpp.
void Gecode::Gist::SpaceNode::setStepDesc | ( | StepDesc * | d | ) | [inline] |
Change the StepDesc to d.
Definition at line 149 of file spacenode.hpp.
StepDesc * Gecode::Gist::SpaceNode::getStepDesc | ( | void | ) | [inline] |
Return the StepDesc.
Definition at line 159 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::isOpen | ( | void | ) | [inline] |
Return whether this node still has open children.
Definition at line 164 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::hasFailedChildren | ( | void | ) | [inline] |
Return whether the subtree of this node has any failed children.
Definition at line 170 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::hasSolvedChildren | ( | void | ) | [inline] |
Return whether the subtree of this node has any solved children.
Definition at line 175 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::hasOpenChildren | ( | void | ) | [inline] |
Return whether the subtree of this node has any open children.
Definition at line 180 of file spacenode.hpp.
int Gecode::Gist::SpaceNode::getNoOfOpenChildren | ( | void | ) |
Return number of open children.
Definition at line 429 of file spacenode.cpp.
void Gecode::Gist::SpaceNode::setNoOfOpenChildren | ( | int | n | ) |
Set number of open children to n.
bool Gecode::Gist::SpaceNode::hasCopy | ( | void | ) | [inline] |
Return whether the node has a copy.
Definition at line 185 of file spacenode.hpp.
bool Gecode::Gist::SpaceNode::hasWorkingSpace | ( | void | ) | [inline] |
Return whether the node has a working space.
Definition at line 190 of file spacenode.hpp.
SpaceNode * Gecode::Gist::SpaceNode::getParent | ( | void | ) | [inline] |
Return the parent.
Reimplemented from Gecode::Gist::Node.
Reimplemented in Gecode::Gist::VisualNode.
Definition at line 41 of file spacenode.hpp.
SpaceNode * Gecode::Gist::SpaceNode::getChild | ( | int | i | ) | [inline] |
Return child i.
Reimplemented in Gecode::Gist::VisualNode.
Definition at line 46 of file spacenode.hpp.
int Gecode::Gist::SpaceNode::getAlternative | ( | void | ) | [inline] |
Return alternative number of this node.
Definition at line 195 of file spacenode.hpp.
Member Data Documentation
Space* Gecode::Gist::SpaceNode::copy [protected] |
A copy used for recomputation, or NULL.
Definition at line 114 of file spacenode.hh.
Space* Gecode::Gist::SpaceNode::workingSpace [protected] |
Working space used for computing the status.
Definition at line 116 of file spacenode.hh.
Definition at line 130 of file spacenode.hh.
Special branching description.
Definition at line 132 of file spacenode.hh.
Step description.
Definition at line 134 of file spacenode.hh.
union { ... } Gecode::Gist::SpaceNode::desc [protected] |
const int Gecode::Gist::SpaceNode::LASTBIT = HASSOLVEDCHILDREN [static, protected] |
Last bit used for SpaceNode flags.
Definition at line 156 of file spacenode.hh.
The documentation for this class was generated from the following files:
- gecode/gist/spacenode.hh (Revision: 9766)
- gecode/gist/spacenode.cpp (Revision: 9766)
- gecode/gist/spacenode.hpp (Revision: 9766)