Loading...
Searching...
No Matches
spxsolver.h
Go to the documentation of this file.
49#define SOPLEX_HYPERPRICINGTHRESHOLD 5000 /**< do (auto) hyper pricing only if problem size (cols+rows) is larger than SOPLEX_HYPERPRICINGTHRESHOLD */
53#define SOPLEX_SPARSITY_TRADEOFF 0.8 /**< threshold to decide whether Ids or coIds are preferred to enter the basis;
56#define SOPLEX_MAXNCLCKSKIPS 32 /**< maximum number of clock skips (iterations without time measuring) */
57#define SOPLEX_SAFETYFACTOR 1e-2 /**< the probability to skip the clock when the time limit has been reached */
58#define SOPLEX_NINITCALLS 200 /**< the number of clock updates in isTimelimitReached() before clock skipping starts */
127 };
162 };
193 };
202 UNDEFINED ///< nothing known about basis status (possibly due to a singular basis in transformed problem)
203 };
228 OPTIMAL_UNSCALED_VIOLATIONS = 5 ///< LP has beed solved to optimality but unscaled solution contains violations.
229 };
235 POLISH_INTEGRALITY, ///< maximize number of basic slack variables, i.e. more variables on bounds
236 POLISH_FRACTIONALITY ///< minimize number of basic slack variables, i.e. more variables in between bounds
237 };
282 solveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
284 solveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
286 solveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
288 solveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
290 coSolveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
292 coSolveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
294 coSolveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
296 coSolveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
329 int storeBasisSimplexFreq; ///< number of simplex pivots -1 to perform before storing stable basis
332 fullPerturbation; ///< whether to perturb the entire problem or just the bounds relevant for the current pivot
334 printBasisMetric; ///< printing the current basis metric in the log (-1: off, 0: condition estimate, 1: trace, 2: determinant, 3: condition)
424 /// determine ranges of problem values for bounds, sides and objective to assess numerical difficulties
430 /// The random number generator used throughout the whole computation. Its seed can be modified.
433 /** For the leaving Simplex algorithm this vector contains the indices of infeasible basic variables;
434 * for the entering Simplex algorithm this vector contains the indices of infeasible slack variables.
437 /**For the entering Simplex algorithm these vectors contains the indices of infeasible basic variables.
441 /// store indices that were changed in the previous iteration and must be checked in hyper pricing
450 isInfeasible; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
452 isInfeasibleCo; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
456 bool sparsePricingEnter; ///< true if sparsePricing is turned on in the entering Simplex for slack variables
461 int remainingRoundsLeave; ///< number of dense rounds/refactorizations until sparsePricing is enabled again
483 integerVariables; ///< supplementary variable information, 0: continous variable, 1: integer variable
513 /// set refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix
519 /// set refactor threshold for fill-in in current factor update compared to fill-in in last factorization
525 /// set refactor threshold for memory growth in current factor update compared to the last factorization
606 /// setup linear solver to use. If \p destroy is true, \p slusolver will be freed in destructor.
612 /// setup starting basis generator to use. If \p destroy is true, \p starter will be freed in destructor.
621 /// set \ref soplex::SPxSolverBase<R>::LEAVE "LEAVE" or \ref soplex::SPxSolverBase<R>::ENTER "ENTER" algorithm.
623 /// set \ref soplex::SPxSolverBase<R>::FULL "FULL" or \ref soplex::SPxSolverBase<R>::PARTIAL "PARTIAL" pricing.
653 * LP is written in MPS format to "\p filename".mps, basis is written in "\p filename".bas, and parameters
654 * are written to "\p filename".set. If \p rowNames and \p colNames are \c nullptr, default names are used for
885 /// guaranteed primal and dual bound violation for optimal solution, returning the maximum of floatingPointFeastol() and floatingPointOpttol().
1040 /// \p scale determines whether the new data needs to be scaled according to the existing LP (persistent scaling)
1145 virtual void changeRange(SPxRowId p_id, const R& p_newLhs, const R& p_newRhs, bool scale = false)
1647 /// compute and return \ref soplex::SPxSolverBase<R>::test() "test()"[i] in \ref soplex::SPxSolverBase<R>::ENTER "ENTER"ing Simplex.
1856 /// check for violations above tol and immediately return false w/o checking the remaining values
1857 /** This method is useful for verifying whether an objective limit can be used as termination criterion
2255 /// returns whether current time limit is reached; call to time() may be skipped unless \p forceCheck is true
Save arrays of arbitrary types. Bound flipping ratio test ("long step dual") for SoPlex. Definition spxsolver.h:70 bool isValid() const returns TRUE iff the id is a valid column or row identifier. Definition spxid.h:153 int number(const SPxRowId &id) const Returns the row number of the row with identifier id. Definition spxlpbase.h:566 const LPColSetBase< R > * lpcolset() const Returns the LP as an LPColSetBase. Definition spxlpbase.h:2140 const VectorBase< R > & lower() const Returns (internal and possibly scaled) lower bound vector. Definition spxlpbase.h:527 virtual void clearRowObjs() Clears row objective function values for all rows. Definition spxlpbase.h:1739 const LPRowSetBase< R > * lprowset() const Returns the LP as an LPRowSetBase. Definition spxlpbase.h:2134 Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth... Definition spxout.h:78 void setOutstream(SPxOut &newOutstream) Definition spxsolver.h:486 virtual void changeElement(int i, int j, const R &val, bool scale=false) bool getDualNorms(int &nnormsRow, int &nnormsCol, R *norms) const get dual norms void setSolverStatus(typename SPxSolverBase< R >::Status stat) setting the solver status external from the solve loop. Definition spxsolver.h:2167 DIdxSet updateViols store indices that were changed in the previous iteration and must be checked in hyper pricing Definition spxsolver.h:442 R entertol() const feasibility tolerance maintained by ratio test during ENTER algorithm. Definition spxsolver.h:855 virtual void changeRange(int i, const R &newLhs, const R &newRhs, bool scale=false) int storeBasisSimplexFreq number of simplex pivots -1 to perform before storing stable basis Definition spxsolver.h:329 virtual void qualRedCostViolation(R &maxviol, R &sumviol) const get violation of optimality criterion. virtual void changeCol(SPxColId p_id, const LPColBase< R > &p_newCol, bool scale=false) Definition spxsolver.h:1161 virtual void changeElement(SPxRowId rid, SPxColId cid, const R &val, bool scale=false) Definition spxsolver.h:1169 int primalIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2231 int printBasisMetric printing the current basis metric in the log (-1: off, 0: condition estimate, 1: trace,... Definition spxsolver.h:334 virtual void changeMaxObj(int i, const R &newVal, bool scale=false) virtual void changeRhs(int i, const R &newRhs, bool scale=false) void testBounds() const virtual void doRemoveRows(int perm[]) virtual void changeSense(typename SPxLPBase< R >::SPxSense sns) virtual void setTester(SPxRatioTester< R > *tester, const bool destroy=false) setup ratio-tester to use. If destroy is true, tester will be freed in destructor. bool freeRatioTester true iff theratiotester should be freed inside of object Definition spxsolver.h:299 void setup4solve(SSVectorBase< R > *p_y, SSVectorBase< R > *p_rhs) Setup vectors to be solved within Simplex loop. Definition spxsolver.h:1800 SolutionPolish getSolutionPolishing() return objective of solution polishing Definition spxsolver.h:693 bool solvingForBoosted is this solver involved in a higher precision solving scheme? Definition spxsolver.h:328 R delta() const guaranteed primal and dual bound violation for optimal solution, returning the maximum of floatingPoi... Definition spxsolver.h:886 Real theCumulativeTime cumulative time spent in all calls to method solve() Definition spxsolver.h:253 VarStatus basisStatusToVarStatus(typename SPxBasisBase< R >::Desc::Status stat) const converts basis status to VarStatus void setDualColBounds() virtual Status getPrimalSol(VectorBase< R > &vector) const get solution vector for primal variables. virtual void changeBounds(const VectorBase< R > &newLower, const VectorBase< R > &newUpper, bool scale=false) void setDualRowBounds() DataArray< int > integerVariables supplementary variable information, 0: continous variable, 1: integer variable Definition spxsolver.h:483 virtual void setTerminationValue(R value=R(infinity)) set objective limit. void shiftPvec() Perform initial shifting to optain an feasible or pricable basis. bool setDualNorms(int nnormsRow, int nnormsCol, R *norms) set dual norms virtual void computeFrhs1(const VectorBase< R > &, const VectorBase< R > &) SSVectorBase< R > * coSolveVector2 when 2 systems are to be solved at a time; typically for speepest edge weights Definition spxsolver.h:290 virtual void qualBoundViolation(R &maxviol, R &sumviol) const get violations of bounds. const SVSetBase< R > * thecovectors the LP coVectors according to representation Definition spxsolver.h:345 void useFullPerturbation(bool full) perturb entire problem or only the bounds relevant to the current pivot Definition spxsolver.h:986 virtual void changeMaxObj(SPxColId p_id, const R &p_newVal, bool scale=false) overloading a virtual function Definition spxsolver.h:1058 VarStatus getBasisColStatus(int col) const gets basis status for a single column virtual void changeObj(SPxColId p_id, const R &p_newVal, bool scale=false) overloading a virtual function Definition spxsolver.h:1048 void setPrimalBounds() setup feasibility bounds for entering algorithm int nClckSkipsLeft remaining number of times the clock can be safely skipped Definition spxsolver.h:256 void setup4solve2(SSVectorBase< R > *p_y2, SSVectorBase< R > *p_rhs2) Setup vectors to be solved within Simplex loop. Definition spxsolver.h:1814 bool hyperPricingLeave true if hyper sparse pricing is turned on in the leaving Simplex Definition spxsolver.h:458 virtual void setStarter(SPxStarter< R > *starter, const bool destroy=false) setup starting basis generator to use. If destroy is true, starter will be freed in destructor. bool sparsePricingEnter true if sparsePricing is turned on in the entering Simplex for slack variables Definition spxsolver.h:456 Status getBasis(VarStatus rows[], VarStatus cols[], const int rowsSize=-1, const int colsSize=-1) const get current basis, and return solver status. void getLhs(VectorBase< R > &p_lhs) const copy lhs value VectorBase<R> to p_lhs. Definition spxsolver.h:2301 virtual Status getSlacks(VectorBase< R > &vector) const get VectorBase<R> of slack variables. bool updateNonbasicValue(R objChange) Random random The random number generator used throughout the whole computation. Its seed can be modified. Definition spxsolver.h:431 virtual ~SPxSolverBase() void clearDualBounds(typename SPxBasisBase< R >::Desc::Status, R &, R &) const virtual void changeCol(int i, const LPColBase< R > &newCol, bool scale=false) virtual void ungetEnterVal(SPxId enterId, typename SPxBasisBase< R >::Desc::Status enterStat, R leaveVal, const SVectorBase< R > &vec, StableSum< R > &objChange) void setup4coSolve(SSVectorBase< R > *p_y, SSVectorBase< R > *p_rhs) Setup vectors to be cosolved within Simplex loop. Definition spxsolver.h:1828 virtual void computeLeaveCoPrhs() compute theCoPrhs for leaving Simplex. virtual void perturbMinEnter(void) virtual Status getRedCostSol(VectorBase< R > &vector) const get vector of reduced costs. DataArray< VarStatus > oldBasisStatusRows stored stable basis met before a simplex pivot (used to warm start the solver) Definition spxsolver.h:323 DataArray< VarStatus > & getOldBasisStatusCols() Definition spxsolver.h:947 virtual bool precisionReached(R &newpricertol) const is the solution precise enough, or should we increase delta() ? virtual void qualSlackViolation(R &maxviol, R &sumviol) const get the residuum |Ax-b|. virtual void changeRhs(const VectorBase< R > &newRhs, bool scale=false) bool performSolutionPolishing() void setSolvingForBoosted(bool value) Definition spxsolver.h:953 virtual void setTolerances(std::shared_ptr< Tolerances > newTolerances) set the _tolerances member variable Definition spxsolver.h:493 bool isTimeLimitReached(const bool forceCheck=false) returns whether current time limit is reached; call to time() may be skipped unless forceCheck is tru... void setMemFactor(R f) set refactor threshold for memory growth in current factor update compared to the last factorization Definition spxsolver.h:526 void forceRecompNonbasicValue() Definition spxsolver.h:725 virtual void changeLhs(SPxRowId p_id, const R &p_newLhs, bool scale=false) Definition spxsolver.h:1122 void setSparsePricingFactor(R fac) Definition spxsolver.h:933 const SVectorBase< R > & vector(const SPxRowId &rid) const Definition spxsolver.h:1269 void setup4coSolve2(SSVectorBase< R > *p_z, SSVectorBase< R > *p_rhs) Setup vectors to be cosolved within Simplex loop. Definition spxsolver.h:1840 const SVectorBase< R > & vector(const SPxId &p_id) const VectorBase<R> associated to p_id. Definition spxsolver.h:1294 void setRep(Representation p_rep) switch to ROW or COLUMN representation if not already used. DataArray< VarStatus > & getOldBasisStatusRows() Definition spxsolver.h:941 virtual Status solve(volatile bool *interrupt=nullptr, bool polish=true) solve loaded LP. void setMetricInformation(int type) print basis metric within the usual output Definition spxsolver.h:927 virtual void setEnterBounds() R coTest(int i, typename SPxBasisBase< R >::Desc::Status stat) const test coVector i with status stat. void setRedCost(VectorBase< R > &p_vector) virtual const SVectorBase< R > * enterVector(const SPxId &p_id) Get pointer to the id 'th vector. Definition spxsolver.h:2002 void invalidateBasis() invalidates the basis, triggers refactorization virtual void setLeaveBounds() virtual void changeUpper(int i, const R &newUpper, bool scale=false) virtual void changeLowerStatus(int i, R newLower, R oldLower=0.0) VarStatus getBasisRowStatus(int row) const gets basis status for a single row virtual void getEnterVals(SPxId id, R &enterTest, R &enterUB, R &enterLB, R &enterVal, R &enterMax, R &enterPric, typename SPxBasisBase< R >::Desc::Status &enterStat, R &enterRO, StableSum< R > &objChange) const SVSetBase< R > * thevectors the LP vectors according to representation Definition spxsolver.h:344 @ OPTIMAL_UNSCALED_VIOLATIONS LP has beed solved to optimality but unscaled solution contains violations. Definition spxsolver.h:228 SPxSolverBase(Type type=LEAVE, Representation rep=ROW, Timer::TYPE ttype=Timer::USER_TIME) default constructor. virtual void setupPupdate(void) virtual void changeObj(const VectorBase< R > &newObj, bool scale=false) scale determines whether the new data needs to be scaled according to the existing LP (persistent sca... void setDual(VectorBase< R > &p_vector) SPxBasisBase< R >::Desc::Status covarStatus(int i) const Status of i 'th covariable. Definition spxsolver.h:1363 R perturbMin(const UpdateVector< R > &uvec, VectorBase< R > &low, VectorBase< R > &up, R eps, R delta, const typename SPxBasisBase< R >::Desc::Status *stat, int start, int incr) bool enter(SPxId &id, bool polish=false) void setEnterBound4Row(int, int) void computeDualfarkas4Row(R direction, SPxId enterId) virtual bool read(std::istream &in, NameSet *rowNames=nullptr, NameSet *colNames=nullptr, DIdxSet *intVars=nullptr) read LP from input stream. void getRhs(VectorBase< R > &p_rhs) const copy rhs value VectorBase<R> to p_rhs. Definition spxsolver.h:2307 void calculateProblemRanges() determine ranges of problem values for bounds, sides and objective to assess numerical difficulties virtual void doRemoveCols(int perm[]) bool isTerminationValueEnabled() const true if objective limit should be used in the next solve Definition spxsolver.h:699 virtual void changeUpper(SPxColId p_id, const R &p_newUpper, bool scale=false) overloading virtual function Definition spxsolver.h:1098 virtual void changeRowObj(int i, const R &newVal, bool scale=false) R getDegeneracyLevel(VectorBase< R > degenvec) get level of dual degeneracy void computeEnterCoPrhs4Row(int i, int n) virtual void setBasisSolver(SLinSolver< R > *slu, const bool destroy=false) setup linear solver to use. If destroy is true, slusolver will be freed in destructor. void setFillFactor(R f) set refactor threshold for fill-in in current factor update compared to fill-in in last factorization Definition spxsolver.h:520 int numCycle() const actual number of degenerate simplex steps encountered so far. Definition spxsolver.h:980 void unscaleLPandReloadBasis() unscales the LP and reloads the basis virtual void loadLP(const SPxLPBase< R > &LP, bool initSlackBasis=true) copy LP. virtual void changeLower(SPxColId p_id, const R &p_newLower, bool scale=false) Definition spxsolver.h:1086 virtual void changeRange(SPxRowId p_id, const R &p_newLhs, const R &p_newRhs, bool scale=false) Definition spxsolver.h:1145 @ UNDEFINED nothing known about basis status (possibly due to a singular basis in transformed problem) Definition spxsolver.h:202 int subversion() const return the internal subversion of SPxSolverBase as number Definition spxsolver.h:539 virtual void changeMaxObj(const VectorBase< R > &newObj, bool scale=false) virtual void changeRange(const VectorBase< R > &newLhs, const VectorBase< R > &newRhs, bool scale=false) const SVectorBase< R > & coVector(const SPxId &p_id) const coVector associated to p_id. Definition spxsolver.h:1334 DSVectorBase< R > dualFarkas stores dual farkas proof in case of infeasibility Definition spxsolver.h:392 void setNonzeroFactor(R f) set refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix Definition spxsolver.h:514 bool useTerminationValue true, if objective limit should be used in the next solve. Definition spxsolver.h:259 R perturbMax(const UpdateVector< R > &uvec, VectorBase< R > &low, VectorBase< R > &up, R eps, R delta, const typename SPxBasisBase< R >::Desc::Status *stat, int start, int incr) virtual void changeUpper(const VectorBase< R > &newUpper, bool scale=false) virtual void setPricer(SPxPricer< R > *pricer, const bool destroy=false) setup pricer to use. If destroy is true, pricer will be freed in destructor. SSVectorBase< R > * coSolveVector2rhs when 2 systems are to be solved at a time; typically for speepest edge weights Definition spxsolver.h:292 virtual bool noViols(R tol) const check for violations above tol and immediately return false w/o checking the remaining values Timer * multTimeColwise time spent in setupPupdate(), columnwise multiplication Definition spxsolver.h:473 SSVectorBase< R > * solveVector3 when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition spxsolver.h:286 const SPxRatioTester< R > * ratiotester() const return loaded SPxRatioTester. Definition spxsolver.h:1887 int dualIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2238 virtual void computeEnterCoPrhs() compute theCoPrhs for entering Simplex. const SVectorBase< R > & coVector(const SPxColId &cid) const Definition spxsolver.h:1320 R test(int i, typename SPxBasisBase< R >::Desc::Status stat) const test VectorBase<R> i with status stat. bool fullPerturbation whether to perturb the entire problem or just the bounds relevant for the current pivot Definition spxsolver.h:332 virtual void factorizeAndRecompute() const SVectorBase< R > & vector(const SPxColId &cid) const Definition spxsolver.h:1277 bool leave(int i, bool polish=false) virtual void perturbMinLeave(void) bool sparsePricingEnterCo true if sparsePricing is turned on in the entering Simplex Definition spxsolver.h:457 int version() const return the version of SPxSolverBase as number like 123 for 1.2.3 Definition spxsolver.h:534 Status getResult(R *value=0, VectorBase< R > *primal=0, VectorBase< R > *slacks=0, VectorBase< R > *dual=0, VectorBase< R > *reduCost=0) get all results of last solve. void getNdualNorms(int &nnormsRow, int &nnormsCol) const get number of dual norms void setEnterBound4Col(int, int) DataArray< int > isInfeasibleCo 0: index not violated, 1: index violated, 2: index violated and among candidate list Definition spxsolver.h:452 void localAddCols(int start) DataArray< int > isInfeasible 0: index not violated, 1: index violated, 2: index violated and among candidate list Definition spxsolver.h:450 SSVectorBase< R > * solveVector3rhs when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition spxsolver.h:288 void shiftFvec() Perform initial shifting to optain an feasible or pricable basis. void setSlacks(VectorBase< R > &p_vector) void testVecs() void setLeaveBound4Row(int i, int n) int maxCycle() const maximum number of degenerate simplex steps before we detect cycling. Definition spxsolver.h:975 virtual void changeLower(int i, const R &newLower, bool scale=false) void setStoreBasisFreqForBoosting(int freq) Definition spxsolver.h:959 void localAddRows(int start) SSVectorBase< R > * solveVector2rhs when 2 systems are to be solved at a time; typically for speepest edge weights Definition spxsolver.h:284 bool recomputedVectors flag to perform clean up step to reduce numerical errors only once Definition spxsolver.h:317 int polishIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2244 int leaveDegenCand the number of degenerate candidates in the leaving algorithm Definition spxsolver.h:405 @ POLISH_INTEGRALITY maximize number of basic slack variables, i.e. more variables on bounds Definition spxsolver.h:235 @ POLISH_FRACTIONALITY minimize number of basic slack variables, i.e. more variables in between bounds Definition spxsolver.h:236 void perturbMax(const UpdateVector< R > &vec, VectorBase< R > &low, VectorBase< R > &up, R eps, R delta, int start=0, int incr=1) const LPRowSetBase< R > & rows() const return const lp's rows if available. Definition spxsolver.h:2278 SPxBasisBase< R >::Desc::Status varStatusToBasisStatusCol(int col, VarStatus stat) const converts VarStatus to basis status for columns virtual void printDisplayLine(const bool force=false, const bool forceHead=false) print display line of flying table void computeDualfarkas4Col(R direction) virtual Status getDualfarkas(VectorBase< R > &vector) const get dual farkas proof of infeasibility. void setSolutionPolishing(SolutionPolish _polishObj) set objective of solution polishing (0: off, 1: max_basic_slack, 2: min_basic_slack) Definition spxsolver.h:687 void toggleTerminationValue(bool enable) toggle objective limit for next solve Definition spxsolver.h:705 virtual void changeLhs(int i, const R &newLhs, bool scale=false) void setBasis(const VarStatus rows[], const VarStatus cols[]) set the lp solver's basis. virtual void setTerminationTime(Real time=infinity) set time limit. SPxBasisBase< R >::Desc::Status varStatusToBasisStatusRow(int row, VarStatus stat) const converts VarStatus to basis status for rows void computeLeaveCoPrhs4Row(int i, int n) const SVectorBase< R > & coVector(const SPxRowId &rid) const Definition spxsolver.h:1312 virtual void changeRow(int i, const LPRowBase< R > &newRow, bool scale=false) void setPrimal(VectorBase< R > &p_vector) virtual void changeBounds(int i, const R &newLower, const R &newUpper, bool scale=false) virtual void setTerminationIter(int iteration=-1) set iteration limit. int enterCycles the number of degenerate steps during the entering algorithm Definition spxsolver.h:402 virtual void changeLower(const VectorBase< R > &newLower, bool scale=false) void getUpper(VectorBase< R > &p_up) const copy upper bound VectorBase<R> to p_up. Definition spxsolver.h:2295 SSVectorBase< R > * coSolveVector3 when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition spxsolver.h:294 virtual void changeLhs(const VectorBase< R > &newLhs, bool scale=false) bool hyperPricingEnter true if hyper sparse pricing is turned on in the entering Simplex Definition spxsolver.h:459 virtual bool writeState(const char *filename, const NameSet *rowNames=nullptr, const NameSet *colNames=nullptr, const bool cpxFormat=false, const bool writeZeroObjective=false) const SPxSolverBase< R > & operator=(const SPxSolverBase< R > &base) assignment operator SSVectorBase< R > * solveVector2 when 2 systems are to be solved at a time; typically for speepest edge weights Definition spxsolver.h:282 virtual void changeUpperStatus(int i, R newUpper, R oldLower=0.0) void setLeaveBound4Col(int i, int n) bool isBasisValid(DataArray< VarStatus > rows, DataArray< VarStatus > cols) check a given basis for validity. virtual void rejectEnter(SPxId enterId, R enterTest, typename SPxBasisBase< R >::Desc::Status enterStat) std::string statistics() const returns statistical information in form of a string. Definition spxsolver.h:2319 virtual bool readBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames) SPxBasisBase< R >::Desc::Status varStatus(int i) const Status of i 'th variable. Definition spxsolver.h:1357 virtual void rejectLeave(int leaveNum, SPxId leaveId, typename SPxBasisBase< R >::Desc::Status leaveStat, const SVectorBase< R > *newVec=nullptr) R computeTest(int i) compute and return test()[i] in ENTERing Simplex. virtual void changeLhsStatus(int i, R newLhs, R oldLhs=0.0) virtual void changeRowObj(const VectorBase< R > &newObj, bool scale=false) void getLower(VectorBase< R > &p_low) const copy lower bound VectorBase<R> to p_low. Definition spxsolver.h:2290 DataArray< VarStatus > oldBasisStatusCols They don't have setters because only the internal simplex method is meant to fill them. Definition spxsolver.h:325 Timer * multTimeUnsetup time spent in setupPupdate() w/o sparsity information Definition spxsolver.h:474 SSVectorBase< R > * coSolveVector3rhs when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition spxsolver.h:296 void computePrimalray4Col(R direction, SPxId enterId) void computePrimalray4Row(R direction) virtual void clearUpdateVecs(void) void setIntegralityInformation(int ncols, int *intInfo) pass integrality information about the variables to the solver virtual void getLeaveVals(int i, typename SPxBasisBase< R >::Desc::Status &leaveStat, SPxId &leaveId, R &leaveMax, R &leavebound, int &leaveNum, StableSum< R > &objChange) virtual void doPupdate(void) virtual void addedCols(int n) R m_pricingViolCo maximal feasibility violation of current solution in coDim Definition spxsolver.h:269 void computeLeaveCoPrhs4Col(int i, int n) virtual void addedRows(int n) virtual void getEnterVals2(int leaveIdx, R enterMax, R &leaveBound, StableSum< R > &objChange) bool isBasic(typename SPxBasisBase< R >::Desc::Status stat) const does stat describe a basic index ? Definition spxsolver.h:1369 int enterDegenCand the number of degenerate candidates in the entering algorithm Definition spxsolver.h:404 virtual void computeFrhsXtra() const SVectorBase< R > & unitVector(int i) const return i 'th unit vector. Definition spxsolver.h:1342 const std::shared_ptr< Tolerances > & tolerances() const returns current tolerances Definition spxsolver.h:508 virtual void changeBounds(SPxColId p_id, const R &p_newLower, const R &p_newUpper, bool scale=false) Definition spxsolver.h:1109 R leavetol() const feasibility tolerance maintained by ratio test during LEAVE algorithm. Definition spxsolver.h:863 virtual void doRemoveCol(int i) void setBasisStatus(typename SPxBasisBase< R >::SPxStatus stat) set the lp solver's basis status. Definition spxsolver.h:2158 void computeFrhs2(VectorBase< R > &, VectorBase< R > &) virtual void changeRow(SPxRowId p_id, const LPRowBase< R > &p_newRow, bool scale=false) Definition spxsolver.h:1153 virtual void qualConstraintViolation(R &maxviol, R &sumviol) const get violation of constraints. virtual void changeObj(int i, const R &newVal, bool scale=false) virtual Status getPrimalray(VectorBase< R > &vector) const get primal ray in case of unboundedness. virtual void loadBasis(const typename SPxBasisBase< R >::Desc &) set a start basis. void perturbMin(const UpdateVector< R > &vec, VectorBase< R > &low, VectorBase< R > &up, R eps, R delta, int start=0, int incr=1) int leaveCycles the number of degenerate steps during the leaving algorithm Definition spxsolver.h:403 Real cumulativeTime() const cumulative time spent in all calls to method solve(). Definition spxsolver.h:2266 virtual void doRemoveRow(int i) void initRep(Representation p_rep) initialize ROW or COLUMN representation. virtual void changeRhsStatus(int i, R newRhs, R oldRhs=0.0) virtual Status getDualSol(VectorBase< R > &vector) const get current solution VectorBase<R> for dual variables. virtual void changeRhs(SPxRowId p_id, const R &p_newRhs, bool scale=false) Definition spxsolver.h:1134 void computeEnterCoPrhs4Col(int i, int n) int remainingRoundsLeave number of dense rounds/refactorizations until sparsePricing is enabled again Definition spxsolver.h:461 bool m_pricingViolCoUpToDate true, if the stored violation in coDim is up to date Definition spxsolver.h:270 virtual void changeRowObj(SPxRowId p_id, const R &p_newVal, bool scale=false) Definition spxsolver.h:1068 virtual bool writeBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames, const bool cpxFormat=false) const virtual void getLeaveVals2(R leaveMax, SPxId enterId, R &enterBound, R &newUBbound, R &newLBbound, R &newCoPrhs, StableSum< R > &objChange) Definition stablesum.h:36 static Timer * switchTimer(Timer *timer, Timer::TYPE ttype) Definition timerfactory.h:81 virtual Real time() const =0 void setTolerances(std::shared_ptr< Tolerances > &tolerances) set tolerances Definition updatevector.h:174 Everything should be within this namespace. std::ostream & operator<<(std::ostream &s, const VectorBase< R > &vec) Output operator. Definition basevectors.h:1143 Random numbers. Simplex basis. Debugging, floating point type and parameter definitions. Saving LPs in a form suitable for SoPlex. Saving LPs in a form suitable for SoPlex. Timer class. TimerFactory class. Sparse vector . Dense VectorBase<R> with semi-sparse VectorBase<R> for updates.
|