ABA_BRANCHRULE Class Reference

class is an abstract base class for all branching rules within this framework. More...

#include <branchrule.h>

Inheritance diagram for ABA_BRANCHRULE:

ABA_ABACUSROOT ABA_BOUNDBRANCHRULE ABA_CONBRANCHRULE ABA_SETBRANCHRULE ABA_VALBRANCHRULE List of all members.

Public Member Functions

 ABA_BRANCHRULE (ABA_MASTER *master)
virtual ~ABA_BRANCHRULE ()
virtual int extract (ABA_SUB *sub)=0
virtual void extract (ABA_LPSUB *lp)
 Should modify the linear programming relaxation |lp| in order to determine the quality of the branching rule in a linear programming based branching rule selection.
virtual void unExtract (ABA_LPSUB *lp)
virtual bool branchOnSetVar ()
 Should indicate if the branching is performed by setting a binary variable.
virtual void initialize (ABA_SUB *sub)
 The function initialize is a virtual dummy function doing nothing. It is called from the constructor of the subproblem and can be used to perform initializations of the branching rule that can be only done after the generation of the subproblem.

Protected Attributes

ABA_MASTERmaster_

Detailed Description

class is an abstract base class for all branching rules within this framework.

Parameters:
ABA_MASTER *master_ A pointer to the corresponding master of the optimization.

Definition at line 63 of file branchrule.h.


Constructor & Destructor Documentation

ABA_BRANCHRULE::ABA_BRANCHRULE ( ABA_MASTER master  ) 

The constructor.

Parameters:
master A pointer to the corresponding master of the optimization.

virtual ABA_BRANCHRULE::~ABA_BRANCHRULE (  )  [virtual]

The destructor.


Member Function Documentation

virtual int ABA_BRANCHRULE::extract ( ABA_SUB sub  )  [pure virtual]

Modifies a subproblem by setting the branching variable.

Returns:
0 If the subproblem can be modified according to the branching rule.

1 If a contradiction occurs.

Parameters:
sub The subproblem being modified.

Implemented in ABA_BOUNDBRANCHRULE, ABA_CONBRANCHRULE, ABA_SETBRANCHRULE, and ABA_VALBRANCHRULE.

virtual void ABA_BRANCHRULE::extract ( ABA_LPSUB lp  )  [virtual]

Should modify the linear programming relaxation |lp| in order to determine the quality of the branching rule in a linear programming based branching rule selection.

The default implementation does nothing except writing a warning to the error stream. If a derived concrete branching rule should be used in LP-based branching rule selection then this function has to be redefined.

Parameters:
lp A pointer to a the linear programming relaxtion of a a subproblem.

Reimplemented in ABA_BOUNDBRANCHRULE, ABA_CONBRANCHRULE, ABA_SETBRANCHRULE, and ABA_VALBRANCHRULE.

virtual void ABA_BRANCHRULE::unExtract ( ABA_LPSUB lp  )  [virtual]

Should undo the modifictions of the linear programming relaxtion |lp|.

This function has to be redefined in a derived class, if also extract(ABA_LPSUB*) is redefined there.

Parameters:
lp A pointer to a the linear programming relaxtion of a a subproblem.

Reimplemented in ABA_BOUNDBRANCHRULE, ABA_CONBRANCHRULE, ABA_SETBRANCHRULE, and ABA_VALBRANCHRULE.

virtual bool ABA_BRANCHRULE::branchOnSetVar (  )  [virtual]

Should indicate if the branching is performed by setting a binary variable.

This is only required as in the current version of the GNU-compiler run time type information is not satisfactorily implemented.

This function is currently required to determine global validity of Gomory cuts for general s.
Returns:
The default implementation returns always false. This function must be redefined in the class ABA_SETBRANCHRULE, where it has to return true.

Reimplemented in ABA_SETBRANCHRULE.

virtual void ABA_BRANCHRULE::initialize ( ABA_SUB sub  )  [virtual]

The function initialize is a virtual dummy function doing nothing. It is called from the constructor of the subproblem and can be used to perform initializations of the branching rule that can be only done after the generation of the subproblem.

Parameters:
sub A pointer to the subproblem that should be used for the initialization.}

Reimplemented in ABA_CONBRANCHRULE.


Member Data Documentation

ABA_MASTER* ABA_BRANCHRULE::master_ [protected]

Definition at line 157 of file branchrule.h.


The documentation for this class was generated from the following file:
Generated on Tue Aug 14 18:09:56 2007 for ABACUS by  doxygen 1.5.1