Public Member Functions | Protected Attributes
CbcSimpleInteger Class Reference

Define a single integer class. More...

#include <CbcSimpleInteger.hpp>

Inheritance diagram for CbcSimpleInteger:
CbcObject CbcObject CbcObject CbcSimpleIntegerDynamicPseudoCost CbcSimpleIntegerDynamicPseudoCost CbcSimpleIntegerFixed CbcSimpleIntegerPseudoCost CbcSimpleIntegerPseudoCost

List of all members.

Public Member Functions

 CbcSimpleInteger ()
 CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5)
 CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object)
 CbcSimpleInteger (const CbcSimpleInteger &)
virtual CbcObjectclone () const
 Clone.
CbcSimpleIntegeroperator= (const CbcSimpleInteger &rhs)
virtual ~CbcSimpleInteger ()
OsiSimpleInteger * osiObject () const
 Construct an OsiSimpleInteger object.
virtual double infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
 Infeasibility - large is 0.5.
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Set bounds to fix the variable at the current (integer) value.
virtual CbcBranchingObjectcreateCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
 Create a branching object and indicate which way to branch first.
void fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
 Fills in a created branching object.
virtual OsiSolverBranch * solverBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Create an OsiSolverBranch object.
virtual void feasibleRegion ()
 Set bounds to fix the variable at the current (integer) value.
virtual int columnNumber () const
 Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
void setColumnNumber (int value)
 Set column number.
virtual void resetBounds (const OsiSolverInterface *solver)
 Reset variable bounds to their original values.
virtual void resetSequenceEtc (int numberColumns, const int *originalColumns)
 Change column numbers after preprocessing.
double originalLowerBound () const
 Original bounds.
void setOriginalLowerBound (double value)
double originalUpperBound () const
void setOriginalUpperBound (double value)
double breakEven () const
 Breakeven e.g 0.7 -> >= 0.7 go up first.
void setBreakEven (double value)
 Set breakeven e.g 0.7 -> >= 0.7 go up first.
 CbcSimpleInteger ()
 CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5)
 CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object)
 CbcSimpleInteger (const CbcSimpleInteger &)
virtual CbcObjectclone () const
 Clone.
CbcSimpleIntegeroperator= (const CbcSimpleInteger &rhs)
virtual ~CbcSimpleInteger ()
OsiSimpleInteger * osiObject () const
 Construct an OsiSimpleInteger object.
virtual double infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
 Infeasibility - large is 0.5.
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Set bounds to fix the variable at the current (integer) value.
virtual CbcBranchingObjectcreateCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
 Create a branching object and indicate which way to branch first.
void fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
 Fills in a created branching object.
virtual OsiSolverBranch * solverBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Create an OsiSolverBranch object.
virtual void feasibleRegion ()
 Set bounds to fix the variable at the current (integer) value.
virtual int columnNumber () const
 Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
void setColumnNumber (int value)
 Set column number.
virtual void resetBounds (const OsiSolverInterface *solver)
 Reset variable bounds to their original values.
virtual void resetSequenceEtc (int numberColumns, const int *originalColumns)
 Change column numbers after preprocessing.
double originalLowerBound () const
 Original bounds.
void setOriginalLowerBound (double value)
double originalUpperBound () const
void setOriginalUpperBound (double value)
double breakEven () const
 Breakeven e.g 0.7 -> >= 0.7 go up first.
void setBreakEven (double value)
 Set breakeven e.g 0.7 -> >= 0.7 go up first.
 CbcSimpleInteger ()
 CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5)
 CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object)
 CbcSimpleInteger (const CbcSimpleInteger &)
virtual CbcObjectclone () const
 Clone.
CbcSimpleIntegeroperator= (const CbcSimpleInteger &rhs)
virtual ~CbcSimpleInteger ()
OsiSimpleInteger * osiObject () const
 Construct an OsiSimpleInteger object.
virtual double infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
 Infeasibility - large is 0.5.
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Set bounds to fix the variable at the current (integer) value.
virtual CbcBranchingObjectcreateCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
 Create a branching object and indicate which way to branch first.
void fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
 Fills in a created branching object.
virtual OsiSolverBranch * solverBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Create an OsiSolverBranch object.
virtual void feasibleRegion ()
 Set bounds to fix the variable at the current (integer) value.
virtual int columnNumber () const
 Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
void setColumnNumber (int value)
 Set column number.
virtual void resetBounds (const OsiSolverInterface *solver)
 Reset variable bounds to their original values.
virtual void resetSequenceEtc (int numberColumns, const int *originalColumns)
 Change column numbers after preprocessing.
double originalLowerBound () const
 Original bounds.
void setOriginalLowerBound (double value)
double originalUpperBound () const
void setOriginalUpperBound (double value)
double breakEven () const
 Breakeven e.g 0.7 -> >= 0.7 go up first.
void setBreakEven (double value)
 Set breakeven e.g 0.7 -> >= 0.7 go up first.

Protected Attributes

double originalLower_
 data
double originalUpper_
 Original upper bound.
double breakEven_
 Breakeven i.e. >= this preferred is up.
int columnNumber_
 Column number in model.
int preferredWay_
 If -1 down always chosen first, +1 up always, 0 normal.

Detailed Description

Define a single integer class.

Definition at line 157 of file CbcSimpleInteger.hpp.


Constructor & Destructor Documentation

CbcSimpleInteger::CbcSimpleInteger ( )
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
int  iColumn,
double  breakEven = 0.5 
)
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
const OsiSimpleInteger *  object 
)
CbcSimpleInteger::CbcSimpleInteger ( const CbcSimpleInteger )
virtual CbcSimpleInteger::~CbcSimpleInteger ( ) [virtual]
CbcSimpleInteger::CbcSimpleInteger ( )
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
int  iColumn,
double  breakEven = 0.5 
)
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
const OsiSimpleInteger *  object 
)
CbcSimpleInteger::CbcSimpleInteger ( const CbcSimpleInteger )
virtual CbcSimpleInteger::~CbcSimpleInteger ( ) [virtual]
CbcSimpleInteger::CbcSimpleInteger ( )
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
int  iColumn,
double  breakEven = 0.5 
)
CbcSimpleInteger::CbcSimpleInteger ( CbcModel model,
const OsiSimpleInteger *  object 
)
CbcSimpleInteger::CbcSimpleInteger ( const CbcSimpleInteger )
virtual CbcSimpleInteger::~CbcSimpleInteger ( ) [virtual]

Member Function Documentation

virtual CbcObject* CbcSimpleInteger::clone ( ) const [virtual]
CbcSimpleInteger& CbcSimpleInteger::operator= ( const CbcSimpleInteger rhs)
OsiSimpleInteger* CbcSimpleInteger::osiObject ( ) const

Construct an OsiSimpleInteger object.

virtual double CbcSimpleInteger::infeasibility ( const OsiBranchingInformation *  info,
int &  preferredWay 
) const [virtual]
virtual double CbcSimpleInteger::feasibleRegion ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [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 CbcBranchingObject* CbcSimpleInteger::createCbcBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info,
int  way 
) [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, CbcSimpleIntegerPseudoCost, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

void CbcSimpleInteger::fillCreateBranch ( CbcIntegerBranchingObject branching,
const OsiBranchingInformation *  info,
int  way 
)

Fills in a created branching object.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerDynamicPseudoCost.

virtual OsiSolverBranch* CbcSimpleInteger::solverBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [virtual]

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

virtual void CbcSimpleInteger::feasibleRegion ( ) [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 int CbcSimpleInteger::columnNumber ( ) const [virtual]

Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.

void CbcSimpleInteger::setColumnNumber ( int  value) [inline]

Set column number.

Definition at line 225 of file CbcSimpleInteger.hpp.

virtual void CbcSimpleInteger::resetBounds ( const OsiSolverInterface *  solver) [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 void CbcSimpleInteger::resetSequenceEtc ( int  numberColumns,
const int *  originalColumns 
) [virtual]

Change column numbers after preprocessing.

double CbcSimpleInteger::originalLowerBound ( ) const [inline]

Original bounds.

Definition at line 238 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalLowerBound ( double  value) [inline]

Definition at line 241 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::originalUpperBound ( ) const [inline]

Definition at line 244 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalUpperBound ( double  value) [inline]

Definition at line 247 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven ( ) const [inline]

Breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 251 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setBreakEven ( double  value) [inline]

Set breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 255 of file CbcSimpleInteger.hpp.

virtual CbcObject* CbcSimpleInteger::clone ( ) const [virtual]
CbcSimpleInteger& CbcSimpleInteger::operator= ( const CbcSimpleInteger rhs)
OsiSimpleInteger* CbcSimpleInteger::osiObject ( ) const

Construct an OsiSimpleInteger object.

virtual double CbcSimpleInteger::infeasibility ( const OsiBranchingInformation *  info,
int &  preferredWay 
) const [virtual]
virtual double CbcSimpleInteger::feasibleRegion ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [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 CbcBranchingObject* CbcSimpleInteger::createCbcBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info,
int  way 
) [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, CbcSimpleIntegerPseudoCost, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

void CbcSimpleInteger::fillCreateBranch ( CbcIntegerBranchingObject branching,
const OsiBranchingInformation *  info,
int  way 
)

Fills in a created branching object.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerDynamicPseudoCost.

virtual OsiSolverBranch* CbcSimpleInteger::solverBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [virtual]

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

virtual void CbcSimpleInteger::feasibleRegion ( ) [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 int CbcSimpleInteger::columnNumber ( ) const [virtual]

Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.

void CbcSimpleInteger::setColumnNumber ( int  value) [inline]

Set column number.

Definition at line 228 of file CbcSimpleInteger.hpp.

virtual void CbcSimpleInteger::resetBounds ( const OsiSolverInterface *  solver) [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 void CbcSimpleInteger::resetSequenceEtc ( int  numberColumns,
const int *  originalColumns 
) [virtual]

Change column numbers after preprocessing.

double CbcSimpleInteger::originalLowerBound ( ) const [inline]

Original bounds.

Definition at line 242 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalLowerBound ( double  value) [inline]

Definition at line 245 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::originalUpperBound ( ) const [inline]

Definition at line 248 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalUpperBound ( double  value) [inline]

Definition at line 251 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven ( ) const [inline]

Breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 255 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setBreakEven ( double  value) [inline]

Set breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 259 of file CbcSimpleInteger.hpp.

virtual CbcObject* CbcSimpleInteger::clone ( ) const [virtual]
CbcSimpleInteger& CbcSimpleInteger::operator= ( const CbcSimpleInteger rhs)
OsiSimpleInteger* CbcSimpleInteger::osiObject ( ) const

Construct an OsiSimpleInteger object.

virtual double CbcSimpleInteger::infeasibility ( const OsiBranchingInformation *  info,
int &  preferredWay 
) const [virtual]
virtual double CbcSimpleInteger::feasibleRegion ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [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 CbcBranchingObject* CbcSimpleInteger::createCbcBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info,
int  way 
) [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, CbcSimpleIntegerPseudoCost, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

void CbcSimpleInteger::fillCreateBranch ( CbcIntegerBranchingObject branching,
const OsiBranchingInformation *  info,
int  way 
)

Fills in a created branching object.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerDynamicPseudoCost.

virtual OsiSolverBranch* CbcSimpleInteger::solverBranch ( OsiSolverInterface *  solver,
const OsiBranchingInformation *  info 
) const [virtual]

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

virtual void CbcSimpleInteger::feasibleRegion ( ) [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 int CbcSimpleInteger::columnNumber ( ) const [virtual]

Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.

void CbcSimpleInteger::setColumnNumber ( int  value) [inline]

Set column number.

Definition at line 228 of file CbcSimpleInteger.hpp.

virtual void CbcSimpleInteger::resetBounds ( const OsiSolverInterface *  solver) [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 void CbcSimpleInteger::resetSequenceEtc ( int  numberColumns,
const int *  originalColumns 
) [virtual]

Change column numbers after preprocessing.

double CbcSimpleInteger::originalLowerBound ( ) const [inline]

Original bounds.

Definition at line 242 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalLowerBound ( double  value) [inline]

Definition at line 245 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::originalUpperBound ( ) const [inline]

Definition at line 248 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalUpperBound ( double  value) [inline]

Definition at line 251 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven ( ) const [inline]

Breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 255 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setBreakEven ( double  value) [inline]

Set breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 259 of file CbcSimpleInteger.hpp.


Member Data Documentation

data

Original lower bound

Definition at line 264 of file CbcSimpleInteger.hpp.

Original upper bound.

Definition at line 266 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven_ [protected]

Breakeven i.e. >= this preferred is up.

Definition at line 268 of file CbcSimpleInteger.hpp.

Column number in model.

Definition at line 270 of file CbcSimpleInteger.hpp.

If -1 down always chosen first, +1 up always, 0 normal.

Reimplemented from CbcObject.

Definition at line 272 of file CbcSimpleInteger.hpp.


The documentation for this class was generated from the following files: