#include <CouenneVarObject.hpp>
Inheritance diagram for CouenneVarObject:
Public Member Functions | |
CouenneVarObject (CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst) | |
Constructor with information for branching point selection strategy. | |
CouenneVarObject (const CouenneVarObject &src) | |
Copy constructor. | |
~CouenneVarObject () | |
Destructor. | |
virtual OsiObject * | clone () const |
Cloning method. | |
virtual double | infeasibility (const OsiBranchingInformation *info, int &way) const |
compute infeasibility of this variable x as the sum/min/max of all infeasibilities of auxiliaries w whose defining function depends on x |w - f(x)| | |
virtual double | checkInfeasibility (const OsiBranchingInformation *info) const |
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x) | |
virtual OsiBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const |
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object | |
virtual double | feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const |
fix nonlinear coordinates of current integer-nonlinear feasible solution | |
virtual bool | isCuttable () const |
are we on the bad or good side of the expression? | |
Protected Member Functions | |
CouNumber | computeBranchingPoint (const OsiBranchingInformation *info, int &bestWay, const CouenneObject *&criticalObject) const |
Method computing the branching point. |
Definition at line 20 of file CouenneVarObject.hpp.
CouenneVarObject::CouenneVarObject | ( | CouenneProblem * | p, | |
exprVar * | ref, | |||
Bonmin::BabSetupBase * | base, | |||
JnlstPtr | jnlst | |||
) |
Constructor with information for branching point selection strategy.
Definition at line 19 of file CouenneVarObject.cpp.
References CouenneObject::alpha_, CouenneObject::BALANCED, J_BRANCHING(), CouenneObject::jnlst_, CouenneObject::LP_CENTRAL, CouenneObject::lp_clamp_, CouenneObject::LP_CLAMPED, CouenneObject::MID_INTERVAL, CouenneObject::MIN_AREA, CouenneObject::NO_BRANCH, CouenneObject::reference_, and CouenneObject::strategy_.
Referenced by clone().
CouenneVarObject::CouenneVarObject | ( | const CouenneVarObject & | src | ) | [inline] |
CouenneVarObject::~CouenneVarObject | ( | ) | [inline] |
virtual OsiObject* CouenneVarObject::clone | ( | ) | const [inline, virtual] |
Cloning method.
Reimplemented from CouenneObject.
Reimplemented in CouenneVTObject.
Definition at line 38 of file CouenneVarObject.hpp.
References CouenneVarObject().
double CouenneVarObject::infeasibility | ( | const OsiBranchingInformation * | info, | |
int & | way | |||
) | const [virtual] |
compute infeasibility of this variable x as the sum/min/max of all infeasibilities of auxiliaries w whose defining function depends on x |w - f(x)|
TODO: suggest way
Reimplemented from CouenneObject.
Reimplemented in CouenneVTObject.
Definition at line 26 of file infeasibility.cpp.
References checkInfeasibility(), computeBranchingPoint(), COUENNE_EPS, CouenneObject::downEstimate_, CouenneObject::feas_tolerance_, CouenneObject::intInfeasibility(), isInteger(), J_BRANCHING(), CouenneObject::jnlst_, CouenneObject::problem_, CouenneObject::PROJECTDIST, CouenneObject::pseudoMultType_, CouenneObject::reference_, CouenneObject::setEstimates(), and CouenneObject::upEstimate_.
double CouenneVarObject::checkInfeasibility | ( | const OsiBranchingInformation * | info | ) | const [virtual] |
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
Reimplemented from CouenneObject.
Definition at line 101 of file infeasibility.cpp.
References COUENNE_EPS, CouenneObject::problem_, CouenneObject::Reference(), CouenneObject::reference_, weiAvg, weiMax, weiMin, and weiSum.
Referenced by CouenneVTObject::infeasibility(), and infeasibility().
OsiBranchingObject * CouenneVarObject::createBranch | ( | OsiSolverInterface * | , | |
const OsiBranchingInformation * | , | |||
int | ||||
) | const [virtual] |
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
Reimplemented from CouenneObject.
Definition at line 45 of file CouenneVarObject.cpp.
References computeBranchingPoint(), CouenneObject::doConvCuts_, CouenneObject::doFBBT_, J_BRANCHING(), CouenneObject::jnlst_, CouenneObject::problem_, and CouenneObject::reference_.
double CouenneVarObject::feasibleRegion | ( | OsiSolverInterface * | , | |
const OsiBranchingInformation * | ||||
) | const [virtual] |
fix nonlinear coordinates of current integer-nonlinear feasible solution
Reimplemented from CouenneObject.
Definition at line 256 of file CouenneVarObject.cpp.
References CouenneObject::reference_, and TOL.
bool CouenneVarObject::isCuttable | ( | ) | const [virtual] |
are we on the bad or good side of the expression?
Reimplemented from CouenneObject.
Definition at line 273 of file CouenneVarObject.cpp.
References isInteger(), CouenneObject::problem_, and CouenneObject::reference_.
CouNumber CouenneVarObject::computeBranchingPoint | ( | const OsiBranchingInformation * | info, | |
int & | bestWay, | |||
const CouenneObject *& | criticalObject | |||
) | const [protected] |
Method computing the branching point.
Definition at line 83 of file CouenneVarObject.cpp.
References COU_MAX_COEFF, CouenneObject::downEstimate_, e, J_BRANCHING(), CouenneObject::jnlst_, CouenneObject::LP_CENTRAL, CouenneObject::lp_clamp_, CouenneObject::LP_CLAMPED, CouenneObject::MID_INTERVAL, CouenneObject::midInterval(), CouenneObject::problem_, CouenneObject::PROJECTDIST, CouenneObject::pseudoMultType_, CouenneObject::Reference(), CouenneObject::reference_, CouenneObject::strategy_, TWO_LEFT, TWO_RAND, TWO_RIGHT, and CouenneObject::upEstimate_.
Referenced by createBranch(), and infeasibility().