Branching decision default class. More...
#include <CbcBranchActual.hpp>
Public Member Functions | |
CbcBranchDefaultDecision () | |
CbcBranchDefaultDecision (const CbcBranchDefaultDecision &) | |
virtual | ~CbcBranchDefaultDecision () |
virtual CbcBranchDecision * | clone () const |
Clone. | |
virtual void | initialize (CbcModel *model) |
Initialize, e.g. before the start of branch selection at a node. | |
virtual int | betterBranch (CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn) |
Compare two branching objects. | |
virtual void | setBestCriterion (double value) |
Sets or gets best criterion so far. | |
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. | |
Private Member Functions | |
CbcBranchDefaultDecision & | operator= (const CbcBranchDefaultDecision &rhs) |
Illegal Assignment operator. | |
Private Attributes | |
double | bestCriterion_ |
data | |
double | bestChangeUp_ |
Change up for best. | |
int | bestNumberUp_ |
Number of infeasibilities for up. | |
double | bestChangeDown_ |
Change down for best. | |
CbcBranchingObject * | bestObject_ |
Pointer to best branching object. | |
int | bestNumberDown_ |
Number of infeasibilities for down. |
Branching decision default class.
This class implements a simple default algorithm (betterBranch()) for choosing a branching variable.
Definition at line 1044 of file CbcBranchActual.hpp.
CbcBranchDefaultDecision::CbcBranchDefaultDecision | ( | ) |
CbcBranchDefaultDecision::CbcBranchDefaultDecision | ( | const CbcBranchDefaultDecision & | ) |
virtual CbcBranchDefaultDecision::~CbcBranchDefaultDecision | ( | ) | [virtual] |
virtual CbcBranchDecision* CbcBranchDefaultDecision::clone | ( | ) | const [virtual] |
Clone.
Implements CbcBranchDecision.
virtual void CbcBranchDefaultDecision::initialize | ( | CbcModel * | model | ) | [virtual] |
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 | |||
) | [virtual] |
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 | ) | [virtual] |
Sets or gets best criterion so far.
Reimplemented from CbcBranchDecision.
virtual double CbcBranchDefaultDecision::getBestCriterion | ( | ) | const [virtual] |
Reimplemented from CbcBranchDecision.
virtual int CbcBranchDefaultDecision::bestBranch | ( | CbcBranchingObject ** | objects, | |
int | numberObjects, | |||
int | numberUnsatisfied, | |||
double * | changeUp, | |||
int * | numberInfeasibilitiesUp, | |||
double * | changeDown, | |||
int * | numberInfeasibilitiesDown, | |||
double | objectiveValue | |||
) | [virtual] |
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 | ) | [private] |
Illegal Assignment operator.
Reimplemented from CbcBranchDecision.
double CbcBranchDefaultDecision::bestCriterion_ [private] |
double CbcBranchDefaultDecision::bestChangeUp_ [private] |
Change up for best.
Definition at line 1109 of file CbcBranchActual.hpp.
int CbcBranchDefaultDecision::bestNumberUp_ [private] |
Number of infeasibilities for up.
Definition at line 1112 of file CbcBranchActual.hpp.
double CbcBranchDefaultDecision::bestChangeDown_ [private] |
Change down for best.
Definition at line 1115 of file CbcBranchActual.hpp.
Pointer to best branching object.
Definition at line 1118 of file CbcBranchActual.hpp.
int CbcBranchDefaultDecision::bestNumberDown_ [private] |
Number of infeasibilities for down.
Definition at line 1121 of file CbcBranchActual.hpp.