Couenne
0.2
|
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... | |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
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.
Couenne::CouenneComplObject::CouenneComplObject | ( | CouenneCutGenerator * | c, |
CouenneProblem * | p, | ||
exprVar * | ref, | ||
Bonmin::BabSetupBase * | base, | ||
JnlstPtr | jnlst, | ||
int | sign | ||
) |
Constructor with information for branching point selection strategy.
Referenced by clone().
Couenne::CouenneComplObject::CouenneComplObject | ( | exprVar * | ref, |
Bonmin::BabSetupBase * | base, | ||
JnlstPtr | jnlst, | ||
int | sign | ||
) |
Constructor with lesser information, used for infeasibility only.
|
inline |
Destructor.
Definition at line 37 of file CouenneComplObject.hpp.
Couenne::CouenneComplObject::CouenneComplObject | ( | const CouenneComplObject & | src | ) |
Copy constructor.
|
inlinevirtual |
Cloning method.
Reimplemented from Couenne::CouenneObject.
Definition at line 43 of file CouenneComplObject.hpp.
References CouenneComplObject().
|
virtual |
compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = f(x)
Reimplemented from Couenne::CouenneObject.
|
virtual |
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
Reimplemented from Couenne::CouenneObject.
|
virtual |
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
Reimplemented from Couenne::CouenneObject.
|
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.