Go to the documentation of this file.
12 #ifndef COUENNEBRANCHINGOBJECT_HPP
13 #define COUENNEBRANCHINGOBJECT_HPP
22 class CouenneCutGenerator;
25 #define COUENNE_CROP 1
26 #define COUENNE_LCROP (1e2*COUENNE_CROP)
28 #define COUENNE_LARGE_INTERVAL 1e4
29 #define COUENNE_NEAR_BOUND 1e-2
status of lower/upper bound of a variable, to be checked/modified in bound tightening
virtual OsiBranchingObject * clone() const
cloning method
"Spatial" branching object.
void branchCore(OsiSolverInterface *, int, int, bool, double, t_chg_bounds *&)
Perform branching step.
Cut Generator for linear convexifications.
bool doConvCuts_
shall we add convexification cuts at branching?
bool doFBBT_
shall we do Feasibility based Bound Tightening (FBBT) at branching?
CouenneBranchingObject(OsiSolverInterface *solver, const OsiObject *originalObject, JnlstPtr jnlst, CouenneCutGenerator *c, CouenneProblem *p, expression *var, int way, CouNumber brpoint, bool doFBBT, bool doConvCuts)
Constructor.
general include file for different compilers
virtual bool boundBranch() const
does this branching object only change variable bounds?
static int maxDepthOrbBranch
static int nSGcomputations
JnlstPtr jnlst_
SmartPointer to the Journalist.
double CouNumber
main number type in Couenne
CouenneBranchingObject(const CouenneBranchingObject &src)
Copy constructor.
expression * variable_
The index of the variable this branching object refers to.
expression * variable()
return branching variable
CouenneProblem * problem_
Pointer to CouenneProblem (necessary to allow FBBT)
bool simulate_
are we currently in strong branching?
double upEstimate_
up branch estimate
void setSimulate(bool s)
set simulate_ field below
const OsiObject * originalObject() const
double downEstimate_
down branch estimate (done at selectBranch with reduced costs)
Class for MINLP problems with symbolic information.
CouenneCutGenerator * cutGen_
Pointer to CouenneCutGenerator (if any); if not NULL, allows to do extra cut generation during branch...
virtual double branch(OsiSolverInterface *solver=NULL)
Execute the actions required to branch, as specified by the current state of the branching object,...