Couenne  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
Couenne::CouenneVTObject Class Reference

OsiObject for violation transfer on variables in a MINLP. More...

#include <CouenneVTObject.hpp>

Inheritance diagram for Couenne::CouenneVTObject:
Couenne::CouenneVarObject Couenne::CouenneObject

Public Member Functions

 CouenneVTObject (CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int varSelection)
 Constructor with information for branching point selection strategy. More...
 
 CouenneVTObject (const CouenneVTObject &src)
 Copy constructor. More...
 
 ~CouenneVTObject ()
 Destructor. More...
 
virtual CouenneObject * clone () const
 Cloning method. More...
 
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)| More...
 
- Public Member Functions inherited from Couenne::CouenneVarObject
 CouenneVarObject (CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int varSelection)
 Constructor with information for branching point selection strategy. More...
 
 CouenneVarObject (const CouenneVarObject &src)
 Copy constructor. More...
 
 ~CouenneVarObject ()
 Destructor. More...
 
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) More...
 
virtual OsiBranchingObject * createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const
 create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object More...
 
virtual double feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const
 fix nonlinear coordinates of current integer-nonlinear feasible solution More...
 
virtual bool isCuttable () const
 are we on the bad or good side of the expression? More...
 
- Public Member Functions inherited from Couenne::CouenneObject
 CouenneObject ()
 empty constructor (for unused objects) More...
 
 CouenneObject (CouenneCutGenerator *cutgen, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst)
 Constructor with information for branching point selection strategy. More...
 
 CouenneObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst)
 Constructor with lesser information, used for infeasibility only. More...
 
 ~CouenneObject ()
 Destructor. More...
 
 CouenneObject (const CouenneObject &src)
 Copy constructor. More...
 
void setParameters (Bonmin::BabSetupBase *base)
 set object parameters by reading from command line More...
 
exprVar * Reference () const
 return reference auxiliary variable More...
 
enum brSelStrat Strategy () const
 return branching point selection strategy More...
 
CouNumber getBrPoint (funtriplet *ft, CouNumber x0, CouNumber l, CouNumber u, const OsiBranchingInformation *info=NULL) const
 pick branching point based on current strategy More...
 
CouNumber midInterval (CouNumber x, CouNumber l, CouNumber u, const OsiBranchingInformation *info=NULL) const
 returns a point "inside enough" a given interval, or x if it already is. More...
 
virtual double downEstimate () const
 Return "down" estimate (for non-convex, distance old <–> new LP point) More...
 
virtual double upEstimate () const
 Return "up" estimate (for non-convex, distance old <–> new LP point) More...
 
void setEstimate (double est, int direction)
 set up/down estimate (0 for down, 1 for up). More...
 
void setEstimates (const OsiBranchingInformation *info, CouNumber *infeasibility, CouNumber *brpt) const
 set up/down estimates based on branching information More...
 
virtual double intInfeasibility (double value, double lb, double ub) const
 integer infeasibility: min {value - floor(value), ceil(value) - value} More...
 
CouNumber lp_clamp () const
 Defines safe interval percentage for using LP point as a branching point. More...
 
virtual int columnNumber () const
 Returns the column index. More...
 

Additional Inherited Members

- Public Types inherited from Couenne::CouenneObject
enum  pseudocostMult {
  INFEASIBILITY, INTERVAL_LP, INTERVAL_LP_REV, INTERVAL_BR,
  INTERVAL_BR_REV, PROJECTDIST
}
 type of up/down estimate to return for pseudocosts More...
 
enum  branch_obj { EXPR_OBJ, VAR_OBJ, VT_OBJ }
 type of object (for branching variable selection) More...
 
enum  brSelStrat {
  NO_STRATEGY, NO_BRANCH, MID_INTERVAL, MIN_AREA,
  BALANCED, LP_CENTRAL, LP_CLAMPED
}
 strategy names More...
 
- Protected Member Functions inherited from Couenne::CouenneVarObject
CouNumber computeBranchingPoint (const OsiBranchingInformation *info, int &bestWay, const CouenneObject *&criticalObject) const
 Method computing the branching point. More...
 
- Protected Attributes inherited from Couenne::CouenneVarObject
int varSelection_
 branching scheme used. More...
 
- Protected Attributes inherited from Couenne::CouenneObject
CouenneCutGenerator * cutGen_
 pointer to cut generator (not necessary, can be NULL) More...
 
CouenneProblem * problem_
 pointer to Couenne problem More...
 
exprVar * reference_
 The (auxiliary) variable this branching object refers to. More...
 
enum brSelStrat strategy_
 Branching point selection strategy. More...
 
JnlstPtr jnlst_
 SmartPointer to the Journalist. More...
 
CouNumber alpha_
 Combination parameter for the mid-point branching point selection strategy. More...
 
CouNumber lp_clamp_
 Defines safe interval percentage for using LP point as a branching point. More...
 
CouNumber feas_tolerance_
 feasibility tolerance (equal to that of CouenneProblem) More...
 
bool doFBBT_
 shall we do Feasibility based Bound Tightening (FBBT) at branching? More...
 
bool doConvCuts_
 shall we add convexification cuts at branching? More...
 
double downEstimate_
 down estimate (to be used in pseudocost) More...
 
double upEstimate_
 up estimate (to be used in pseudocost) More...
 
enum pseudocostMult pseudoMultType_
 multiplier type for pseudocost More...
 

Detailed Description

OsiObject for violation transfer on variables in a MINLP.

Definition at line 19 of file CouenneVTObject.hpp.

Constructor & Destructor Documentation

Couenne::CouenneVTObject::CouenneVTObject ( CouenneCutGenerator *  c,
CouenneProblem *  p,
exprVar *  ref,
Bonmin::BabSetupBase *  base,
JnlstPtr  jnlst,
int  varSelection 
)
inline

Constructor with information for branching point selection strategy.

Definition at line 24 of file CouenneVTObject.hpp.

Referenced by clone().

Couenne::CouenneVTObject::CouenneVTObject ( const CouenneVTObject &  src)
inline

Copy constructor.

Definition at line 35 of file CouenneVTObject.hpp.

Couenne::CouenneVTObject::~CouenneVTObject ( )
inline

Destructor.

Definition at line 39 of file CouenneVTObject.hpp.

Member Function Documentation

virtual CouenneObject* Couenne::CouenneVTObject::clone ( ) const
inlinevirtual

Cloning method.

Reimplemented from Couenne::CouenneVarObject.

Definition at line 42 of file CouenneVTObject.hpp.

References CouenneVTObject().

virtual double Couenne::CouenneVTObject::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)|

Reimplemented from Couenne::CouenneVarObject.


The documentation for this class was generated from the following file: