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

Branching decision default class. More...

#include <CbcBranchDefaultDecision.hpp>

+ Inheritance diagram for CbcBranchDefaultDecision:
+ Collaboration diagram for CbcBranchDefaultDecision:

Public Member Functions

 CbcBranchDefaultDecision ()
 CbcBranchDefaultDecision (const CbcBranchDefaultDecision &)
virtual ~CbcBranchDefaultDecision ()
virtual CbcBranchDecisionclone () const
 Clone. More...
virtual void initialize (CbcModel *model)
 Initialize, e.g. before the start of branch selection at a node. More...
virtual int betterBranch (CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
 Compare two branching objects. More...
virtual void setBestCriterion (double value)
 Sets or gets best criterion so far. More...
virtual double getBestCriterion () const
virtual int bestBranch (CbcBranchingObject **objects, int numberObjects, int numberUnsatisfied, double *changeUp, int *numberInfeasibilitiesUp, double *changeDown, int *numberInfeasibilitiesDown, double objectiveValue)
 Compare N branching objects. More...
- Public Member Functions inherited from CbcBranchDecision
 CbcBranchDecision ()
 Default Constructor. More...
 CbcBranchDecision (const CbcBranchDecision &)
virtual ~CbcBranchDecision ()
 Destructor. More...
virtual int whichMethod ()
 Says whether this method can handle both methods - 1 better, 2 best, 3 both. More...
virtual void saveBranchingObject (OsiBranchingObject *)
 Saves a clone of current branching object. More...
virtual void updateInformation (OsiSolverInterface *, const CbcNode *)
 Pass in information on branch just done. More...
virtual void generateCpp (FILE *)
 Create C++ lines to get to current state. More...
CbcModelcbcModel () const
 Model. More...
OsiChooseVariablechooseMethod () const
void setChooseMethod (const OsiChooseVariable &method)
 Set (clone) chooseMethod. More...

Private Member Functions

CbcBranchDefaultDecisionoperator= (const CbcBranchDefaultDecision &rhs)
 Illegal Assignment operator. More...

Private Attributes

double bestCriterion_
 data More...
double bestChangeUp_
 Change up for best. More...
int bestNumberUp_
 Number of infeasibilities for up. More...
double bestChangeDown_
 Change down for best. More...
 Pointer to best branching object. More...
int bestNumberDown_
 Number of infeasibilities for down. More...

Additional Inherited Members

- Protected Attributes inherited from CbcBranchDecision
 Pointer to model. More...

Detailed Description

Branching decision default class.

This class implements a simple default algorithm (betterBranch()) for choosing a branching variable.

Definition at line 18 of file CbcBranchDefaultDecision.hpp.

Constructor & Destructor Documentation

CbcBranchDefaultDecision::CbcBranchDefaultDecision ( )
CbcBranchDefaultDecision::CbcBranchDefaultDecision ( const CbcBranchDefaultDecision )
virtual CbcBranchDefaultDecision::~CbcBranchDefaultDecision ( )

Member Function Documentation

virtual CbcBranchDecision* CbcBranchDefaultDecision::clone ( ) const


Implements CbcBranchDecision.

virtual void CbcBranchDefaultDecision::initialize ( CbcModel model)

Initialize, e.g. before the start of branch selection at a node.

Implements CbcBranchDecision.

virtual int CbcBranchDefaultDecision::betterBranch ( CbcBranchingObject thisOne,
CbcBranchingObject bestSoFar,
double  changeUp,
int  numInfUp,
double  changeDn,
int  numInfDn 

Compare two branching objects.

Return nonzero if thisOne is better than bestSoFar.

The routine compares branches using the values supplied in numInfUp and numInfDn until a solution is found by search, after which it uses the values supplied in changeUp and changeDn. The best branching object seen so far and the associated parameter values are remembered in the CbcBranchDefaultDecision object. The nonzero return value is +1 if the up branch is preferred, -1 if the down branch is preferred.

As the names imply, the assumption is that the values supplied for numInfUp and numInfDn will be the number of infeasibilities reported by the branching object, and changeUp and changeDn will be the estimated change in objective. Other measures can be used if desired.

Because an CbcBranchDefaultDecision object remembers the current best branching candidate (bestObject_) as well as the values used in the comparison, the parameter bestSoFar is redundant, hence unused.

Implements CbcBranchDecision.

virtual void CbcBranchDefaultDecision::setBestCriterion ( double  value)

Sets or gets best criterion so far.

Reimplemented from CbcBranchDecision.

virtual double CbcBranchDefaultDecision::getBestCriterion ( ) const

Reimplemented from CbcBranchDecision.

virtual int CbcBranchDefaultDecision::bestBranch ( CbcBranchingObject **  objects,
int  numberObjects,
int  numberUnsatisfied,
double *  changeUp,
int *  numberInfeasibilitiesUp,
double *  changeDown,
int *  numberInfeasibilitiesDown,
double  objectiveValue 

Compare N branching objects.

Return index of best and sets way of branching in chosen object.

This routine is used only after strong branching.

Reimplemented from CbcBranchDecision.

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

Illegal Assignment operator.

Member Data Documentation

double CbcBranchDefaultDecision::bestCriterion_


"best" so far

Definition at line 80 of file CbcBranchDefaultDecision.hpp.

double CbcBranchDefaultDecision::bestChangeUp_

Change up for best.

Definition at line 83 of file CbcBranchDefaultDecision.hpp.

int CbcBranchDefaultDecision::bestNumberUp_

Number of infeasibilities for up.

Definition at line 86 of file CbcBranchDefaultDecision.hpp.

double CbcBranchDefaultDecision::bestChangeDown_

Change down for best.

Definition at line 89 of file CbcBranchDefaultDecision.hpp.

CbcBranchingObject* CbcBranchDefaultDecision::bestObject_

Pointer to best branching object.

Definition at line 92 of file CbcBranchDefaultDecision.hpp.

int CbcBranchDefaultDecision::bestNumberDown_

Number of infeasibilities for down.

Definition at line 95 of file CbcBranchDefaultDecision.hpp.

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