soplex.h
Go to the documentation of this file.
67 ///@todo implement statistical info (time, factor time, iters, ...) since last call to solveReal() or solveRational() (Ambros?) 75 ///@todo integrate rational SPxSolver and distinguish between original and transformed rational LP 181 /// returns objective function vector after transformation to a maximization problem; since this is how it is stored 185 /// returns objective value of column \p i after transformation to a maximization problem; since this is how it is 273 /// returns objective function vector after transformation to a maximization problem; since this is how it is stored 277 /// returns objective value of column \p i after transformation to a maximization problem; since this is how it is 353 /// removes all rows with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the 354 /// new index where row \p i has been moved to; note that \p perm must point to an array of size at least 358 /// remove all rows with indices in array \p idx of size \p n; an array \p perm of size #numRowsReal() may be passed 362 /// removes rows \p start to \p end including both; an array \p perm of size #numRowsReal() may be passed as buffer 369 /// removes all columns with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the 370 /// new index where column \p i has been moved to; note that \p perm must point to an array of size at least 374 /// remove all columns with indices in array \p idx of size \p n; an array \p perm of size #numColsReal() may be 378 /// removes columns \p start to \p end including both; an array \p perm of size #numColsReal() may be passed as 385 /// synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, if sync mode is manual 399 void addRowRational(const mpq_t* lhs, const mpq_t* rowValues, const int* rowIndices, const int rowSize, const mpq_t* rhs); 402 void addRowsRational(const mpq_t* lhs, const mpq_t* rowValues, const int* rowIndices, const int* rowStarts, const int* rowLengths, const int numRows, const int numValues, const mpq_t* rhs); 413 void addColRational(const mpq_t* obj, const mpq_t* lower, const mpq_t* colValues, const int* colIndices, const int colSize, const mpq_t* upper); 416 void addColsRational(const mpq_t* obj, const mpq_t* lower, const mpq_t* colValues, const int* colIndices, const int* colStarts, const int* colLengths, const int numCols, const int numValues, const mpq_t* upper); 516 /// removes all rows with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the new 517 /// index where row \p i has been moved to; note that \p perm must point to an array of size at least 521 /// remove all rows with indices in array \p idx of size \p n; an array \p perm of size #numRowsRational() may be 525 /// removes rows \p start to \p end including both; an array \p perm of size #numRowsRational() may be passed as 532 /// removes all columns with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the 533 /// new index where column \p i has been moved to; note that \p perm must point to an array of size at least 537 /// remove all columns with indices in array \p idx of size \p n; an array \p perm of size #numColsRational() may be 541 /// removes columns \p start to \p end including both; an array \p perm of size #numColsRational() may be passed as 548 /// synchronizes rational LP with real LP, i.e., copies real LP to rational LP, if sync mode is manual 712 /// gets the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m 715 /// computes an estimated condition number for the current basis matrix using the power method; returns true on success 718 /// computes the exact condition number for the current basis matrix using the power method; returns true on success 772 /// reads LP file in LP or MPS format according to READMODE parameter; gets row names, column names, and 774 bool readFile(const char* filename, NameSet* rowNames = 0, NameSet* colNames = 0, DIdxSet* intVars = 0); 776 /// writes real LP to file; LP or MPS format is chosen from the extension in \p filename; if \p rowNames and \p 777 /// colNames are \c NULL, default names are used; if \p intVars is not \c NULL, the variables contained in it are 779 bool writeFileReal(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0, const DIdxSet* intvars = 0) const; 781 /// writes rational LP to file; LP or MPS format is chosen from the extension in \p filename; if \p rowNames and \p 782 /// colNames are \c NULL, default names are used; if \p intVars is not \c NULL, the variables contained in it are 784 bool writeFileRational(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0, const DIdxSet* intvars = 0) const; 786 /// reads basis information from \p filename and returns true on success; if \p rowNames and \p colNames are \c NULL, 788 bool readBasisFile(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0); 790 /// writes basis information to \p filename; if \p rowNames and \p colNames are \c NULL, default names are used; 792 bool writeBasisFile(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0, const bool cpxFormat = false) const; 794 /// writes internal LP, basis information, and parameter settings; if \p rowNames and \p colNames are \c NULL, 796 void writeStateReal(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0, const bool cpxFormat = false) const; 798 /// writes internal LP, basis information, and parameter settings; if \p rowNames and \p colNames are \c NULL, 800 void writeStateRational(const char* filename, const NameSet* rowNames = 0, const NameSet* colNames = 0, const bool cpxFormat = false) const; 817 /// should dual infeasibility be tested in order to try to return a dual solution even if primal infeasible? 1183 /// lower threshold in lifting (nonzero matrix coefficients with smaller absolute value will be reformulated) 1186 /// upper threshold in lifting (nonzero matrix coefficients with larger absolute value will be reformulated) 1189 /// sparse pricing threshold (\#violations < dimension * SPARSITY_THRESHOLD activates sparse pricing) 1192 /// threshold on number of rows vs. number of columns for switching from column to row representations in auto mode 1237 bool setBoolParam(const BoolParam param, const bool value, const bool quiet = false, const bool init = false); 1240 bool setIntParam(const IntParam param, const int value, const bool quiet = false, const bool init = false); 1243 bool setRealParam(const RealParam param, const Real value, const bool quiet = false, const bool init = false); 1247 bool setRationalParam(const RationalParam param, const Rational value, const bool quiet = false, const bool init = false); 1251 bool setSettings(const Settings& newSettings, const bool quiet = false, const bool init = false); 1298 bool areLPsInSync(const bool checkVecVals = true, const bool checkMatVals = false, const bool quiet = false) const; 1550 /// removes all rows with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the 1551 /// new index where row \p i has been moved to; note that \p perm must point to an array of size at least 1555 /// remove all rows with indices in array \p idx of size \p n; an array \p perm of size #numRowsReal() may be passed 1559 /// removes rows \p start to \p end including both; an array \p perm of size #numRowsReal() may be passed as buffer 1566 /// removes all columns with an index \p i such that \p perm[i] < 0; upon completion, \p perm[i] >= 0 indicates the 1567 /// new index where column \p i has been moved to; note that \p perm must point to an array of size at least 1571 /// remove all columns with indices in array \p idx of size \p n; an array \p perm of size #numColsReal() may be 1575 /// removes columns \p start to \p end including both; an array \p perm of size #numColsReal() may be passed as 1597 /// reads real LP in LP or MPS format from file and returns true on success; gets row names, column names, and 1599 bool _readFileReal(const char* filename, NameSet* rowNames = 0, NameSet* colNames = 0, DIdxSet* intVars = 0); 1601 /// reads rational LP in LP or MPS format from file and returns true on success; gets row names, column names, and 1603 bool _readFileRational(const char* filename, NameSet* rowNames = 0, NameSet* colNames = 0, DIdxSet* intVars = 0); 1611 /// synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, without looking at the sync mode 1614 /// synchronizes rational LP with real LP, i.e., copies real LP to rational LP, without looking at the sync mode 1617 /// synchronizes real solution with rational solution, i.e., copies real solution to rational solution 1620 /// synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real solution 1626 /// parses one line in a settings file and returns true on success; note that the string is modified 1652 void _performUnboundedIRStable(SolRational& sol, bool& hasUnboundedRay, bool& stopped, bool& stoppedIter, bool& error); 1655 void _performFeasIRStable(SolRational& sol, bool& withDualFarkas, bool& stopped, bool& stoppedIter, bool& error); 1657 /// reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al. 2013 1675 /// introduces slack variables to transform inequality constraints into equations for both rational and real LP, 1682 /// transforms LP to unboundedness problem by moving the objective function to the constraints, changing right-hand 1683 /// side and bounds to zero, and adding an auxiliary variable for the decrease in the objective function 1689 /// transforms LP to feasibility problem by removing the objective function, shifting variables, and homogenizing the 1698 Given constraints of the form \f$ lhs <= Ax <= rhs \f$, a farkas proof y should satisfy \f$ y^T A = 0 \f$ and 1699 \f$ y_+^T lhs - y_-^T rhs > 0 \f$, where \f$ y_+, y_- \f$ denote the positive and negative parts of \f$ y \f$. 1700 If \f$ y \f$ is approximate, it may not satisfy \f$ y^T A = 0 \f$ exactly, but the proof is still valid as long 1707 we may therefore calculate \f$ y^T A \f$ and \f$ y_+^T lhs - y_-^T rhs \f$ exactly and check if the upper and lower 1708 bounds on \f$ x \f$ imply that all feasible \f$ x \f$ satisfy (*), and if not then compute bounds on \f$ x \f$ to 1717 \f$ B \f$ can be increased by iteratively including variable bounds smaller than \f$ B \f$. The speed of this 1718 method can be further improved by using interval arithmetic for all computations. For related information see 1726 SPxSolver::Status _solveRealForRational(bool fromscratch, VectorReal& primal, VectorReal& dual, 1731 SPxSolver::Status _solveRealStable(bool acceptUnbounded, bool acceptInfeasible, VectorReal& primal, VectorReal& dual, 1733 DataArray< SPxSolver::VarStatus >& basisStatusCols, bool& returnedBasis, const bool forceNoSimplifier = false); 1736 void _factorizeColumnRational(SolRational& sol, DataArray< SPxSolver::VarStatus >& basisStatusRows, DataArray< SPxSolver::VarStatus >& basisStatusCols, bool& stoppedTime, bool& stoppedIter, bool& error, bool& optimal); 1739 bool _reconstructSolutionRational(SolRational& sol, DataArray< SPxSolver::VarStatus >& basisStatusRows, DataArray< SPxSolver::VarStatus >& basisStatusCols, const Rational& denomBoundSquared); 1755 /// loads original problem into solver and solves again after it has been solved to optimality with preprocessing 1758 /// stores solution of the real LP; before calling this, the real LP must be loaded in the solver and solved (again) void changeLhsRational(const VectorRational &lhs) changes left-hand side vector for constraints to lhs Definition: soplex.cpp:2025 Fast shifting ratio test. textbook ratio test without stabilization Definition: soplex.h:1054 void _changeUpperReal(const VectorReal &upper) changes vector of upper bounds to upper and adjusts basis Definition: soplex.cpp:6775 SoPlex start basis generation base class. Bound flipping ratio test ("long step dual") for SoPlex.Class SPxBoundFlippingRT provides an implemen... Definition: spxboundflippingrt.h:51 Safe arrays of data objects.Class DataArray provides safe arrays of Data Objects. For general C++ obj... Definition: dataarray.h:63 Real maxAbsNonzeroReal() const returns biggest non-zero element in absolute value Definition: soplex.cpp:806 bool getDualViolationRational(Rational &maxviol, Rational &sumviol) gets violation of dual multipliers; returns true on success Definition: soplex.cpp:3430 Types of solution classes. void printSolutionStatistics(std::ostream &os) prints solution statistics Definition: soplex.cpp:5818 void _transformEquality() introduces slack variables to transform inequality constraints into equations for both rational and r... Definition: solverational.cpp:1916 Real minAbsNonzeroReal() const returns smallest non-zero element in absolute value Definition: soplex.cpp:797 void _addColReal(const LPColReal &lpcol) adds a single column to the real LP and adjusts basis Definition: soplex.cpp:6502 void removeRowsRational(int perm[]) removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the n... Definition: soplex.cpp:2526 bool setSettings(const Settings &newSettings, const bool quiet=false, const bool init=false) sets parameter settings; returns true on success Definition: soplex.cpp:5385 void removeColsReal(int perm[]) removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates th... Definition: soplex.cpp:1735 Devex pricer.The Devex Pricer for SoPlex implements an approximate steepest edge pricing, that does without solving an extra linear system and computing the scalar products. Definition: spxdevexpr.h:43 void _changeElementReal(int i, int j, const Real &val) changes matrix entry in row i and column j to val and adjusts basis Definition: soplex.cpp:6862 void _transformUnbounded() transforms LP to unboundedness problem by moving the objective function to the constraints, changing right-hand side and bounds to zero, and adding an auxiliary variable for the decrease in the objective function Definition: solverational.cpp:2107 void _changeRangeReal(const VectorReal &lhs, const VectorReal &rhs) changes left- and right-hand side vectors and adjusts basis Definition: soplex.cpp:6664 void writeStateRational(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL... Definition: soplex.cpp:4826 Steepest edge pricer.Class SPxSteepExPR implements a steepest edge pricer to be used with SoPlex... Definition: spxsteepexpr.h:40 void _rangeToPerm(int start, int end, int *perm, int permSize) const creates a permutation for removing rows/columns from a range of indices Definition: soplex.cpp:6332 maximum increase of scaling factors between refinements Definition: soplex.h:1181 bool setBoolParam(const BoolParam param, const bool value, const bool quiet=false, const bool init=false) sets boolean parameter value; returns true on success Definition: soplex.cpp:4896 Geometric mean row/column scaling.This SPxScaler implementation performs geometric mean scaling of th... Definition: spxgeometsc.h:35 continue iterative refinement with exact basic solution if not optimal? Definition: soplex.h:833 type of computational form, i.e., column or row representation Definition: soplex.h:852 void changeColRational(int i, const LPColRational &lpcol) replaces column i with lpcol Definition: soplex.cpp:2208 Abstract pricer base class. bool getPrimalReal(VectorReal &vector) gets the primal solution vector if available; returns true on success Definition: soplex.cpp:2865 bool getDualRational(VectorRational &vector) gets the dual solution vector if available; returns true on success Definition: soplex.cpp:3220 SPxSolver::VarStatus basisRowStatus(int row) const returns basis status for a single row Definition: soplex.cpp:3749 Solution vector based start basis. bool getSlacksRational(VectorRational &vector) gets the vector of slack values if available; returns true on success Definition: soplex.cpp:3190 SPxSolver::Status _solveRealStable(bool acceptUnbounded, bool acceptInfeasible, VectorReal &primal, VectorReal &dual, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &returnedBasis, const bool forceNoSimplifier=false) solves real LP with recovery mechanism Definition: solverational.cpp:3281 int totalSizePrimalRational(const int base=2) get size of primal solution Definition: soplex.cpp:3636 void _addColsReal(const LPColSetReal &lpcolset) adds multiple columns to the real LP and adjusts basis Definition: soplex.cpp:6539 void getRowsReal(int start, int end, LPRowSetReal &lprowset) const gets rows start, ..., end. Definition: soplex.cpp:824 const VectorRational & rhsRational() const returns right-hand side vector Definition: soplex.cpp:1084 void changeRangeReal(const VectorReal &lhs, const VectorReal &rhs) changes left- and right-hand side vectors Definition: soplex.cpp:1406 void _idxToPerm(int *idx, int idxSize, int *perm, int permSize) const creates a permutation for removing rows/columns from an array of indices Definition: soplex.cpp:6311 void _removeColsReal(int perm[]) removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates th... Definition: soplex.cpp:6969 bool getRedCostRational(VectorRational &vector) gets the vector of reduced cost values if available; returns true on success Definition: soplex.cpp:3235 void getColsRational(int start, int end, LPColSetRational &lpcolset) const gets columns start, ..., end Definition: soplex.cpp:1138 LP geometric mean scaling. bound flipping ratio test for long steps in the dual simplex Definition: soplex.h:1063 Abstract ratio test base class. void _addRowReal(const LPRowReal &lprow) adds a single row to the real LP and adjusts basis Definition: soplex.cpp:6458 bool readBasisFile(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0) reads basis information from filename and returns true on success; if rowNames and colNames are NULL... Definition: soplex.cpp:4516 void changeRangeRational(const VectorRational &lhs, const VectorRational &rhs) changes left- and right-hand side vectors Definition: soplex.cpp:2148 void _syncLPReal(bool time=true) synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP... Definition: soplex.cpp:7310 bool getDualFarkasReal(VectorReal &vector) gets the Farkas proof if available; returns true on success Definition: soplex.cpp:2940 void _recomputeRangeTypesRational() recomputes range types from scratch using rational LP Definition: soplex.cpp:7297 void _transformFeasibility() transforms LP to feasibility problem by removing the objective function, shifting variables... Definition: solverational.cpp:2377 void changeObjReal(const VectorReal &obj) changes objective function vector to obj Definition: soplex.cpp:1572 void changeRowRational(int i, const LPRowRational &lprow) replaces row i with lprow Definition: soplex.cpp:2006 Implementation of Sparse Linear Solver. bool getRowViolationReal(Real &maxviol, Real &sumviol) gets violation of constraints; returns true on success Definition: soplex.cpp:2992 should cycling solutions be accepted during iterative refinement? Definition: soplex.h:824 bool getRowViolationRational(Rational &maxviol, Rational &sumviol) gets violation of constraints; returns true on success Definition: soplex.cpp:3306 DataArray< SPxSolver::VarStatus > _storedBasisStatusCols Definition: soplex.h:1394 void _performFeasIRStable(SolRational &sol, bool &withDualFarkas, bool &stopped, bool &stoppedIter, bool &error) performs iterative refinement on the auxiliary problem for testing feasibility Definition: solverational.cpp:1472 lower bound is finite, upper bound is infinite Definition: soplex.h:1407 bool _readFileReal(const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) reads real LP in LP or MPS format from file and returns true on success; gets row names... Definition: soplex.cpp:7196 SoPlex start basis generation base class.SPxStarter is the virtual base class for classes generating ... Definition: spxstarter.h:41 void addColsRational(const LPColSetRational &lpcolset) adds multiple columns Definition: soplex.cpp:1986 bool _upperFinite(const RangeType &rangeType) const checks whether RangeType corresponds to finite upper bound Definition: soplex.cpp:6450 Dantzig pricer. bool getDualNorms(int &nnormsRow, int &nnormsCol, Real *norms) const gets steepest edge norms and returns false if they are not available Definition: soplex.cpp:996 Rational minAbsNonzeroRational() const returns smallest non-zero element in absolute value Definition: soplex.cpp:1039 SPxSolver::Status _solveRealForRational(bool fromscratch, VectorReal &primal, VectorReal &dual, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &returnedBasis) solves real LP during iterative refinement Definition: solverational.cpp:3055 General methods in LP preprocessing. void _untransformUnbounded(SolRational &sol, bool unbounded) undoes transformation to unboundedness problem Definition: solverational.cpp:2223 bool readFile(const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) reads LP file in LP or MPS format according to READMODE parameter; gets row names, column names, and integer variables if desired; returns true on success Definition: soplex.cpp:4475 bool setIntParam(const IntParam param, const int value, const bool quiet=false, const bool init=false) sets integer parameter value; returns true on success Definition: soplex.cpp:4939 void _ensureRationalLP() ensures that the rational LP is available; performs no sync Definition: soplex.cpp:7069 minimum number of stalling refinements since last pivot to trigger rational factorization ... Definition: soplex.h:912 Auto pricer.This pricer switches between Devex and Steepest edge pricer based on the difficulty of th... Definition: spxautopr.h:40 minimal reduction (sum of removed rows/cols) to continue simplification Definition: soplex.h:1199 Wrapper for GMP type mpq_class.We wrap mpq_class so that we can replace it by a double type if GMP is... Definition: rational.h:45 void _changeRhsReal(const VectorReal &rhs) changes right-hand side vector to rhs and adjusts basis Definition: soplex.cpp:6624 void changeElementReal(int i, int j, const Real &val) changes matrix entry in row i and column j to val Definition: soplex.cpp:1602 Devex pricer. should a rational factorization be performed after iterative refinement? Definition: soplex.h:821 maximum number of updates without fresh factorization Definition: soplex.h:861 void removeColRangeRational(int start, int end, int perm[]=0) removes columns start to end including both; an array perm of size numColsRational() may be passed as... Definition: soplex.cpp:2670 std::string statisticString() const statistical information in form of a string Definition: soplex.cpp:4409 const VectorRational & maxObjRational() const returns objective function vector after transformation to a maximization problem; since this is how i... Definition: soplex.cpp:1221 void changeUpperRational(const VectorRational &upper) changes vector of upper bounds to upper Definition: soplex.cpp:2287 bool _isSolveStopped(bool &stoppedTime, bool &stoppedIter) const should solving process be stopped? Definition: soplex.cpp:6364 bool setDualNorms(int nnormsRow, int nnormsCol, Real *norms) sets steepest edge norms and returns false if that's not possible Definition: soplex.cpp:1004 LP simplification base class. Real realParam(const RealParam param) const returns real parameter value Definition: soplex.cpp:4866 steepest edge pricer with exact initialization of norms Definition: soplex.h:1047 Partial multiple pricing.Class SPxParMultPr is an implementation class for SPxPricer implementing Dan... Definition: spxparmultpr.h:47 void removeColRangeReal(int start, int end, int perm[]=0) removes columns start to end including both; an array perm of size numColsReal() may be passed as buf... Definition: soplex.cpp:1783 void _removeColRangeReal(int start, int end, int perm[]) removes columns start to end including both; an array perm of size numColsReal() may be passed as buf... void addRowsRational(const LPRowSetRational &lprowset) adds multiple rows Definition: soplex.cpp:1898 const SVectorRational & rowVectorRational(int i) const returns vector of row i Definition: soplex.cpp:1075 Steepest edge pricer. const UnitVectorRational * _unitVectorRational(const int i) returns pointer to a constant unit vector available until destruction of the SoPlex class ... Definition: soplex.cpp:7376 void _syncRealSolution() synchronizes real solution with rational solution, i.e., copies real solution to rational solution ... Definition: soplex.cpp:7352 void removeColsRational(int perm[]) removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates th... Definition: soplex.cpp:2621 Fast shifting ratio test.Class SPxFastRT is an implementation class of SPxRatioTester providing fast ... Definition: spxfastrt.h:41 bool _lowerFinite(const RangeType &rangeType) const checks whether RangeType corresponds to finite lower bound Definition: soplex.cpp:6442 void changeRhsRational(const VectorRational &rhs) changes right-hand side vector to rhs Definition: soplex.cpp:2085 int dmaxSizeDualRational(const int base=2) get size of largest denominator in dual solution Definition: soplex.cpp:3706 RangeType _rangeTypeReal(const Real &lower, const Real &upper) const determines RangeType from real bounds Definition: soplex.cpp:6379 int dlcmSizePrimalRational(const int base=2) get size of least common multiple of denominators in primal solution Definition: soplex.cpp:3664 Rational objValueRational() returns the objective value if a primal solution is available Definition: soplex.cpp:3139 DataArray< SPxSolver::VarStatus > _basisStatusCols Definition: soplex.h:1432 decide depending on tolerances whether to apply iterative refinement Definition: soplex.h:1096 bool boolParam(const BoolParam param) const returns boolean parameter value Definition: soplex.cpp:4846 automatic choice according to number of rows and columns Definition: soplex.h:932 void removeRowRangeReal(int start, int end, int perm[]=0) removes rows start to end including both; an array perm of size numRowsReal() may be passed as buffer... Definition: soplex.cpp:1691 SPxBoundFlippingRT _ratiotesterBoundFlipping Definition: soplex.h:1352 geometric mean scaling on rows and columns, max 8 rounds Definition: soplex.h:1009 const VectorReal & maxObjReal() const returns objective function vector after transformation to a maximization problem; since this is how i... Definition: soplex.cpp:969 void _solveRealLPAndRecordStatistics() call floating-point solver and update statistics on iterations etc. Definition: soplex.cpp:7109 bool writeBasisFile(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const writes basis information to filename; if rowNames and colNames are NULL, default names are used; retu... Definition: soplex.cpp:4707 void printSolvingStatistics(std::ostream &os) prints statistics on solving process Definition: soplex.cpp:5896 bool _readFileRational(const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) reads rational LP in LP or MPS format from file and returns true on success; gets row names... Definition: soplex.cpp:7237 lower threshold in lifting (nonzero matrix coefficients with smaller absolute value will be reformula... Definition: soplex.h:1184 bool getPrimalRayReal(VectorReal &vector) gets the primal ray if available; returns true on success Definition: soplex.cpp:2895 void changeLhsReal(const VectorReal &lhs) changes left-hand side vector for constraints to lhs Definition: soplex.cpp:1332 greedy crash basis weighted by objective, bounds, and sides Definition: soplex.h:1019 void _changeLowerReal(const VectorReal &lower) changes vector of lower bounds to lower and adjusts basis Definition: soplex.cpp:6735 bool setRealParam(const RealParam param, const Real value, const bool quiet=false, const bool init=false) sets real parameter value; returns true on success Definition: soplex.cpp:5245 void _performOptIRStable(SolRational &sol, bool acceptUnbounded, bool acceptInfeasible, int minRounds, bool &primalFeasible, bool &dualFeasible, bool &infeasible, bool &unbounded, bool &stopped, bool &stoppedIter, bool &error) solves current problem with iterative refinement and recovery mechanism Definition: solverational.cpp:353 dual simplex algorithm, i.e., leaving for column and entering for row representation ... Definition: soplex.h:948 LP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded t... Definition: spxsimplifier.h:41 steepest edge pricer with initialization to unit norms Definition: soplex.h:1044 use bound flipping also for row representation? Definition: soplex.h:839 preconfigured SoPlexLegacy LP-solver. bool getDualViolationReal(Real &maxviol, Real &sumviol) gets violation of dual multipliers; returns true on success Definition: soplex.cpp:3085 Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth... Definition: spxout.h:63 void getColsReal(int start, int end, LPColSetReal &lpcolset) const gets columns start, ..., end Definition: soplex.cpp:896 void changeLowerReal(const VectorReal &lower) changes vector of lower bounds to lower Definition: soplex.cpp:1461 void _restoreLPReal() restores objective, bounds, and sides of real LP Definition: solverational.cpp:1861 LPRowReal::Type rowTypeReal(int i) const returns inequality type of row i Definition: soplex.cpp:878 void _performUnboundedIRStable(SolRational &sol, bool &hasUnboundedRay, bool &stopped, bool &stoppedIter, bool &error) performs iterative refinement on the auxiliary problem for testing unboundedness Definition: solverational.cpp:1406 main LP solver class round scaling factors for iterative refinement to powers of two? Definition: soplex.h:830 void _computeInfeasBox(SolRational &sol, bool transformed) Definition: solverational.cpp:2828 int dlcmSizeDualRational(const int base=2) get size of least common multiple of denominators in dual solution Definition: soplex.cpp:3678 Auto pricer. Statistics * _statistics statistics since last call to solveReal() or solveRational() Definition: soplex.h:1308 void _evaluateSolutionReal(SPxSimplifier::Result simplificationStatus) checks result of the solving process and solves again without preprocessing if necessary ... Definition: solvereal.cpp:46 RangeType _switchRangeType(const RangeType &rangeType) const switches RANGETYPE_LOWER to RANGETYPE_UPPER and vice versa Definition: soplex.cpp:6429 void _removeRowsReal(int perm[]) removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the n... Definition: soplex.cpp:6909 void _syncLPRational(bool time=true) synchronizes rational LP with real LP, i.e., copies real LP to rational LP, without looking at the sy... Definition: soplex.cpp:7333 void changeBoundsReal(const VectorReal &lower, const VectorReal &upper) changes vectors of column bounds to lower and upper Definition: soplex.cpp:1536 void syncLPReal() synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP... Definition: soplex.cpp:1821 bool _reconstructSolutionRational(SolRational &sol, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, const Rational &denomBoundSquared) attempts rational reconstruction of primal-dual solution Definition: solverational.cpp:3886 bool getPrimalRational(VectorRational &vector) gets the primal solution vector if available; returns true on success Definition: soplex.cpp:3175 Solution vector based start basis.This version of SPxWeightST can be used to construct a starting bas... Definition: spxvectorst.h:44 void changeObjRational(const VectorRational &obj) changes objective function vector to obj Definition: soplex.cpp:2407 void getObjRational(VectorRational &obj) const gets objective function vector Definition: soplex.cpp:1192 void getBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) const gets current basis via arrays of statuses Definition: soplex.cpp:3810 void _removeRowRangeReal(int start, int end, int perm[]) removes rows start to end including both; an array perm of size numRowsReal() may be passed as buffer... Dynamic index set.Class DIdxSet provides dynamic IdxSet in the sense, that no restrictions are posed ... Definition: didxset.h:42 void syncLPRational() synchronizes rational LP with real LP, i.e., copies real LP to rational LP, if sync mode is manual ... Definition: soplex.cpp:2711 bool getRedCostReal(VectorReal &vector) gets the vector of reduced cost values if available; returns true on success Definition: soplex.cpp:2925 Simple heuristic SPxStarter. void _ensureDSVectorRationalMemory(DSVectorRational &vec, const int newmax) const extends sparse vector to hold newmax entries if and only if it holds no more free entries ... Definition: soplex.cpp:6301 bool parseSettingsString(char *line) parses one setting string and returns true on success; note that string is modified ... Definition: soplex.cpp:5581 void changeBoundsRational(const VectorRational &lower, const VectorRational &upper) changes vectors of column bounds to lower and upper Definition: soplex.cpp:2347 (In)equality for LPs.Class LPRowBase provides constraints for linear programs in the form where a is... Definition: lprowbase.h:45 Sparse vector .A UnitVectorBase is an SVectorBase that can take only one nonzero value with value 1 b... Definition: unitvectorbase.h:44 Bound flipping ratio test (long step dual) for SoPlex. const SVectorRational & colVectorRational(int i) const returns vector of column i Definition: soplex.cpp:1147 void _syncRationalSolution() synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real s... Definition: soplex.cpp:7364 Debugging, floating point type and parameter definitions. Set of strings.Class NameSet implements a symbol or name table. It allows to store or remove names (i... Definition: nameset.h:61 partial multiple pricer based on Dantzig pricing Definition: soplex.h:1038 lower and upper bound finite, but different Definition: soplex.h:1413 Sequential object-oriented SimPlex.SPxSolver is an LP solver class using the revised Simplex algorith... Definition: spxsolver.h:84 void _storeLPReal() stores objective, bounds, and sides of real LP Definition: solverational.cpp:1840 void printStatus(std::ostream &os, SPxSolver::Status status) prints status Definition: soplex.cpp:5936 threshold on number of rows vs. number of columns for switching from column to row representations in... Definition: soplex.h:1193 Collection of dense, sparse, and semi-sparse vectors. column representation Ax - s = 0, lower <= x <= upper, lhs <= s <= rhs Definition: soplex.h:935 bool getSlacksReal(VectorReal &vector) gets the vector of slack values if available; returns true on success Definition: soplex.cpp:2880 Implementation of Sparse Linear Solver.This class implements a SLinSolver interface by using the spar... Definition: slufactor.h:41 bool writeFileRational(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const writes rational LP to file; LP or MPS format is chosen from the extension in filename; if rowNames an... Definition: soplex.cpp:4498 bool areLPsInSync(const bool checkVecVals=true, const bool checkMatVals=false, const bool quiet=false) const checks if real LP and rational LP are in sync; dimensions will always be compared, vector and matrix values only if the respective parameter is set to true. If quiet is set to true the function will only display which vectors are different. Definition: soplex.cpp:6042 void getRowsRational(int start, int end, LPRowSetRational &lprowset) const gets rows start, ..., end. Definition: soplex.cpp:1066 Everything should be within this namespace. void getNdualNorms(int &nnormsRow, int &nnormsCol) const gets number of available dual norms Definition: soplex.cpp:988 void _changeLhsReal(const VectorReal &lhs) changes left-hand side vector for constraints to lhs and adjusts basis Definition: soplex.cpp:6585 working tolerance for feasibility in floating-point solver during iterative refinement ... Definition: soplex.h:1175 bool loadSettingsFile(const char *filename) reads settings file; returns true on success Definition: soplex.cpp:5532 void _preprocessAndSolveReal(bool applyPreprocessing) solves real LP with/without preprocessing Definition: solvereal.cpp:139 Dantzig pricer.Class SPxDantzigPR is an implementation class of an SPxPricer implementing Dantzig's d... Definition: spxdantzigpr.h:38 bool getRedCostViolationRational(Rational &maxviol, Rational &sumviol) gets violation of reduced costs; returns true on success Definition: soplex.cpp:3349 Harris pricing with shifting. Rational maxAbsNonzeroRational() const returns biggest non-zero element in absolute value Definition: soplex.cpp:1048 void _changeRowReal(int i, const LPRowReal &lprow) replaces row i with lprow and adjusts basis Definition: soplex.cpp:6563 bool getBasisInverseTimesVecReal(Real *rhs, Real *sol) computes dense solution of basis matrix B * sol = rhs; returns true on success Definition: soplex.cpp:4247 row representation (lower,lhs) <= (x,Ax) <= (upper,rhs) Definition: soplex.h:938 apply rational reconstruction after each iterative refinement? Definition: soplex.h:827 void _changeColReal(int i, const LPColReal &lpcol) replaces column i with lpcol and adjusts basis Definition: soplex.cpp:6711 SPxBasis::SPxStatus basisStatus() const returns the current basis status Definition: soplex.cpp:3728 Weighted start basis. Saving LPs in a form suitable for SoPlex.Class SPxLPBase provides the data structures required for sa... Definition: spxlpbase.h:76 bool getDualReal(VectorReal &vector) gets the dual solution vector if available; returns true on success Definition: soplex.cpp:2910 void changeColReal(int i, const LPColReal &lpcol) replaces column i with lpcol Definition: soplex.cpp:1443 Steepest edge pricer with exact initialization of weights. working tolerance for optimality in floating-point solver during iterative refinement ... Definition: soplex.h:1178 bool writeFileReal(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const writes real LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and co... Definition: soplex.cpp:4486 LP scaling base class. RangeType _rangeTypeRational(const Rational &lower, const Rational &upper) const determines RangeType from rational bounds Definition: soplex.cpp:6404 bool getBoundViolationReal(Real &maxviol, Real &sumviol) gets violation of bounds; returns true on success Definition: soplex.cpp:2955 Simple heuristic SPxStarter.Testing version of an SPxVectorST using a very simplistic heuristic to bu... Definition: spxsumst.h:37 Weighted start basis.Class SPxWeightST is an implementation of a SPxStarter for generating a Simplex ... Definition: spxweightst.h:56 SPxSolver::VarStatus basisColStatus(int col) const returns basis status for a single column Definition: soplex.cpp:3774 bool getBasisInverseColReal(int c, Real *coef, int *inds=NULL, int *ninds=NULL) computes column c of basis inverse; returns true on success Definition: soplex.cpp:4103 Partial multiple pricing. void _resolveWithoutPreprocessing(SPxSimplifier::Result simplificationStatus) loads original problem into solver and solves again after it has been solved to optimality with prepr... Definition: solvereal.cpp:229 Textbook ratio test for SoPlex.Class SPxDefaultRT provides an implementation of the textbook ratio te... Definition: spxdefaultrt.h:42 void _recomputeRangeTypesReal() recomputes range types from scratch using real LP Definition: soplex.cpp:7284 should feasibility be tested with relaxed bounds and sides? Definition: soplex.h:836 const VectorRational & lhsRational() const returns left-hand side vector Definition: soplex.cpp:1102 DataArray< UnitVectorRational * > _unitMatrixRational Definition: soplex.h:1395 bool getDualFarkasRational(VectorRational &vector) gets the Farkas proof if LP is infeasible; returns true on success Definition: soplex.cpp:3250 LP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in ... Definition: spxscaler.h:39 DataArray< SPxSolver::VarStatus > _basisStatusRows Definition: soplex.h:1431 should dual infeasibility be tested in order to try to return a dual solution even if primal infeasib... Definition: soplex.h:818 void _factorizeColumnRational(SolRational &sol, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &stoppedTime, bool &stoppedIter, bool &error, bool &optimal) factorizes rational basis matrix in column representation Definition: solverational.cpp:3489 int intParam(const IntParam param) const returns integer parameter value Definition: soplex.cpp:4856 should lifting be used to reduce range of nonzero matrix coefficients? Definition: soplex.h:812 int dmaxSizePrimalRational(const int base=2) get size of largest denominator in primal solution Definition: soplex.cpp:3692 bool getEstimatedCondition(Real &condition) computes an estimated condition number for the current basis matrix using the power method; returns t... Definition: soplex.cpp:3929 LPRowRational::Type rowTypeRational(int i) const returns inequality type of row i Definition: soplex.cpp:1120 bool getExactCondition(Real &condition) computes the exact condition number for the current basis matrix using the power method; returns true... Definition: soplex.cpp:3944 bool saveSettingsFile(const char *filename, const bool onlyChanged=false) const writes settings file; returns true on success Definition: soplex.cpp:5463 bool getBasisInverseRowReal(int r, Real *coef, int *inds=NULL, int *ninds=NULL) computes row r of basis inverse; returns true on success Definition: soplex.cpp:3959 zero tolerance used in update of the factorization Definition: soplex.h:1157 void changeLowerRational(const VectorRational &lower) changes vector of lower bounds to lower Definition: soplex.cpp:2227 void writeStateReal(const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL... Definition: soplex.cpp:4805 bool getRedCostViolationReal(Real &maxviol, Real &sumviol) gets violation of reduced costs; returns true on success Definition: soplex.cpp:3031 void _changeBoundsReal(const VectorReal &lower, const VectorReal &upper) changes vectors of column bounds to lower and upper and adjusts basis Definition: soplex.cpp:6815 sparse pricing threshold (#violations < dimension * SPARSITY_THRESHOLD activates sparse pricing) ... Definition: soplex.h:1190 bool getPrimalRayRational(VectorRational &vector) gets the primal ray if LP is unbounded; returns true on success Definition: soplex.cpp:3205 void _ensureRealLPLoaded() ensures that the real LP and the basis are loaded in the solver; performs no sync ... Definition: soplex.cpp:7082 void changeRowReal(int i, const LPRowReal &lprow) replaces row i with lprow Definition: soplex.cpp:1314 Hybrid pricer. Textbook ratio test for SoPlex. Real objValueReal() returns the objective value if a primal solution is available Definition: soplex.cpp:2839 bool _parseSettingsLine(char *line, const int lineNumber) parses one line in a settings file and returns true on success; note that the string is modified ... Definition: soplex.cpp:7399 void changeRhsReal(const VectorReal &rhs) changes right-hand side vector to rhs Definition: soplex.cpp:1369 geometric frequency at which to apply rational reconstruction Definition: soplex.h:1196 void changeElementRational(int i, int j, const Rational &val) changes matrix entry in row i and column j to val Definition: soplex.cpp:2463 void _enableSimplifierAndScaler() enables simplifier and scaler according to current parameters Definition: soplex.cpp:7017 primal simplex algorithm, i.e., entering for column and leaving for row representation ... Definition: soplex.h:945 LP euilibrium scaling. should LP be transformed to equality form before a rational solve? Definition: soplex.h:815 void getBasisInd(int *bind) const gets the indices of the basic columns and rows; basic column n gives value n, basic row m gives value... Definition: soplex.cpp:3850 Equilibrium row/column scaling.This SPxScaler implementation performs equilibrium scaling of the LPs ... Definition: spxequilisc.h:35 void _storeSolutionReal() stores solution of the real LP; before calling this, the real LP must be loaded in the solver and sol... Definition: solvereal.cpp:312 upper threshold in lifting (nonzero matrix coefficients with larger absolute value will be reformulat... Definition: soplex.h:1187 DataArray< SPxSolver::VarStatus > _storedBasisStatusRows Definition: soplex.h:1393 void _addRowsReal(const LPRowSetReal &lprowset) adds multiple rows to the real LP and adjusts basis Definition: soplex.cpp:6488 const SVectorReal & colVectorReal(int i) const returns vector of column i Definition: soplex.cpp:905 void changeUpperReal(const VectorReal &upper) changes vector of upper bounds to upper Definition: soplex.cpp:1499 void _lift() reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al... Definition: solverational.cpp:1572 LP column.Class LPColBase provides a datatype for storing the column of an LP a the form similar to ... Definition: lpcolbase.h:45 void removeRowRangeRational(int start, int end, int perm[]=0) removes rows start to end including both; an array perm of size numRowsRational() may be passed as bu... Definition: soplex.cpp:2576 geometric mean scaling on rows and columns, max 1 round Definition: soplex.h:1006 void _untransformEquality(SolRational &sol) undoes transformation to equality form Definition: solverational.cpp:1993 void setBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) sets starting basis via arrays of statuses Definition: soplex.cpp:4355 Steepest edge pricer.Class SPxSteepPR implements a steepest edge pricer to be used with SoPlex... Definition: spxsteeppr.h:41 Harris pricing with shifting.Class SPxHarrisRT is a stable implementation of a SPxRatioTester class a... Definition: spxharrisrt.h:40 upper bound is finite, lower bound is infinite Definition: soplex.h:1410 Definition: statistics.h:34 bool getBoundViolationRational(Rational &maxviol, Rational &sumviol) gets violation of bounds; returns true on success Definition: soplex.cpp:3265 LP simplifier for removing uneccessary row/columns.This SPxSimplifier is mainly based on the paper "P... Definition: spxmainsm.h:60 void _untransformFeasibility(SolRational &sol, bool infeasible) undoes transformation to feasibility problem Definition: solverational.cpp:2640 void removeRowsReal(int perm[]) removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the n... Definition: soplex.cpp:1643 |