Scippy

SoPlex

Sequential object-oriented simPlex

SPxParMultPR Class Reference

Partial multiple pricing.Class SPxParMultPr is an implementation class for SPxPricer implementing Dantzig's default pricing strategy with partial multiple pricing. Partial multiple pricing applies to the entering Simplex only. A set of partialSize eligible pivot indices is selected (partial pricing). In the following Simplex iterations pricing is restricted to these indices (multiple pricing) until no more eliiable pivots are available. Partial multiple pricing significantly reduces the computation time for computing the matrix-vector-product in the Simplex algorithm. More...

#include <spxparmultpr.h>

Inheritance diagram for SPxParMultPR:

Classes

struct  SPxParMultPr_Tmp
 Helper structure. More...
 

Public Member Functions

Construction / destruction
 SPxParMultPR ()
 default constructor More...
 
 SPxParMultPR (const SPxParMultPR &old)
 copy constructor More...
 
SPxParMultPRoperator= (const SPxParMultPR &rhs)
 assignment operator More...
 
virtual ~SPxParMultPR ()
 destructor More...
 
virtual SPxPricerclone () const
 clone function for polymorphism More...
 
Interface
virtual void load (SPxSolver *solver)
 set the solver More...
 
virtual void setType (SPxSolver::Type tp)
 set entering or leaving algorithm More...
 
virtual int selectLeave ()
 
virtual SPxId selectEnter ()
 
- Public Member Functions inherited from SPxPricer
virtual const char * getName () const
 get name of pricer. More...
 
virtual void clear ()
 unloads LP. More...
 
virtual SPxSolversolver () const
 returns loaded SPxSolver object. More...
 
virtual Real epsilon () const
 returns violation bound theeps. More...
 
virtual void setEpsilon (Real eps)
 sets violation bound. More...
 
virtual void setRep (SPxSolver::Representation)
 sets basis representation. More...
 
virtual void left4 (int, SPxId)
 performs leaving pivot. More...
 
virtual void entered4 (SPxId, int)
 performs entering pivot. More...
 
virtual void addedVecs (int)
 n vectors have been added to loaded LP. More...
 
virtual void addedCoVecs (int)
 n covectors have been added to loaded LP. More...
 
virtual void removedVec (int)
 vector i was removed from loaded LP. More...
 
virtual void removedVecs (const int *)
 vectors given by perm have been removed from loaded LP. More...
 
virtual void removedCoVec (int)
 covector i was removed from loaded LP. More...
 
virtual void removedCoVecs (const int *)
 covectors given by perm have been removed from loaded LP. More...
 
virtual void getNdualNorms (int &nrows, int &ncols) const
 get number of available norms More...
 
virtual bool getDualNorms (int &nrows, int &ncols, Real *norms) const
 export norms from pricer More...
 
virtual bool setDualNorms (int nrows, int ncols, Real *norms)
 import norms into pricer More...
 
virtual bool isConsistent () const
 
 SPxPricer (const char *p_name)
 constructor More...
 
 SPxPricer (const SPxPricer &old)
 copy constructor More...
 
SPxPriceroperator= (const SPxPricer &rhs)
 assignment operator More...
 
virtual ~SPxPricer ()
 destructor. More...
 

Helper data

DataArray< SPxParMultPr_TmppricSet
 
int multiParts
 
int used
 
int min
 
int last
 
static int partialSize = 17
 Set size for partial pricing. More...
 

Additional Inherited Members

- Public Types inherited from SPxPricer
enum  ViolationType { NOT_VIOLATED = 0, VIOLATED = 1, VIOLATED_AND_CHECKED = 2 }
 
- Protected Attributes inherited from SPxPricer
IdxCompare compare
 
const char * m_name
 name of the pricer More...
 
SPxSolverthesolver
 the solver More...
 
Real theeps
 violation bound More...
 
DVector weights
 vector to store pricing weights or norms More...
 
DVector coWeights
 
bool weightsAreSetup
 are the weights already set up? More...
 

Detailed Description

Partial multiple pricing.

Class SPxParMultPr is an implementation class for SPxPricer implementing Dantzig's default pricing strategy with partial multiple pricing. Partial multiple pricing applies to the entering Simplex only. A set of partialSize eligible pivot indices is selected (partial pricing). In the following Simplex iterations pricing is restricted to these indices (multiple pricing) until no more eliiable pivots are available. Partial multiple pricing significantly reduces the computation time for computing the matrix-vector-product in the Simplex algorithm.

See SPxPricer for a class documentation.

Definition at line 47 of file spxparmultpr.h.

Constructor & Destructor Documentation

default constructor

Definition at line 87 of file spxparmultpr.h.

Referenced by SPxParMultPR::clone().

SPxParMultPR ( const SPxParMultPR old)

copy constructor

Definition at line 95 of file spxparmultpr.h.

References SPxParMultPR::partialSize.

virtual ~SPxParMultPR ( )
virtual

destructor

Definition at line 122 of file spxparmultpr.h.

Member Function Documentation

virtual SPxPricer* clone ( ) const
virtual
void load ( SPxSolver solver)
virtual
int selectLeave ( )
virtual

Implements SPxPricer.

Definition at line 174 of file spxparmultpr.cpp.

References SPxSolver::dim(), SPxSolver::fTest(), SPxPricer::theeps, and SPxPricer::thesolver.

Referenced by SPxParMultPR::clone().

void setType ( SPxSolver::Type  tp)
virtual

Member Data Documentation

int last
private
int min
private
int multiParts
private
int partialSize = 17
staticprivate
DataArray< SPxParMultPr_Tmp > pricSet
private
int used
private