Loading...
Searching...
No Matches
spxsolver.h
Go to the documentation of this file.
49#define HYPERPRICINGTHRESHOLD 5000 /**< do (auto) hyper pricing only if problem size (cols+rows) is larger than HYPERPRICINGTHRESHOLD */
53#define SPARSITY_TRADEOFF 0.8 /**< threshold to decide whether Ids or coIds are preferred to enter the basis;
56#define MAXNCLCKSKIPS 32 /**< maximum number of clock skips (iterations without time measuring) */
57#define SAFETYFACTOR 1e-2 /**< the probability to skip the clock when the time limit has been reached */
58#define NINITCALLS 200 /**< the number of clock updates in isTimelimitReached() before clock skipping starts */
127 };
162 };
193 };
196 /** The improved dual simplex requires a starting basis to perform the problem partitioning. This flag sets the
197 * status of the improved dual simplex to indicate whether the starting basis must be found or not.
205 };
214 UNDEFINED ///< nothing known about basis status (possibly due to a singular basis in transformed problem)
215 };
242 OPTIMAL_UNSCALED_VIOLATIONS = 5 ///< LP has beed solved to optimality but unscaled solution contains violations.
243 };
249 POLISH_INTEGRALITY, ///< maximize number of basic slack variables, i.e. more variables on bounds
250 POLISH_FRACTIONALITY ///< minimize number of basic slack variables, i.e. more variables in between bounds
251 };
295 solveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
297 solveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
299 solveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
301 solveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
303 coSolveVector2; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
305 coSolveVector2rhs; ///< when 2 systems are to be solved at a time; typically for speepest edge weights
307 coSolveVector3; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
309 coSolveVector3rhs; ///< when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!)
337 getStartingDecompBasis; ///< flag to indicate whether the simplex is solved to get the starting improved dual simplex basis
340 degenCompIterOffset; ///< the number of iterations performed before the degeneracy level is computed
342 decompIterationLimit; ///< the maximum number of iterations before the decomposition simplex is aborted.
345 fullPerturbation; ///< whether to perturb the entire problem or just the bounds relevant for the current pivot
347 printBasisMetric; ///< printing the current basis metric in the log (-1: off, 0: condition estimate, 1: trace, 2: determinant, 3: condition)
437 /// determine ranges of problem values for bounds, sides and objective to assess numerical difficulties
443 /// The random number generator used throughout the whole computation. Its seed can be modified.
446 /** For the leaving Simplex algorithm this vector contains the indices of infeasible basic variables;
447 * for the entering Simplex algorithm this vector contains the indices of infeasible slack variables.
450 /**For the entering Simplex algorithm these vectors contains the indices of infeasible basic variables.
454 /// store indices that were changed in the previous iteration and must be checked in hyper pricing
463 isInfeasible; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
465 isInfeasibleCo; ///< 0: index not violated, 1: index violated, 2: index violated and among candidate list
469 bool sparsePricingEnter; ///< true if sparsePricing is turned on in the entering Simplex for slack variables
474 int remainingRoundsLeave; ///< number of dense rounds/refactorizations until sparsePricing is enabled again
496 integerVariables; ///< supplementary variable information, 0: continous variable, 1: integer variable
505 /// set refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix
511 /// set refactor threshold for fill-in in current factor update compared to fill-in in last factorization
517 /// set refactor threshold for memory growth in current factor update compared to the last factorization
598 /// setup linear solver to use. If \p destroy is true, \p slusolver will be freed in destructor.
604 /// setup starting basis generator to use. If \p destroy is true, \p starter will be freed in destructor.
613 /// set \ref soplex::SPxSolverBase<R>::LEAVE "LEAVE" or \ref soplex::SPxSolverBase<R>::ENTER "ENTER" algorithm.
615 /// set \ref soplex::SPxSolverBase<R>::FULL "FULL" or \ref soplex::SPxSolverBase<R>::PARTIAL "PARTIAL" pricing.
647 * LP is written in MPS format to "\p filename".mps, basis is written in "\p filename".bas, and parameters
648 * are written to "\p filename".set. If \p rowNames and \p colNames are \c NULL, default names are used for
652 const NameSet* rowNames = NULL, const NameSet* colNames = NULL, const bool cpxFormat = false) const;
851 /// guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() and opttol(), i.e., the less tight tolerance.
989 /// \p scale determines whether the new data needs to be scaled according to the existing LP (persistent scaling)
1596 /// compute and return \ref soplex::SPxSolverBase<R>::test() "test()"[i] in \ref soplex::SPxSolverBase<R>::ENTER "ENTER"ing Simplex.
1805 /// check for violations above tol and immediately return false w/o checking the remaining values
1806 /** This method is useful for verifying whether an objective limit can be used as termination criterion
2204 /// returns whether current time limit is reached; call to time() may be skipped unless \p forceCheck is true
Save arrays of arbitrary types. int number(const SPxRowId &id) const Returns the row number of the row with identifier id. Definition spxlpbase.h:554 const LPColSetBase< R > * lpcolset() const Returns the LP as an LPColSetBase. Definition spxlpbase.h:2118 const VectorBase< R > & lower() const Returns (internal and possibly scaled) lower bound vector. Definition spxlpbase.h:515 virtual void clearRowObjs() Clears row objective function values for all rows. Definition spxlpbase.h:1723 const LPRowSetBase< R > * lprowset() const Returns the LP as an LPRowSetBase. Definition spxlpbase.h:2112 Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth... Definition spxout.h:73 void setOutstream(SPxOut &newOutstream) Definition spxsolver.h:499 bool getComputeDegeneracy() const returns whether the degeneracy is computed in each iteration Definition spxsolver.h:2296 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:2116 DIdxSet updateViols store indices that were changed in the previous iteration and must be checked in hyper pricing Definition spxsolver.h:455 R entertol() const feasibility tolerance maintained by ratio test during ENTER algorithm. Definition spxsolver.h:822 virtual void changeRange(int i, const R &newLhs, const R &newRhs, bool scale=false) int decompIterationLimit the maximum number of iterations before the decomposition simplex is aborted. Definition spxsolver.h:342 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:1110 virtual void changeElement(SPxRowId rid, SPxColId cid, const R &val, bool scale=false) Definition spxsolver.h:1118 int primalIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2180 int printBasisMetric printing the current basis metric in the log (-1: off, 0: condition estimate, 1: trace,... Definition spxsolver.h:347 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:312 void setup4solve(SSVectorBase< R > *p_y, SSVectorBase< R > *p_rhs) Setup vectors to be solved within Simplex loop. Definition spxsolver.h:1749 SolutionPolish getSolutionPolishing() return objective of solution polishing Definition spxsolver.h:683 DecompStatus getDecompStatus() const returns whether a basis needs to be found for the improved dual simplex Definition spxsolver.h:2280 R delta() const guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a... Definition spxsolver.h:852 Real theCumulativeTime cumulative time spent in all calls to method solve() Definition spxsolver.h:267 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:496 void setDegenCompOffset(int iterOffset) sets the offset for the number of iterations before the degeneracy is computed Definition spxsolver.h:2303 @ DONTFINDSTARTBASIS Starting basis has been found and the simplex can be executed as normal. Definition spxsolver.h:204 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:303 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:358 void useFullPerturbation(bool full) perturb entire problem or only the bounds relevant to the current pivot Definition spxsolver.h:935 virtual void changeMaxObj(SPxColId p_id, const R &p_newVal, bool scale=false) overloading a virtual function Definition spxsolver.h:1007 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:997 virtual void rejectLeave(int leaveNum, SPxId leaveId, typename SPxBasisBase< R >::Desc::Status leaveStat, const SVectorBase< R > *newVec=0) void setPrimalBounds() setup feasibility bounds for entering algorithm int nClckSkipsLeft remaining number of times the clock can be safely skipped Definition spxsolver.h:270 void setup4solve2(SSVectorBase< R > *p_y2, SSVectorBase< R > *p_rhs2) Setup vectors to be solved within Simplex loop. Definition spxsolver.h:1763 bool hyperPricingLeave true if hyper sparse pricing is turned on in the leaving Simplex Definition spxsolver.h:471 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:469 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:2250 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:444 virtual ~SPxSolverBase() virtual bool writeState(const char *filename, const NameSet *rowNames=NULL, const NameSet *colNames=NULL, const bool cpxFormat=false) const 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:1777 virtual void computeLeaveCoPrhs() compute theCoPrhs for leaving Simplex. virtual void perturbMinEnter(void) virtual Status getRedCostSol(VectorBase< R > &vector) const get vector of reduced costs. 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) int getDegenCompOffset() const gets the offset for the number of iterations before the degeneracy is computed Definition spxsolver.h:2310 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:518 void forceRecompNonbasicValue() Definition spxsolver.h:703 virtual void changeLhs(SPxRowId p_id, const R &p_newLhs, bool scale=false) Definition spxsolver.h:1071 void setSparsePricingFactor(R fac) Definition spxsolver.h:906 const SVectorBase< R > & vector(const SPxRowId &rid) const Definition spxsolver.h:1218 void setup4coSolve2(SSVectorBase< R > *p_z, SSVectorBase< R > *p_rhs) Setup vectors to be cosolved within Simplex loop. Definition spxsolver.h:1789 const SVectorBase< R > & vector(const SPxId &p_id) const VectorBase<R> associated to p_id. Definition spxsolver.h:1243 void setRep(Representation p_rep) switch to ROW or COLUMN representation if not already used. void setMetricInformation(int type) print basis metric within the usual output Definition spxsolver.h:900 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:1951 void setComputeDegenFlag(bool computeDegen) sets whether the degeneracy is computed at each iteration Definition spxsolver.h:2289 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:357 @ OPTIMAL_UNSCALED_VIOLATIONS LP has beed solved to optimality but unscaled solution contains violations. Definition spxsolver.h:242 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:1312 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) void getRhs(VectorBase< R > &p_rhs) const copy rhs value VectorBase<R> to p_rhs. Definition spxsolver.h:2256 void calculateProblemRanges() determine ranges of problem values for bounds, sides and objective to assess numerical difficulties virtual void doRemoveCols(int perm[]) virtual void changeUpper(SPxColId p_id, const R &p_newUpper, bool scale=false) overloading virtual function Definition spxsolver.h:1047 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:512 int numCycle() const actual number of degenerate simplex steps encountered so far. Definition spxsolver.h:929 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:1035 virtual bool read(std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) read LP from input stream. virtual void changeRange(SPxRowId p_id, const R &p_newLhs, const R &p_newRhs, bool scale=false) Definition spxsolver.h:1094 @ UNDEFINED nothing known about basis status (possibly due to a singular basis in transformed problem) Definition spxsolver.h:214 int subversion() const return the internal subversion of SPxSolverBase as number Definition spxsolver.h:531 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:1283 DSVectorBase< R > dualFarkas stores dual farkas proof in case of infeasibility Definition spxsolver.h:405 void setNonzeroFactor(R f) set refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix Definition spxsolver.h:506 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:305 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:486 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:299 const SPxRatioTester< R > * ratiotester() const return loaded SPxRatioTester. Definition spxsolver.h:1836 int dualIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2187 virtual void computeEnterCoPrhs() compute theCoPrhs for entering Simplex. const SVectorBase< R > & coVector(const SPxColId &cid) const Definition spxsolver.h:1269 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:345 const SVectorBase< R > & vector(const SPxColId &cid) const Definition spxsolver.h:1226 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:470 int version() const return the version of SPxSolverBase as number like 123 for 1.2.3 Definition spxsolver.h:526 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:465 void localAddCols(int start) DataArray< int > isInfeasible 0: index not violated, 1: index violated, 2: index violated and among candidate list Definition spxsolver.h:463 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:301 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:924 virtual void changeLower(int i, const R &newLower, bool scale=false) 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:297 bool recomputedVectors flag to perform clean up step to reduce numerical errors only once Definition spxsolver.h:330 int polishIterations() return number of iterations done with primal algorithm Definition spxsolver.h:2193 int leaveDegenCand the number of degenerate candidates in the leaving algorithm Definition spxsolver.h:418 @ POLISH_INTEGRALITY maximize number of basic slack variables, i.e. more variables on bounds Definition spxsolver.h:249 @ POLISH_FRACTIONALITY minimize number of basic slack variables, i.e. more variables in between bounds Definition spxsolver.h:250 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:2227 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 setDecompStatus(DecompStatus decomp_stat) turn on or off the improved dual simplex. void setSolutionPolishing(SolutionPolish _polishObj) set objective of solution polishing (0: off, 1: max_basic_slack, 2: min_basic_slack) Definition spxsolver.h:677 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:1261 virtual void changeRow(int i, const LPRowBase< R > &newRow, bool scale=false) void setPrimal(VectorBase< R > &p_vector) void performSolutionPolishing() 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:415 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:2244 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:307 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:472 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:295 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:2268 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:1306 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) bool getStartingDecompBasis flag to indicate whether the simplex is solved to get the starting improved dual simplex basis Definition spxsolver.h:337 int degenCompIterOffset the number of iterations performed before the degeneracy level is computed Definition spxsolver.h:340 void setDecompIterationLimit(int iterationLimit) sets the iteration limit for the decomposition simplex initialisation Definition spxsolver.h:2316 void getLower(VectorBase< R > &p_low) const copy lower bound VectorBase<R> to p_low. Definition spxsolver.h:2239 Timer * multTimeUnsetup time spent in setupPupdate() w/o sparsity information Definition spxsolver.h:487 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:309 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:282 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:1318 int enterDegenCand the number of degenerate candidates in the entering algorithm Definition spxsolver.h:417 virtual void computeFrhsXtra() const SVectorBase< R > & unitVector(int i) const return i 'th unit vector. Definition spxsolver.h:1291 virtual void changeBounds(SPxColId p_id, const R &p_newLower, const R &p_newUpper, bool scale=false) Definition spxsolver.h:1058 R leavetol() const feasibility tolerance maintained by ratio test during LEAVE algorithm. Definition spxsolver.h:829 virtual void doRemoveCol(int i) void setBasisStatus(typename SPxBasisBase< R >::SPxStatus stat) set the lp solver's basis status. Definition spxsolver.h:2107 void computeFrhs2(VectorBase< R > &, VectorBase< R > &) virtual void changeRow(SPxRowId p_id, const LPRowBase< R > &p_newRow, bool scale=false) Definition spxsolver.h:1102 virtual void qualConstraintViolation(R &maxviol, R &sumviol) const get violation of constraints. void setDelta(R d) set parameter delta, i.e., set feastol and opttol to same value. 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:416 Real cumulativeTime() const cumulative time spent in all calls to method solve(). Definition spxsolver.h:2215 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) int getDecompIterationLimit() const returns the iteration limit for the decomposition simplex initialisation Definition spxsolver.h:2322 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:1083 void computeEnterCoPrhs4Col(int i, int n) int remainingRoundsLeave number of dense rounds/refactorizations until sparsePricing is enabled again Definition spxsolver.h:474 bool m_pricingViolCoUpToDate true, if the stored violation in coDim is up to date Definition spxsolver.h:283 virtual void changeRowObj(SPxRowId p_id, const R &p_newVal, bool scale=false) Definition spxsolver.h:1017 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) static Timer * switchTimer(Timer *timer, Timer::TYPE ttype) Definition timerfactory.h:81 virtual Real time() const =0 Everything should be within this namespace. 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.
|