Generated on Fri Mar 20 15:56:47 2015 for Gecode by doxygen 1.6.3

Gecode::Brancher Class Reference
[Programming actors]

Base-class for branchers. More...

#include <core.hpp>

List of all members.

Protected Member Functions

 Brancher (Home home)
 Constructor for creation.
 Brancher (Space &home, bool share, Brancher &b)
 Constructor for cloning b.

Brancher



unsigned int id (void) const
 Return unsigned brancher id.
virtual bool status (const Space &home) const =0
 Check status of brancher, return true if alternatives left.
virtual const Choicechoice (Space &home)=0
 Return choice.
virtual const Choicechoice (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 NGLngl (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.

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 1071 of file core.hpp.


Constructor & Destructor Documentation

Gecode::Brancher::Brancher ( Home  home  )  [inline, protected]

Constructor for creation.

Definition at line 3015 of file core.hpp.

Gecode::Brancher::Brancher ( Space home,
bool  share,
Brancher b 
) [inline, protected]

Constructor for cloning b.

Definition at line 3029 of file core.hpp.


Member Function Documentation

unsigned int Gecode::Brancher::id ( void   )  const [inline]

Return unsigned brancher id.

Definition at line 3036 of file core.hpp.

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, n >, and Gecode::ViewBrancher< IntView, n >.

virtual const Choice* Gecode::Brancher::choice ( Space home  )  [pure virtual]
virtual ExecStatus Gecode::Brancher::commit ( Space home,
const Choice c,
unsigned int  a 
) [pure virtual]
NGL * Gecode::Brancher::ngl ( Space home,
const Choice c,
unsigned int  a 
) const [virtual]

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 >, and Gecode::ViewValBrancher< View, n, Val, a >.

Definition at line 92 of file core.cpp.

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.

The default function prints nothing.

Reimplemented in CDBF, Warnsdorff, QueenArmies::QueenBranch, Radiotherapy::NestedSearch, SteelMill::SteelMillBranch, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Int::Branch::ViewValuesBrancher< n, min >, Gecode::FunctionBranch, and Gecode::ViewValBrancher< View, n, Val, a >.

Definition at line 97 of file core.cpp.


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