Gecode::Brancher Class Reference
[Programming actors]
Base-class for branchers. More...
#include <core.hpp>
Protected Member Functions | |
Brancher (Home home) | |
Constructor for creation. | |
Brancher (Space &home, bool share, Brancher &b) | |
Constructor for cloning b. | |
Brancher | |
| |
virtual bool | status (const Space &home) const =0 |
Check status of brancher, return true if alternatives left. | |
virtual const Choice * | choice (Space &home)=0 |
Return choice. | |
virtual const Choice * | choice (const Space &home, Archive &e)=0 |
Return choice from e. | |
virtual ExecStatus | commit (Space &home, const Choice &c, unsigned int a)=0 |
Commit for choice c and alternative a. | |
virtual NGL * | ngl (Space &home, const Choice &c, unsigned int a) const |
Create no-good literal for choice c and alternative a. | |
virtual void | print (const Space &home, const Choice &c, unsigned int a, std::ostream &o) const |
Print branch for choice c and alternative a. | |
Id and group support | |
| |
unsigned int | id (void) const |
Return brancher id. | |
BrancherGroup | group (void) const |
Return group brancher belongs to. | |
void | group (BrancherGroup g) |
Add brancher to group g. |
Detailed Description
Base-class for branchers.
Note that branchers cannot be created inside a propagator (no idea why one would like to do that anyway). If you do that the system will explode in a truly interesting way.
Definition at line 1446 of file core.hpp.
Constructor & Destructor Documentation
Gecode::Brancher::Brancher | ( | Home | home | ) | [inline, protected] |
Member Function Documentation
virtual bool Gecode::Brancher::status | ( | const Space & | home | ) | const [pure virtual] |
Check status of brancher, return true if alternatives left.
This method is called when Space::status is called, it determines whether to continue branching with this brancher or move on to the (possibly) next brancher.
Implemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::FunctionBranch, Gecode::ViewBrancher< View, Filter, n >, and Gecode::ViewBrancher< IntView, Filter, n >.
Return choice.
Note that this method relies on the fact that it is called immediately after a previous call to status. Moreover, the member function can only be called once.
Implemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >, Gecode::FunctionBranch, Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >, and Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >.
Return choice from e.
Implemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >, Gecode::FunctionBranch, and Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >.
virtual ExecStatus Gecode::Brancher::commit | ( | Space & | home, | |
const Choice & | c, | |||
unsigned int | a | |||
) | [pure virtual] |
Commit for choice c and alternative a.
The current brancher in the space home performs a commit from the information provided by the choice c and the alternative a.
Implemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >, Gecode::FunctionBranch, Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >, and Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >.
Create no-good literal for choice c and alternative a.
The current brancher in the space home creates a no-good literal from the information provided by the choice c and the alternative a. The brancher has the following options:
- it returns NULL for all alternatives a. This means that the brancher does not support no-good literals (default).
- it returns NULL for the last alternative a. This means that this alternative is equivalent to the negation of the disjunction of all other alternatives.
Reimplemented in Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, and Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >.
void Gecode::Brancher::print | ( | const Space & | home, | |
const Choice & | c, | |||
unsigned int | a, | |||
std::ostream & | o | |||
) | const [virtual] |
Print branch for choice c and alternative a.
Prints an explanation of the alternative a of choice c on the stream o.
Reimplemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, Gecode::FunctionBranch, and Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >.
unsigned int Gecode::Brancher::id | ( | void | ) | const [inline] |
BrancherGroup Gecode::Brancher::group | ( | void | ) | const [inline] |
void Gecode::Brancher::group | ( | BrancherGroup | g | ) | [inline] |
The documentation for this class was generated from the following files:
- gecode/kernel/core.hpp (Revision: 15597)
- gecode/kernel/core.cpp (Revision: 15597)