Generated on Wed Feb 7 10:28:54 2018 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, Brancher &b)
 Constructor for cloning b.


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.

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

Constructor & Destructor Documentation

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

Constructor for creation.

Definition at line 3475 of file core.hpp.

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

Constructor for cloning b.

Definition at line 3492 of file core.hpp.

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::IntBoolBrancherBase, Gecode::FlatZinc::AuxVarBrancher, Gecode::Gist::StopBrancher, Gecode::Kernel::FunctionBranch, Gecode::ViewBrancher< View, Filter, n >, and Gecode::ViewBrancher< IntView, Filter, n >.

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::FlatZinc::IntBoolBrancherBase, Gecode::Int::Branch::ViewValuesBrancher< n, min, Filter, Print >, and Gecode::ViewValBrancher< View, n, Val, a, Filter, Print >.

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]
unsigned int Gecode::Brancher::id ( void   )  const [inline]

Return brancher id.

Definition at line 3499 of file core.hpp.

BrancherGroup Gecode::Brancher::group ( void   )  const [inline]

Return group brancher belongs to.

Definition at line 3504 of file core.hpp.

void Gecode::Brancher::group ( BrancherGroup  g  )  [inline]

Add brancher to group g.

Definition at line 3509 of file core.hpp.

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