Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution.
More...
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.
|
| 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.
|
| 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.
|
| 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.
|
| CbcObject () |
| CbcObject (CbcModel *model) |
| CbcObject (const CbcObject &) |
CbcObject & | operator= (const CbcObject &rhs) |
virtual | ~CbcObject () |
| Destructor.
|
virtual double | infeasibility (int &) const |
virtual double | feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const |
| Dummy one for compatibility.
|
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.
|
virtual CbcBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) |
virtual OsiBranchingObject * | createOsiBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const |
| Create an Osibranching object and indicate which way to branch first.
|
virtual OsiSolverBranch * | solverBranch () const |
| Create an OsiSolverBranch object.
|
virtual void | resetBounds (const OsiSolverInterface *) |
| Reset variable bounds to their original values.
|
virtual void | floorCeiling (double &floorValue, double &ceilingValue, double value, double tolerance) const |
| Returns floor and ceiling i.e.
|
virtual CbcObjectUpdateData | createUpdateInformation (const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject) |
| Pass in information on branch just done and create CbcObjectUpdateData instance.
|
virtual void | updateInformation (const CbcObjectUpdateData &) |
| Update object by CbcObjectUpdateData.
|
int | id () const |
| Identifier (normally column number in matrix)
|
void | setId (int value) |
| Set identifier (normally column number in matrix) but 1000000000 to 1100000000 means optional branching object i.e.
|
bool | optionalObject () const |
| Return true if optional branching object i.e.
|
int | position () const |
| Get position in object_ list.
|
void | setPosition (int position) |
| Set position in object_ list.
|
void | setModel (CbcModel *model) |
| update model
|
CbcModel * | model () const |
| Return model.
|
int | preferredWay () const |
| If -1 down always chosen first, +1 up always, 0 normal.
|
void | setPreferredWay (int value) |
| Set -1 down always chosen first, +1 up always, 0 normal.
|
| CbcObject () |
| CbcObject (CbcModel *model) |
| CbcObject (const CbcObject &) |
CbcObject & | operator= (const CbcObject &rhs) |
virtual | ~CbcObject () |
| Destructor.
|
virtual double | infeasibility (int &) const |
virtual double | feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const |
| Dummy one for compatibility.
|
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.
|
virtual CbcBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) |
virtual OsiBranchingObject * | createOsiBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const |
| Create an Osibranching object and indicate which way to branch first.
|
virtual OsiSolverBranch * | solverBranch () const |
| Create an OsiSolverBranch object.
|
virtual void | resetBounds (const OsiSolverInterface *) |
| Reset variable bounds to their original values.
|
virtual void | floorCeiling (double &floorValue, double &ceilingValue, double value, double tolerance) const |
| Returns floor and ceiling i.e.
|
virtual CbcObjectUpdateData | createUpdateInformation (const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject) |
| Pass in information on branch just done and create CbcObjectUpdateData instance.
|
virtual void | updateInformation (const CbcObjectUpdateData &) |
| Update object by CbcObjectUpdateData.
|
int | id () const |
| Identifier (normally column number in matrix)
|
void | setId (int value) |
| Set identifier (normally column number in matrix) but 1000000000 to 1100000000 means optional branching object i.e.
|
bool | optionalObject () const |
| Return true if optional branching object i.e.
|
int | position () const |
| Get position in object_ list.
|
void | setPosition (int position) |
| Set position in object_ list.
|
void | setModel (CbcModel *model) |
| update model
|
CbcModel * | model () const |
| Return model.
|
int | preferredWay () const |
| If -1 down always chosen first, +1 up always, 0 normal.
|
void | setPreferredWay (int value) |
| Set -1 down always chosen first, +1 up always, 0 normal.
|
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 17 of file CbcBranchToFixLots.hpp.