AbcBranchDecision Class Reference

Abstract branching decision base class. More...

#include <AbcBranchBase.h>

Inheritance diagram for AbcBranchDecision:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 AbcBranchDecision ()
 Default Constructor.
virtual ~AbcBranchDecision ()
 Destructor.
virtual AbcBranchDecisionclone () const =0
 Clone.
virtual void initialize (AbcModel *model)=0
 Initialize e.g. before starting to choose a branch at a node.
virtual int betterBranch (int thisOne, int bestSoFar, double changeUp, int numberInfeasibilitiesUp, double changeDown, int numberInfeasibilitiesDown)=0
 Compare two branching objects (current just integer variables).
virtual int bestBranch (AbcModel *model, int *objects, int numberObjects, int numberUnsatisfied, double *changeUp, int *numberInfeasibilitiesUp, double *changeDown, int *numberInfeasibilitiesDown, double objectiveValue)
 Compare N branching objects.

Private Member Functions

AbcBranchDecisionoperator= (const AbcBranchDecision &rhs)
 Assignment is illegal.

Detailed Description

Abstract branching decision base class.

In the abstract, an AbcBranchDecision object is expected to be able to compare two possible branching choices.

The betterBranch() method is the crucial routine. It is expected to be able to compare two integer variables.

Definition at line 50 of file AbcBranchBase.h.


Constructor & Destructor Documentation

AbcBranchDecision::AbcBranchDecision (  ) 

Default Constructor.

virtual AbcBranchDecision::~AbcBranchDecision (  )  [virtual]

Destructor.


Member Function Documentation

virtual AbcBranchDecision* AbcBranchDecision::clone (  )  const [pure virtual]

Clone.

Implemented in AbcBranchDefaultDecision.

virtual void AbcBranchDecision::initialize ( AbcModel model  )  [pure virtual]

Initialize e.g. before starting to choose a branch at a node.

Implemented in AbcBranchDefaultDecision.

virtual int AbcBranchDecision::betterBranch ( int  thisOne,
int  bestSoFar,
double  changeUp,
int  numberInfeasibilitiesUp,
double  changeDown,
int  numberInfeasibilitiesDown 
) [pure virtual]

Compare two branching objects (current just integer variables).

Return nonzero if branching using thisOne is better than branching using bestSoFar.

If bestSoFar is NULL, the routine should return a nonzero value. This routine is used only after strong branching.

It is now reccommended that bestBranch is used - see below. This has been left for compatibility.

Implemented in AbcBranchDefaultDecision.

virtual int AbcBranchDecision::bestBranch ( AbcModel model,
int *  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. This is reccommended version as it can be more sophisticated

AbcBranchDecision& AbcBranchDecision::operator= ( const AbcBranchDecision rhs  )  [private]

Assignment is illegal.

Reimplemented in AbcBranchDefaultDecision.


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

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1