ABA_TAILOFF Class Reference

This class stores the history of the values of the last LP-solutions and implements all functions to control tailing-off effect. More...

#include <tailoff.h>

Inheritance diagram for ABA_TAILOFF:

ABA_ABACUSROOT List of all members.

Public Member Functions

 ABA_TAILOFF (ABA_MASTER *master)
 The constructor takes the length of the tailing off history from ABA_MASTER::tailOffNLp().
 ABA_TAILOFF (ABA_MASTER *master, int NLp)
 An alternative constructor takes the length of the tailing off history from the parameter NLp.
 ~ABA_TAILOFF ()
 The destructor.
bool tailOff () const
int diff (int nLps, double &d) const
 Can be used to retrieve the difference between the last and a previous LP-solution in percent.

Private Member Functions

void update (double value)
void reset ()

Private Attributes

ABA_MASTERmaster_
ABA_RING< double > * lpHistory_

Friends

class ABA_SUB
ostream & operator<< (ostream &out, const ABA_TAILOFF &rhs)
 The output operator writes the memorized LP-values on an output stream.

Detailed Description

This class stores the history of the values of the last LP-solutions and implements all functions to control tailing-off effect.

Definition at line 53 of file tailoff.h.


Constructor & Destructor Documentation

ABA_TAILOFF::ABA_TAILOFF ( ABA_MASTER master  ) 

The constructor takes the length of the tailing off history from ABA_MASTER::tailOffNLp().

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

ABA_TAILOFF::ABA_TAILOFF ( ABA_MASTER master,
int  NLp 
)

An alternative constructor takes the length of the tailing off history from the parameter NLp.

Parameters:
master A pointer to the corresponding master of the optimization.
NLp The length of the tailing off history.

ABA_TAILOFF::~ABA_TAILOFF (  ) 

The destructor.


Member Function Documentation

bool ABA_TAILOFF::tailOff (  )  const

Checks if there is a tailing-off effect.

We assume a tailing-off effect if during the last ABA_MASTER::tailOffNLps() iterations of the cutting plane algorithms the dual bound changed at most ABA_MASTER::tailOffPercent() percent.

Returns:
true If a tailing off effect is observed,

false otherwise.

int ABA_TAILOFF::diff ( int  nLps,
double &  d 
) const

Can be used to retrieve the difference between the last and a previous LP-solution in percent.

Returns:
0 If the difference could be computed, i.e., the old LP-value nLPs before the last one is store in the history,

1 otherwise.

Parameters:
nLps The number of LPs before the last solved linear program with which the last solved LP-value should be compared.
d Contains the absolute difference bewteen the value of the last solved linear program and the value of the linear program solved nLPs before in percent relative to the older value.

void ABA_TAILOFF::update ( double  value  )  [private]

A new LP-solution value can be stored by calling the function update().

This update should be performed after every solution of an LP in the cutting plane generation phase of the subproblem optimization process.

Parameters:
value The LP-solution value.

void ABA_TAILOFF::reset (  )  [private]

Clears the solution history.

This function should be called if variables are added, because normally the solution value of the LP-relaxation gets worse after the addition of variables. Such a change could falsely indicate a tailing-off effect if the history of LP-values is not reset.


Friends And Related Function Documentation

friend class ABA_SUB [friend]

Definition at line 54 of file tailoff.h.

ostream& operator<< ( ostream &  out,
const ABA_TAILOFF rhs 
) [friend]

The output operator writes the memorized LP-values on an output stream.

Returns:
A reference to the output stream.
Parameters:
out The output stream.
rhs The tailing-off manager being output.


Member Data Documentation

ABA_MASTER* ABA_TAILOFF::master_ [private]

A pointer to the corresponding master of the optimization.

Definition at line 139 of file tailoff.h.

ABA_RING<double>* ABA_TAILOFF::lpHistory_ [private]

The LP-values considered in the tailing off analysis.

Definition at line 143 of file tailoff.h.


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