|
Cbc 2.10.13
|
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>
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. | |
| CbcBranchToFixLots (const CbcBranchToFixLots &) | |
| virtual CbcObject * | clone () const |
| Clone. | |
| 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. | |
| 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. | |
| virtual bool | canDoHeuristics () const |
| Return true if object can take part in normal heuristics. | |
| virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
| Creates a branching object. | |
| virtual void | redoSequenceEtc (CbcModel *model, int numberColumns, const int *originalColumns) |
| Redoes data when sequence numbers change. | |
| Public Member Functions inherited from CbcBranchCut | |
| CbcBranchCut () | |
| CbcBranchCut (CbcModel *model) | |
| In to maintain normal methods. | |
| CbcBranchCut (const CbcBranchCut &) | |
| CbcBranchCut & | operator= (const CbcBranchCut &rhs) |
| ~CbcBranchCut () | |
| virtual void | feasibleRegion () |
| Set bounds to contain the current solution. | |
| virtual bool | boundBranch () const |
| Return true if branch created by object should fix variables. | |
| 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. | |
| 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. | |
| virtual void | resetBounds () |
| Reset original upper and lower bound values from the solver. | |
Protected Attributes | |
| double | djTolerance_ |
| data | |
| double | fractionFixed_ |
| We only need to make sure this fraction fixed. | |
| char * | mark_ |
| Never fix ones marked here. | |
| CoinPackedMatrix | matrixByRow_ |
| Matrix by row. | |
| int | depth_ |
| Do if depth multiple of this. | |
| int | numberClean_ |
| number of ==1 rows which need to be clean | |
| bool | alwaysCreate_ |
| If true then always create branch. | |
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.
Definition at line 63 of file CbcBranchToFixLots.hpp.
|
virtual |
Creates a branching object.
Reimplemented from CbcBranchCut.
|
virtual |
Redoes data when sequence numbers change.
|
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.