Public Member Functions |
| CbcFollowOn () |
| CbcFollowOn (CbcModel *model) |
| Useful constructor.
|
| CbcFollowOn (const CbcFollowOn &) |
virtual CbcObject * | clone () const |
| Clone.
|
CbcFollowOn & | operator= (const CbcFollowOn &rhs) |
| ~CbcFollowOn () |
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const |
| Infeasibility - large is 0.5.
|
virtual void | feasibleRegion () |
| This looks at solution and sets bounds to contain solution.
|
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
| Creates a branching object.
|
virtual int | gutsOfFollowOn (int &otherRow, int &preferredWay) const |
| As some computation is needed in more than one place - returns row.
|
| CbcFollowOn () |
| CbcFollowOn (CbcModel *model) |
| Useful constructor.
|
| CbcFollowOn (const CbcFollowOn &) |
virtual CbcObject * | clone () const |
| Clone.
|
CbcFollowOn & | operator= (const CbcFollowOn &rhs) |
| ~CbcFollowOn () |
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const |
| Infeasibility - large is 0.5.
|
virtual void | feasibleRegion () |
| This looks at solution and sets bounds to contain solution.
|
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
| Creates a branching object.
|
virtual int | gutsOfFollowOn (int &otherRow, int &preferredWay) const |
| As some computation is needed in more than one place - returns row.
|
| 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 CbcBranchingObject * | preferredNewFeasible () const |
| Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in a 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 (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.
|
virtual void | redoSequenceEtc (CbcModel *, int, const int *) |
| Redoes data when sequence numbers change.
|
| 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 CbcBranchingObject * | preferredNewFeasible () const |
| Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in a 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 (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.
|
virtual void | redoSequenceEtc (CbcModel *, int, const int *) |
| Redoes data when sequence numbers change.
|
Define a follow on class.
The idea of this is that in air-crew scheduling problems crew may fly in on flight A and out on flight B or on some other flight. A useful branch is one which on one side fixes all which go out on flight B to 0, while the other branch fixes all those that do NOT go out on flight B to 0.
This branching rule should be in addition to normal rules and have a high priority.
Definition at line 17 of file CbcFollowOn.hpp.