Gecode::ViewValBranching< View, Val, ViewSel, ValSel > Class Template Reference
[Generic branching based on view and value selection]
Inherits Gecode::Branching.
Detailed Description
template<class View, class Val, class ViewSel, class ValSel>
class Gecode::ViewValBranching< View, Val, ViewSel, ValSel >
Generic branching.
Implements view-based branching for an array of views (of type View) and value (of type Val). The behaviour is defined by the class ViewSel (which view is selected for branching) and the class ValSel (which value is selected for branching).
The class ViewSel must implement two member functions:
- Gecode::ViewSelStatus init(const Space* home, View x) Initializes view selection with the View . If x is known to be a best one, VSS_COMMIT should be returned. Otherwise, either VSS_NONE or VSS_SELECT should be returned.
- Gecode::ViewSelStatus select(const Space* home, View x) If x is not better than the previously selected view, return VSS_NONE. If it is better, return VSS_SELECT. If it is a best view, return VSS_COMMIT.
The class VarSel must implement two member functions:
- Val val(const Space* home, View x) const returns the value (most likely determined by x) to branch with.
- Gecode::ModEvent tell(Space* home, unsigned int a, View x, Val n) performs a tell for alternative a on x with value n.
For examples, see integer branchings .
Definition at line 68 of file branching.icc.
Public Member Functions | |
ViewValBranching (Space *home, ViewArray< View > &x) | |
Constructor for creation. | |
virtual bool | status (const Space *home) const |
Check status of branching, return true if alternatives left. | |
virtual const BranchingDesc * | description (const Space *home) const |
Return branching description (of type Gecode::PosValDesc). | |
virtual ExecStatus | commit (Space *home, const BranchingDesc *d, unsigned int a) |
Perform commit for branching description d and alternative a. | |
virtual Actor * | copy (Space *home, bool share) |
Perform cloning. | |
Protected Member Functions | |
ViewValBranching (Space *home, bool share, ViewValBranching &b) | |
Constructor for cloning b. | |
Protected Attributes | |
ViewArray< View > | x |
Views to branch on. | |
int | start |
Unassigned views start at x[start]. |
Constructor & Destructor Documentation
|
Constructor for cloning b.
Definition at line 173 of file branching.icc. |
|
Constructor for creation.
Definition at line 166 of file branching.icc. |
Member Function Documentation
|
Check status of branching, return true if alternatives left.
Implements Gecode::Branching. Definition at line 188 of file branching.icc. |
|
Return branching description (of type Gecode::PosValDesc).
Implements Gecode::Branching. Definition at line 200 of file branching.icc. |
|
Perform commit for branching description d and alternative a.
Implements Gecode::Branching. Definition at line 222 of file branching.icc. |
|
Perform cloning.
Implements Gecode::Actor. Definition at line 180 of file branching.icc. |
Member Data Documentation
|
Views to branch on.
Definition at line 70 of file branching.icc. |
|
Unassigned views start at x[start].
Definition at line 71 of file branching.icc. |
The documentation for this class was generated from the following file:
- gecode/kernel/branching.icc (Revision: 3784)