Cbc 2.10.13
Loading...
Searching...
No Matches
CbcSimpleInteger Class Reference

#include <CbcSimpleInteger.hpp>

Inheritance diagram for CbcSimpleInteger:
Collaboration diagram for CbcSimpleInteger:

Public Member Functions

 CbcSimpleInteger ()
 CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5)
 CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object)
 CbcSimpleInteger (const CbcSimpleInteger &)
*virtual Clone CbcObject * clone () const
CbcSimpleIntegeroperator= (const CbcSimpleInteger &rhs)
virtual ~CbcSimpleInteger ()
*Construct an OsiSimpleInteger object OsiSimpleInteger * osiObject () const
*Infeasibility large virtual is double infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
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.
*Fills in a created branching object void fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
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.
*Set column number void setColumnNumber (int value)
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.
*Original bounds double originalLowerBound () const
void setOriginalLowerBound (double value)
double originalUpperBound () const
void setOriginalUpperBound (double value)

Public Attributes

*Breakeven e g
*Original upper bound double originalUpper_
*Breakeven i e
*Column number in model int columnNumber_
*If down always chosen first
*If down always chosen up always
*If down always chosen up normal int preferredWay_

Detailed Description

Definition at line 171 of file CbcSimpleInteger.hpp.

Constructor & Destructor Documentation

◆ CbcSimpleInteger() [1/4]

CbcSimpleInteger::CbcSimpleInteger ( )

◆ CbcSimpleInteger() [2/4]

CbcSimpleInteger::CbcSimpleInteger ( CbcModel * model,
int iColumn,
double breakEven = 0.5 )

◆ CbcSimpleInteger() [3/4]

CbcSimpleInteger::CbcSimpleInteger ( CbcModel * model,
const OsiSimpleInteger * object )

◆ CbcSimpleInteger() [4/4]

CbcSimpleInteger::CbcSimpleInteger ( const CbcSimpleInteger & )

◆ ~CbcSimpleInteger()

virtual CbcSimpleInteger::~CbcSimpleInteger ( )
virtual

Member Function Documentation

◆ clone()

*virtual Clone CbcObject * CbcSimpleInteger::clone ( ) const
virtual

◆ operator=()

CbcSimpleInteger & CbcSimpleInteger::operator= ( const CbcSimpleInteger & rhs)

◆ osiObject()

*Construct an OsiSimpleInteger object OsiSimpleInteger * CbcSimpleInteger::osiObject ( ) const

◆ infeasibility()

*Infeasibility large virtual is double CbcSimpleInteger::infeasibility ( const OsiBranchingInformation * info,
int & preferredWay ) const
virtual

◆ feasibleRegion() [1/2]

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.

◆ createCbcBranch()

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 in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

◆ fillCreateBranch()

*Fills in a created branching object void CbcSimpleInteger::fillCreateBranch ( CbcIntegerBranchingObject * branching,
const OsiBranchingInformation * info,
int way )

◆ solverBranch()

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

Reimplemented in CbcSimpleIntegerDynamicPseudoCost.

◆ feasibleRegion() [2/2]

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.

◆ columnNumber()

virtual int CbcSimpleInteger::columnNumber ( ) const
virtual

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

◆ setColumnNumber()

*Set column number void CbcSimpleInteger::setColumnNumber ( int value)
inline

Definition at line 240 of file CbcSimpleInteger.hpp.

◆ resetBounds()

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.

◆ resetSequenceEtc()

virtual void CbcSimpleInteger::resetSequenceEtc ( int numberColumns,
const int * originalColumns )
virtual

Change column numbers after preprocessing.

◆ originalLowerBound()

*Original bounds double CbcSimpleInteger::originalLowerBound ( ) const
inline

Definition at line 255 of file CbcSimpleInteger.hpp.

◆ setOriginalLowerBound()

void CbcSimpleInteger::setOriginalLowerBound ( double value)
inline

Definition at line 259 of file CbcSimpleInteger.hpp.

◆ originalUpperBound()

double CbcSimpleInteger::originalUpperBound ( ) const
inline

Definition at line 263 of file CbcSimpleInteger.hpp.

◆ setOriginalUpperBound()

void CbcSimpleInteger::setOriginalUpperBound ( double value)
inline

Definition at line 267 of file CbcSimpleInteger.hpp.

Member Data Documentation

◆ g

* Breakeven e CbcSimpleInteger::g
Initial value:
= 0.7 go up first
inline double breakEven() const
{
return breakEven_;
}
* Set breakeven e.g 0.7 -> >= 0.7 go up first
inline void setBreakEven(double value)
{
breakEven_ = value;
}
protected:
* data
* Original lower bound
double originalLower_
*If down always chosen first

Definition at line 271 of file CbcSimpleInteger.hpp.

◆ originalUpper_

* Original upper bound double CbcSimpleInteger::originalUpper_

Definition at line 288 of file CbcSimpleInteger.hpp.

◆ e

* Breakeven i CbcSimpleInteger::e
Initial value:
= this preferred is up
double breakEven_

Definition at line 289 of file CbcSimpleInteger.hpp.

◆ columnNumber_

* Column number in model int CbcSimpleInteger::columnNumber_

Definition at line 292 of file CbcSimpleInteger.hpp.

◆ first

* If down always chosen CbcSimpleInteger::first

Definition at line 293 of file CbcSimpleInteger.hpp.

◆ always

* If down always chosen up CbcSimpleInteger::always

Definition at line 293 of file CbcSimpleInteger.hpp.

◆ preferredWay_

* If down always chosen up normal int CbcSimpleInteger::preferredWay_

Definition at line 294 of file CbcSimpleInteger.hpp.


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