Couenne 0.5.8
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:
+ Collaboration diagram for Couenne::CouenneVTObject:

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 CouenneObjectclone () 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 CouenneObjectclone () 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...
 
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 OsiBranchingObjectcreateBranch (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...
 
virtual CouenneObjectclone () const
 Cloning method. More...
 
void setParameters (Bonmin::BabSetupBase *base)
 set object parameters by reading from command line More...
 
virtual double infeasibility (const OsiBranchingInformation *info, int &way) const
 compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = f(x) 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 double feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const
 fix (one of the) arguments of reference auxiliary variable More...
 
virtual OsiBranchingObjectcreateBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const
 create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object More...
 
exprVarReference () 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 bool isCuttable () const
 are we on the bad or good side of the expression? 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...
 
- Public Member Functions inherited from OsiObject
 OsiObject ()
 
 OsiObject (const OsiObject &)
 
OsiObjectoperator= (const OsiObject &rhs)
 
virtual OsiObjectclone () const=0
 
virtual ~OsiObject ()
 
double infeasibility (const OsiSolverInterface *solver, int &whichWay) const
 
virtual double infeasibility (const OsiBranchingInformation *info, int &whichWay) const=0
 
virtual double checkInfeasibility (const OsiBranchingInformation *info) const
 
virtual double feasibleRegion (OsiSolverInterface *solver) const
 
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const=0
 
virtual OsiBranchingObjectcreateBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const
 
virtual bool canDoHeuristics () const
 
virtual bool canMoveToNearest () const
 
virtual int columnNumber () const
 
int priority () const
 
void setPriority (int priority)
 
virtual bool boundBranch () const
 
virtual bool canHandleShadowPrices () const
 
int numberWays () const
 
void setNumberWays (int numberWays)
 
void setWhichWay (int way)
 
int whichWay () const
 
virtual int preferredWay () const
 
double infeasibility () const
 
virtual double upEstimate () const
 
virtual double downEstimate () const
 
virtual void resetBounds (const OsiSolverInterface *)
 
virtual void resetSequenceEtc (int, const int *)
 
virtual void updateBefore (const OsiObject *)
 
virtual void updateAfter (const OsiObject *, const OsiObject *)
 

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
CouenneCutGeneratorcutGen_
 pointer to cut generator (not necessary, can be NULL) More...
 
CouenneProblemproblem_
 pointer to Couenne problem More...
 
exprVarreference_
 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...
 
- Protected Attributes inherited from OsiObject
double infeasibility_
 
short whichWay_
 
short numberWays_
 
int priority_
 

Detailed Description

OsiObject for violation transfer on variables in a MINLP.

Definition at line 19 of file CouenneVTObject.hpp.

Constructor & Destructor Documentation

◆ CouenneVTObject() [1/2]

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.

◆ CouenneVTObject() [2/2]

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

Copy constructor.

Definition at line 35 of file CouenneVTObject.hpp.

◆ ~CouenneVTObject()

Couenne::CouenneVTObject::~CouenneVTObject ( )
inline

Destructor.

Definition at line 39 of file CouenneVTObject.hpp.

Member Function Documentation

◆ clone()

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

Cloning method.

Reimplemented from Couenne::CouenneVarObject.

Definition at line 42 of file CouenneVTObject.hpp.

◆ infeasibility()

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: