CouenneVarObject Class Reference

OsiObject for variables in a MINLP. More...

#include <CouenneVarObject.hpp>

Inheritance diagram for CouenneVarObject:

Inheritance graph
[legend]
Collaboration diagram for CouenneVarObject:

Collaboration graph
[legend]
List of all members.

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 CouenneObjectclone () 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.

Detailed Description

OsiObject for variables in a MINLP.

Definition at line 20 of file CouenneVarObject.hpp.


Constructor & Destructor Documentation

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]

Copy constructor.

Definition at line 32 of file CouenneVarObject.hpp.

CouenneVarObject::~CouenneVarObject (  )  [inline]

Destructor.

Definition at line 36 of file CouenneVarObject.hpp.


Member Function Documentation

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().


The documentation for this class was generated from the following files:
Generated on Thu Aug 5 03:10:36 2010 by  doxygen 1.4.7