|
Couenne
0.5.8
|
OsiObject for auxiliary variables $w=f(x)$. More...
#include <CouenneObject.hpp>
Inheritance diagram for Couenne::CouenneObject:
Collaboration diagram for Couenne::CouenneObject:Public Types | |
| 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... | |
Public Member Functions | |
| 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 CouenneObject * | clone () 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 OsiBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const |
| create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object 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... | |
Public Member Functions inherited from OsiObject | |
| OsiObject () | |
| OsiObject (const OsiObject &) | |
| OsiObject & | operator= (const OsiObject &rhs) |
| virtual | ~OsiObject () |
| double | infeasibility (const OsiSolverInterface *solver, int &whichWay) const |
| virtual double | feasibleRegion (OsiSolverInterface *solver) const |
| virtual bool | canDoHeuristics () const |
| virtual bool | canMoveToNearest () 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 void | resetBounds (const OsiSolverInterface *) |
| virtual void | resetSequenceEtc (int, const int *) |
| virtual void | updateBefore (const OsiObject *) |
| virtual void | updateAfter (const OsiObject *, const OsiObject *) |
Protected Attributes | |
| 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... | |
Protected Attributes inherited from OsiObject | |
| double | infeasibility_ |
| short | whichWay_ |
| short | numberWays_ |
| int | priority_ |
OsiObject for auxiliary variables $w=f(x)$.
Associated with a multi-variate function $f(x)$ and a related infeasibility $|w-f(x)|$, creates branches to help restoring feasibility
Definition at line 57 of file CouenneObject.hpp.
type of up/down estimate to return for pseudocosts
| Enumerator | |
|---|---|
| INFEASIBILITY | |
| INTERVAL_LP | |
| INTERVAL_LP_REV | |
| INTERVAL_BR | |
| INTERVAL_BR_REV | |
| PROJECTDIST | |
Definition at line 62 of file CouenneObject.hpp.
type of object (for branching variable selection)
| Enumerator | |
|---|---|
| EXPR_OBJ | |
| VAR_OBJ | |
| VT_OBJ | |
Definition at line 68 of file CouenneObject.hpp.
strategy names
| Enumerator | |
|---|---|
| NO_STRATEGY | |
| NO_BRANCH | |
| MID_INTERVAL | |
| MIN_AREA | |
| BALANCED | |
| LP_CENTRAL | |
| LP_CLAMPED | |
Definition at line 71 of file CouenneObject.hpp.
| Couenne::CouenneObject::CouenneObject | ( | ) |
empty constructor (for unused objects)
| Couenne::CouenneObject::CouenneObject | ( | CouenneCutGenerator * | cutgen, |
| CouenneProblem * | p, | ||
| exprVar * | ref, | ||
| Bonmin::BabSetupBase * | base, | ||
| JnlstPtr | jnlst | ||
| ) |
Constructor with information for branching point selection strategy.
| Couenne::CouenneObject::CouenneObject | ( | exprVar * | ref, |
| Bonmin::BabSetupBase * | base, | ||
| JnlstPtr | jnlst | ||
| ) |
Constructor with lesser information, used for infeasibility only.
|
inline |
Destructor.
Definition at line 85 of file CouenneObject.hpp.
| Couenne::CouenneObject::CouenneObject | ( | const CouenneObject & | src | ) |
Copy constructor.
|
inlinevirtual |
Cloning method.
Implements OsiObject.
Reimplemented in Couenne::CouenneComplObject, Couenne::CouenneVarObject, and Couenne::CouenneVTObject.
Definition at line 91 of file CouenneObject.hpp.
| void Couenne::CouenneObject::setParameters | ( | Bonmin::BabSetupBase * | base | ) |
set object parameters by reading from command line
|
virtual |
compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = f(x)
Implements OsiObject.
Reimplemented in Couenne::CouenneVarObject, Couenne::CouenneComplObject, and Couenne::CouenneVTObject.
|
virtual |
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
Reimplemented from OsiObject.
Reimplemented in Couenne::CouenneVarObject, and Couenne::CouenneComplObject.
|
virtual |
fix (one of the) arguments of reference auxiliary variable
Implements OsiObject.
Reimplemented in Couenne::CouenneVarObject.
|
virtual |
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
Reimplemented from OsiObject.
Reimplemented in Couenne::CouenneVarObject, and Couenne::CouenneComplObject.
|
inline |
return reference auxiliary variable
Definition at line 114 of file CouenneObject.hpp.
|
inline |
return branching point selection strategy
Definition at line 118 of file CouenneObject.hpp.
| CouNumber Couenne::CouenneObject::getBrPoint | ( | funtriplet * | ft, |
| CouNumber | x0, | ||
| CouNumber | l, | ||
| CouNumber | u, | ||
| const OsiBranchingInformation * | info = NULL |
||
| ) | const |
pick branching point based on current strategy
| CouNumber Couenne::CouenneObject::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.
Modify alpha_ using gap provided by info
|
inlinevirtual |
Return "down" estimate (for non-convex, distance old <--> new LP point)
Reimplemented from OsiObject.
Definition at line 129 of file CouenneObject.hpp.
|
inlinevirtual |
Return "up" estimate (for non-convex, distance old <--> new LP point)
Reimplemented from OsiObject.
Definition at line 138 of file CouenneObject.hpp.
|
inline |
set up/down estimate (0 for down, 1 for up).
This happens in CouenneChooseStrong, where a new LP point is available and we can measure distance from old LP point. This is the denominator we use in pseudocost
Definition at line 150 of file CouenneObject.hpp.
| void Couenne::CouenneObject::setEstimates | ( | const OsiBranchingInformation * | info, |
| CouNumber * | infeasibility, | ||
| CouNumber * | brpt | ||
| ) | const |
set up/down estimates based on branching information
|
inlinevirtual |
are we on the bad or good side of the expression?
Reimplemented in Couenne::CouenneVarObject.
Definition at line 159 of file CouenneObject.hpp.
|
virtual |
integer infeasibility: min {value - floor(value), ceil(value) - value}
|
inline |
Defines safe interval percentage for using LP point as a branching point.
Definition at line 170 of file CouenneObject.hpp.
|
inlinevirtual |
Returns the column index.
Reimplemented from OsiObject.
Definition at line 174 of file CouenneObject.hpp.
|
protected |
pointer to cut generator (not necessary, can be NULL)
Definition at line 180 of file CouenneObject.hpp.
|
protected |
pointer to Couenne problem
Definition at line 183 of file CouenneObject.hpp.
|
protected |
The (auxiliary) variable this branching object refers to.
If the expression is w=f(x,y), this is w, as opposed to CouenneBranchingObject, where it would be either x or y.
Definition at line 188 of file CouenneObject.hpp.
|
protected |
Branching point selection strategy.
Definition at line 191 of file CouenneObject.hpp.
|
protected |
SmartPointer to the Journalist.
Definition at line 194 of file CouenneObject.hpp.
|
protected |
Combination parameter for the mid-point branching point selection strategy.
Definition at line 198 of file CouenneObject.hpp.
|
protected |
Defines safe interval percentage for using LP point as a branching point.
Definition at line 201 of file CouenneObject.hpp.
|
protected |
feasibility tolerance (equal to that of CouenneProblem)
Definition at line 204 of file CouenneObject.hpp.
|
protected |
shall we do Feasibility based Bound Tightening (FBBT) at branching?
Definition at line 207 of file CouenneObject.hpp.
|
protected |
shall we add convexification cuts at branching?
Definition at line 210 of file CouenneObject.hpp.
|
mutableprotected |
down estimate (to be used in pseudocost)
Definition at line 213 of file CouenneObject.hpp.
|
mutableprotected |
up estimate (to be used in pseudocost)
Definition at line 216 of file CouenneObject.hpp.
|
protected |
multiplier type for pseudocost
Definition at line 219 of file CouenneObject.hpp.
1.8.17