11 #ifndef COUENNESOSOBJECT_HPP
12 #define COUENNESOSOBJECT_HPP
14 #include "OsiBranchingObject.hpp"
20 class CouenneSOSObject;
56 OsiSolverInterface *solver,
57 const OsiSOS *originalObject,
64 OsiSOSBranchingObject (solver, originalObject, way, separator),
74 OsiSOSBranchingObject (src),
83 virtual OsiBranchingObject *
clone()
const
87 virtual double branch (OsiSolverInterface * solver);
118 CouenneSOSObject (OsiSolverInterface *solver,
int nelem,
int *indices,
double *weights,
int type,
125 OsiSOS (solver, nelem, indices, weights, type),
147 OsiBranchingObject *
createBranch (OsiSolverInterface* si,
148 const OsiBranchingInformation* info,
int way)
const;
CouenneProblem * problem_
pointer to Couenne problem
exprVar * reference_
The (auxiliary) variable this branching object refers to.
CouenneSOSBranchingObject(CouenneProblem *p, exprVar *ref, OsiSolverInterface *solver, const OsiSOS *originalObject, int way, double separator, JnlstPtr jnlst, bool doFBBT, bool doConvCuts)
CouenneSOSObject(const CouenneSOSObject &src)
Copy constructor.
exprVar * reference_
The (auxiliary) variable this branching object refers to.
CouenneProblem * problem_
pointer to Couenne problem
bool doConvCuts_
shall we add convexification cuts at branching?
JnlstPtr jnlst_
SmartPointer to the Journalist.
Class for MINLP problems with symbolic information.
virtual OsiBranchingObject * clone() const
Clone.
CouenneSOSBranchingObject()
JnlstPtr jnlst_
SmartPointer to the Journalist.
virtual double branch(OsiSolverInterface *solver)
Does next branch and updates state.
bool doFBBT_
shall we do Feasibility based Bound Tightening (FBBT) at branching?
virtual OsiObject * clone() const
Cloning method.
CouenneSOSObject(OsiSolverInterface *solver, int nelem, int *indices, double *weights, int type, CouenneProblem *problem, exprVar *ref, JnlstPtr jnlst, bool doFBBT, bool doConvCuts)
CouenneSOSBranchingObject(const CouenneSOSBranchingObject &src)
bool doConvCuts_
shall we add convexification cuts at branching?
OsiBranchingObject * createBranch(OsiSolverInterface *si, const OsiBranchingInformation *info, int way) const
create branching objects
bool doFBBT_
shall we do Feasibility based Bound Tightening (FBBT) at branching?