#include <CouenneVarObject.hpp>
Inheritance diagram for CouenneVarObject:


Public Member Functions | |
| CouenneVarObject (CouenneCutGenerator *c, 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 CouenneObject * | 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 | ( | CouenneCutGenerator * | c, | |
| 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 CouenneObject* CouenneVarObject::clone | ( | ) | const [inline, virtual] |
Cloning method.
Reimplemented from CouenneObject.
Reimplemented in CouenneVTObject.
Definition at line 39 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 46 of file CouenneVarObject.cpp.
References computeBranchingPoint(), CouenneObject::cutGen_, 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 258 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 275 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 85 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().
1.4.7