#include <CbcBranchLotsize.hpp>
Inheritance diagram for CbcLotsize:
Public Member Functions | |
CbcLotsize () | |
CbcLotsize (CbcModel *model, int iColumn, int numberPoints, const double *points, bool range=false) | |
CbcLotsize (const CbcLotsize &) | |
virtual CbcObject * | clone () const |
Clone. | |
CbcLotsize & | operator= (const CbcLotsize &rhs) |
~CbcLotsize () | |
virtual double | infeasibility (int &preferredWay) const |
Infeasibility - large is 0.5. | |
virtual void | feasibleRegion () |
Set bounds to contain the current solution. | |
virtual CbcBranchingObject * | createBranch (int way) |
Creates a branching object. | |
virtual CbcBranchingObject * | preferredNewFeasible () const |
Given a valid solution (with reduced costs, etc. | |
virtual CbcBranchingObject * | notPreferredNewFeasible () const |
Given a valid solution (with reduced costs, etc. | |
virtual void | resetBounds () |
Reset original upper and lower bound values from the solver. | |
bool | findRange (double value) const |
Finds range of interest so value is feasible in range range_ or infeasible between hi[range_] and lo[range_+1]. | |
virtual void | floorCeiling (double &floorLotsize, double &ceilingLotsize, double value, double tolerance) const |
Returns floor and ceiling. | |
int | modelSequence () const |
Model column number. | |
virtual int | columnNumber () const |
Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics. | |
double | originalLowerBound () const |
Original bounds. | |
double | originalUpperBound () const |
int | rangeType () const |
Type - 1 points, 2 ranges. | |
int | numberRanges () const |
Number of points. | |
double * | bound () const |
Ranges. | |
Private Member Functions | |
void | printLotsize (double value, bool condition, int type) const |
Just for debug (CBC_PRINT defined in CbcBranchLotsize.cpp). | |
Private Attributes | |
int | columnNumber_ |
Column number in model. | |
int | rangeType_ |
Type - 1 points, 2 ranges. | |
int | numberRanges_ |
Number of points. | |
double | largestGap_ |
double * | bound_ |
Ranges. | |
int | range_ |
Current range. |
Definition at line 11 of file CbcBranchLotsize.hpp.
CbcLotsize::CbcLotsize | ( | ) |
CbcLotsize::CbcLotsize | ( | CbcModel * | model, | |
int | iColumn, | |||
int | numberPoints, | |||
const double * | points, | |||
bool | range = false | |||
) |
CbcLotsize::CbcLotsize | ( | const CbcLotsize & | ) |
CbcLotsize::~CbcLotsize | ( | ) |
CbcLotsize& CbcLotsize::operator= | ( | const CbcLotsize & | rhs | ) |
virtual double CbcLotsize::infeasibility | ( | int & | preferredWay | ) | const [virtual] |
virtual void CbcLotsize::feasibleRegion | ( | ) | [virtual] |
Set bounds to contain the current solution.
More precisely, for the variable associated with this object, take the value given in the current solution, force it within the current bounds if required, then set the bounds to fix the variable at the integer nearest the solution value.
Implements CbcObject.
virtual CbcBranchingObject* CbcLotsize::createBranch | ( | int | way | ) | [virtual] |
virtual CbcBranchingObject* CbcLotsize::preferredNewFeasible | ( | ) | const [virtual] |
Given a valid solution (with reduced costs, etc.
), return a branching object which would give a new feasible point in the good direction.
The preferred branching object will force the variable to be +/-1 from its current value, depending on the reduced cost and objective sense. If movement in the direction which improves the objective is impossible due to bounds on the variable, the branching object will move in the other direction. If no movement is possible, the method returns NULL.
Only the bounds on this variable are considered when determining if the new point is feasible.
Reimplemented from CbcObject.
virtual CbcBranchingObject* CbcLotsize::notPreferredNewFeasible | ( | ) | const [virtual] |
Given a valid solution (with reduced costs, etc.
), return a branching object which would give a new feasible point in a bad direction.
As for preferredNewFeasible(), but the preferred branching object will force movement in a direction that degrades the objective.
Reimplemented from CbcObject.
virtual void CbcLotsize::resetBounds | ( | ) | [virtual] |
Reset original upper and lower bound values from the solver.
Handy for updating bounds held in this object after bounds held in the solver have been tightened.
Reimplemented from CbcObject.
bool CbcLotsize::findRange | ( | double | value | ) | const |
Finds range of interest so value is feasible in range range_ or infeasible between hi[range_] and lo[range_+1].
Returns true if feasible.
virtual void CbcLotsize::floorCeiling | ( | double & | floorLotsize, | |
double & | ceilingLotsize, | |||
double | value, | |||
double | tolerance | |||
) | const [virtual] |
int CbcLotsize::modelSequence | ( | ) | const [inline] |
virtual int CbcLotsize::columnNumber | ( | ) | const [virtual] |
Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
Reimplemented from CbcObject.
double CbcLotsize::originalLowerBound | ( | ) | const [inline] |
double CbcLotsize::originalUpperBound | ( | ) | const [inline] |
Definition at line 104 of file CbcBranchLotsize.hpp.
References bound_, numberRanges_, and rangeType_.
int CbcLotsize::rangeType | ( | ) | const [inline] |
Type - 1 points, 2 ranges.
Definition at line 107 of file CbcBranchLotsize.hpp.
References rangeType_.
int CbcLotsize::numberRanges | ( | ) | const [inline] |
double* CbcLotsize::bound | ( | ) | const [inline] |
void CbcLotsize::printLotsize | ( | double | value, | |
bool | condition, | |||
int | type | |||
) | const [private] |
Just for debug (CBC_PRINT defined in CbcBranchLotsize.cpp).
int CbcLotsize::columnNumber_ [private] |
Column number in model.
Definition at line 124 of file CbcBranchLotsize.hpp.
Referenced by modelSequence().
int CbcLotsize::rangeType_ [private] |
Type - 1 points, 2 ranges.
Definition at line 126 of file CbcBranchLotsize.hpp.
Referenced by originalUpperBound(), and rangeType().
int CbcLotsize::numberRanges_ [private] |
Number of points.
Definition at line 128 of file CbcBranchLotsize.hpp.
Referenced by numberRanges(), and originalUpperBound().
double CbcLotsize::largestGap_ [private] |
Definition at line 130 of file CbcBranchLotsize.hpp.
double* CbcLotsize::bound_ [private] |
Ranges.
Definition at line 132 of file CbcBranchLotsize.hpp.
Referenced by bound(), originalLowerBound(), and originalUpperBound().
int CbcLotsize::range_ [mutable, private] |