6.10 ABA_SEPARATOR< BaseType, CoType > Class Template Reference

abstract template class can be used to implement a separation routine

#include <separator.h>

Inheritance diagram for ABA_SEPARATOR< BaseType, CoType >::


PIC


Public Member Functions

Protected Member Functions

Protected Attributes

Private Member Functions

Private Attributes

6.10.1 Detailed Description

template<class BaseType, class CoType> class ABA_SEPARATOR< BaseType, CoType >

abstract template class can be used to implement a separation routine

Parameters:

ABA_MASTER
*master A pointer to the corresponding master of the optimization.
ABA_LPSOLUTION<CoType,BaseType>
*lpSol The LP solution to be separated.

Definition at line 67 of file separator.h.

6.10.2 Constructor & Destructor Documentation

6.10.2.1 template<class BaseType, class CoType> ABA_SEPARATOR< BaseType, CoType >::ABA_SEPARATOR (ABA_LPSOLUTION< CoType, BaseType > * lpSolution, bool nonDuplications, int maxGen = 300)

The constructor.

Parameters:

master
A pointer to the corresponding master of the optimization.
lpSolution
The LP solution to be separated.
maxGen
The maximal number of cutting planes which are stored.
nonDuplications
If this flag is set, then the same constraint/variable is stored at most once in the buffer. In this case for constraints/variables the virtual member functions name(), hashKey(), and equal() of the base class ABA_CONVAR have to be defined. Using these three functions, we check in the function cutFound if a constraint or variable is already stored in the buffer.
sendConstraint
In the parallel version this parameter determines if the constraints should be sent to their corresponding stores.

6.10.2.2 template<class BaseType, class CoType> virtual ABA_SEPARATOR< BaseType, CoType >::~ABA_SEPARATOR () [virtual]

The destructor.

6.10.2.3 template<class BaseType, class CoType> ABA_SEPARATOR< BaseType, CoType >::ABA_SEPARATOR (const ABA_SEPARATOR< BaseType, CoType > & rhs) [private]

6.10.3 Member Function Documentation

6.10.3.1 template<class BaseType, class CoType> virtual void ABA_SEPARATOR< BaseType, CoType >::separate () [pure virtual]

This function has to be redefined and should implement the separation routine.

6.10.3.2 template<class BaseType, class CoType> ABA_SEPARATOR_CUTFOUND ABA_SEPARATOR< BaseType, CoType >::cutFound (BaseType *)

The function cutFound(BaseType *cv) passes a cut (constraint or variable) to the buffer.

If the buffer is full or the cut already exists, the cut is deleted.

Returns:

ABAAdded, if the cut is added to the buffer;

ABADuplication, if the cut is already in the buffer;

ABAFull, if the buffer is full.

Parameters:

cv
A pointer to a new constraint/variable found by the separation algorithm.

6.10.3.3 template<class BaseType, class CoType> virtual bool ABA_SEPARATOR< BaseType, CoType >::terminateSeparation () [inline, virtual]

Returns:

The function returns true if the separation should be terminated. In the default implementation, this is the case if maxGen constraints/variables are in the cutBuffer.

Definition at line 117 of file separator.h.

6.10.3.4 template<class BaseType, class CoType> ABA_BUFFER<BaseType *>& ABA_SEPARATOR< BaseType, CoType >::cutBuffer ()

Returns:

The buffer with the generated constraints/variable.

6.10.3.5 template<class BaseType, class CoType> int ABA_SEPARATOR< BaseType, CoType >::nGen () const

Returns:

The number of generated cutting planes.

6.10.3.6 template<class BaseType, class CoType> int ABA_SEPARATOR< BaseType, CoType >::nDuplications () const

Returns:

The number of duplicated constraints/variables which are discarded.

6.10.3.7 template<class BaseType, class CoType> int ABA_SEPARATOR< BaseType, CoType >::nCollisions () const

Returns:

The number of collisions in the hash table.

6.10.3.8 template<class BaseType, class CoType> int ABA_SEPARATOR< BaseType, CoType >::maxGen () const

Returns:

The maximal number of generated cutting planes.

6.10.3.9 template<class BaseType, class CoType> double ABA_SEPARATOR< BaseType, CoType >::minAbsViolation () const

Returns:

The absolute value for considering a constraint/variable as violated.

6.10.3.10 template<class BaseType, class CoType> void ABA_SEPARATOR< BaseType, CoType >::minAbsViolation (double minAbsVio) [inline]

Set a new value for minAbsViolation.

Definition at line 145 of file separator.h.

6.10.3.11 template<class BaseType, class CoType> ABA_LPSOLUTION<CoType, BaseType>*ABA_SEPARATOR< BaseType, CoType >::lpSolution () [inline]

The lpSolution to be separated.

Definition at line 149 of file separator.h.

6.10.3.12 template<class BaseType, class CoType> void ABA_SEPARATOR< BaseType, CoType >::watchNonDuplPool (ABA_NONDUPLPOOL< BaseType, CoType > * pool) [inline]

If the separator checks for duplication of cuts, the test is also done for constraints/variables that are in the pool passed as argument.

This can be useful if already cuts are generated by performing constraint pool separation of this pool.

Definition at line 160 of file separator.h.

6.10.3.13 template<class BaseType, class CoType> bool ABA_SEPARATOR< BaseType, CoType >::find (BaseType *) [protected]

Returns:

The function checks if a constraint/variable that is equivalent to cv according to the function ABA_CONVAR::equal() is already stored in the buffer by using the hashtable.

Parameters:

cv
A pointer to a constraint/variable for which it should be checked if an equivalent item is already contained in the buffer.

6.10.3.14 template<class BaseType, class CoType> const ABA_SEPARATOR<BaseType, CoType>& ABA_SEPARATOR< BaseType, CoType >::operator= (const ABA_SEPARATOR< BaseType, CoType > & rhs) [private]

6.10.4 Member Data Documentation

6.10.4.1 template<class BaseType, class CoType> ABA_MASTER*ABA_SEPARATOR< BaseType, CoType >::master_ [protected]

Definition at line 173 of file separator.h.

6.10.4.2 template<class BaseType, class CoType> ABA_LPSOLUTION<CoType, BaseType>*ABA_SEPARATOR< BaseType, CoType >::lpSol_ [protected]

Definition at line 174 of file separator.h.

6.10.4.3 template<class BaseType, class CoType> double ABA_SEPARATOR< BaseType, CoType >::minAbsViolation_ [private]

Definition at line 176 of file separator.h.

6.10.4.4 template<class BaseType, class CoType> ABA_BUFFER<BaseType*> ABA_SEPARATOR< BaseType, CoType >::newCons_ [private]

Definition at line 177 of file separator.h.

6.10.4.5 template<class BaseType, class CoType> ABA_HASH<unsigned, BaseType*>*ABA_SEPARATOR< BaseType, CoType >::hash_ [private]

Definition at line 178 of file separator.h.

6.10.4.6 template<class BaseType, class CoType> int ABA_SEPARATOR< BaseType, CoType >::nDuplications_ [private]

Definition at line 179 of file separator.h.

6.10.4.7 template<class BaseType, class CoType> bool ABA_SEPARATOR< BaseType, CoType >::sendConstraints_ [private]

Definition at line 180 of file separator.h.

6.10.4.8 template<class BaseType, class CoType> ABA_NONDUPLPOOL<BaseType, CoType>*ABA_SEPARATOR< BaseType, CoType >::pool_ [private]

Definition at line 181 of file separator.h.

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

%