All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
spxsolver.h
Go to the documentation of this file.
37 #define HYPERPRICINGTHRESHOLD 5000 /**< do (auto) hyper pricing only if problem size (cols+rows) is larger than HYPERPRICINGTHRESHOLD */
41 #define SPARSITY_TRADEOFF 0.8 /**< threshold to decide whether Ids or coIds are preferred to enter the basis;
44 #define MAXNCLCKSKIPS 32 /**< maximum number of clock skips (iterations without time measuring) */
45 #define SAFETYFACTOR 1e-2 /**< the probability to skip the clock when the time limit has been reached */
46 #define NINITCALLS 200 /**< the number of clock updates in isTimelimitReached() before clock skipping starts */
48 {
107 };
182 UNDEFINED ///< nothing known about basis status (possibly due to a singular basis in transformed problem)
183 };
208 };
241 SSVector* solveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
242 SSVector* solveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
243 SSVector* solveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
244 SSVector* solveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
245 SSVector* coSolveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
246 SSVector* coSolveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
247 SSVector* coSolveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
248 SSVector* coSolveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
347 /** For the leaving Simplex algorithm this vector contains the indices of infeasible basic variables;
348 * for the entering Simplex algorithm this vector contains the indices of infeasible slack variables.
351 /**For the entering Simplex algorithm these vectors contains the indices of infeasible basic variables.
355 /// store indices that were changed in the previous iteration and must be checked in hyper pricing
363 DataArray<int> isInfeasible; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
364 DataArray<int> isInfeasibleCo; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
368 bool sparsePricingEnter; ///< true if sparsePricing is turned on in the entering Simplex for slack variables
373 int remainingRoundsLeave; ///< number of dense rounds/refactorizations until sparsePricing is enabled again
461 /// setup linear solver to use. If \p destroy is true, \p slusolver will be freed in destructor.
467 /// setup starting basis generator to use. If \p destroy is true, \p starter will be freed in destructor.
476 /// set \ref soplex::SPxSolver::LEAVE "LEAVE" or \ref soplex::SPxSolver::ENTER "ENTER" algorithm.
478 /// set \ref soplex::SPxSolver::FULL "FULL" or \ref soplex::SPxSolver::PARTIAL "PARTIAL" pricing.
502 * LP is written in MPS format to "\p filename".mps, basis is written in "\p filename".bas, and parameters
503 * are written to "\p filename".set. If \p rowNames and \p colNames are \c NULL, default names are used for
507 const NameSet* rowNames = NULL, const NameSet* colNames = NULL, const bool cpxFormat = false) const;
697 /// guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() and opttol(), i.e., the less tight tolerance.
864 {
896 {
918 {
1395 /// compute and return \ref soplex::SPxSolver::test() "test()"[i] in \ref soplex::SPxSolver::ENTER "ENTER"ing Simplex.
1863 Status getBasis(VarStatus rows[], VarStatus cols[], const int rowsSize = -1, const int colsSize = -1) const;
1931 /// returns whether current time limit is reached; call to time() may be skipped unless \p forceCheck is true
1984 std::stringstream s;
1986 << "Solution time : " << std::setw(10) << std::fixed << std::setprecision(2) << time() << std::endl
|