|
Cbc
2.10.5
|
Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution. More...
#include <CbcBranchToFixLots.hpp>
Inheritance diagram for CbcBranchToFixLots:
Collaboration diagram for CbcBranchToFixLots:Public Member Functions | |
| CbcBranchToFixLots () | |
| CbcBranchToFixLots (CbcModel *model, double djTolerance, double fractionFixed, int depth, int numberClean=0, const char *mark=NULL, bool alwaysCreate=false) | |
| Useful constructor - passed reduced cost tolerance and fraction we would like fixed. More... | |
| CbcBranchToFixLots (const CbcBranchToFixLots &) | |
| virtual CbcObject * | clone () const |
| Clone. More... | |
| CbcBranchToFixLots & | operator= (const CbcBranchToFixLots &rhs) |
| ~CbcBranchToFixLots () | |
| int | shallWe () const |
| Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both FIXME: should use enum or equivalent to make these numbers clearer. More... | |
| virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const |
| Infeasibility for an integer variable - large is 0.5, but also can be infinity when known infeasible. More... | |
| virtual bool | canDoHeuristics () const |
| Return true if object can take part in normal heuristics. More... | |
| virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
| Creates a branching object. More... | |
| virtual void | redoSequenceEtc (CbcModel *model, int numberColumns, const int *originalColumns) |
| Redoes data when sequence numbers change. More... | |
Public Member Functions inherited from CbcBranchCut | |
| CbcBranchCut () | |
| CbcBranchCut (CbcModel *model) | |
| In to maintain normal methods. More... | |
| CbcBranchCut (const CbcBranchCut &) | |
| CbcBranchCut & | operator= (const CbcBranchCut &rhs) |
| ~CbcBranchCut () | |
| virtual void | feasibleRegion () |
| Set bounds to contain the current solution. More... | |
| virtual bool | boundBranch () const |
| Return true if branch created by object should fix variables. More... | |
| virtual CbcBranchingObject * | preferredNewFeasible () const |
| Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in the good direction. More... | |
| virtual CbcBranchingObject * | notPreferredNewFeasible () const |
| Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in a bad direction. More... | |
| virtual void | resetBounds () |
| Reset original upper and lower bound values from the solver. More... | |
Public Member Functions inherited from CbcObject | |
| CbcObject () | |
| CbcObject (CbcModel *model) | |
| CbcObject (const CbcObject &) | |
| CbcObject & | operator= (const CbcObject &rhs) |
| virtual | ~CbcObject () |
| Destructor. More... | |
| virtual double | infeasibility (int &) const |
| virtual double | feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const |
| Dummy one for compatibility. More... | |
| virtual double | feasibleRegion (OsiSolverInterface *solver) const |
| For the variable(s) referenced by the object, look at the current solution and set bounds to match the solution. More... | |
| virtual OsiBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const |
| Create a branching object and indicate which way to branch first. More... | |
| virtual OsiBranchingObject * | createOsiBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const |
| Create an Osibranching object and indicate which way to branch first. More... | |
| virtual OsiSolverBranch * | solverBranch () const |
| Create an OsiSolverBranch object. More... | |
| virtual void | resetBounds (const OsiSolverInterface *) |
| Reset variable bounds to their original values. More... | |
| virtual void | floorCeiling (double &floorValue, double &ceilingValue, double value, double tolerance) const |
| Returns floor and ceiling i.e. More... | |
| virtual CbcObjectUpdateData | createUpdateInformation (const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject) |
| Pass in information on branch just done and create CbcObjectUpdateData instance. More... | |
| virtual void | updateInformation (const CbcObjectUpdateData &) |
| Update object by CbcObjectUpdateData. More... | |
| int | id () const |
| Identifier (normally column number in matrix) More... | |
| void | setId (int value) |
| Set identifier (normally column number in matrix) but 1000000000 to 1100000000 means optional branching object i.e. More... | |
| bool | optionalObject () const |
| Return true if optional branching object i.e. More... | |
| int | position () const |
| Get position in object_ list. More... | |
| void | setPosition (int position) |
| Set position in object_ list. More... | |
| void | setModel (CbcModel *model) |
| update model More... | |
| CbcModel * | model () const |
| Return model. More... | |
| int | preferredWay () const |
| If -1 down always chosen first, +1 up always, 0 normal. More... | |
| void | setPreferredWay (int value) |
| Set -1 down always chosen first, +1 up always, 0 normal. More... | |
| virtual void | initializeForBranching (CbcModel *) |
| Initialize for branching. More... | |
Public Member Functions inherited from OsiObject | |
| OsiObject () | |
| Default Constructor. More... | |
| OsiObject (const OsiObject &) | |
| Copy constructor. More... | |
| OsiObject & | operator= (const OsiObject &rhs) |
| Assignment operator. More... | |
| virtual | ~OsiObject () |
| Destructor. More... | |
| double | infeasibility (const OsiSolverInterface *solver, int &whichWay) const |
| Infeasibility of the object. More... | |
| virtual double | checkInfeasibility (const OsiBranchingInformation *info) const |
| virtual bool | canMoveToNearest () const |
| Return true if object can take part in move to nearest heuristic. More... | |
| virtual int | columnNumber () const |
| Column number if single column object -1 otherwise, Used by heuristics. More... | |
| int | priority () const |
| Return Priority - note 1 is highest priority. More... | |
| void | setPriority (int priority) |
| Set priority. More... | |
| virtual bool | canHandleShadowPrices () const |
| Return true if knows how to deal with Pseudo Shadow Prices. More... | |
| int | numberWays () const |
| Return maximum number of ways branch may have. More... | |
| void | setNumberWays (int numberWays) |
| Set maximum number of ways branch may have. More... | |
| void | setWhichWay (int way) |
| Return preferred way to branch. More... | |
| int | whichWay () const |
| Return current preferred way to branch. More... | |
| double | infeasibility () const |
| Return infeasibility. More... | |
| virtual double | upEstimate () const |
| Return "up" estimate (default 1.0e-5) More... | |
| virtual double | downEstimate () const |
| Return "down" estimate (default 1.0e-5) More... | |
| virtual void | resetSequenceEtc (int, const int *) |
| Change column numbers after preprocessing. More... | |
| virtual void | updateBefore (const OsiObject *) |
| Updates stuff like pseudocosts before threads. More... | |
| virtual void | updateAfter (const OsiObject *, const OsiObject *) |
| Updates stuff like pseudocosts after threads finished. More... | |
Protected Attributes | |
| double | djTolerance_ |
| data More... | |
| double | fractionFixed_ |
| We only need to make sure this fraction fixed. More... | |
| char * | mark_ |
| Never fix ones marked here. More... | |
| CoinPackedMatrix | matrixByRow_ |
| Matrix by row. More... | |
| int | depth_ |
| Do if depth multiple of this. More... | |
| int | numberClean_ |
| number of ==1 rows which need to be clean More... | |
| bool | alwaysCreate_ |
| If true then always create branch. More... | |
Protected Attributes inherited from CbcObject | |
| CbcModel * | model_ |
| data More... | |
| int | id_ |
| Identifier (normally column number in matrix) More... | |
| int | position_ |
| Position in object list. More... | |
| int | preferredWay_ |
| If -1 down always chosen first, +1 up always, 0 normal. More... | |
Protected Attributes inherited from OsiObject | |
| double | infeasibility_ |
| data More... | |
| short | whichWay_ |
| Computed preferred way to branch. More... | |
| short | numberWays_ |
| Maximum number of ways on branch. More... | |
| int | priority_ |
| Priority. More... | |
Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution.
a) On reduced cost b) When enough ==1 or <=1 rows have been satisfied (not fixed - satisfied)
Definition at line 22 of file CbcBranchToFixLots.hpp.
| CbcBranchToFixLots::CbcBranchToFixLots | ( | ) |
| CbcBranchToFixLots::CbcBranchToFixLots | ( | CbcModel * | model, |
| double | djTolerance, | ||
| double | fractionFixed, | ||
| int | depth, | ||
| int | numberClean = 0, |
||
| const char * | mark = NULL, |
||
| bool | alwaysCreate = false |
||
| ) |
Useful constructor - passed reduced cost tolerance and fraction we would like fixed.
Also depth level to do at. Also passed number of 1 rows which when clean triggers fix Always does if all 1 rows cleaned up and number>0 or if fraction columns reached Also whether to create branch if can't reach fraction.
| CbcBranchToFixLots::CbcBranchToFixLots | ( | const CbcBranchToFixLots & | ) |
| CbcBranchToFixLots::~CbcBranchToFixLots | ( | ) |
|
virtual |
Clone.
Reimplemented from CbcBranchCut.
| CbcBranchToFixLots& CbcBranchToFixLots::operator= | ( | const CbcBranchToFixLots & | rhs | ) |
| int CbcBranchToFixLots::shallWe | ( | ) | const |
Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both FIXME: should use enum or equivalent to make these numbers clearer.
|
virtual |
Infeasibility for an integer variable - large is 0.5, but also can be infinity when known infeasible.
Reimplemented from CbcBranchCut.
|
inlinevirtual |
Return true if object can take part in normal heuristics.
Reimplemented from OsiObject.
Definition at line 63 of file CbcBranchToFixLots.hpp.
|
virtual |
Creates a branching object.
Reimplemented from CbcBranchCut.
|
virtual |
Redoes data when sequence numbers change.
Reimplemented from CbcObject.
|
protected |
data
Reduced cost tolerance i.e. dj has to be >= this before fixed
Definition at line 77 of file CbcBranchToFixLots.hpp.
|
protected |
We only need to make sure this fraction fixed.
Definition at line 79 of file CbcBranchToFixLots.hpp.
|
protected |
Never fix ones marked here.
Definition at line 81 of file CbcBranchToFixLots.hpp.
|
protected |
Matrix by row.
Definition at line 83 of file CbcBranchToFixLots.hpp.
|
protected |
Do if depth multiple of this.
Definition at line 85 of file CbcBranchToFixLots.hpp.
|
protected |
number of ==1 rows which need to be clean
Definition at line 87 of file CbcBranchToFixLots.hpp.
|
protected |
If true then always create branch.
Definition at line 89 of file CbcBranchToFixLots.hpp.
1.8.5