| 
               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  |