All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SPxPricer Class Referenceabstract Abstract pricer base class.Class SPxPricer is a pure virtual class defining the interface for pricer classes to be used by SoPlex. The pricer's task is to select a vector to enter or leave the simplex basis, depending on the chosen simplex type. More...
Inheritance diagram for SPxPricer:
![]()
Detailed DescriptionAbstract pricer base class. Class SPxPricer is a pure virtual class defining the interface for pricer classes to be used by SoPlex. The pricer's task is to select a vector to enter or leave the simplex basis, depending on the chosen simplex type. An SPxPricer first loads the SoPlex object for which pricing is to be performed. Then, depending of the SPxSolver::Type, methods selectEnter() and entered4() (for entering Simplex) or selectLeave() and left4() (for leaving Simplex) are called by SoPlex. The SPxPricer object is informed of a change of the SPxSolver::Type by calling method setType(). Definition at line 49 of file spxpricer.h. Constructor & Destructor Documentation
constructor Definition at line 225 of file spxpricer.h. copy constructor Definition at line 232 of file spxpricer.h.
destructor. Definition at line 254 of file spxpricer.h. References SPxPricer::m_name, and SPxPricer::thesolver. Member Function Documentation
Reimplemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, and SPxHybridPR. Definition at line 187 of file spxpricer.h. Referenced by SPxHybridPR::addedCoVecs().
Reimplemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, and SPxHybridPR. Definition at line 184 of file spxpricer.h. Referenced by SPxHybridPR::addedVecs().
unloads LP. Reimplemented in SPxSteepPR, and SPxHybridPR. Definition at line 84 of file spxpricer.h. References SPxPricer::thesolver. Referenced by SPxHybridPR::clear(), SPxSolver::loadLP(), SPxSolver::read(), SPxSolver::reLoad(), SPxSolver::setPricer(), and SPxSolver::SPxSolver().
clone function for polymorphism Implemented in SPxHybridPR, SPxSteepPR, SPxWeightPR, SPxParMultPR, SPxDevexPR, SPxDantzigPR, and SPxSteepExPR. Referenced by SPxSolver::operator=(), and SPxSolver::SPxSolver().
performs entering pivot. Method entered4() is called after each simplex iteration in ENTER mode. It informs the SPxPricer that variable Reimplemented in SPxSteepPR, SPxDevexPR, and SPxHybridPR. Definition at line 175 of file spxpricer.h. Referenced by SPxHybridPR::entered4(), and SPxSolver::fpsolve().
returns violation bound theeps. Definition at line 96 of file spxpricer.h. References SPxPricer::theeps. Referenced by SPxWeightPR::computeCP(), SPxWeightPR::computeRP(), SPxSolver::fpsolve(), and SPxSolver::precisionReached().
get name of pricer. Definition at line 70 of file spxpricer.h. References SPxPricer::m_name. Referenced by get_pricer(), SPxHybridPR::setType(), and SPxSolver::writeState().
Reimplemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, and SPxHybridPR. Definition at line 211 of file spxpricer.h. References SPxPricer::thesolver. Referenced by SPxHybridPR::isConsistent(), and SPxPricer::operator=().
performs leaving pivot. Method left4() is called after each simplex iteration in LEAVE mode. It informs the SPxPricer that the Reimplemented in SPxSteepPR, SPxDevexPR, and SPxHybridPR. Definition at line 147 of file spxpricer.h. Referenced by SPxSolver::fpsolve(), and SPxHybridPR::left4().
loads LP. Loads the solver and LP for which pricing steps are to be performed. Reimplemented in SPxSteepPR, SPxWeightPR, SPxParMultPR, SPxDevexPR, and SPxHybridPR. Definition at line 78 of file spxpricer.h. References SPxPricer::thesolver. Referenced by SPxSolver::init(), SPxSolver::operator=(), SPxSolver::setPricer(), and SPxSolver::SPxSolver(). assignment operator Definition at line 239 of file spxpricer.h. References SPxPricer::isConsistent(), SPxPricer::m_name, SPxPricer::theeps, and SPxPricer::thesolver. Referenced by SPxDantzigPR::operator=(), SPxParMultPR::operator=(), SPxDevexPR::operator=(), SPxWeightPR::operator=(), SPxHybridPR::operator=(), and SPxSteepPR::operator=().
covector Reimplemented in SPxSteepPR, and SPxWeightPR. Definition at line 201 of file spxpricer.h.
covectors given by Definition at line 204 of file spxpricer.h.
vector Reimplemented in SPxSteepPR, and SPxWeightPR. Definition at line 195 of file spxpricer.h. Referenced by SPxSolver::doRemoveCol(), and SPxSolver::doRemoveRow().
vectors given by Definition at line 198 of file spxpricer.h. Referenced by SPxSolver::doRemoveCols(), and SPxSolver::doRemoveRows().
selects Id to enter basis. Selects the SPxId of a vector to enter the basis. The selected id, must not represent a basic index (i.e. solver()->isBasic(id) must be false). However, the corresponding test value needs not to be less than -epsilon(). If not, SoPlex will discard the pivot. Note: When method selectEnter() is called by the loaded SoPlex object, all values from coTest() are up to date. However, whether the elements of test() are up to date depends on the SPxSolver::Pricing type. Implemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, SPxParMultPR, SPxDantzigPR, and SPxHybridPR. Referenced by SPxSolver::fpsolve(), and SPxHybridPR::selectEnter().
returns selected index to leave basis. Selects the index of a vector to leave the basis. The selected index i, say, must be in the range 0 <= i < solver()->dim() and its tested value must fullfill solver()->test()[i] < -epsilon(). Implemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, SPxParMultPR, SPxDantzigPR, and SPxHybridPR. Referenced by SPxSolver::fpsolve(), and SPxHybridPR::selectLeave().
sets violation bound. Inequality violations are accepted, if their size is less than Reimplemented in SPxHybridPR. Definition at line 104 of file spxpricer.h. References SPxPricer::theeps. Referenced by SPxSolver::fpsolve(), and SPxHybridPR::setEpsilon().
sets basis representation. Informs pricer about (a change of) the loaded SoPlex's Representation. Reimplemented in SPxSteepPR, SPxWeightPR, SPxDevexPR, and SPxHybridPR. Definition at line 122 of file spxpricer.h. Referenced by SPxSolver::initRep(), and SPxHybridPR::setRep().
sets pricing type. Informs pricer about (a change of) the loaded SoPlex's Type. In the sequel, only the corresponding select methods may be called. Reimplemented in SPxSteepPR, SPxWeightPR, SPxParMultPR, SPxDevexPR, and SPxHybridPR. Definition at line 115 of file spxpricer.h. Referenced by SPxSolver::fpsolve(), and SPxHybridPR::setType().
returns loaded SPxSolver object. Definition at line 90 of file spxpricer.h. References SPxPricer::thesolver. Referenced by SPxWeightPR::addedCoVecs(), SPxWeightPR::addedVecs(), SPxWeightPR::computeCP(), SPxWeightPR::computeLeavePenalty(), SPxWeightPR::computeRP(), SPxSolver::fpsolve(), SPxSolver::initRep(), SPxHybridPR::isConsistent(), SPxWeightPR::isConsistent(), SPxWeightPR::load(), SPxWeightPR::removedCoVec(), SPxWeightPR::removedCoVecs(), SPxWeightPR::removedVec(), SPxWeightPR::removedVecs(), SPxWeightPR::selectEnter(), and SPxWeightPR::selectLeave(). Member Data Documentation
name of the pricer Definition at line 57 of file spxpricer.h. Referenced by SPxPricer::getName(), SPxPricer::operator=(), and SPxPricer::~SPxPricer().
violation bound Definition at line 61 of file spxpricer.h. Referenced by SPxPricer::epsilon(), SPxSteepPR::left4(), SPxDevexPR::left4X(), SPxPricer::operator=(), SPxParMultPR::selectEnter(), SPxDevexPR::selectEnter(), SPxWeightPR::selectEnter(), SPxDantzigPR::selectEnterDenseCoDim(), SPxSteepPR::selectEnterDenseCoDim(), SPxDantzigPR::selectEnterDenseDim(), SPxSteepPR::selectEnterDenseDim(), SPxDantzigPR::selectEnterSparseCoDim(), SPxSteepPR::selectEnterSparseCoDim(), SPxDantzigPR::selectEnterSparseDim(), SPxSteepPR::selectEnterSparseDim(), SPxDantzigPR::selectEnterX(), SPxDantzigPR::selectLeave(), SPxParMultPR::selectLeave(), SPxDevexPR::selectLeave(), SPxWeightPR::selectLeave(), SPxSteepPR::selectLeave(), SPxDantzigPR::selectLeavePart(), SPxSteepPR::selectLeavePart(), SPxDantzigPR::selectLeaveSparse(), SPxSteepPR::selectLeaveSparse(), and SPxPricer::setEpsilon().
the solver Definition at line 59 of file spxpricer.h. Referenced by SPxDevexPR::addedCoVecs(), SPxSteepPR::addedCoVecs(), SPxDevexPR::addedVecs(), SPxSteepPR::addedVecs(), SPxHybridPR::clear(), SPxPricer::clear(), SPxSteepPR::clear(), SPxWeightPR::computeLeavePenalty(), SPxSteepPR::entered4(), SPxDevexPR::entered4X(), SPxHybridPR::isConsistent(), SPxDevexPR::isConsistent(), SPxPricer::isConsistent(), SPxSteepPR::isConsistent(), SPxSteepPR::left4(), SPxDevexPR::left4X(), SPxHybridPR::load(), SPxPricer::load(), SPxDevexPR::load(), SPxParMultPR::load(), SPxWeightPR::load(), SPxSteepPR::load(), SPxPricer::operator=(), SPxSteepPR::removedCoVec(), SPxSteepPR::removedCoVecs(), SPxSteepPR::removedVec(), SPxSteepPR::removedVecs(), SPxDantzigPR::selectEnter(), SPxParMultPR::selectEnter(), SPxDevexPR::selectEnter(), SPxSteepPR::selectEnter(), SPxDantzigPR::selectEnterDenseCoDim(), SPxDevexPR::selectEnterDenseCoDim(), SPxSteepPR::selectEnterDenseCoDim(), SPxDantzigPR::selectEnterDenseDim(), SPxDevexPR::selectEnterDenseDim(), SPxSteepPR::selectEnterDenseDim(), SPxDantzigPR::selectEnterSparseCoDim(), SPxDevexPR::selectEnterSparseCoDim(), SPxSteepPR::selectEnterSparseCoDim(), SPxDantzigPR::selectEnterSparseDim(), SPxDevexPR::selectEnterSparseDim(), SPxSteepPR::selectEnterSparseDim(), SPxDantzigPR::selectEnterX(), SPxDevexPR::selectEnterX(), SPxSteepPR::selectEnterX(), SPxDantzigPR::selectLeave(), SPxParMultPR::selectLeave(), SPxDevexPR::selectLeave(), SPxWeightPR::selectLeave(), SPxSteepPR::selectLeave(), SPxDantzigPR::selectLeavePart(), SPxDevexPR::selectLeavePart(), SPxSteepPR::selectLeavePart(), SPxDantzigPR::selectLeaveSparse(), SPxDevexPR::selectLeaveSparse(), SPxSteepPR::selectLeaveSparse(), SPxDevexPR::selectLeaveX(), SPxDevexPR::setRep(), SPxSteepPR::setRep(), SPxHybridPR::setType(), SPxParMultPR::setType(), SPxWeightPR::setType(), SPxSteepPR::setType(), SPxSteepPR::setupPrefs(), SPxSteepPR::setupPrefsX(), SPxSteepPR::setupWeights(), SPxPricer::solver(), and SPxPricer::~SPxPricer().
|