Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
OsiIntegerBranchingObject Class Reference

Simple branching object for an integer variable. More...

#include <OsiBranchingObject.hpp>

+ Inheritance diagram for OsiIntegerBranchingObject:
+ Collaboration diagram for OsiIntegerBranchingObject:

Public Member Functions

 OsiIntegerBranchingObject ()
 Default constructor. More...
 
 OsiIntegerBranchingObject (OsiSolverInterface *solver, const OsiSimpleInteger *originalObject, int way, double value)
 Create a standard floor/ceiling branch object. More...
 
 OsiIntegerBranchingObject (OsiSolverInterface *solver, const OsiSimpleInteger *originalObject, int way, double value, double downUpperBound, double upLowerBound)
 Create a standard floor/ceiling branch object. More...
 
 OsiIntegerBranchingObject (const OsiIntegerBranchingObject &)
 Copy constructor. More...
 
OsiIntegerBranchingObjectoperator= (const OsiIntegerBranchingObject &rhs)
 Assignment operator. More...
 
virtual OsiBranchingObjectclone () const
 Clone. More...
 
virtual ~OsiIntegerBranchingObject ()
 Destructor. More...
 
virtual double branch (OsiSolverInterface *solver)
 Sets the bounds for the variable according to the current arm of the branch and advances the object state to the next arm. More...
 
virtual void print (const OsiSolverInterface *solver=NULL)
 Print something about branch - only if log level high. More...
 
- Public Member Functions inherited from OsiTwoWayBranchingObject
 OsiTwoWayBranchingObject ()
 Default constructor. More...
 
 OsiTwoWayBranchingObject (OsiSolverInterface *solver, const OsiObject *originalObject, int way, double value)
 Create a standard tw0-way branch object. More...
 
 OsiTwoWayBranchingObject (const OsiTwoWayBranchingObject &)
 Copy constructor. More...
 
OsiTwoWayBranchingObjectoperator= (const OsiTwoWayBranchingObject &rhs)
 Assignment operator. More...
 
virtual ~OsiTwoWayBranchingObject ()
 Destructor. More...
 
int firstBranch () const
 
int way () const
 Way returns -1 on down +1 on up. More...
 
- Public Member Functions inherited from OsiBranchingObject
 OsiBranchingObject ()
 Default Constructor. More...
 
 OsiBranchingObject (OsiSolverInterface *solver, double value)
 Constructor. More...
 
 OsiBranchingObject (const OsiBranchingObject &)
 Copy constructor. More...
 
OsiBranchingObjectoperator= (const OsiBranchingObject &rhs)
 Assignment operator. More...
 
virtual ~OsiBranchingObject ()
 Destructor. More...
 
int numberBranches () const
 The number of branch arms created for this branching object. More...
 
int numberBranchesLeft () const
 The number of branch arms left for this branching object. More...
 
void incrementNumberBranchesLeft ()
 Increment the number of branch arms left for this branching object. More...
 
void setNumberBranchesLeft (int)
 Set the number of branch arms left for this branching object Just for forcing. More...
 
void decrementNumberBranchesLeft ()
 Decrement the number of branch arms left for this branching object. More...
 
virtual double branch ()
 Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state. More...
 
virtual bool boundBranch () const
 Return true if branch should fix variables. More...
 
int branchIndex () const
 Get the state of the branching object This is just the branch index. More...
 
void setBranchingIndex (int branchIndex)
 Set the state of the branching object. More...
 
double value () const
 Current value. More...
 
const OsiObjectoriginalObject () const
 Return pointer back to object which created. More...
 
void setOriginalObject (const OsiObject *object)
 Set pointer back to object which created. More...
 
virtual void checkIsCutoff (double)
 Double checks in case node can change its mind! Returns objective value Can change objective etc. More...
 
int columnNumber () const
 For debug. More...
 
virtual void print (const OsiSolverInterface *=NULL) const
 Print something about branch - only if log level high. More...
 

Protected Attributes

double down_ [2]
 Lower [0] and upper [1] bounds for the down arm (way_ = -1) More...
 
double up_ [2]
 Lower [0] and upper [1] bounds for the up arm (way_ = 1) More...
 
- Protected Attributes inherited from OsiTwoWayBranchingObject
int firstBranch_
 Which way was first branch -1 = down, +1 = up. More...
 
- Protected Attributes inherited from OsiBranchingObject
double value_
 Current value - has some meaning about branch. More...
 
const OsiObjectoriginalObject_
 Pointer back to object which created. More...
 
int numberBranches_
 Number of branches. More...
 
short branchIndex_
 The state of the branching object. More...
 

Detailed Description

Simple branching object for an integer variable.

This object can specify a two-way branch on an integer variable. For each arm of the branch, the upper and lower bounds on the variable can be independently specified. 0 -> down, 1-> up.

Definition at line 664 of file OsiBranchingObject.hpp.

Constructor & Destructor Documentation

OsiIntegerBranchingObject::OsiIntegerBranchingObject ( )

Default constructor.

OsiIntegerBranchingObject::OsiIntegerBranchingObject ( OsiSolverInterface solver,
const OsiSimpleInteger originalObject,
int  way,
double  value 
)

Create a standard floor/ceiling branch object.

Specifies a simple two-way branch. Let value = x*. One arm of the branch will be lb <= x <= floor(x*), the other ceil(x*) <= x <= ub. Specify way = -1 to set the object state to perform the down arm first, way = 1 for the up arm.

OsiIntegerBranchingObject::OsiIntegerBranchingObject ( OsiSolverInterface solver,
const OsiSimpleInteger originalObject,
int  way,
double  value,
double  downUpperBound,
double  upLowerBound 
)

Create a standard floor/ceiling branch object.

Specifies a simple two-way branch in a more flexible way. One arm of the branch will be lb <= x <= downUpperBound, the other upLowerBound <= x <= ub. Specify way = -1 to set the object state to perform the down arm first, way = 1 for the up arm.

OsiIntegerBranchingObject::OsiIntegerBranchingObject ( const OsiIntegerBranchingObject )

Copy constructor.

virtual OsiIntegerBranchingObject::~OsiIntegerBranchingObject ( )
virtual

Destructor.

Member Function Documentation

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

Assignment operator.

virtual OsiBranchingObject* OsiIntegerBranchingObject::clone ( ) const
virtual

Clone.

Implements OsiBranchingObject.

virtual double OsiIntegerBranchingObject::branch ( OsiSolverInterface solver)
virtual

Sets the bounds for the variable according to the current arm of the branch and advances the object state to the next arm.

state. Returns change in guessed objective on next branch

Implements OsiTwoWayBranchingObject.

virtual void OsiIntegerBranchingObject::print ( const OsiSolverInterface solver = NULL)
virtual

Print something about branch - only if log level high.

Member Data Documentation

double OsiIntegerBranchingObject::down_[2]
protected

Lower [0] and upper [1] bounds for the down arm (way_ = -1)

Definition at line 717 of file OsiBranchingObject.hpp.

double OsiIntegerBranchingObject::up_[2]
protected

Lower [0] and upper [1] bounds for the up arm (way_ = 1)

Definition at line 719 of file OsiBranchingObject.hpp.


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