spxsolver.cpp
Go to the documentation of this file.
500 // clear the basis only when theLP is present, because LP data (nrows, ncols) is used in reDim() 539 s << "Basis is singular (numerical troubles, feastol = " << feastol() << ", opttol = " << opttol() << ")"; 560 /* we have to recompute theFrhs, because roundoff errors can occur during updating, especially when 608 /* to save time only recompute the row activities (in row rep) when we are already nearly optimal to 620 /* moved this test after the computation of fTest and coTest below, since these vectors might not be set up at top, e.g. for an initial basis */ 673 /* check for (dual) violations above tol and immediately return false w/o checking the remaining values 674 This method is useful for verifying whether an objective limit can be used as termination criterion */ 849 MSG_ERROR( std::cerr << "stored nonbasic value: " << m_nonbasicValue << ", correct nonbasic value: " << val << std::endl; ) 1502 // returns whether current time limit is reached; call to time() may be skipped unless \p forceCheck is true 1505 // always update the number of calls, since the user might set a time limit later in the solving process 1524 // it would not be safe to skip the clock so many times since we are approaching the time limit 1722 SPxSolver::Status SPxSolver::getBasis(VarStatus row[], VarStatus col[], const int rowsSize, const int colsSize) const
Desc::Status dualRowStatus(int i) const dual Status for the i'th row variable of the loaded LP. Definition: spxbasis.cpp:46 Exception class for things that should NEVER happen.This class is derived from the SoPlex exception b... Definition: exceptions.h:109 SoPlex start basis generation base class. Safe arrays of data objects.Class DataArray provides safe arrays of Data Objects. For general C++ obj... Definition: dataarray.h:63 void reDim(int newdim, const bool setZero=true) Resets DVectorBase's dimension to newdim. Definition: dvectorbase.h:249 Basis is not known to be dual nor primal feasible. Definition: spxbasis.h:94 void coSolve(Vector &x, const Vector &rhs) Cosolves linear system with basis matrix. Definition: spxbasis.h:678 int nClckSkipsLeft remaining number of times the clock can be safely skipped Definition: spxsolver.h:227 const VectorBase< Real > & maxObj() const Returns objective vector for maximization problem. Definition: spxlpbase.h:384 DIdxSet updateViols store indices that were changed in the previous iteration and must be checked in hyper pricing ... Definition: spxsolver.h:363 void setBasis(const VarStatus rows[], const VarStatus cols[]) set the lp solver's basis. Definition: spxsolver.cpp:1795 virtual SPxRatioTester * clone() const =0 clone function for polymorphism Abstract pricer base class. SSVector * solveVector3 when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:250 virtual void setStarter(SPxStarter *starter, const bool destroy=false) setup starting basis generator to use. If destroy is true, starter will be freed in destructor... Definition: spxsolver.cpp:154 virtual void reDim() reset dimensions of vectors according to loaded LP. Definition: spxsolver.cpp:446 bool sparsePricingEnterCo true if sparsePricing is turned on in the entering Simplex Definition: spxsolver.h:376 virtual void setRep(SPxSolver::Representation) sets basis representation. Definition: spxpricer.h:161 Abstract ratio test base class. SPxBasis::Desc::Status varStatusToBasisStatusRow(int row, VarStatus stat) const converts VarStatus to basis status for rows Definition: spxsolver.cpp:1587 DataArray< int > isInfeasible 0: index not violated, 1: index violated, 2: index violated and among candidate list ... Definition: spxsolver.h:370 void getNdualNorms(int &nnormsRow, int &nnormsCol) const get number of dual norms Definition: spxsolver.cpp:1814 bool NE(Real a, Real b, Real eps=Param::epsilon()) returns true iff |a-b| > eps Definition: spxdefines.h:377 Definition: spxdefines.h:232 Abstract ratio test base class.Class SPxRatioTester is the virtual base class for computing the ratio... Definition: spxratiotester.h:40 SPxLPBase< Real > & operator=(const SPxLPBase< Real > &old) Assignment operator. Definition: spxlpbase.h:2385 SoPlex start basis generation base class.SPxStarter is the virtual base class for classes generating ... Definition: spxstarter.h:41 virtual bool read(std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) Reads LP in LP or MPS format from input stream in. Definition: spxlpbase.h:1039 Real sparsePricingFactor enable sparse pricing when viols < factor * dim() Definition: spxsolver.h:277 LP has been proven to be primal infeasible. Definition: spxsolver.h:208 SSVector * solveVector2rhs when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:249 bool isTimeLimitReached(const bool forceCheck=false) returns whether current time limit is reached; call to time() may be skipped unless forceCheck is tru... Definition: spxsolver.cpp:1503 bool freeRatioTester true iff theratiotester should be freed inside of object Definition: spxsolver.h:258 Sparse Linear Solver virtual base class.Class SLinSolver provides a class for solving sparse linear s... Definition: slinsolver.h:43 bool setDualNorms(int nnormsRow, int nnormsCol, Real *norms) set dual norms Definition: spxsolver.cpp:1826 Real opttol() const allowed optimality, i.e., dual feasibility tolerance. Definition: spxsolver.h:697 TimerFactory class. SPxSolver(Type type=LEAVE, Representation rep=ROW, Timer::TYPE ttype=Timer::USER_TIME) default constructor. Definition: spxsolver.cpp:949 virtual void setSolver(SLinSolver *slu, const bool destroy=false) setup linear solver to use. If destroy is true, slusolver will be freed in destructor. Definition: spxsolver.cpp:83 Wrapper for different output streams and verbosity levels. primal variable is set to its upper bound Definition: spxbasis.h:188 int remainingRoundsLeave number of dense rounds/refactorizations until sparsePricing is enabled again Definition: spxsolver.h:380 Real m_entertol feasibility tolerance maintained during entering algorithm Definition: spxsolver.h:240 nothing known about basis status (possibly due to a singular basis in transformed problem) ... Definition: spxsolver.h:184 const SVSetBase< Real > * colSet() const Returns the complete SVSetBase. Definition: lpcolsetbase.h:66 SSVector * solveVector3rhs when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:251 bool m_pricingViolCoUpToDate true, if the stored violation in coDim is up to date Definition: spxsolver.h:238 VarStatus getBasisRowStatus(int row) const gets basis status for a single row Definition: spxsolver.cpp:1710 SSVector * coSolveVector3 when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:254 Desc::Status dualColStatus(int i) const dual Status for the i'th column variable of the loaded LP. Definition: spxbasis.cpp:69 std::ostream & operator<<(std::ostream &s, const VectorBase< R > &vec) Output operator. Definition: basevectors.h:1087 Status getBasis(VarStatus rows[], VarStatus cols[], const int rowsSize=-1, const int colsSize=-1) const get current basis, and return solver status. Definition: spxsolver.cpp:1722 Real cumulativeTime() const cumulative time spent in all calls to method solve(). Definition: spxsolver.h:1963 virtual void setPricer(SPxPricer *pricer, const bool destroy=false) setup pricer to use. If destroy is true, pricer will be freed in destructor. Definition: spxsolver.cpp:101 VarStatus getBasisColStatus(int col) const gets basis status for a single column Definition: spxsolver.cpp:1716 dual variable is set to its upper bound Definition: spxbasis.h:192 #define MSG_ERROR(x) Prints out message x if the verbosity level is at least SPxOut::ERROR. Definition: spxdefines.h:109 Abstract pricer base class.Class SPxPricer is a pure virtual class defining the interface for pricer ... Definition: spxpricer.h:46 void shiftPvec() Perform initial shifting to optain an feasible or pricable basis. Definition: spxshift.cpp:78 SSVector * coSolveVector3rhs when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:255 bool updateNonbasicValue(Real objChange) Definition: spxsolver.cpp:886 Dynamic index set.Class DIdxSet provides dynamic IdxSet in the sense, that no restrictions are posed ... Definition: didxset.h:42 bool sparsePricingEnter true if sparsePricing is turned on in the entering Simplex for slack variables Definition: spxsolver.h:375 Real entertol() const feasibility tolerance maintained by ratio test during ENTER algorithm. Definition: spxsolver.h:675 static Timer * createTimer(Timer::TYPE ttype) create timers and allocate memory for them Definition: timerfactory.h:43 Real m_leavetol feasibility tolerance maintained during leaving algorithm Definition: spxsolver.h:241 Preconfigured SoPlex LP solver. Real m_pricingViolCo maximal feasibility violation of current solution in coDim Definition: spxsolver.h:237 Real length() const Floating point approximation of euclidian norm (without any approximation guarantee). Definition: vectorbase.h:356 Debugging, floating point type and parameter definitions. Simplex basis.Consider the linear program as provided from class SPxLP: where , and ... Definition: spxbasis.h:82 Set of strings.Class NameSet implements a symbol or name table. It allows to store or remove names (i... Definition: nameset.h:61 Sequential object-oriented SimPlex.SPxSolver is an LP solver class using the revised Simplex algorith... Definition: spxsolver.h:84 SSVector * solveVector2 when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:248 SPxBasis::Desc::Status varStatusToBasisStatusCol(int col, VarStatus stat) const converts VarStatus to basis status for columns Definition: spxsolver.cpp:1646 virtual void setTerminationIter(int iteration=-1) set iteration limit. Definition: spxsolver.cpp:1490 virtual bool read(std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) read LP from input stream. Definition: spxsolver.cpp:31 Exception base class.This class implements a base class for our SoPlex exceptions We provide a what()... Definition: exceptions.h:32 Everything should be within this namespace. bool isBasisValid(DataArray< VarStatus > rows, DataArray< VarStatus > cols) check a given basis for validity. Definition: spxsolver.cpp:1741 bool EQrel(Real a, Real b, Real eps=Param::epsilon()) returns true iff |relDiff(a,b)| <= eps Definition: spxdefines.h:419 Real theCumulativeTime cumulative time spent in all calls to method solve() Definition: spxsolver.h:224 virtual void setTester(SPxRatioTester *tester, const bool destroy=false) setup ratio-tester to use. If destroy is true, tester will be freed in destructor. Definition: spxsolver.cpp:128 SSVector * coSolveVector2rhs when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:253 virtual bool setDualNorms(int nrows, int ncols, Real *norms) import norms into pricer Definition: spxpricer.h:314 solve() aborted due to detection of cycling. Definition: spxsolver.h:197 primal variable is set to its lower bound Definition: spxbasis.h:187 Exception class for incorrect usage of interface methods. Definition: exceptions.h:126 VarStatus basisStatusToVarStatus(SPxBasis::Desc::Status stat) const converts basis status to VarStatus Definition: spxsolver.cpp:1553 virtual void loadSolver(SLinSolver *solver, const bool destroy=false) sets up linear solver to use. Definition: spxbasis.cpp:319 void shiftFvec() Perform initial shifting to optain an feasible or pricable basis. Definition: spxshift.cpp:25 dual variable is set to its lower bound Definition: spxbasis.h:193 virtual bool noViols(Real tol) const check for violations above tol and immediately return false w/o checking the remaining values ... Definition: spxsolver.cpp:675 DataArray< int > isInfeasibleCo 0: index not violated, 1: index violated, 2: index violated and among candidate list ... Definition: spxsolver.h:371 bool hyperPricingEnter true if hyper sparse pricing is turned on in the entering Simplex Definition: spxsolver.h:378 Exception class for status exceptions during the computationsThis class is derived from the SoPlex ex... Definition: exceptions.h:89 virtual void computeEnterCoPrhs() compute theCoPrhs for entering Simplex. Definition: spxvecs.cpp:405 void forceRecompNonbasicValue() Definition: spxsolver.h:545 void initRep(Representation p_rep) initialize ROW or COLUMN representation. Definition: spxsolver.cpp:198 #define MSG_INFO3(spxout, x) Prints out message x if the verbosity level is at least SPxOut::INFO3. Definition: spxdefines.h:117 virtual void setTerminationValue(Real value=infinity) set objective limit. Definition: spxsolver.cpp:1542 SSVector * coSolveVector2 when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:252 bool getDualNorms(int &nnormsRow, int &nnormsCol, Real *norms) const get dual norms Definition: spxsolver.cpp:1820 bool hyperPricingLeave true if hyper sparse pricing is turned on in the leaving Simplex Definition: spxsolver.h:377 Real leavetol() const feasibility tolerance maintained by ratio test during LEAVE algorithm. Definition: spxsolver.h:682 const VectorBase< Real > & maxRowObj() const Definition: spxlpbase.h:286 virtual bool getDualNorms(int &nrows, int &ncols, Real *norms) const export norms from pricer Definition: spxpricer.h:276 virtual void getNdualNorms(int &nrows, int &ncols) const get number of available norms Definition: spxpricer.h:250 void setBasisStatus(SPxBasis::SPxStatus stat) set the lp solver's basis status. Definition: spxsolver.h:1905 void setDelta(Real d) set parameter delta, i.e., set feastol and opttol to same value. Definition: spxsolver.cpp:928 |