Cbc  2.10.3
Public Member Functions | Protected Attributes | List of all members
OsiChooseStrongSubset Class Reference

This class chooses a variable to branch on. More...

#include <CbcLinked.hpp>

+ Inheritance diagram for OsiChooseStrongSubset:
+ Collaboration diagram for OsiChooseStrongSubset:

Public Member Functions

 OsiChooseStrongSubset ()
 Default Constructor. More...
 
 OsiChooseStrongSubset (const OsiSolverInterface *solver)
 Constructor from solver (so we can set up arrays etc) More...
 
 OsiChooseStrongSubset (const OsiChooseStrongSubset &)
 Copy constructor. More...
 
OsiChooseStrongSubsetoperator= (const OsiChooseStrongSubset &rhs)
 Assignment operator. More...
 
virtual OsiChooseVariableclone () const
 Clone. More...
 
virtual ~OsiChooseStrongSubset ()
 Destructor. More...
 
virtual int setupList (OsiBranchingInformation *info, bool initialize)
 Sets up strong list and clears all if initialize is true. More...
 
virtual int chooseVariable (OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
 Choose a variable Returns - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All looks satisfied - no candidate 2 We can change the bound on a variable - but we also have a strong branching candidate 3 We can change the bound on a variable - but we have a non-strong branching candidate 4 We can change the bound on a variable - no other candidates We can pick up branch from bestObjectIndex() and bestWhichWay() We can pick up a forced branch (can change bound) from firstForcedObjectIndex() and firstForcedWhichWay() If we have a solution then we can pick up from goodObjectiveValue() and goodSolution() If fixVariables is true then 2,3,4 are all really same as problem changed. More...
 
int numberObjectsToUse () const
 Number of objects to use. More...
 
void setNumberObjectsToUse (int value)
 Set number of objects to use. More...
 
- Public Member Functions inherited from OsiChooseStrong
 OsiChooseStrong ()
 
 OsiChooseStrong (const OsiSolverInterface *solver)
 
 OsiChooseStrong (const OsiChooseStrong &)
 
OsiChooseStrongoperator= (const OsiChooseStrong &rhs)
 
virtual ~OsiChooseStrong ()
 
int shadowPriceMode () const
 
void setShadowPriceMode (int value)
 
const OsiPseudoCostspseudoCosts () const
 
OsiPseudoCostspseudoCosts ()
 
int numberBeforeTrusted () const
 
void setNumberBeforeTrusted (int value)
 
int numberObjects () const
 
- Public Member Functions inherited from OsiChooseVariable
 OsiChooseVariable ()
 
 OsiChooseVariable (const OsiSolverInterface *solver)
 
 OsiChooseVariable (const OsiChooseVariable &)
 
OsiChooseVariableoperator= (const OsiChooseVariable &rhs)
 
virtual ~OsiChooseVariable ()
 
virtual bool feasibleSolution (const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects)
 
void saveSolution (const OsiSolverInterface *solver)
 
void clearGoodSolution ()
 
virtual void updateInformation (const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo)
 
virtual void updateInformation (int whichObject, int branch, double changeInObjective, double changeInValue, int status)
 
double goodObjectiveValue () const
 
double upChange () const
 
double downChange () const
 
const double * goodSolution () const
 
int bestObjectIndex () const
 
void setBestObjectIndex (int value)
 
int bestWhichWay () const
 
void setBestWhichWay (int value)
 
int firstForcedObjectIndex () const
 
void setFirstForcedObjectIndex (int value)
 
int firstForcedWhichWay () const
 
void setFirstForcedWhichWay (int value)
 
int numberUnsatisfied () const
 
int numberStrong () const
 
void setNumberStrong (int value)
 
int numberOnList () const
 
int numberStrongDone () const
 
int numberStrongIterations () const
 
int numberStrongFixed () const
 
const int * candidates () const
 
bool trustStrongForBound () const
 
void setTrustStrongForBound (bool yesNo)
 
bool trustStrongForSolution () const
 
void setTrustStrongForSolution (bool yesNo)
 
void setSolver (const OsiSolverInterface *solver)
 
int status () const
 
void setStatus (int value)
 

Protected Attributes

int numberObjectsToUse_
 Number of objects to be used (and set in solver) More...
 
- Protected Attributes inherited from OsiChooseStrong
int shadowPriceMode_
 
OsiPseudoCosts pseudoCosts_
 
OsiHotInforesults_
 
int numResults_
 
- Protected Attributes inherited from OsiChooseVariable
double goodObjectiveValue_
 
double upChange_
 
double downChange_
 
double * goodSolution_
 
int * list_
 
double * useful_
 
const OsiSolverInterfacesolver_
 
int status_
 
int bestObjectIndex_
 
int bestWhichWay_
 
int firstForcedObjectIndex_
 
int firstForcedWhichWay_
 
int numberUnsatisfied_
 
int numberStrong_
 
int numberOnList_
 
int numberStrongDone_
 
int numberStrongIterations_
 
int numberStrongFixed_
 
bool trustStrongForBound_
 
bool trustStrongForSolution_
 

Additional Inherited Members

- Protected Member Functions inherited from OsiChooseStrong
int doStrongBranching (OsiSolverInterface *solver, OsiBranchingInformation *info, int numberToDo, int returnCriterion)
 
void resetResults (int num)
 

Detailed Description

This class chooses a variable to branch on.

This is just as OsiChooseStrong but it fakes it so only first so many are looked at in this phase

Definition at line 1240 of file CbcLinked.hpp.

Constructor & Destructor Documentation

◆ OsiChooseStrongSubset() [1/3]

OsiChooseStrongSubset::OsiChooseStrongSubset ( )

Default Constructor.

◆ OsiChooseStrongSubset() [2/3]

OsiChooseStrongSubset::OsiChooseStrongSubset ( const OsiSolverInterface solver)

Constructor from solver (so we can set up arrays etc)

◆ OsiChooseStrongSubset() [3/3]

OsiChooseStrongSubset::OsiChooseStrongSubset ( const OsiChooseStrongSubset )

Copy constructor.

◆ ~OsiChooseStrongSubset()

virtual OsiChooseStrongSubset::~OsiChooseStrongSubset ( )
virtual

Destructor.

Member Function Documentation

◆ operator=()

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

Assignment operator.

◆ clone()

virtual OsiChooseVariable* OsiChooseStrongSubset::clone ( ) const
virtual

Clone.

Reimplemented from OsiChooseStrong.

◆ setupList()

virtual int OsiChooseStrongSubset::setupList ( OsiBranchingInformation info,
bool  initialize 
)
virtual

Sets up strong list and clears all if initialize is true.

Returns number of infeasibilities. If returns -1 then has worked out node is infeasible!

Reimplemented from OsiChooseStrong.

◆ chooseVariable()

virtual int OsiChooseStrongSubset::chooseVariable ( OsiSolverInterface solver,
OsiBranchingInformation info,
bool  fixVariables 
)
virtual

Choose a variable Returns - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All looks satisfied - no candidate 2 We can change the bound on a variable - but we also have a strong branching candidate 3 We can change the bound on a variable - but we have a non-strong branching candidate 4 We can change the bound on a variable - no other candidates We can pick up branch from bestObjectIndex() and bestWhichWay() We can pick up a forced branch (can change bound) from firstForcedObjectIndex() and firstForcedWhichWay() If we have a solution then we can pick up from goodObjectiveValue() and goodSolution() If fixVariables is true then 2,3,4 are all really same as problem changed.

Reimplemented from OsiChooseStrong.

◆ numberObjectsToUse()

int OsiChooseStrongSubset::numberObjectsToUse ( ) const
inline

Number of objects to use.

Definition at line 1282 of file CbcLinked.hpp.

◆ setNumberObjectsToUse()

void OsiChooseStrongSubset::setNumberObjectsToUse ( int  value)
inline

Set number of objects to use.

Definition at line 1287 of file CbcLinked.hpp.

Member Data Documentation

◆ numberObjectsToUse_

int OsiChooseStrongSubset::numberObjectsToUse_
protected

Number of objects to be used (and set in solver)

Definition at line 1295 of file CbcLinked.hpp.


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