Couenne 0.5.8
|
Spatial, three-way branching object. More...
#include <CouenneThreeWayBranchObj.hpp>
Public Member Functions | |
CouenneThreeWayBranchObj (JnlstPtr jnlst, expression *, CouNumber, CouNumber, int=THREE_CENTER) | |
Constructor. | |
CouenneThreeWayBranchObj (const CouenneThreeWayBranchObj &src) | |
Copy constructor. | |
virtual OsiBranchingObject * | clone () const |
Cloning method. | |
virtual double | branch (OsiSolverInterface *solver=NULL) |
Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state. | |
![]() | |
OsiBranchingObject () | |
OsiBranchingObject (OsiSolverInterface *solver, double value) | |
OsiBranchingObject (const OsiBranchingObject &) | |
OsiBranchingObject & | operator= (const OsiBranchingObject &rhs) |
virtual OsiBranchingObject * | clone () const=0 |
virtual | ~OsiBranchingObject () |
int | numberBranches () const |
int | numberBranchesLeft () const |
void | incrementNumberBranchesLeft () |
void | setNumberBranchesLeft (int) |
void | decrementNumberBranchesLeft () |
virtual double | branch (OsiSolverInterface *solver)=0 |
virtual double | branch () |
virtual bool | boundBranch () const |
int | branchIndex () const |
void | setBranchingIndex (int branchIndex) |
double | value () const |
const OsiObject * | originalObject () const |
void | setOriginalObject (const OsiObject *object) |
virtual void | checkIsCutoff (double) |
int | columnNumber () const |
virtual void | print (const OsiSolverInterface *=NULL) const |
Protected Attributes | |
expression * | brVar_ |
The variable this branching object refers to. | |
CouNumber | lcrop_ |
left divider | |
CouNumber | rcrop_ |
right divider | |
int | firstBranch_ |
First branch to be performed: 0 is left, 1 is central, 2 is right. | |
JnlstPtr | jnlst_ |
True if the associated variable is integer. | |
![]() | |
double | value_ |
const OsiObject * | originalObject_ |
int | numberBranches_ |
short | branchIndex_ |
Spatial, three-way branching object.
Branching is performed on continuous variables but a better convexification is sought around the current point by dividing the interval in three parts
Definition at line 28 of file CouenneThreeWayBranchObj.hpp.
Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj | ( | JnlstPtr | jnlst, |
expression * | , | ||
CouNumber | , | ||
CouNumber | , | ||
int | = THREE_CENTER |
||
) |
Constructor.
|
inline |
Copy constructor.
Definition at line 42 of file CouenneThreeWayBranchObj.hpp.
|
inlinevirtual |
Cloning method.
Implements OsiBranchingObject.
Definition at line 51 of file CouenneThreeWayBranchObj.hpp.
|
virtual |
Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state.
Returns change in guessed objective on next (what does "next" mean here?) branch
Implements OsiBranchingObject.
|
protected |
The variable this branching object refers to.
If the corresponding CouenneObject was created on w=f(x,y), it is either x or y.
Definition at line 67 of file CouenneThreeWayBranchObj.hpp.
|
protected |
left divider
Definition at line 69 of file CouenneThreeWayBranchObj.hpp.
|
protected |
right divider
Definition at line 70 of file CouenneThreeWayBranchObj.hpp.
|
protected |
First branch to be performed: 0 is left, 1 is central, 2 is right.
Definition at line 73 of file CouenneThreeWayBranchObj.hpp.
|
protected |
True if the associated variable is integer.
SmartPointer to the Journalist
Definition at line 79 of file CouenneThreeWayBranchObj.hpp.