AbcDualRowPivot Class Reference

Dual Row Pivot Abstract Base Class. More...

#include <AbcDualRowPivot.hpp>

Inheritance diagram for AbcDualRowPivot:
Inheritance graph
[legend]
Collaboration diagram for AbcDualRowPivot:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Algorithmic methods



virtual int pivotRow ()=0
 Returns pivot row, -1 if none.
virtual double updateWeights1 (CoinIndexedVector &input, CoinIndexedVector &updateColumn)=0
 Does most of work for weights and returns pivot alpha.
virtual void updateWeightsOnly (CoinIndexedVector &input)=0
 Returns pivot row, -1 if none.
virtual double updateWeights (CoinIndexedVector &input, CoinIndexedVector &updateColumn)=0
 Returns pivot row, -1 if none.
virtual void updateWeights2 (CoinIndexedVector &input, CoinIndexedVector &updateColumn)=0
 Actually updates weights.
virtual void updatePrimalSolution (CoinIndexedVector &updateColumn, double theta)=0
 Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Would be faster if we kept basic regions, but on other hand it means everything is always in sync.
virtual void updatePrimalSolutionAndWeights (CoinIndexedVector &weightsVector, CoinIndexedVector &updateColumn, double theta)
 Returns pivot row, -1 if none.
virtual void saveWeights (AbcSimplex *model, int mode)
 Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.
virtual void recomputeInfeasibilities ()
 Recompute infeasibilities.
virtual void checkAccuracy ()
 checks accuracy and may re-initialize (may be empty)
virtual void clearArrays ()
 Gets rid of all arrays (may be empty).
virtual bool looksOptimal () const
 Returns true if would not find any row.
Constructors and destructors



 AbcDualRowPivot ()
 Default Constructor.
 AbcDualRowPivot (const AbcDualRowPivot &)
 Copy constructor.
AbcDualRowPivotoperator= (const AbcDualRowPivot &rhs)
 Assignment operator.
virtual ~AbcDualRowPivot ()
 Destructor.
virtual AbcDualRowPivotclone (bool copyData=true) const =0
 Clone.
Other



AbcSimplexmodel ()
 Returns model.
void setModel (AbcSimplex *newmodel)
 Sets model (normally to NULL).
int type ()
 Returns type (above 63 is extra information).

Protected Attributes

Protected member data



AbcSimplexmodel_
 Pointer to model.
int type_
 Type of row pivot algorithm.

Detailed Description

Dual Row Pivot Abstract Base Class.

Abstract Base Class for describing an interface to an algorithm to choose row pivot in dual simplex algorithm. For some algorithms e.g. Dantzig choice then some functions may be null.

Definition at line 23 of file AbcDualRowPivot.hpp.


Constructor & Destructor Documentation

AbcDualRowPivot::AbcDualRowPivot (  ) 

Default Constructor.

AbcDualRowPivot::AbcDualRowPivot ( const AbcDualRowPivot  ) 

Copy constructor.

virtual AbcDualRowPivot::~AbcDualRowPivot (  )  [virtual]

Destructor.


Member Function Documentation

virtual int AbcDualRowPivot::pivotRow (  )  [pure virtual]

Returns pivot row, -1 if none.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual double AbcDualRowPivot::updateWeights1 ( CoinIndexedVector input,
CoinIndexedVector updateColumn 
) [pure virtual]

Does most of work for weights and returns pivot alpha.

Also does FT update

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::updateWeightsOnly ( CoinIndexedVector input  )  [pure virtual]

Returns pivot row, -1 if none.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual double AbcDualRowPivot::updateWeights ( CoinIndexedVector input,
CoinIndexedVector updateColumn 
) [pure virtual]

Returns pivot row, -1 if none.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::updateWeights2 ( CoinIndexedVector input,
CoinIndexedVector updateColumn 
) [pure virtual]

Actually updates weights.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::updatePrimalSolution ( CoinIndexedVector updateColumn,
double  theta 
) [pure virtual]

Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Would be faster if we kept basic regions, but on other hand it means everything is always in sync.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::updatePrimalSolutionAndWeights ( CoinIndexedVector weightsVector,
CoinIndexedVector updateColumn,
double  theta 
) [virtual]

Returns pivot row, -1 if none.

Reimplemented in AbcDualRowSteepest.

virtual void AbcDualRowPivot::saveWeights ( AbcSimplex model,
int  mode 
) [virtual]

Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.

check for infeasible) 4) as 2 but restore weights from previous snapshot 5) for strong branching - initialize , infeasibilities

Reimplemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::recomputeInfeasibilities (  )  [virtual]

Recompute infeasibilities.

Reimplemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual void AbcDualRowPivot::checkAccuracy (  )  [virtual]

checks accuracy and may re-initialize (may be empty)

virtual void AbcDualRowPivot::clearArrays (  )  [virtual]

Gets rid of all arrays (may be empty).

Reimplemented in AbcDualRowSteepest.

virtual bool AbcDualRowPivot::looksOptimal (  )  const [inline, virtual]

Returns true if would not find any row.

Reimplemented in AbcDualRowSteepest.

Definition at line 69 of file AbcDualRowPivot.hpp.

AbcDualRowPivot& AbcDualRowPivot::operator= ( const AbcDualRowPivot rhs  ) 

Assignment operator.

Reimplemented in AbcDualRowDantzig, and AbcDualRowSteepest.

virtual AbcDualRowPivot* AbcDualRowPivot::clone ( bool  copyData = true  )  const [pure virtual]

Clone.

Implemented in AbcDualRowDantzig, and AbcDualRowSteepest.

AbcSimplex* AbcDualRowPivot::model (  )  [inline]

Returns model.

Definition at line 97 of file AbcDualRowPivot.hpp.

void AbcDualRowPivot::setModel ( AbcSimplex newmodel  )  [inline]

Sets model (normally to NULL).

Definition at line 102 of file AbcDualRowPivot.hpp.

int AbcDualRowPivot::type (  )  [inline]

Returns type (above 63 is extra information).

Definition at line 107 of file AbcDualRowPivot.hpp.


Member Data Documentation

Pointer to model.

Definition at line 119 of file AbcDualRowPivot.hpp.

int AbcDualRowPivot::type_ [protected]

Type of row pivot algorithm.

Definition at line 121 of file AbcDualRowPivot.hpp.


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

Generated on 5 Apr 2015 by  doxygen 1.6.1