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>
Classes | |
struct | SPxParMultPr_Tmp |
Helper structure. More... | |
Public Member Functions | |
Construction / destruction | |
SPxParMultPR () | |
default constructor More... | |
SPxParMultPR (const SPxParMultPR &old) | |
copy constructor More... | |
SPxParMultPR & | operator= (const SPxParMultPR &rhs) |
assignment operator More... | |
virtual | ~SPxParMultPR () |
destructor More... | |
virtual SPxPricer * | clone () 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 SPxSolver * | solver () 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 bool | isConsistent () const |
SPxPricer (const char *p_name) | |
constructor More... | |
SPxPricer (const SPxPricer &old) | |
copy constructor More... | |
SPxPricer & | operator= (const SPxPricer &rhs) |
assignment operator More... | |
virtual | ~SPxPricer () |
destructor. More... | |
Private Attributes | |
Helper data | |
DataArray< SPxParMultPr_Tmp > | pricSet |
int | multiParts |
int | used |
int | min |
int | last |
int | partialSize |
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... | |
SPxSolver * | thesolver |
the solver More... | |
Real | theeps |
violation bound More... | |
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.
SPxParMultPR | ( | ) |
default constructor
Definition at line 87 of file spxparmultpr.h.
Referenced by SPxParMultPR::clone().
SPxParMultPR | ( | const SPxParMultPR & | old | ) |
copy constructor
Definition at line 96 of file spxparmultpr.h.
|
virtual |
destructor
Definition at line 122 of file spxparmultpr.h.
|
virtual |
clone function for polymorphism
Implements SPxPricer.
Definition at line 125 of file spxparmultpr.h.
References SPxParMultPR::load(), SPxParMultPR::selectEnter(), SPxParMultPR::selectLeave(), SPxParMultPR::setType(), SPxPricer::solver(), and SPxParMultPR::SPxParMultPR().
|
virtual |
set the solver
Reimplemented from SPxPricer.
Definition at line 45 of file spxparmultpr.cpp.
References SPxSolver::coDim(), SPxSolver::dim(), SPxParMultPR::multiParts, SPxParMultPR::partialSize, SPxParMultPR::pricSet, and SPxPricer::thesolver.
Referenced by SPxParMultPR::clone(), and SPxHybridPR::load().
SPxParMultPR& operator= | ( | const SPxParMultPR & | rhs | ) |
assignment operator
Definition at line 106 of file spxparmultpr.h.
References SPxParMultPR::last, SPxParMultPR::min, SPxParMultPR::multiParts, SPxPricer::operator=(), SPxParMultPR::partialSize, SPxParMultPR::pricSet, and SPxParMultPR::used.
|
virtual |
Implements SPxPricer.
Definition at line 52 of file spxparmultpr.cpp.
References SPxSolver::coDim(), SPxSolver::coId(), SPxSolver::computePvec(), SPxSolver::computeTest(), SPxSolver::coTest(), SPxSolver::dim(), SPxSolver::FULL, SPxSolver::id(), SPxSolver::isId(), SPxParMultPR::last, SPxParMultPR::min, SPxParMultPR::multiParts, SPxLPBase< R >::number(), SPxSolver::PARTIAL, SPxParMultPR::partialSize, SPxSolver::pricing(), SPxParMultPR::pricSet, SPxSolver::test(), SPxPricer::theeps, SPxPricer::thesolver, and SPxParMultPR::used.
Referenced by SPxParMultPR::clone().
|
virtual |
Implements SPxPricer.
Definition at line 192 of file spxparmultpr.cpp.
References SPxSolver::dim(), SPxSolver::fTest(), SPxPricer::theeps, and SPxPricer::thesolver.
Referenced by SPxParMultPR::clone().
|
virtual |
set entering or leaving algorithm
Reimplemented from SPxPricer.
Definition at line 25 of file spxparmultpr.cpp.
References SPxSolver::coWeights, SPxSolver::ENTER, SPxSolver::FULL, SPxParMultPR::last, SPxParMultPR::min, SPxSolver::PARTIAL, SPxParMultPR::partialSize, DVectorBase< R >::reDim(), SPxSolver::setPricing(), SPxPricer::thesolver, SPxParMultPR::used, SPxSolver::weights, and SPxSolver::weightsAreSetup.
Referenced by SPxParMultPR::clone().
|
private |
Definition at line 76 of file spxparmultpr.h.
Referenced by SPxParMultPR::operator=(), SPxParMultPR::selectEnter(), and SPxParMultPR::setType().
|
private |
Definition at line 74 of file spxparmultpr.h.
Referenced by SPxParMultPR::operator=(), SPxParMultPR::selectEnter(), and SPxParMultPR::setType().
|
private |
Definition at line 70 of file spxparmultpr.h.
Referenced by SPxParMultPR::load(), SPxParMultPR::operator=(), and SPxParMultPR::selectEnter().
|
private |
Set size for partial pricing.
Definition at line 78 of file spxparmultpr.h.
Referenced by SPxParMultPR::load(), SPxParMultPR::operator=(), SPxParMultPR::selectEnter(), and SPxParMultPR::setType().
|
private |
Definition at line 68 of file spxparmultpr.h.
Referenced by SPxParMultPR::load(), SPxParMultPR::operator=(), and SPxParMultPR::selectEnter().
|
private |
Definition at line 72 of file spxparmultpr.h.
Referenced by SPxParMultPR::operator=(), SPxParMultPR::selectEnter(), and SPxParMultPR::setType().