Dip
0.92.4
|
Define a single integer class. More...
#include <CbcSimpleInteger.hpp>
Public Member Functions | |
CbcSimpleInteger () | |
CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5) | |
CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object) | |
CbcSimpleInteger (const CbcSimpleInteger &) | |
virtual CbcObject * | clone () const |
Clone. More... | |
CbcSimpleInteger & | operator= (const CbcSimpleInteger &rhs) |
virtual | ~CbcSimpleInteger () |
OsiSimpleInteger * | osiObject () const |
Construct an OsiSimpleInteger object. More... | |
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const |
Infeasibility - large is 0.5. More... | |
virtual double | feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const |
Set bounds to fix the variable at the current (integer) value. More... | |
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) |
Create a branching object and indicate which way to branch first. More... | |
void | fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way) |
Fills in a created branching object. More... | |
virtual OsiSolverBranch * | solverBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info) const |
Create an OsiSolverBranch object. More... | |
virtual void | feasibleRegion () |
Set bounds to fix the variable at the current (integer) value. More... | |
virtual int | columnNumber () const |
Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics. More... | |
void | setColumnNumber (int value) |
Set column number. More... | |
virtual void | resetBounds (const OsiSolverInterface *solver) |
Reset variable bounds to their original values. More... | |
virtual void | resetSequenceEtc (int numberColumns, const int *originalColumns) |
Change column numbers after preprocessing. More... | |
double | originalLowerBound () const |
Original bounds. More... | |
void | setOriginalLowerBound (double value) |
double | originalUpperBound () const |
void | setOriginalUpperBound (double value) |
double | breakEven () const |
Breakeven e.g 0.7 -> >= 0.7 go up first. More... | |
void | setBreakEven (double value) |
Set breakeven e.g 0.7 -> >= 0.7 go up first. 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 |
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 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 | 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... | |
![]() | |
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 | canDoHeuristics () const |
Return true if object can take part in normal heuristics. More... | |
virtual bool | canMoveToNearest () const |
Return true if object can take part in move to nearest heuristic. More... | |
int | priority () const |
Return Priority - note 1 is highest priority. More... | |
void | setPriority (int priority) |
Set priority. More... | |
virtual bool | boundBranch () const |
Return true if branch should only bound variables. 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 | 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 | originalLower_ |
data More... | |
double | originalUpper_ |
Original upper bound. More... | |
double | breakEven_ |
Breakeven i.e. >= this preferred is up. More... | |
int | columnNumber_ |
Column number in model. More... | |
int | preferredWay_ |
If -1 down always chosen first, +1 up always, 0 normal. 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... | |
![]() | |
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 single integer class.
Definition at line 173 of file CbcSimpleInteger.hpp.
CbcSimpleInteger::CbcSimpleInteger | ( | ) |
CbcSimpleInteger::CbcSimpleInteger | ( | CbcModel * | model, |
int | iColumn, | ||
double | breakEven = 0.5 |
||
) |
CbcSimpleInteger::CbcSimpleInteger | ( | CbcModel * | model, |
const OsiSimpleInteger * | object | ||
) |
CbcSimpleInteger::CbcSimpleInteger | ( | const CbcSimpleInteger & | ) |
|
virtual |
|
virtual |
Clone.
Implements CbcObject.
Reimplemented in CbcSimpleIntegerFixed, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.
CbcSimpleInteger& CbcSimpleInteger::operator= | ( | const CbcSimpleInteger & | rhs | ) |
OsiSimpleInteger* CbcSimpleInteger::osiObject | ( | ) | const |
Construct an OsiSimpleInteger object.
|
virtual |
Infeasibility - large is 0.5.
Reimplemented from CbcObject.
Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.
|
virtual |
Set bounds to fix the variable at the current (integer) value.
Given an integer value, set the lower and upper bounds to fix the variable. Returns amount it had to move variable.
Reimplemented from CbcObject.
|
virtual |
Create a branching object and indicate which way to branch first.
The branching object has to know how to create branches (fix variables, etc.)
Reimplemented from CbcObject.
Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.
void CbcSimpleInteger::fillCreateBranch | ( | CbcIntegerBranchingObject * | branching, |
const OsiBranchingInformation * | info, | ||
int | way | ||
) |
Fills in a created branching object.
|
virtual |
Create an OsiSolverBranch object.
This returns NULL if branch not represented by bound changes
|
virtual |
Set bounds to fix the variable at the current (integer) value.
Given an integer value, set the lower and upper bounds to fix the variable. The algorithm takes a bit of care in order to compensate for minor numerical inaccuracy.
Implements CbcObject.
|
virtual |
Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
Reimplemented from OsiObject.
|
inline |
|
virtual |
Reset variable bounds to their original values.
Bounds may be tightened, so it may be good to be able to set this info in object.
Reimplemented from CbcObject.
|
virtual |
Change column numbers after preprocessing.
Reimplemented from OsiObject.
|
inline |
|
inline |
Definition at line 259 of file CbcSimpleInteger.hpp.
References originalLower_.
|
inline |
Definition at line 263 of file CbcSimpleInteger.hpp.
References originalUpper_.
|
inline |
Definition at line 267 of file CbcSimpleInteger.hpp.
References originalUpper_.
|
inline |
Breakeven e.g 0.7 -> >= 0.7 go up first.
Definition at line 272 of file CbcSimpleInteger.hpp.
References breakEven_.
|
inline |
Set breakeven e.g 0.7 -> >= 0.7 go up first.
Definition at line 277 of file CbcSimpleInteger.hpp.
References breakEven_.
|
protected |
data
Original lower bound
Definition at line 286 of file CbcSimpleInteger.hpp.
Referenced by originalLowerBound(), and setOriginalLowerBound().
|
protected |
Original upper bound.
Definition at line 288 of file CbcSimpleInteger.hpp.
Referenced by originalUpperBound(), and setOriginalUpperBound().
|
protected |
Breakeven i.e. >= this preferred is up.
Definition at line 290 of file CbcSimpleInteger.hpp.
Referenced by breakEven(), and setBreakEven().
|
protected |
Column number in model.
Definition at line 292 of file CbcSimpleInteger.hpp.
Referenced by setColumnNumber().
|
protected |
If -1 down always chosen first, +1 up always, 0 normal.
Definition at line 294 of file CbcSimpleInteger.hpp.