Cbc
2.10.10
|
Define a follow on class. More...
#include <CbcFollowOn.hpp>
Public Member Functions | |
CbcFollowOn () | |
CbcFollowOn (CbcModel *model) | |
Useful constructor. More... | |
CbcFollowOn (const CbcFollowOn &) | |
virtual CbcObject * | clone () const |
Clone. More... | |
CbcFollowOn & | operator= (const CbcFollowOn &rhs) |
~CbcFollowOn () | |
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const |
Infeasibility - large is 0.5. More... | |
virtual void | feasibleRegion () |
This looks at solution and sets bounds to contain solution. More... | |
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
Creates a branching object. More... | |
virtual int | gutsOfFollowOn (int &otherRow, int &preferredWay) const |
As some computation is needed in more than one place - returns row. More... | |
virtual void | feasibleRegion ()=0 |
For the variable(s) referenced by the object, look at the current solution and set bounds to match the solution. More... | |
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... | |
![]() | |
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 |
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 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. 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 (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 | redoSequenceEtc (CbcModel *, int, const int *) |
Redoes data when sequence numbers change. More... | |
virtual void | initializeForBranching (CbcModel *) |
Initialize for branching. More... | |
Protected Attributes | |
CoinPackedMatrix | matrix_ |
data Matrix More... | |
CoinPackedMatrix | matrixByRow_ |
Matrix by row. More... | |
int * | rhs_ |
Possible rhs (if 0 then not possible) More... | |
![]() | |
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... | |
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 25 of file CbcFollowOn.hpp.
CbcFollowOn::CbcFollowOn | ( | ) |
CbcFollowOn::CbcFollowOn | ( | CbcModel * | model | ) |
Useful constructor.
CbcFollowOn::CbcFollowOn | ( | const CbcFollowOn & | ) |
CbcFollowOn::~CbcFollowOn | ( | ) |
CbcFollowOn& CbcFollowOn::operator= | ( | const CbcFollowOn & | rhs | ) |
|
virtual |
Infeasibility - large is 0.5.
Reimplemented from CbcObject.
|
virtual |
This looks at solution and sets bounds to contain solution.
Implements CbcObject.
|
virtual |
Creates a branching object.
Reimplemented from CbcObject.
|
virtual |
As some computation is needed in more than one place - returns row.
virtual void CbcObject::feasibleRegion |
For the variable(s) referenced by the object, look at the current solution and set bounds to match the solution.
virtual double CbcObject::feasibleRegion |
Dummy one for compatibility.
virtual double CbcObject::feasibleRegion |
For the variable(s) referenced by the object, look at the current solution and set bounds to match the solution.
Returns measure of how much it had to move solution to make feasible
|
protected |
data Matrix
Definition at line 63 of file CbcFollowOn.hpp.
|
protected |
Matrix by row.
Definition at line 65 of file CbcFollowOn.hpp.
|
protected |
Possible rhs (if 0 then not possible)
Definition at line 67 of file CbcFollowOn.hpp.