Public Member Functions | Private Member Functions | List of all members
AbcBranchDecision Class Referenceabstract

Abstract branching decision base class. More...

#include <AbcBranchBase.h>

Inheritance diagram for AbcBranchDecision:
Inheritance graph
[legend]

Public Member Functions

 AbcBranchDecision ()
 Default Constructor. More...
 
virtual ~AbcBranchDecision ()
 Destructor. More...
 
virtual AbcBranchDecisionclone () const =0
 Clone. More...
 
virtual void initialize (AbcModel *model)=0
 Initialize e.g. before starting to choose a branch at a node. More...
 
virtual int betterBranch (int thisOne, int bestSoFar, double changeUp, int numberInfeasibilitiesUp, double changeDown, int numberInfeasibilitiesDown)=0
 Compare two branching objects (current just integer variables). More...
 
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. More...
 

Private Member Functions

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

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.


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