Safe arrays of arbitrary types.
Generic Ids for LP rows or columns.
Abstract pricer base class.
SPxPricer & operator=(const SPxPricer &rhs)
assignment operator
Sequential object-oriented SimPlex.
Representation
LP basis representation.
virtual void removedCoVec(int i)
the i'th covector has been removed from the loaded LP.
Setup
How to setup the direction multipliers.
@ EXACT
starting with exactly computed values
@ DEFAULT
starting with multipliers set to 1
SSVectorBase< R > workRhs
working vector
SSVectorBase< R > workVec
working vector
virtual SPxPricer< R > * clone() const
clone function for polymorphism
Array< typename SPxPricer< R >::IdxElement > pricesCo
temporary array of precomputed pricing values
int buildBestPriceVectorLeave(R feastol)
prepare data structures for hyper sparse pricing
SPxSteepPR(const SPxSteepPR &old)
copy constructor
SPxId selectEnterHyperDim(R &best, R feastol)
implementation of hyper sparse pricing in the entering Simplex
SPxId buildBestPriceVectorEnterDim(R &best, R feastol)
build up vector of pricing values for later use
virtual void addedCoVecs(int n)
n covectors have been added to loaded LP.
SPxId selectEnterDenseDim(R &best, R tol)
implementation of selectEnter() in dense case (slack variables)
SPxId selectEnterSparseDim(R &best, R tol)
implementation of sparse pricing for the entering Simplex (slack variables)
bool refined
has a refinement step already been tried?
void setupWeights(typename SPxSolverBase< R >::Type type)
setup steepest edge weights
virtual ~SPxSteepPR()
destructor
int selectLeaveHyper(R tol)
implementation of hyper sparse pricing in the leaving Simplex
SPxSteepPR & operator=(const SPxSteepPR &rhs)
assignment operator
virtual void entered4(SPxId id, int n)
SPxId selectEnterDenseCoDim(R &best, R tol)
implementation of selectEnter() in dense case
virtual bool isConsistent() const
virtual void load(SPxSolverBase< R > *base)
sets the solver
SPxId selectEnterX(R tol)
choose the best entering index among columns and rows but prefer sparsity
SPxId buildBestPriceVectorEnterCoDim(R &best, R feastol)
SPxId selectEnterHyperCoDim(R &best, R feastol)
implementation of hyper sparse pricing in the entering Simplex
virtual void removedVecs(const int perm[])
n vectors have been removed from loaded LP.
virtual void clear()
clear solver and preferences
DIdxSet bestPricesCo
array of best pricing candidates
virtual void setType(typename SPxSolverBase< R >::Type)
set entering/leaving algorithm
virtual void removedVec(int i)
the i'th vector has been removed from the loaded LP.
virtual void addedVecs(int n)
n vectors have been added to loaded LP.
virtual void setRep(typename SPxSolverBase< R >::Representation rep)
set row/column representation
virtual void removedCoVecs(const int perm[])
n covectors have been removed from loaded LP.
Array< typename SPxPricer< R >::IdxElement > prices
temporary array of precomputed pricing values
virtual void left4(int n, SPxId id)
int selectLeaveX(R tol)
implementation of full pricing
virtual int selectLeave()
DIdxSet bestPrices
array of best pricing candidates
virtual SPxId selectEnter()
int selectLeaveSparse(R tol)
implementation of sparse pricing in the leaving Simplex
SPxSteepPR(const char *name="Steep", Setup mode=DEFAULT)
SPxId selectEnterSparseCoDim(R &best, R tol)
implementation of sparse pricing for the entering Simplex
Everything should be within this namespace.
Debugging, floating point type and parameter definitions.
Abstract pricer base class.