#include <CbcBranchBase.hpp>
Inheritance diagram for CbcBranchingObject:
Public Member Functions | |
CbcBranchingObject () | |
Default Constructor. | |
CbcBranchingObject (CbcModel *model, int variable, int way, double value) | |
Constructor. | |
CbcBranchingObject (const CbcBranchingObject &) | |
Copy constructor. | |
CbcBranchingObject & | operator= (const CbcBranchingObject &rhs) |
Assignment operator. | |
virtual CbcBranchingObject * | clone () const =0 |
Clone. | |
virtual | ~CbcBranchingObject () |
Destructor. | |
virtual int | fillStrongInfo (CbcStrongInfo &info) |
Some branchingObjects may claim to be able to skip strong branching. | |
virtual int | numberBranches () const |
The number of branch arms created for this branching object. | |
virtual int | numberBranchesLeft () const |
The number of branch arms left to be evaluated. | |
void | resetNumberBranchesLeft () |
Reset number of branches left to original. | |
virtual double | branch (bool normalBranch=false)=0 |
Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state. Mainly for diagnostics, whether it is true branch or strong branching is also passed. Returns change in guessed objective on next branch. | |
virtual void | print (bool normalBranch) |
Print something about branch - only if log level high. | |
virtual bool | boundBranch () const |
Return true if branch should fix variables. | |
int | variable () const |
Index identifying the associated CbcObject within its class. | |
int | way () const |
Get the state of the branching object. | |
void | way (int way) |
Set the state of the branching object. | |
double | value () const |
Current value. | |
CbcModel * | model () const |
Return model. | |
CbcObject * | object () const |
Return pointer back to object which created. | |
void | setOriginalObject (CbcObject *object) |
Set pointer back to object which created. | |
Protected Attributes | |
CbcModel * | model_ |
The model that owns this branching object. | |
CbcObject * | originalObject_ |
Pointer back to object which created. | |
int | variable_ |
Branching variable (0 is first integer). | |
int | way_ |
The state of the branching object. | |
double | value_ |
Current value. | |
int | numberBranchesLeft_ |
Number of arms remaining to be evaluated. |
In the abstract, an CbcBranchingObject contains instructions for how to branch. We want an abstract class so that we can describe how to branch on simple objects (e.g., integers) and more exotic objects (e.g., cliques or hyperplanes).
The branch() method is the crucial routine: it is expected to be able to step through a set of branch arms, executing the actions required to create each subproblem in turn. The base class is primarily virtual to allow for a wide range of problem modifications.
See CbcObject for an overview of the three classes (CbcObject, CbcBranchingObject, and CbcBranchDecision) which make up cbc's branching model.
Definition at line 220 of file CbcBranchBase.hpp.
|
Default Constructor.
|
|
Constructor.
|
|
Copy constructor.
|
|
Destructor.
|
|
Assignment operator.
|
|
|
Some branchingObjects may claim to be able to skip strong branching. If so they ahve to fill in CbcStrongInfo. The object mention in incoming CbcStrongInfo must match. Returns nonzero if skip is wanted Reimplemented in CbcDynamicPseudoCostBranchingObject. Definition at line 246 of file CbcBranchBase.hpp. |
|
The number of branch arms created for this branching object.
Reimplemented in CbcNWayBranchingObject. Definition at line 252 of file CbcBranchBase.hpp. |
|
The number of branch arms left to be evaluated.
Definition at line 256 of file CbcBranchBase.hpp. |
|
Reset number of branches left to original.
Definition at line 259 of file CbcBranchBase.hpp. |
|
Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state. Mainly for diagnostics, whether it is true branch or strong branching is also passed. Returns change in guessed objective on next branch.
Implemented in CbcIntegerBranchingObject, CbcIntegerPseudoCostBranchingObject, CbcCliqueBranchingObject, CbcLongCliqueBranchingObject, CbcSOSBranchingObject, CbcNWayBranchingObject, CbcFixingBranchingObject, CbcCutBranchingObject, CbcDynamicPseudoCostBranchingObject, CbcLotsizeBranchingObject, and CbcLinkBranchingObject. |
|
Print something about branch - only if log level high.
Reimplemented in CbcIntegerBranchingObject, CbcCliqueBranchingObject, CbcLongCliqueBranchingObject, CbcSOSBranchingObject, CbcNWayBranchingObject, CbcFixingBranchingObject, CbcCutBranchingObject, CbcLotsizeBranchingObject, and CbcLinkBranchingObject. Definition at line 272 of file CbcBranchBase.hpp. |
|
Return true if branch should fix variables.
Reimplemented in CbcCutBranchingObject. Definition at line 276 of file CbcBranchBase.hpp. |
|
Index identifying the associated CbcObject within its class. The name is misleading, and typically the index will not refer directly to a variable. Rather, it identifies an CbcObject within the class of similar CbcObjects E.g., for an CbcSimpleInteger, variable() is the index of the integer variable in the set of integer variables (not the index of the variable in the set of all variables). Definition at line 290 of file CbcBranchBase.hpp. |
|
Get the state of the branching object. Returns a code indicating the active arm of the branching object. The precise meaning is defined in the derived class.
Definition at line 300 of file CbcBranchBase.hpp. |
|
Set the state of the branching object. See way() Definition at line 307 of file CbcBranchBase.hpp. |
|
Current value.
Definition at line 311 of file CbcBranchBase.hpp. |
|
Return model.
Definition at line 315 of file CbcBranchBase.hpp. |
|
Return pointer back to object which created.
Reimplemented in CbcDynamicPseudoCostBranchingObject. Definition at line 319 of file CbcBranchBase.hpp. |
|
Set pointer back to object which created.
Definition at line 322 of file CbcBranchBase.hpp. |
|
The model that owns this branching object.
Definition at line 328 of file CbcBranchBase.hpp. |
|
Pointer back to object which created.
Definition at line 330 of file CbcBranchBase.hpp. |
|
Branching variable (0 is first integer).
Definition at line 333 of file CbcBranchBase.hpp. |
|
The state of the branching object. Specifies the active arm of the branching object. Coded as -1 to take the `down' arm, +1 for the `up' arm. `Down' and `up' are defined based on the natural meaning (floor and ceiling, respectively) for a simple integer. The precise meaning is defined in the derived class. Definition at line 342 of file CbcBranchBase.hpp. |
|
Current value.
Definition at line 345 of file CbcBranchBase.hpp. |
|
Number of arms remaining to be evaluated.
Definition at line 352 of file CbcBranchBase.hpp. |