Steepest edge pricer.Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex. More...
#include <spxsteeppr.h>
Public Types | |
Types | |
| enum | Setup { EXACT, DEFAULT } |
| How to setup the direction multipliers. More... | |
Public Types inherited from SPxPricer | |
| enum | ViolationType { NOT_VIOLATED = 0, VIOLATED = 1, VIOLATED_AND_CHECKED = 2 } |
Public Member Functions | |
| void | setupWeights (SPxSolver::Type type) |
| setup steepest edge weights More... | |
Construction / destruction | |
| SPxSteepPR (const char *name="Steep", Setup mode=DEFAULT) | |
| SPxSteepPR (const SPxSteepPR &old) | |
| copy constructor More... | |
| SPxSteepPR & | operator= (const SPxSteepPR &rhs) |
| assignment operator More... | |
| virtual | ~SPxSteepPR () |
| destructor More... | |
| virtual SPxPricer * | clone () const |
| clone function for polymorphism More... | |
Access / modification | |
| virtual void | load (SPxSolver *base) |
| sets the solver More... | |
| virtual void | clear () |
| clear solver and preferences More... | |
| virtual void | setType (SPxSolver::Type) |
| set entering/leaving algorithm More... | |
| virtual void | setRep (SPxSolver::Representation rep) |
| set row/column representation More... | |
| virtual int | selectLeave () |
| virtual void | left4 (int n, SPxId id) |
| virtual SPxId | selectEnter () |
| virtual void | entered4 (SPxId id, int n) |
| virtual void | addedVecs (int n) |
n vectors have been added to loaded LP. More... | |
| virtual void | addedCoVecs (int n) |
n covectors have been added to loaded LP. More... | |
| virtual void | removedVec (int i) |
the i'th vector has been removed from the loaded LP. More... | |
| virtual void | removedCoVec (int i) |
the i'th covector has been removed from the loaded LP. More... | |
| virtual void | removedVecs (const int perm[]) |
n vectors have been removed from loaded LP. More... | |
| virtual void | removedCoVecs (const int perm[]) |
n covectors have been removed from loaded LP. More... | |
Consistency check | |
| virtual bool | isConsistent () const |
Public Member Functions inherited from SPxPricer | |
| virtual const char * | getName () const |
| get name of pricer. 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 | removedVecs (const int *) |
vectors given by perm have been 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... | |
| 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 Member Functions | |
| int | buildBestPriceVectorLeave (Real feastol) |
| prepare data structures for hyper sparse pricing More... | |
| int | selectLeaveX (Real tol) |
| implementation of full pricing More... | |
| int | selectLeaveSparse (Real tol) |
| implementation of sparse pricing in the leaving Simplex More... | |
| int | selectLeaveHyper (Real tol) |
| implementation of hyper sparse pricing in the leaving Simplex More... | |
| SPxId | buildBestPriceVectorEnterDim (Real &best, Real feastol) |
| build up vector of pricing values for later use More... | |
| SPxId | buildBestPriceVectorEnterCoDim (Real &best, Real feastol) |
| SPxId | selectEnterX (Real tol) |
| choose the best entering index among columns and rows but prefer sparsity More... | |
| SPxId | selectEnterSparseDim (Real &best, Real tol) |
| implementation of sparse pricing for the entering Simplex (slack variables) More... | |
| SPxId | selectEnterSparseCoDim (Real &best, Real tol) |
| implementation of sparse pricing for the entering Simplex More... | |
| SPxId | selectEnterDenseDim (Real &best, Real tol) |
| implementation of selectEnter() in dense case (slack variables) More... | |
| SPxId | selectEnterDenseCoDim (Real &best, Real tol) |
| implementation of selectEnter() in dense case More... | |
| SPxId | selectEnterHyperDim (Real &best, Real feastol) |
| implementation of hyper sparse pricing in the entering Simplex More... | |
| SPxId | selectEnterHyperCoDim (Real &best, Real feastol) |
| implementation of hyper sparse pricing in the entering Simplex More... | |
Private Attributes | |
Data | |
| SSVector | workVec |
| working vector More... | |
| SSVector | workRhs |
| working vector More... | |
| DataArray< IdxElement > | prices |
| temporary array of precomputed pricing values More... | |
| DataArray< IdxElement > | pricesCo |
| temporary array of precomputed pricing values More... | |
| DIdxSet | bestPrices |
| array of best pricing candidates More... | |
| DIdxSet | bestPricesCo |
| array of best pricing candidates More... | |
| Real | pi_p |
| Setup | setup |
| setup type. More... | |
| bool | refined |
| has a refinement step already been tried? More... | |
Additional Inherited Members | |
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... | |
| DVector | weights |
| vector to store pricing weights or norms More... | |
| DVector | coWeights |
| bool | weightsAreSetup |
| are the weights already set up? More... | |
Steepest edge pricer.
Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex.
See SPxPricer for a class documentation.
Definition at line 41 of file spxsteeppr.h.
| enum Setup |
How to setup the direction multipliers.
Possible settings are EXACT for starting with exactly computed values, or DEFAULT for starting with multipliers set to 1. The latter is the default.
| Enumerator | |
|---|---|
| EXACT | starting with exactly computed values |
| DEFAULT | starting with multipliers set to 1 |
Definition at line 53 of file spxsteeppr.h.
| SPxSteepPR | ( | const char * | name = "Steep", |
| Setup | mode = DEFAULT |
||
| ) |
Definition at line 119 of file spxsteeppr.h.
References SPxSteepPR::isConsistent().
Referenced by SPxSteepPR::clone().
| SPxSteepPR | ( | const SPxSteepPR & | old | ) |
copy constructor
Definition at line 130 of file spxsteeppr.h.
References SPxSteepPR::isConsistent().
|
virtual |
destructor
Definition at line 158 of file spxsteeppr.h.
|
virtual |
n covectors have been added to loaded LP.
Reimplemented from SPxPricer.
Definition at line 954 of file spxsteeppr.cpp.
References SPxPricer::coWeights, VectorBase< R >::dim(), SPxSolver::dim(), DVectorBase< R >::reDim(), SSVectorBase< R >::reDim(), SPxPricer::thesolver, and SPxSteepPR::workVec.
Referenced by SPxHybridPR::addedCoVecs(), and SPxSteepPR::clone().
|
virtual |
n vectors have been added to loaded LP.
Reimplemented from SPxPricer.
Definition at line 942 of file spxsteeppr.cpp.
References SPxSolver::coDim(), VectorBase< R >::dim(), SPxSolver::ENTER, DVectorBase< R >::reDim(), SPxPricer::thesolver, SPxSolver::type(), and SPxPricer::weights.
Referenced by SPxHybridPR::addedVecs(), and SPxSteepPR::clone().
Definition at line 556 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), DataArray< T >::append(), SPxSteepPR::bestPricesCo, IdxSet::clear(), DataArray< T >::clear(), SPxPricer::compare, soplex::computePrice(), SPxPricer::IdxCompare::elements, DataArray< T >::get_const_ptr(), VectorBase< R >::get_const_ptr(), DataArray< T >::get_ptr(), HYPERPRICINGSIZE, SPxSolver::id(), SPxPricer::IdxElement::idx, IdxSet::index(), SPxSolver::infeasibilitiesCo, SPxSolver::isInfeasibleCo, SPxPricer::NOT_VIOLATED, SPxSteepPR::pricesCo, IdxSet::remove(), IdxSet::size(), DataArray< T >::size(), soplex::SPxQuicksortPart(), SPxSolver::test(), SPxPricer::thesolver, SPxPricer::IdxElement::val, SPxPricer::VIOLATED, SPxPricer::VIOLATED_AND_CHECKED, and SPxPricer::weights.
Referenced by SPxSteepPR::selectEnterX().
build up vector of pricing values for later use
Definition at line 503 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), DataArray< T >::append(), SPxSteepPR::bestPrices, IdxSet::clear(), DataArray< T >::clear(), SPxSolver::coId(), SPxPricer::compare, soplex::computePrice(), SPxSolver::coTest(), SPxPricer::coWeights, SPxPricer::IdxCompare::elements, DataArray< T >::get_const_ptr(), VectorBase< R >::get_const_ptr(), DataArray< T >::get_ptr(), HYPERPRICINGSIZE, SPxPricer::IdxElement::idx, IdxSet::index(), SPxSolver::infeasibilities, SPxSolver::isInfeasible, SPxPricer::NOT_VIOLATED, SPxSteepPR::prices, IdxSet::remove(), IdxSet::size(), DataArray< T >::size(), soplex::SPxQuicksortPart(), SPxPricer::thesolver, SPxPricer::IdxElement::val, SPxPricer::VIOLATED, and SPxPricer::VIOLATED_AND_CHECKED.
Referenced by SPxSteepPR::selectEnterX().
|
private |
prepare data structures for hyper sparse pricing
Definition at line 218 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), DataArray< T >::append(), SPxSteepPR::bestPrices, IdxSet::clear(), DataArray< T >::clear(), SPxPricer::compare, soplex::computePrice(), SPxPricer::coWeights, SPxPricer::IdxCompare::elements, SPxSolver::fTest(), DataArray< T >::get_const_ptr(), VectorBase< R >::get_const_ptr(), DataArray< T >::get_ptr(), HYPERPRICINGSIZE, SPxPricer::IdxElement::idx, IdxSet::index(), SPxSolver::infeasibilities, SPxSolver::isInfeasible, SPxSteepPR::prices, IdxSet::size(), DataArray< T >::size(), soplex::SPxQuicksortPart(), SPxPricer::thesolver, SPxPricer::IdxElement::val, SPxPricer::VIOLATED, and SPxPricer::VIOLATED_AND_CHECKED.
Referenced by SPxSteepPR::selectLeave().
|
virtual |
clear solver and preferences
Reimplemented from SPxPricer.
Definition at line 33 of file spxsteeppr.cpp.
References SPxPricer::thesolver, and SPxPricer::weightsAreSetup.
Referenced by SPxHybridPR::clear(), SPxAutoPR::clear(), and SPxSteepPR::clone().
|
virtual |
clone function for polymorphism
Implements SPxPricer.
Reimplemented in SPxSteepExPR.
Definition at line 161 of file spxsteeppr.h.
References SPxSteepPR::addedCoVecs(), SPxSteepPR::addedVecs(), SPxSteepPR::clear(), SPxSteepPR::entered4(), SPxSteepPR::isConsistent(), SPxSteepPR::left4(), SPxSteepPR::load(), SPxSteepPR::removedCoVec(), SPxSteepPR::removedCoVecs(), SPxSteepPR::removedVec(), SPxSteepPR::removedVecs(), SPxSteepPR::selectEnter(), SPxSteepPR::selectLeave(), SPxSteepPR::setRep(), SPxSteepPR::setType(), and SPxSteepPR::SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer.
Definition at line 439 of file spxsteeppr.cpp.
References SPxSolver::basis(), SPxSolver::coPvec(), SPxPricer::coWeights, UpdateVector::delta(), SPxSolver::ENTER, SPxSolver::epsilon(), SPxSolver::fVec(), VectorBase< R >::get_const_ptr(), VectorBase< R >::get_ptr(), UpdateVector::idx(), IdxSet::index(), soplex::infinity, SPxBasis::iteration(), SPxSteepPR::pi_p, SPxSolver::pVec(), IdxSet::size(), SPxPricer::thesolver, SPxSolver::type(), SSVectorBase< R >::values(), SPxSolver::vector(), SPxPricer::weights, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone().
|
virtual |
Reimplemented from SPxPricer.
Definition at line 1006 of file spxsteeppr.cpp.
References SPxSolver::basis(), SPxSolver::coDim(), SPxBasis::coSolve(), SPxPricer::coWeights, SPxSolver::dim(), SPxSolver::ENTER, SPxSolver::epsilon(), SPxSteepPR::EXACT, SPxSolver::LEAVE, SPxSolver::leavetol(), VectorBase< R >::length2(), MSG_ERROR, MSGinconsistent, SPxSteepPR::setup, SPxPricer::thesolver, SPxSolver::type(), SPxSolver::unitVector(), and SPxPricer::weights.
Referenced by SPxSteepPR::clone(), SPxHybridPR::isConsistent(), SPxSteepExPR::operator=(), SPxSteepPR::operator=(), SPxSteepPR::selectEnter(), SPxSteepPR::selectLeave(), SPxSteepExPR::SPxSteepExPR(), and SPxSteepPR::SPxSteepPR().
|
virtual |
Reimplemented from SPxPricer.
Definition at line 172 of file spxsteeppr.cpp.
References SPxSolver::basis(), soplex::computePrice(), SPxSolver::coPvec(), SPxPricer::coWeights, UpdateVector::delta(), SPxSolver::fVec(), VectorBase< R >::get_const_ptr(), VectorBase< R >::get_ptr(), UpdateVector::idx(), IdxSet::index(), soplex::infinity, SPxBasis::iteration(), SPxSolver::LEAVE, SSVectorBase< R >::length2(), MSG_INFO3, IdxSet::size(), soplex::spxAbs(), SPxSolver::spxout, SPxPricer::theeps, SPxPricer::thesolver, SPxSolver::type(), SSVectorBase< R >::values(), and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone().
|
virtual |
sets the solver
Reimplemented from SPxPricer.
Definition at line 39 of file spxsteeppr.cpp.
References SSVectorBase< R >::clear(), SPxSolver::dim(), SSVectorBase< R >::reDim(), SPxPricer::thesolver, SPxSteepPR::workRhs, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone(), SPxHybridPR::load(), and SPxAutoPR::load().
| SPxSteepPR& operator= | ( | const SPxSteepPR & | rhs | ) |
assignment operator
Definition at line 141 of file spxsteeppr.h.
References SPxSteepPR::isConsistent(), SPxPricer::operator=(), SPxSteepPR::pi_p, SPxSteepPR::refined, SPxSteepPR::setup, SPxSteepPR::workRhs, and SPxSteepPR::workVec.
Referenced by SPxSteepExPR::operator=().
|
virtual |
the i'th covector has been removed from the loaded LP.
Reimplemented from SPxPricer.
Definition at line 986 of file spxsteeppr.cpp.
References SPxPricer::coWeights, VectorBase< R >::dim(), SPxSolver::dim(), DVectorBase< R >::reDim(), and SPxPricer::thesolver.
Referenced by SPxSteepPR::clone().
|
virtual |
n covectors have been removed from loaded LP.
Definition at line 993 of file spxsteeppr.cpp.
References SPxPricer::coWeights, VectorBase< R >::dim(), SPxSolver::dim(), DVectorBase< R >::reDim(), and SPxPricer::thesolver.
Referenced by SPxSteepPR::clone().
|
virtual |
the i'th vector has been removed from the loaded LP.
Reimplemented from SPxPricer.
Definition at line 963 of file spxsteeppr.cpp.
References SPxSolver::coDim(), VectorBase< R >::dim(), DVectorBase< R >::reDim(), SPxPricer::thesolver, and SPxPricer::weights.
Referenced by SPxSteepPR::clone().
|
virtual |
n vectors have been removed from loaded LP.
Definition at line 970 of file spxsteeppr.cpp.
References SPxSolver::coDim(), VectorBase< R >::dim(), SPxSolver::ENTER, DVectorBase< R >::reDim(), SPxPricer::thesolver, SPxSolver::type(), and SPxPricer::weights.
Referenced by SPxSteepPR::clone().
|
virtual |
Implements SPxPricer.
Definition at line 609 of file spxsteeppr.cpp.
References SPxSolver::basis(), UpdateVector::delta(), SPxSolver::fVec(), SPxSteepPR::isConsistent(), SPxId::isValid(), SSVectorBase< R >::length2(), MSG_INFO3, SPxSteepPR::pi_p, SPxSteepPR::refined, SPxSteepPR::selectEnterX(), SPxSolver::setup4coSolve(), SSVectorBase< R >::setup_and_assign(), SPxBasis::solve4update(), SPxSolver::spxout, STEEP_REFINETOL, SPxPricer::theeps, SPxPricer::thesolver, SPxSolver::vector(), SPxSteepPR::workRhs, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone().
implementation of selectEnter() in dense case
Definition at line 917 of file spxsteeppr.cpp.
References SPxSolver::coDim(), soplex::computePrice(), VectorBase< R >::get_const_ptr(), SPxSolver::id(), SPxSolver::test(), SPxPricer::thesolver, and SPxPricer::weights.
Referenced by SPxSteepPR::selectEnterX().
implementation of selectEnter() in dense case (slack variables)
Definition at line 893 of file spxsteeppr.cpp.
References SPxSolver::coId(), soplex::computePrice(), SPxSolver::coTest(), SPxPricer::coWeights, SPxSolver::dim(), VectorBase< R >::get_const_ptr(), and SPxPricer::thesolver.
Referenced by SPxSteepPR::selectEnterX().
implementation of hyper sparse pricing in the entering Simplex
Definition at line 752 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), SPxSteepPR::bestPricesCo, soplex::computePrice(), VectorBase< R >::get_const_ptr(), SPxSolver::id(), IdxSet::index(), soplex::infinity, SPxSolver::isInfeasibleCo, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), SPxSolver::test(), SPxPricer::thesolver, SPxSolver::updateViolsCo, SPxPricer::VIOLATED, SPxPricer::VIOLATED_AND_CHECKED, and SPxPricer::weights.
Referenced by SPxSteepPR::selectEnterX().
implementation of hyper sparse pricing in the entering Simplex
Definition at line 675 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), SPxSteepPR::bestPrices, SPxSolver::coId(), soplex::computePrice(), SPxSolver::coTest(), SPxPricer::coWeights, VectorBase< R >::get_const_ptr(), IdxSet::index(), soplex::infinity, SPxSolver::isInfeasible, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), SPxPricer::thesolver, SPxSolver::updateViols, SPxPricer::VIOLATED, and SPxPricer::VIOLATED_AND_CHECKED.
Referenced by SPxSteepPR::selectEnterX().
implementation of sparse pricing for the entering Simplex
Definition at line 861 of file spxsteeppr.cpp.
References soplex::computePrice(), VectorBase< R >::get_const_ptr(), SPxSolver::id(), IdxSet::index(), SPxSolver::infeasibilitiesCo, SPxSolver::isInfeasibleCo, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), SPxSolver::test(), SPxPricer::thesolver, and SPxPricer::weights.
Referenced by SPxSteepPR::selectEnterX().
implementation of sparse pricing for the entering Simplex (slack variables)
Definition at line 829 of file spxsteeppr.cpp.
References SPxSolver::coId(), soplex::computePrice(), SPxSolver::coTest(), SPxPricer::coWeights, VectorBase< R >::get_const_ptr(), IdxSet::index(), SPxSolver::infeasibilities, SPxSolver::isInfeasible, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), and SPxPricer::thesolver.
Referenced by SPxSteepPR::selectEnterX().
choose the best entering index among columns and rows but prefer sparsity
Definition at line 639 of file spxsteeppr.cpp.
References SPxSolver::basis(), SPxSteepPR::bestPrices, SPxSteepPR::bestPricesCo, SPxSteepPR::buildBestPriceVectorEnterCoDim(), SPxSteepPR::buildBestPriceVectorEnterDim(), SPxSolver::hyperPricingEnter, soplex::infinity, SPxId::isValid(), SPxBasis::lastUpdate(), SPxSteepPR::refined, SPxSteepPR::selectEnterDenseCoDim(), SPxSteepPR::selectEnterDenseDim(), SPxSteepPR::selectEnterHyperCoDim(), SPxSteepPR::selectEnterHyperDim(), SPxSteepPR::selectEnterSparseCoDim(), SPxSteepPR::selectEnterSparseDim(), IdxSet::size(), SPxSolver::sparsePricingEnter, SPxSolver::sparsePricingEnterCo, SPARSITY_TRADEOFF, and SPxPricer::thesolver.
Referenced by SPxSteepPR::selectEnter().
|
virtual |
Implements SPxPricer.
Definition at line 262 of file spxsteeppr.cpp.
References SPxSolver::basis(), SPxSteepPR::bestPrices, SPxSteepPR::buildBestPriceVectorLeave(), SPxSolver::coPvec(), SPxBasis::coSolve(), UpdateVector::delta(), SPxSolver::hyperPricingLeave, SPxSteepPR::isConsistent(), SSVectorBase< R >::isConsistent(), SPxBasis::lastUpdate(), MSG_INFO3, SPxSteepPR::refined, SPxSteepPR::selectLeaveHyper(), SPxSteepPR::selectLeaveSparse(), SPxSteepPR::selectLeaveX(), SPxSolver::setup4solve(), SSVectorBase< R >::setup_and_assign(), IdxSet::size(), SPxSolver::sparsePricingLeave, SPxSolver::spxout, STEEP_REFINETOL, SPxPricer::theeps, SPxPricer::thesolver, SPxSolver::unitVector(), SPxSteepPR::workRhs, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone().
|
private |
implementation of hyper sparse pricing in the leaving Simplex
Definition at line 368 of file spxsteeppr.cpp.
References DIdxSet::addIdx(), SPxSteepPR::bestPrices, soplex::computePrice(), SPxPricer::coWeights, SPxSolver::fTest(), VectorBase< R >::get_const_ptr(), IdxSet::index(), soplex::infinity, SPxSolver::isInfeasible, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), SPxPricer::thesolver, SPxSolver::updateViols, SPxPricer::VIOLATED, and SPxPricer::VIOLATED_AND_CHECKED.
Referenced by SPxSteepPR::selectLeave().
|
private |
implementation of sparse pricing in the leaving Simplex
Definition at line 333 of file spxsteeppr.cpp.
References soplex::computePrice(), SPxPricer::coWeights, SPxSolver::fTest(), VectorBase< R >::get_const_ptr(), IdxSet::index(), SPxSolver::infeasibilities, soplex::infinity, SPxSolver::isInfeasible, SPxPricer::NOT_VIOLATED, IdxSet::remove(), IdxSet::size(), SPxPricer::thesolver, SPxPricer::VIOLATED, and SPxPricer::VIOLATED_AND_CHECKED.
Referenced by SPxSteepPR::selectLeave().
|
private |
implementation of full pricing
Definition at line 306 of file spxsteeppr.cpp.
References soplex::computePrice(), SPxPricer::coWeights, SPxSolver::dim(), SPxSolver::fTest(), VectorBase< R >::get_const_ptr(), soplex::infinity, and SPxPricer::thesolver.
Referenced by SPxSteepPR::selectLeave().
|
virtual |
set row/column representation
Reimplemented from SPxPricer.
Definition at line 159 of file spxsteeppr.cpp.
References SSVectorBase< R >::clear(), SPxPricer::coWeights, SSVectorBase< R >::dim(), SPxSolver::dim(), SSVectorBase< R >::reDim(), SPxPricer::thesolver, SPxPricer::weights, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone(), SPxHybridPR::setRep(), and SPxAutoPR::setRep().
|
virtual |
set entering/leaving algorithm
Reimplemented from SPxPricer.
Definition at line 52 of file spxsteeppr.cpp.
References SPxSteepPR::bestPrices, SPxSteepPR::bestPricesCo, IdxSet::clear(), SSVectorBase< R >::clear(), SPxSolver::coDim(), SPxSolver::dim(), SPxSolver::ENTER, SPxSolver::epsilon(), SPxSolver::hyperPricingEnter, SPxSolver::hyperPricingLeave, SPxSolver::LEAVE, SPxSteepPR::prices, SPxSteepPR::pricesCo, SPxSteepPR::refined, DataArray< T >::reMax(), SSVectorBase< R >::setEpsilon(), DIdxSet::setMax(), SPxSteepPR::setupWeights(), SPxSolver::sparsePricingEnter, SPxSolver::sparsePricingEnterCo, SPxSolver::sparsePricingLeave, SPxPricer::thesolver, SPxSteepPR::workRhs, and SPxSteepPR::workVec.
Referenced by SPxSteepPR::clone().
| void setupWeights | ( | SPxSolver::Type | type | ) |
setup steepest edge weights
Definition at line 83 of file spxsteeppr.cpp.
References SPxSolver::basis(), SPxSolver::coDim(), SPxBasis::coSolve(), SPxPricer::coWeights, SPxSteepPR::DEFAULT, VectorBase< R >::dim(), SPxSolver::dim(), SPxSolver::ENTER, SPxSolver::epsilon(), SPxSolver::LEAVE, VectorBase< R >::length2(), SVectorBase< R >::length2(), MSG_INFO1, DVectorBase< R >::reDim(), SPxSteepPR::setup, SPxSolver::spxout, SPxPricer::thesolver, SPxSolver::unitVector(), SPxSolver::vector(), SPxPricer::weights, and SPxPricer::weightsAreSetup.
Referenced by SPxSteepPR::setType().
|
private |
array of best pricing candidates
Definition at line 75 of file spxsteeppr.h.
Referenced by SPxSteepPR::buildBestPriceVectorEnterDim(), SPxSteepPR::buildBestPriceVectorLeave(), SPxSteepPR::selectEnterHyperDim(), SPxSteepPR::selectEnterX(), SPxSteepPR::selectLeave(), SPxSteepPR::selectLeaveHyper(), and SPxSteepPR::setType().
|
private |
array of best pricing candidates
Definition at line 77 of file spxsteeppr.h.
Referenced by SPxSteepPR::buildBestPriceVectorEnterCoDim(), SPxSteepPR::selectEnterHyperCoDim(), SPxSteepPR::selectEnterX(), and SPxSteepPR::setType().
|
private |
Definition at line 79 of file spxsteeppr.h.
Referenced by SPxSteepPR::entered4(), SPxSteepPR::operator=(), and SPxSteepPR::selectEnter().
|
private |
temporary array of precomputed pricing values
Definition at line 71 of file spxsteeppr.h.
Referenced by SPxSteepPR::buildBestPriceVectorEnterDim(), SPxSteepPR::buildBestPriceVectorLeave(), and SPxSteepPR::setType().
|
private |
temporary array of precomputed pricing values
Definition at line 73 of file spxsteeppr.h.
Referenced by SPxSteepPR::buildBestPriceVectorEnterCoDim(), and SPxSteepPR::setType().
|
private |
has a refinement step already been tried?
Definition at line 83 of file spxsteeppr.h.
Referenced by SPxSteepPR::operator=(), SPxSteepPR::selectEnter(), SPxSteepPR::selectEnterX(), SPxSteepPR::selectLeave(), and SPxSteepPR::setType().
|
private |
setup type.
Definition at line 81 of file spxsteeppr.h.
Referenced by SPxSteepPR::isConsistent(), SPxSteepPR::operator=(), and SPxSteepPR::setupWeights().
|
private |
working vector
Definition at line 69 of file spxsteeppr.h.
Referenced by SPxSteepPR::load(), SPxSteepPR::operator=(), SPxSteepPR::selectEnter(), SPxSteepPR::selectLeave(), and SPxSteepPR::setType().
|
private |
working vector
Definition at line 67 of file spxsteeppr.h.
Referenced by SPxSteepPR::addedCoVecs(), SPxSteepPR::entered4(), SPxSteepPR::left4(), SPxSteepPR::load(), SPxSteepPR::operator=(), SPxSteepPR::selectEnter(), SPxSteepPR::selectLeave(), SPxSteepPR::setRep(), and SPxSteepPR::setType().