OsiObject for complementarity constraints
.
More...
#include <CouenneComplObject.hpp>


Public Member Functions | |
| CouenneComplObject (CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int sign) | |
| Constructor with information for branching point selection strategy. More... | |
| CouenneComplObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int sign) | |
| Constructor with lesser information, used for infeasibility only. More... | |
| ~CouenneComplObject () | |
| Destructor. More... | |
| CouenneComplObject (const CouenneComplObject &src) | |
| Copy constructor. More... | |
| virtual CouenneObject * | clone () const |
| Cloning method. 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 OsiBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int way) const |
| create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object 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... | |
| virtual double | feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const |
| fix (one of the) arguments of reference auxiliary variable 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 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... | |
Private Attributes | |
| int | sign_ |
| -1 if object is for xi * xj <= 0 +1 if object is for xi * xj <= 0 0 if object is for xi * xj = 0 (classical) 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 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... | |
OsiObject for complementarity constraints
.
Associated with two variables
and
, branches with either
or
Definition at line 22 of file CouenneComplObject.hpp.
| CouenneComplObject::CouenneComplObject | ( | CouenneCutGenerator * | c, |
| CouenneProblem * | p, | ||
| exprVar * | ref, | ||
| Bonmin::BabSetupBase * | base, | ||
| JnlstPtr | jnlst, | ||
| int | sign | ||
| ) |
Constructor with information for branching point selection strategy.
Definition at line 18 of file CouenneComplObject.cpp.
| CouenneComplObject::CouenneComplObject | ( | exprVar * | ref, |
| Bonmin::BabSetupBase * | base, | ||
| JnlstPtr | jnlst, | ||
| int | sign | ||
| ) |
Constructor with lesser information, used for infeasibility only.
Definition at line 30 of file CouenneComplObject.cpp.
|
inline |
Destructor.
Definition at line 37 of file CouenneComplObject.hpp.
| CouenneComplObject::CouenneComplObject | ( | const CouenneComplObject & | src | ) |
Copy constructor.
Definition at line 37 of file CouenneComplObject.cpp.
|
inlinevirtual |
Cloning method.
Reimplemented from Couenne::CouenneObject.
Definition at line 43 of file CouenneComplObject.hpp.
|
virtual |
compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = f(x)
Reimplemented from Couenne::CouenneObject.
Definition at line 44 of file CouenneComplObject.cpp.
|
virtual |
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
Reimplemented from Couenne::CouenneObject.
Definition at line 95 of file CouenneComplObject.cpp.
|
virtual |
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
Reimplemented from Couenne::CouenneObject.
Definition at line 117 of file CouenneComplObject.cpp.
|
private |
-1 if object is for xi * xj <= 0 +1 if object is for xi * xj <= 0 0 if object is for xi * xj = 0 (classical)
Definition at line 64 of file CouenneComplObject.hpp.
1.8.5