Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ClpPrimalColumnPivot Class Reference

Primal Column Pivot Abstract Base Class. More...

#include <ClpPrimalColumnPivot.hpp>

Inheritance diagram for ClpPrimalColumnPivot:

ClpPrimalColumnDantzig ClpPrimalColumnSteepest ClpPrimalQuadraticDantzig List of all members.

Public Methods

Algorithmic methods
virtual int pivotColumn (CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)=0
 Returns pivot column, -1 if none.

virtual void updateWeights (CoinIndexedVector *input)
 Updates weights - part 1 (may be empty).

virtual void saveWeights (ClpSimplex *model, int mode)=0
 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 int pivotRow (double &way)
 Signals pivot row choice: -2 (default) - use normal pivot row choice -1 to numberRows-1 - use this (will be checked) way should be -1 to go to lower bound, +1 to upper bound.

virtual void clearArrays ()
 Gets rid of all arrays (may be empty).

virtual bool looksOptimal () const
 Returns true if would not find any column.

virtual void setLooksOptimal (bool flag)
 Sets optimality flag (for advanced use).

Constructors and destructors
 ClpPrimalColumnPivot ()
 Default Constructor.

 ClpPrimalColumnPivot (const ClpPrimalColumnPivot &)
 Copy constructor.

ClpPrimalColumnPivot & operator= (const ClpPrimalColumnPivot &rhs)
 Assignment operator.

virtual ~ClpPrimalColumnPivot ()
 Destructor.

virtual ClpPrimalColumnPivot * clone (bool copyData=true) const=0
 Clone.

Other
ClpSimplexmodel ()
 Returns model.

int type ()
 Returns type (above 63 is extra information).

virtual int numberSprintColumns (int &numberIterations) const
 Returns number of extra columns for sprint algorithm - 0 means off.

virtual void switchOffSprint ()
 Switch off sprint idea.


Protected Attributes

Protected member data
ClpSimplexmodel_
 Pointer to model.

int type_
 Type of column pivot algorithm.

bool looksOptimal_
 Says if looks optimal (normally computed).


Detailed Description

Primal Column Pivot Abstract Base Class.

Abstract Base Class for describing an interface to an algorithm to choose column pivot in primal simplex algorithm. For some algorithms e.g. Dantzig choice then some functions may be null. For Dantzig the only one of any importance is pivotColumn.

If you wish to inherit from this look at ClpPrimalColumnDantzig.cpp as that is simplest version.

Definition at line 22 of file ClpPrimalColumnPivot.hpp.


Constructor & Destructor Documentation

ClpPrimalColumnPivot::ClpPrimalColumnPivot  
 

Default Constructor.

ClpPrimalColumnPivot::ClpPrimalColumnPivot const ClpPrimalColumnPivot &   
 

Copy constructor.

virtual ClpPrimalColumnPivot::~ClpPrimalColumnPivot   [virtual]
 

Destructor.


Member Function Documentation

virtual int ClpPrimalColumnPivot::pivotColumn CoinIndexedVector *    updates,
CoinIndexedVector *    spareRow1,
CoinIndexedVector *    spareRow2,
CoinIndexedVector *    spareColumn1,
CoinIndexedVector *    spareColumn2
[pure virtual]
 

Returns pivot column, -1 if none.

Normally updates reduced costs using result of last iteration before selecting incoming column.

The Packed CoinIndexedVector updates has cost updates - for normal LP that is just +-weight where a feasibility changed. It also has reduced cost from last iteration in pivot row

Inside pivotColumn the pivotRow_ and reduced cost from last iteration are also used.

So in the simplest case i.e. feasible we compute the row of the tableau corresponding to last pivot and add a multiple of this to current reduced costs.

We can use other arrays to help updates

Implemented in ClpPrimalColumnDantzig, ClpPrimalColumnSteepest, and ClpPrimalQuadraticDantzig.

virtual void ClpPrimalColumnPivot::updateWeights CoinIndexedVector *    input [virtual]
 

Updates weights - part 1 (may be empty).

Reimplemented in ClpPrimalColumnSteepest.

virtual void ClpPrimalColumnPivot::saveWeights ClpSimplex   model,
int    mode
[pure 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) forces some initialization e.g. weights Also sets model

Implemented in ClpPrimalColumnDantzig, ClpPrimalColumnSteepest, and ClpPrimalQuadraticDantzig.

virtual int ClpPrimalColumnPivot::pivotRow double &    way [inline, virtual]
 

Signals pivot row choice: -2 (default) - use normal pivot row choice -1 to numberRows-1 - use this (will be checked) way should be -1 to go to lower bound, +1 to upper bound.

Definition at line 73 of file ClpPrimalColumnPivot.hpp.

virtual void ClpPrimalColumnPivot::clearArrays   [virtual]
 

Gets rid of all arrays (may be empty).

Reimplemented in ClpPrimalColumnSteepest.

virtual bool ClpPrimalColumnPivot::looksOptimal   const [inline, virtual]
 

Returns true if would not find any column.

Reimplemented in ClpPrimalColumnSteepest.

Definition at line 78 of file ClpPrimalColumnPivot.hpp.

References looksOptimal_.

virtual void ClpPrimalColumnPivot::setLooksOptimal bool    flag [inline, virtual]
 

Sets optimality flag (for advanced use).

Definition at line 81 of file ClpPrimalColumnPivot.hpp.

References looksOptimal_.

ClpPrimalColumnPivot& ClpPrimalColumnPivot::operator= const ClpPrimalColumnPivot &    rhs
 

Assignment operator.

virtual ClpPrimalColumnPivot* ClpPrimalColumnPivot::clone bool    copyData = true const [pure virtual]
 

Clone.

Implemented in ClpPrimalColumnDantzig, ClpPrimalColumnSteepest, and ClpPrimalQuadraticDantzig.

ClpSimplex* ClpPrimalColumnPivot::model   [inline]
 

Returns model.

Definition at line 108 of file ClpPrimalColumnPivot.hpp.

References model_.

int ClpPrimalColumnPivot::type   [inline]
 

Returns type (above 63 is extra information).

Definition at line 112 of file ClpPrimalColumnPivot.hpp.

References type_.

virtual int ClpPrimalColumnPivot::numberSprintColumns int &    numberIterations const [virtual]
 

Returns number of extra columns for sprint algorithm - 0 means off.

Also number of iterations before recompute

Reimplemented in ClpPrimalColumnSteepest.

virtual void ClpPrimalColumnPivot::switchOffSprint   [virtual]
 

Switch off sprint idea.

Reimplemented in ClpPrimalColumnSteepest.


Member Data Documentation

ClpSimplex* ClpPrimalColumnPivot::model_ [protected]
 

Pointer to model.

Definition at line 130 of file ClpPrimalColumnPivot.hpp.

Referenced by model(), ClpPrimalQuadraticDantzig::saveWeights(), and ClpPrimalColumnDantzig::saveWeights().

int ClpPrimalColumnPivot::type_ [protected]
 

Type of column pivot algorithm.

Definition at line 132 of file ClpPrimalColumnPivot.hpp.

Referenced by type().

bool ClpPrimalColumnPivot::looksOptimal_ [protected]
 

Says if looks optimal (normally computed).

Definition at line 134 of file ClpPrimalColumnPivot.hpp.

Referenced by looksOptimal(), and setLooksOptimal().


The documentation for this class was generated from the following file:
Generated on Fri Aug 6 02:01:36 2004 by doxygen1.3-rc2