#include <CouenneThreeWayBranchObj.hpp>
Collaboration diagram for Couenne::CouenneThreeWayBranchObj:
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. | |
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_ |
SmartPointer to the Journalist. |
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.
CouenneThreeWayBranchObj::CouenneThreeWayBranchObj | ( | JnlstPtr | jnlst, | |
expression * | brVar, | |||
CouNumber | lcrop, | |||
CouNumber | rcrop, | |||
int | way = THREE_CENTER | |||
) |
Constructor.
Get a variable as an argument and set value_ through a call to operator () of that exprAux.
Definition at line 21 of file CouenneThreeWayBranchObj.cpp.
References firstBranch_, Couenne::THREE_CENTER, Couenne::THREE_LEFT, Couenne::THREE_RAND, and Couenne::THREE_RIGHT.
Referenced by clone().
Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj | ( | const CouenneThreeWayBranchObj & | src | ) | [inline] |
virtual OsiBranchingObject* Couenne::CouenneThreeWayBranchObj::clone | ( | ) | const [inline, virtual] |
Cloning method.
Definition at line 51 of file CouenneThreeWayBranchObj.hpp.
References CouenneThreeWayBranchObj().
double CouenneThreeWayBranchObj::branch | ( | OsiSolverInterface * | solver = NULL |
) | [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
Definition at line 53 of file CouenneThreeWayBranchObj.cpp.
References brVar_, firstBranch_, Couenne::isInteger(), Couenne::J_BRANCHING(), jnlst_, lcrop_, and rcrop_.
expression* Couenne::CouenneThreeWayBranchObj::brVar_ [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.
Referenced by branch().
CouNumber Couenne::CouenneThreeWayBranchObj::lcrop_ [protected] |
CouNumber Couenne::CouenneThreeWayBranchObj::rcrop_ [protected] |
int Couenne::CouenneThreeWayBranchObj::firstBranch_ [protected] |
First branch to be performed: 0 is left, 1 is central, 2 is right.
Definition at line 73 of file CouenneThreeWayBranchObj.hpp.
Referenced by branch(), and CouenneThreeWayBranchObj().
JnlstPtr Couenne::CouenneThreeWayBranchObj::jnlst_ [protected] |
SmartPointer to the Journalist.
Definition at line 79 of file CouenneThreeWayBranchObj.hpp.
Referenced by branch().