Loading...
Searching...
No Matches
SPxSolverBase< R > Class Template Reference Sequential object-oriented SimPlex. More...
Inheritance diagram for SPxSolverBase< R >:
![]()
Detailed DescriptionSequential object-oriented SimPlex. SPxSolverBase is an LP solver class using the revised Simplex algorithm. It provides two basis representations, namely a column basis and a row basis (see Representation). For both representations, a primal and dual algorithm is available (see Type). In addition, SPxSolverBase can be customized with various respects:
SPxSolverBase is derived from SPxLPBase<R> that is used to store the LP to be solved. Hence, the LPs solved with SPxSolverBase have the general format \[ \begin{array}{rl} \hbox{max} & \mbox{maxObj}^T x \\ \hbox{s.t.} & \mbox{lhs} \le Ax \le \mbox{rhs} \\ & \mbox{low} \le x \le \mbox{up} \end{array} \] Also, SPxLPBase<R> provide all manipulation methods for the LP. They allow SPxSolverBase to be used within cutting plane algorithms. Definition at line 103 of file spxsolver.h. Member Enumeration Documentation◆ DecompStatusImproved dual simplex status. The improved dual simplex requires a starting basis to perform the problem partitioning. This flag sets the status of the improved dual simplex to indicate whether the starting basis must be found or not.
Definition at line 199 of file spxsolver.h. ◆ PricingPricing type. In case of the ENTERing Simplex algorithm, for performance reasons it may be advisable not to compute and maintain up to date vectors pVec() and test() and instead compute only some of its elements explicitely. This is controled by the Pricing type.
Definition at line 170 of file spxsolver.h. ◆ RepresentationLP basis representation. Solving LPs with the Simplex algorithm requires the definition of a basis. A basis can be defined as a set of column vectors or a set of row vectors building a nonsingular matrix. We will refer to the first case as the columnwise representation and the latter case will be called the rowwise representation. Type Representation determines the representation of SPxSolverBase, i.e. a columnwise (COLUMN == 1) or rowwise (ROW == -1) one.
Definition at line 123 of file spxsolver.h. ◆ SolutionPolishobjective for solution polishing Definition at line 246 of file spxsolver.h. ◆ Status
Definition at line 220 of file spxsolver.h. ◆ TypeAlgorithmic type. SPxSolverBase uses the reviesed Simplex algorithm to solve LPs. Mathematically, one distinguishes the primal from the dual algorihm. Algorithmically, these relate to the two types ENTER or LEAVE. How they relate, depends on the chosen basis representation. This is desribed by the following table:
Definition at line 142 of file spxsolver.h. ◆ VarStatusDefinition at line 207 of file spxsolver.h. Constructor & Destructor Documentation◆ SPxSolverBase() [1/2]
default constructor. Constructors / destructors ◆ ~SPxSolverBase()
◆ SPxSolverBase() [2/2]
copy constructor Member Function Documentation◆ addedCols()Reimplemented from SPxLPBase< R >. ◆ addedRows()Reimplemented from SPxLPBase< R >. ◆ basis() [1/2]
Definition at line 1821 of file spxsolver.h. ◆ basis() [2/2]
Return current basis.
Definition at line 1816 of file spxsolver.h. Referenced by SPxSolverBase< R >::getBasisMetric(), SPxSolverBase< R >::iterations(), and SPxSolverBase< R >::statistics(). ◆ basisStatusToVarStatus()
converts basis status to VarStatus
◆ boundFlips()get number of bound flips. Definition at line 2144 of file spxsolver.h. References SPxSolverBase< R >::totalboundflips. ◆ calculateProblemRanges()determine ranges of problem values for bounds, sides and objective to assess numerical difficulties ◆ changeBounds() [1/3]
Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeBounds(). ◆ changeBounds() [2/3]
Reimplemented from SPxLPBase< R >. ◆ changeBounds() [3/3]
Reimplemented from SPxLPBase< R >. Definition at line 1058 of file spxsolver.h. References SPxSolverBase< R >::changeBounds(), and SPxLPBase< R >::number(). ◆ changeCol() [1/2]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeCol(). ◆ changeCol() [2/2]
Reimplemented from SPxLPBase< R >. Definition at line 1110 of file spxsolver.h. References SPxSolverBase< R >::changeCol(), and SPxLPBase< R >::number(). ◆ changeElement() [1/2]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeElement(). ◆ changeElement() [2/2]
Reimplemented from SPxLPBase< R >. Definition at line 1118 of file spxsolver.h. References SPxSolverBase< R >::changeElement(), and SPxLPBase< R >::number(). ◆ changeLhs() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeLhs(). ◆ changeLhs() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeLhs() [3/3]Reimplemented from SPxLPBase< R >. Definition at line 1071 of file spxsolver.h. References SPxSolverBase< R >::changeLhs(), and SPxLPBase< R >::number(). ◆ changeLhsStatus()◆ changeLower() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeLower(). ◆ changeLower() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeLower() [3/3]Reimplemented from SPxLPBase< R >. Definition at line 1035 of file spxsolver.h. References SPxSolverBase< R >::changeLower(), and SPxLPBase< R >::number(). ◆ changeLowerStatus()◆ changeMaxObj() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeMaxObj(). ◆ changeMaxObj() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeMaxObj() [3/3]overloading a virtual function Reimplemented from SPxLPBase< R >. Definition at line 1007 of file spxsolver.h. References SPxSolverBase< R >::changeMaxObj(), and SPxLPBase< R >::number(). ◆ changeObj() [1/3]
Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeObj(). ◆ changeObj() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeObj() [3/3]overloading a virtual function Reimplemented from SPxLPBase< R >. Definition at line 997 of file spxsolver.h. References SPxSolverBase< R >::changeObj(), and SPxLPBase< R >::number(). ◆ changeRange() [1/3]
Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeRange(). ◆ changeRange() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeRange() [3/3]
Reimplemented from SPxLPBase< R >. Definition at line 1094 of file spxsolver.h. References SPxSolverBase< R >::changeRange(), and SPxLPBase< R >::number(). ◆ changeRhs() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeRhs(). ◆ changeRhs() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeRhs() [3/3]Reimplemented from SPxLPBase< R >. Definition at line 1083 of file spxsolver.h. References SPxSolverBase< R >::changeRhs(), and SPxLPBase< R >::number(). ◆ changeRhsStatus()◆ changeRow() [1/2]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeRow(). ◆ changeRow() [2/2]
Reimplemented from SPxLPBase< R >. Definition at line 1102 of file spxsolver.h. References SPxSolverBase< R >::changeRow(), and SPxLPBase< R >::number(). ◆ changeRowObj() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeRowObj(). ◆ changeRowObj() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeRowObj() [3/3]Reimplemented from SPxLPBase< R >. Definition at line 1017 of file spxsolver.h. References SPxSolverBase< R >::changeRowObj(), and SPxLPBase< R >::number(). ◆ changeSense()◆ changeUpper() [1/3]Reimplemented from SPxLPBase< R >. Referenced by SPxSolverBase< R >::changeUpper(). ◆ changeUpper() [2/3]Reimplemented from SPxLPBase< R >. ◆ changeUpper() [3/3]overloading virtual function Reimplemented from SPxLPBase< R >. Definition at line 1047 of file spxsolver.h. References SPxSolverBase< R >::changeUpper(), and SPxLPBase< R >::number(). ◆ changeUpperStatus()◆ clear()clear all data in solver. Reimplemented from SPxLPBase< R >. ◆ clearDualBounds()The following methods serve for initializing the bounds for dual or primal Simplex algorithm of entering or leaving type. ◆ clearRowObjs()Reimplemented from SPxLPBase< R >. Definition at line 1022 of file spxsolver.h. References SPxLPBase< R >::clearRowObjs(), and SPxSolverBase< R >::unInit(). ◆ clearUpdateVecs()◆ coDim()codimension. Definition at line 1135 of file spxsolver.h. References SPxSolverBase< R >::thevectors. ◆ coId()id of The Definition at line 1172 of file spxsolver.h. References SPxLPBase< R >::cId(), SPxSolverBase< R >::rep(), SPxLPBase< R >::rId(), and SPxSolverBase< R >::ROW. ◆ colId()ColId of Definition at line 2337 of file spxsolver.h. References SPxLPBase< R >::cId(). ◆ cols()return const lp's cols if available. Definition at line 2233 of file spxsolver.h. References SPxLPBase< R >::lpcolset(). ◆ computeCoTest()◆ computeDualfarkas4Col()◆ computeDualfarkas4Row()◆ computeEnterCoPrhs()compute theCoPrhs for entering Simplex. ◆ computeEnterCoPrhs4Col()◆ computeEnterCoPrhs4Row()◆ computeFrhs()◆ computeFrhs1()
◆ computeFrhs2()
◆ computeFrhsXtra()◆ computeFtest()◆ computeLeaveCoPrhs()compute theCoPrhs for leaving Simplex. ◆ computeLeaveCoPrhs4Col()◆ computeLeaveCoPrhs4Row()◆ computePrimalray4Col()Compute the primal ray or the farkas proof in case of unboundedness or infeasibility. ◆ computePrimalray4Row()◆ computePvec() [1/2]◆ computePvec() [2/2]◆ computeTest() [1/2]◆ computeTest() [2/2]◆ coPrhs()
Right-hand side vector for coPvec. The vector coPvec is computed by solving a linear system with the basis matrix and coPrhs as the right-hand side vector. For column basis representation, coPrhs is build up of the objective vector elements of all basic variables. For a row basis, it consists of the tight bounds of all basic constraints. Definition at line 1466 of file spxsolver.h. References SPxSolverBase< R >::theCoPrhs. ◆ coPvec()
copricing vector. The copricing vector coPvec along with the pricing vector pVec are used for pricing in the ENTERing Simplex algorithm, i.e. one variable is selected, that violates its bounds. In contrast to this, the LEAVEing Simplex algorithm keeps both vectors within their bounds. Definition at line 1453 of file spxsolver.h. References SPxSolverBase< R >::theCoPvec. ◆ coTest() [1/2]
violations of coPvec. In entering Simplex pricing selects checks vectors coPvec() and pVec() for violation of its bounds. coTest() contains the violations for coPvec() which are indicated by a negative value. That is, if coTest()[i] < 0, the Definition at line 1520 of file spxsolver.h. References SPxSolverBase< R >::ENTER, SPxSolverBase< R >::theCoTest, and SPxSolverBase< R >::type(). ◆ coTest() [2/2]test coVector ◆ covarStatus()
Status of Definition at line 1312 of file spxsolver.h. References SPxBasisBase< R >::desc(). ◆ coVector() [1/4]Definition at line 1269 of file spxsolver.h. References SPxLPBase< R >::number(), SPxSolverBase< R >::rep(), SPxSolverBase< R >::ROW, and SPxSolverBase< R >::unitVecs. ◆ coVector() [2/4]coVector associated to
Definition at line 1283 of file spxsolver.h. References SPxSolverBase< R >::coVector(). ◆ coVector() [3/4]Definition at line 1261 of file spxsolver.h. References SPxSolverBase< R >::COLUMN, SPxLPBase< R >::number(), SPxSolverBase< R >::rep(), and SPxSolverBase< R >::unitVecs. ◆ coVector() [4/4]
Definition at line 1256 of file spxsolver.h. References SPxSolverBase< R >::thecovectors. Referenced by SPxSolverBase< R >::coVector(). ◆ cumulativeTime()cumulative time spent in all calls to method solve(). Definition at line 2215 of file spxsolver.h. References SPxSolverBase< R >::theCumulativeTime. ◆ delta()guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() and opttol(), i.e., the less tight tolerance. Definition at line 852 of file spxsolver.h. References SPxSolverBase< R >::m_entertol, and SPxSolverBase< R >::m_leavetol. ◆ dim()dimension of basis matrix. Definition at line 1130 of file spxsolver.h. References SPxSolverBase< R >::thecovectors. ◆ doPupdate()◆ doRemoveCol()Reimplemented from SPxLPBase< R >. ◆ doRemoveCols()Reimplemented from SPxLPBase< R >. ◆ doRemoveRow()Reimplemented from SPxLPBase< R >. ◆ doRemoveRows()Reimplemented from SPxLPBase< R >. ◆ dualDegeneratePivots()get number of dual degenerate pivots Definition at line 2150 of file spxsolver.h. References SPxSolverBase< R >::enterCycles, SPxSolverBase< R >::leaveCycles, SPxSolverBase< R >::rep(), and SPxSolverBase< R >::ROW. ◆ dualIterations()return number of iterations done with primal algorithm Definition at line 2187 of file spxsolver.h. References SPxSolverBase< R >::iterations(), and SPxSolverBase< R >::primalIterations(). ◆ enter()let id enter the basis and manage leaving of another one.
◆ entertol()feasibility tolerance maintained by ratio test during ENTER algorithm. Definition at line 822 of file spxsolver.h. References SPxSolverBase< R >::m_entertol. ◆ enterVector()Get pointer to the Definition at line 1951 of file spxsolver.h. References SPxSolverBase< R >::vector(). ◆ epsilon()values \(|x| < \epsilon\) are considered to be 0. if you want another value for epsilon, use Param::setEpsilon(). Definition at line 817 of file spxsolver.h. References SPxSolverBase< R >::primVec. ◆ factorize()Factorize basis matrix.
Reimplemented from SPxBasisBase< R >. ◆ feastol()allowed primal feasibility tolerance. Definition at line 836 of file spxsolver.h. References SPxSolverBase< R >::COLUMN, SPxSolverBase< R >::m_entertol, SPxSolverBase< R >::m_leavetol, and SPxSolverBase< R >::theRep. ◆ forceRecompNonbasicValue()Definition at line 703 of file spxsolver.h. References SPxSolverBase< R >::m_nonbasicValue, and SPxSolverBase< R >::m_nonbasicValueUpToDate. ◆ fRhs()
right-hand side vector for fVec The feasibility vector is computed by solving a linear system with the basis matrix. The right-hand side vector of this system is referred to as feasibility, right-hand side vector fRhs(). For a row basis, fRhs() is the objective vector (ignoring shifts). For a column basis, it is the sum of all nonbasic vectors scaled by the factor of their bound. Definition at line 1391 of file spxsolver.h. References SPxSolverBase< R >::theFrhs. ◆ fTest()
Violations of fVec. For the leaving Simplex algorithm, pricing involves selecting a variable from fVec that violates its bounds that is to leave the basis. When a SPxPricer is called to select such a leaving variable, fTest() contains the vector of violations: For fTest()[i] < 0, the Definition at line 1440 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theCoTest, and SPxSolverBase< R >::type(). ◆ fVec()
feasibility vector. This method return the feasibility vector. If it satisfies its bound, the basis is called feasible (independently of the chosen representation). The feasibility vector has dimension dim(). For the entering Simplex, fVec is kept within its bounds. In contrast to this, the pricing of the leaving Simplex selects an element of fVec, that violates its bounds. Definition at line 1378 of file spxsolver.h. References SPxSolverBase< R >::theFvec. ◆ getBasis()
get current basis, and return solver status. ◆ getBasisColStatus()gets basis status for a single column ◆ getBasisMetric()Definition at line 940 of file spxsolver.h. References SPxSolverBase< R >::basis(), and SPxSolverBase< R >::type(). ◆ getBasisRowStatus()◆ getBasisStatus()
gets basis status Definition at line 2095 of file spxsolver.h. References SPxBasisBase< R >::status(). ◆ getComputeDegeneracy()returns whether the degeneracy is computed in each iteration Definition at line 2296 of file spxsolver.h. References SPxSolverBase< R >::computeDegeneracy. ◆ getDecompIterationLimit()returns the iteration limit for the decomposition simplex initialisation Definition at line 2322 of file spxsolver.h. References SPxSolverBase< R >::decompIterationLimit. ◆ getDecompStatus()
returns whether a basis needs to be found for the improved dual simplex Definition at line 2280 of file spxsolver.h. References SPxSolverBase< R >::DONTFINDSTARTBASIS, SPxSolverBase< R >::FINDSTARTBASIS, and SPxSolverBase< R >::getStartingDecompBasis. ◆ getDegenCompOffset()gets the offset for the number of iterations before the degeneracy is computed Definition at line 2310 of file spxsolver.h. References SPxSolverBase< R >::degenCompIterOffset. ◆ getDegeneracyLevel()
get level of dual degeneracy ◆ getDisplayFreq()get display frequency Definition at line 894 of file spxsolver.h. References SPxSolverBase< R >::displayFreq. ◆ getDualfarkas()get dual farkas proof of infeasibility.
◆ getDualNorms()get dual norms ◆ getDualSol()get current solution VectorBase<R> for dual variables. This method returns the Status of the basis. If it is REGULAR or better, the VectorBase<R> of dual variables of the current basis will be copied to the argument
◆ getEnterVals()
◆ getEnterVals2()
◆ getLeaveVals()
◆ getLeaveVals2()
◆ getLhs()
copy lhs value VectorBase<R> to Definition at line 2250 of file spxsolver.h. References SPxLPBase< R >::lhs(). ◆ getLower()
copy lower bound VectorBase<R> to Definition at line 2239 of file spxsolver.h. References SPxLPBase< R >::lower(). ◆ getMaxIters()the maximum number of iterations Definition at line 2221 of file spxsolver.h. References SPxSolverBase< R >::maxIters. ◆ getMaxTime()the maximum runtime Definition at line 2209 of file spxsolver.h. References SPxSolverBase< R >::maxTime. ◆ getNdualNorms()get number of dual norms ◆ getPrimalray()get primal ray in case of unboundedness.
◆ getPrimalSol()get solution vector for primal variables. This method returns the Status of the basis. If it is REGULAR or better, the primal solution vector of the current basis will be copied to the argument
◆ getRedCostSol()get vector of reduced costs. This method returns the Status of the basis. If it is REGULAR or better, the vector of reduced costs of the current basis will be copied to the argument Let d denote the vector of dual variables, as defined above, and A the LPs constraint matrix. Then the reduced cost vector r is defined as \(r^T = c^T - d^TA\).
◆ getResult()
get all results of last solve. ◆ getRhs()
copy rhs value VectorBase<R> to Definition at line 2256 of file spxsolver.h. References SPxLPBase< R >::rhs(). ◆ getSlacks()get VectorBase<R> of slack variables. This method returns the Status of the basis. If it is REGULAR or better, the slack variables of the current basis will be copied to the argument
◆ getSolutionPolishing()
return objective of solution polishing Definition at line 683 of file spxsolver.h. References SPxSolverBase< R >::polishObj. ◆ getTiming()
set timing type Definition at line 877 of file spxsolver.h. References SPxSolverBase< R >::multTimeColwise, SPxSolverBase< R >::multTimeFull, SPxSolverBase< R >::multTimeSparse, SPxSolverBase< R >::multTimeUnsetup, SPxSolverBase< R >::theTime, SPxSolverBase< R >::timerType, and Timer::type(). ◆ getUpper()
copy upper bound VectorBase<R> to Definition at line 2244 of file spxsolver.h. References SPxLPBase< R >::upper(). ◆ hyperPricing()◆ id()id of The Definition at line 1153 of file spxsolver.h. References SPxLPBase< R >::cId(), SPxSolverBase< R >::rep(), SPxLPBase< R >::rId(), and SPxSolverBase< R >::ROW. ◆ init()intialize data structures. If SPxSolverBase is not initialized, the method solve() calls init() to setup all vectors and internal data structures. Most of the other methods within this section are called by init(). Derived classes should add the initialization of additional data structures by overriding this method. Don't forget, however, to call SPxSolverBase<R>::init(). ◆ initRep()◆ invalidateBasis()◆ isBasic() [1/5]is the Definition at line 1339 of file spxsolver.h. References SPxBasisBase< R >::desc(), SPxSolverBase< R >::isBasic(), and SPxLPBase< R >::number(). ◆ isBasic() [2/5]is the Definition at line 1324 of file spxsolver.h. References SPxSolverBase< R >::isBasic(). ◆ isBasic() [3/5]is the Definition at line 1333 of file spxsolver.h. References SPxBasisBase< R >::desc(), SPxSolverBase< R >::isBasic(), and SPxLPBase< R >::number(). ◆ isBasic() [4/5]is the Definition at line 1357 of file spxsolver.h. References SPxBasisBase< R >::desc(), SPxSolverBase< R >::isBasic(), and SPxSolverBase< R >::status(). ◆ isBasic() [5/5]does Definition at line 1318 of file spxsolver.h. References SPxSolverBase< R >::rep(). Referenced by SPxSolverBase< R >::isBasic(), SPxSolverBase< R >::isBasic(), SPxSolverBase< R >::isBasic(), SPxSolverBase< R >::isBasic(), SPxSolverBase< R >::isCoBasic(), SPxSolverBase< R >::isColBasic(), and SPxSolverBase< R >::isRowBasic(). ◆ isBasisValid()check a given basis for validity. ◆ isCoBasic()is the Definition at line 1363 of file spxsolver.h. References SPxBasisBase< R >::desc(), and SPxSolverBase< R >::isBasic(). ◆ isCoId()Is This method returns wheather or not Definition at line 1199 of file spxsolver.h. References SPxSolverBase< R >::theRep. ◆ isColBasic()is the Definition at line 1351 of file spxsolver.h. References SPxBasisBase< R >::desc(), and SPxSolverBase< R >::isBasic(). ◆ isConsistent()◆ isId()Is This method returns wheather or not Definition at line 1190 of file spxsolver.h. References SPxSolverBase< R >::theRep. ◆ isInitialized()has the internal data been initialized? As long as an instance of SPxSolverBase is not initialized, no member contains setup data. Initialization is performed via method init(). Afterwards all data structures are kept up to date (even for all manipulation methods), until unInit() is called. However, some manipulation methods call unInit() themselfs. Definition at line 1905 of file spxsolver.h. References SPxSolverBase< R >::initialized. ◆ isRowBasic()is the Definition at line 1345 of file spxsolver.h. References SPxBasisBase< R >::desc(), and SPxSolverBase< R >::isBasic(). ◆ isTimeLimitReached()returns whether current time limit is reached; call to time() may be skipped unless ◆ iterations()get number of iterations of current solution. Definition at line 2174 of file spxsolver.h. References SPxSolverBase< R >::basis(). Referenced by SPxSolverBase< R >::dualIterations(), SPxSolverBase< R >::primalIterations(), and SPxSolverBase< R >::statistics(). ◆ lbBound() [1/2]
lower bound for fVec, writable. This method returns the lower bound for the feasibility vector. It may only be called for the ENTERing Simplex. For the ENTERing Simplex algorithms, the feasibility vector is maintained to fullfill its bounds. As fVec itself, also its bound depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1427 of file spxsolver.h. References SPxSolverBase< R >::theLBbound. ◆ lbBound() [2/2]
lower bound for fVec. Definition at line 1414 of file spxsolver.h. References SPxSolverBase< R >::theLBbound. ◆ lcBound() [1/2]
lower bound for coPvec. This method returns the lower bound for coPvec. It may only be called for the leaving Simplex algorithm. For the leaving Simplex algorithms coPvec is maintained to fullfill its bounds. As coPvec itself, also its bound depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1507 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theCoLbound, and SPxSolverBase< R >::theType. ◆ lcBound() [2/2]
Definition at line 1493 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theCoLbound, and SPxSolverBase< R >::theType. ◆ leave()let index
◆ leavetol()feasibility tolerance maintained by ratio test during LEAVE algorithm. Definition at line 829 of file spxsolver.h. References SPxSolverBase< R >::m_leavetol. ◆ loadBasis()set a start basis. ◆ loadLP()◆ localAddCols()◆ localAddRows()◆ lpBound() [1/2]
lower bound for pVec. This method returns the lower bound for pVec. It may only be called for the leaving Simplex algorithm. For the leaving Simplex algorithms pVec is maintained to fullfill its bounds. As pVec itself, also its bound depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1573 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theLbound, and SPxSolverBase< R >::theType. ◆ lpBound() [2/2]
Definition at line 1559 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theLbound, and SPxSolverBase< R >::theType. ◆ maxCycle()maximum number of degenerate simplex steps before we detect cycling. SPxSolverBase considers a Simplex step as degenerate if the steplength does not exceed epsilon(). Cycling occurs if only degenerate steps are taken. To prevent this situation, SPxSolverBase perturbs the problem such that nondegenerate steps are ensured. maxCycle() controls how agressive such perturbation is performed, since no more than maxCycle() degenerate steps are accepted before perturbing the LP. The current number of consecutive degenerate steps is counted by numCycle(). Definition at line 924 of file spxsolver.h. References SPxSolverBase< R >::m_maxCycle. ◆ maxInfeas()maximal infeasibility of basis This method is called before concluding optimality. Since it is possible that some stable implementation of class SPxRatioTester yielded a slightly infeasible (or unpriced) basis, this must be checked before terminating with an optimal solution. ◆ nonbasicValue()◆ noViols()check for violations above tol and immediately return false w/o checking the remaining values This method is useful for verifying whether an objective limit can be used as termination criterion ◆ numCycle()actual number of degenerate simplex steps encountered so far. Definition at line 929 of file spxsolver.h. References SPxSolverBase< R >::m_numCycle. ◆ objValue()get objective value of current solution. Definition at line 2058 of file spxsolver.h. References SPxSolverBase< R >::value(). ◆ operator=()
assignment operator assignment operator and copy constructor ◆ opttol()allowed optimality, i.e., dual feasibility tolerance. Definition at line 844 of file spxsolver.h. References SPxSolverBase< R >::COLUMN, SPxSolverBase< R >::m_entertol, SPxSolverBase< R >::m_leavetol, and SPxSolverBase< R >::theRep. ◆ performSolutionPolishing()Identify primal basic variables that have zero reduced costs and try to pivot them out of the basis to make them tight. This is supposed to decrease the number of fractional variables when solving LP relaxations of (mixed) integer programs. The objective must not be modified during this procedure. ◆ perturbMax() [1/2]
◆ perturbMax() [2/2]
◆ perturbMaxEnter()◆ perturbMaxLeave()◆ perturbMin() [1/2]
◆ perturbMin() [2/2]
◆ perturbMinEnter()◆ perturbMinLeave()◆ polishIterations()return number of iterations done with primal algorithm Definition at line 2193 of file spxsolver.h. References SPxSolverBase< R >::polishCount. ◆ precisionReached()is the solution precise enough, or should we increase delta() ? ◆ pricer()return loaded SPxPricer. Definition at line 1826 of file spxsolver.h. References SPxSolverBase< R >::thepricer. ◆ pricing()return current Pricing. Definition at line 548 of file spxsolver.h. References SPxSolverBase< R >::thePricing. ◆ primalDegeneratePivots()get number of primal degenerate pivots Definition at line 2156 of file spxsolver.h. References SPxSolverBase< R >::enterCycles, SPxSolverBase< R >::leaveCycles, SPxSolverBase< R >::rep(), and SPxSolverBase< R >::ROW. ◆ primalIterations()return number of iterations done with primal algorithm Definition at line 2180 of file spxsolver.h. References SPxSolverBase< R >::iterations(), and SPxSolverBase< R >::primalCount. Referenced by SPxSolverBase< R >::dualIterations(). ◆ printDisplayLine()print display line of flying table ◆ pVec()
pricing vector. The pricing vector pVec is the product of coPvec with the constraint matrix. As coPvec, also pVec is maintained within its bound for the leaving Simplex algorithm, while the bounds are tested for the entering Simplex. pVec is of dimension coDim(). Vector pVec() is only up to date for LEAVEing Simplex or FULL pricing in ENTERing Simplex. Definition at line 1533 of file spxsolver.h. References SPxSolverBase< R >::thePvec. ◆ qualBoundViolation()get violations of bounds. ◆ qualConstraintViolation()get violation of constraints. ◆ qualRedCostViolation()get violation of optimality criterion. ◆ qualSlackViolation()get the residuum |Ax-b|. ◆ ratiotester()
return loaded SPxRatioTester. Definition at line 1836 of file spxsolver.h. References SPxSolverBase< R >::theratiotester. ◆ read()
read LP from input stream. Reimplemented from SPxLPBase< R >. ◆ readBasisFile()
Load basis from ◆ reDim()reset dimensions of vectors according to loaded LP. ◆ reinitializeVecs()◆ rejectEnter()
◆ rejectLeave()
◆ reLoad()◆ rep()
return the current basis representation. Definition at line 536 of file spxsolver.h. References SPxSolverBase< R >::theRep. Referenced by SPxSolverBase< R >::coId(), SPxSolverBase< R >::coVector(), SPxSolverBase< R >::coVector(), SPxSolverBase< R >::dualDegeneratePivots(), SPxSolverBase< R >::id(), SPxSolverBase< R >::isBasic(), SPxSolverBase< R >::primalDegeneratePivots(), SPxSolverBase< R >::vector(), and SPxSolverBase< R >::vector(). ◆ resetClockStats()◆ resetCumulativeTime()reset cumulative time counter to zero. Definition at line 2138 of file spxsolver.h. References SPxSolverBase< R >::theCumulativeTime. ◆ rowId()RowId of Mapping between numbers and Ids Definition at line 2332 of file spxsolver.h. References SPxLPBase< R >::rId(). ◆ rows()
return const lp's rows if available. Definition at line 2227 of file spxsolver.h. References SPxLPBase< R >::lprowset(). ◆ sense()
optimization sense. Definition at line 2262 of file spxsolver.h. References SPxLPBase< R >::spxSense(). ◆ setBasis()set the lp solver's basis. ◆ setBasisSolver()setup linear solver to use. If ◆ setBasisStatus()
set the lp solver's basis status. Definition at line 2107 of file spxsolver.h. References SPxSolverBase< R >::m_status, SPxSolverBase< R >::OPTIMAL, SPxBasisBase< R >::setStatus(), and SPxSolverBase< R >::UNKNOWN. ◆ setComputeDegenFlag()sets whether the degeneracy is computed at each iteration Definition at line 2289 of file spxsolver.h. References SPxSolverBase< R >::computeDegeneracy. ◆ setDecompIterationLimit()sets the iteration limit for the decomposition simplex initialisation Definition at line 2316 of file spxsolver.h. References SPxSolverBase< R >::decompIterationLimit. ◆ setDecompStatus()
turn on or off the improved dual simplex. ◆ setDegenCompOffset()sets the offset for the number of iterations before the degeneracy is computed Definition at line 2303 of file spxsolver.h. References SPxSolverBase< R >::degenCompIterOffset. ◆ setDelta()set parameter ◆ setDisplayFreq()set display frequency Definition at line 888 of file spxsolver.h. References SPxSolverBase< R >::displayFreq. ◆ setDual()
◆ setDualColBounds()◆ setDualNorms()◆ setDualRowBounds()◆ setEnterBound4Col()◆ setEnterBound4Row()◆ setEnterBounds()◆ setFeastol()◆ setFillFactor()set refactor threshold for fill-in in current factor update compared to fill-in in last factorization Definition at line 512 of file spxsolver.h. ◆ setIntegralityInformation()pass integrality information about the variables to the solver ◆ setLeaveBound4Col()◆ setLeaveBound4Row()◆ setLeaveBounds()◆ setMemFactor()set refactor threshold for memory growth in current factor update compared to the last factorization Definition at line 518 of file spxsolver.h. ◆ setMetricInformation()print basis metric within the usual output Definition at line 900 of file spxsolver.h. References SPxSolverBase< R >::printBasisMetric, and SPxSolverBase< R >::type(). ◆ setNonzeroFactor()set refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix Definition at line 506 of file spxsolver.h. ◆ setOpttol()◆ setOutstream()Definition at line 499 of file spxsolver.h. References SPxSolverBase< R >::spxout. ◆ setPricer()setup pricer to use. If ◆ setPricing()◆ setPrimal()
◆ setPrimalBounds()setup feasibility bounds for entering algorithm ◆ setRedCost()
◆ setRep()
◆ setSlacks()
◆ setSolutionPolishing()
set objective of solution polishing (0: off, 1: max_basic_slack, 2: min_basic_slack) Definition at line 677 of file spxsolver.h. References SPxSolverBase< R >::polishObj. ◆ setSolverStatus()setting the solver status external from the solve loop. Definition at line 2116 of file spxsolver.h. References SPxSolverBase< R >::m_status. ◆ setSparsePricingFactor()Definition at line 906 of file spxsolver.h. References SPxSolverBase< R >::sparsePricingFactor. ◆ setStarter()setup starting basis generator to use. If ◆ setTerminationIter()set iteration limit. ◆ setTerminationTime()set time limit. Limits and status inquiry ◆ setTerminationValue()set objective limit. ◆ setTester()setup ratio-tester to use. If ◆ setTiming()
set timing type Definition at line 866 of file spxsolver.h. References SPxSolverBase< R >::multTimeColwise, SPxSolverBase< R >::multTimeFull, SPxSolverBase< R >::multTimeSparse, SPxSolverBase< R >::multTimeUnsetup, TimerFactory::switchTimer(), SPxSolverBase< R >::theTime, and SPxSolverBase< R >::timerType. ◆ setType()◆ setup4coSolve()
Setup vectors to be cosolved within Simplex loop. Load vector Definition at line 1777 of file spxsolver.h. References SPxSolverBase< R >::coSolveVector2, SPxSolverBase< R >::coSolveVector2rhs, SPxSolverBase< R >::ENTER, and SPxSolverBase< R >::type(). ◆ setup4coSolve2()
Setup vectors to be cosolved within Simplex loop. Load a second vector Definition at line 1789 of file spxsolver.h. References SPxSolverBase< R >::coSolveVector3, SPxSolverBase< R >::coSolveVector3rhs, SPxSolverBase< R >::ENTER, and SPxSolverBase< R >::type(). ◆ setup4solve()
Setup vectors to be solved within Simplex loop. Load vector Definition at line 1749 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::solveVector2, SPxSolverBase< R >::solveVector2rhs, and SPxSolverBase< R >::type(). ◆ setup4solve2()
Setup vectors to be solved within Simplex loop. Load a second additional vector Definition at line 1763 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::solveVector3, SPxSolverBase< R >::solveVector3rhs, and SPxSolverBase< R >::type(). ◆ setupPupdate()◆ shift()total current shift amount. Definition at line 1682 of file spxsolver.h. References SPxSolverBase< R >::theShift. ◆ shiftFvec()Perform initial shifting to optain an feasible or pricable basis. ◆ shiftLBbound()shift Definition at line 1639 of file spxsolver.h. References SPxSolverBase< R >::ENTER, MAXIMUM, SPxSolverBase< R >::theLBbound, SPxSolverBase< R >::theShift, and SPxSolverBase< R >::theType. ◆ shiftLCbound()shift Definition at line 1671 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, MAXIMUM, SPxSolverBase< R >::theCoLbound, SPxSolverBase< R >::theShift, and SPxSolverBase< R >::theType. ◆ shiftLPbound()shift Definition at line 1655 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, MAXIMUM, SPxSolverBase< R >::theLbound, SPxSolverBase< R >::theShift, and SPxSolverBase< R >::theType. ◆ shiftPvec()Perform initial shifting to optain an feasible or pricable basis. ◆ shiftUBbound()shift Definition at line 1631 of file spxsolver.h. References SPxSolverBase< R >::ENTER, MAXIMUM, SPxSolverBase< R >::theShift, SPxSolverBase< R >::theType, and SPxSolverBase< R >::theUBbound. ◆ shiftUCbound()shift Definition at line 1663 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, MAXIMUM, SPxSolverBase< R >::theCoUbound, SPxSolverBase< R >::theShift, and SPxSolverBase< R >::theType. ◆ shiftUPbound()shift Definition at line 1647 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, MAXIMUM, SPxSolverBase< R >::theShift, SPxSolverBase< R >::theType, and SPxSolverBase< R >::theUbound. ◆ slinSolver()
return loaded SLinSolver. Definition at line 1831 of file spxsolver.h. ◆ solve()solve loaded LP. Solves the loaded LP by processing the Simplex iteration until the termination criteria is fullfilled (see terminate()). The SPxStatus of the solver will indicate the reason for termination.
◆ starter()
return current starter. Definition at line 554 of file spxsolver.h. References SPxSolverBase< R >::thestarter. ◆ statistics()returns statistical information in form of a string. Definition at line 2268 of file spxsolver.h. References SPxSolverBase< R >::basis(), SPxSolverBase< R >::iterations(), and SPxSolverBase< R >::time(). ◆ status()Status of solution process. Referenced by SPxSolverBase< R >::isBasic(). ◆ subversion()return the internal subversion of SPxSolverBase as number Definition at line 531 of file spxsolver.h. References SOPLEX_SUBVERSION. ◆ sumDualDegeneracy()get the sum of dual degeneracy Definition at line 2162 of file spxsolver.h. References SPxSolverBase< R >::dualDegenSum. ◆ sumPrimalDegeneracy()get the sum of primal degeneracy Definition at line 2168 of file spxsolver.h. References SPxSolverBase< R >::primalDegenSum. ◆ terminate()Termination criterion. This method is called in each Simplex iteration to determine, if the algorithm is to terminate. In this case a nonzero value is returned. This method is declared virtual to allow for implementation of other stopping criteria or using it as callback method within the Simplex loop, by overriding the method in a derived class. However, all implementations must terminate with the statement Note, that the Simplex loop stopped even when terminate() returns 0, if the LP has been solved to optimality (i.e. no further pricing succeeds and no shift is present). ◆ terminationIter()◆ terminationTime()◆ terminationValue()◆ test() [1/2]
Violations of pVec. In entering Simplex pricing selects checks vectors coPvec() and pVec() for violation of its bounds. Vector test() contains the violations for pVec(), i.e., if test()[i] < 0, the i'th element of pVec() is violated by test()[i]. Vector test() is only up to date for FULL pricing. Definition at line 1586 of file spxsolver.h. References SPxSolverBase< R >::ENTER, SPxSolverBase< R >::theTest, and SPxSolverBase< R >::type(). ◆ test() [2/2]test VectorBase<R> ◆ testBounds()◆ testVecs()◆ time()time spent in last call to method solve(). Definition at line 2199 of file spxsolver.h. References SPxSolverBase< R >::theTime, and Timer::time(). Referenced by SPxSolverBase< R >::statistics(). ◆ type()return current Type. Definition at line 542 of file spxsolver.h. References SPxSolverBase< R >::theType. Referenced by SPxSolverBase< R >::coTest(), SPxSolverBase< R >::fTest(), SPxSolverBase< R >::getBasisMetric(), SPxSolverBase< R >::setMetricInformation(), SPxSolverBase< R >::setup4coSolve(), SPxSolverBase< R >::setup4coSolve2(), SPxSolverBase< R >::setup4solve(), SPxSolverBase< R >::setup4solve2(), and SPxSolverBase< R >::test(). ◆ ubBound() [1/2]
upper bound for fVec, writable. This method returns the upper bound for the feasibility vector. It may only be called for the ENTERing Simplex. For the ENTERing Simplex algorithms, the feasibility vector is maintained to fullfill its bounds. As fVec itself, also its bounds depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1409 of file spxsolver.h. References SPxSolverBase< R >::theUBbound. ◆ ubBound() [2/2]
upper bound for fVec. Definition at line 1396 of file spxsolver.h. References SPxSolverBase< R >::theUBbound. ◆ ucBound() [1/2]
upper bound for coPvec. This method returns the upper bound for coPvec. It may only be called for the leaving Simplex algorithm. For the leaving Simplex algorithms coPvec is maintained to fullfill its bounds. As coPvec itself, also its bound depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1486 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theCoUbound, and SPxSolverBase< R >::theType. ◆ ucBound() [2/2]
Definition at line 1472 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theCoUbound, and SPxSolverBase< R >::theType. ◆ ungetEnterVal()
◆ unInit()uninitialize data structures. Definition at line 1914 of file spxsolver.h. References SPxSolverBase< R >::initialized. Referenced by SPxSolverBase< R >::clearRowObjs(). ◆ unitVector()return Definition at line 1291 of file spxsolver.h. References SPxSolverBase< R >::unitVecs. ◆ unscaleLPandReloadBasis()◆ unShift()◆ upBound() [1/2]
upper bound for pVec. This method returns the upper bound for pVec. It may only be called for the leaving Simplex algorithm. For the leaving Simplex algorithms pVec is maintained to fullfill its bounds. As pVec itself, also its bound depend on the chosen representation. Further, they may need to be shifted (see below). Definition at line 1552 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theType, and SPxSolverBase< R >::theUbound. ◆ upBound() [2/2]
Definition at line 1538 of file spxsolver.h. References SPxSolverBase< R >::LEAVE, SPxSolverBase< R >::theType, and SPxSolverBase< R >::theUbound. ◆ updateCoTest()◆ updateFtest()◆ updateNonbasicValue()
◆ updateTest()◆ useFullPerturbation()perturb entire problem or only the bounds relevant to the current pivot Definition at line 935 of file spxsolver.h. References SPxSolverBase< R >::fullPerturbation. ◆ value()current objective value.
Referenced by SPxSolverBase< R >::objValue(). ◆ varStatus()
Status of Definition at line 1306 of file spxsolver.h. References SPxBasisBase< R >::desc(). ◆ varStatusToBasisStatusCol()
converts VarStatus to basis status for columns ◆ varStatusToBasisStatusRow()
converts VarStatus to basis status for rows ◆ vector() [1/4]Definition at line 1226 of file spxsolver.h. References SPxSolverBase< R >::COLUMN, SPxLPBase< R >::number(), SPxSolverBase< R >::rep(), and SPxSolverBase< R >::unitVecs. ◆ vector() [2/4]VectorBase<R> associated to
Definition at line 1243 of file spxsolver.h. References SPxSolverBase< R >::vector(). ◆ vector() [3/4]Definition at line 1218 of file spxsolver.h. References SPxLPBase< R >::number(), SPxSolverBase< R >::rep(), SPxSolverBase< R >::ROW, and SPxSolverBase< R >::unitVecs. ◆ vector() [4/4]
Definition at line 1212 of file spxsolver.h. References SPxSolverBase< R >::thevectors. Referenced by SPxSolverBase< R >::enterVector(), and SPxSolverBase< R >::vector(). ◆ version()return the version of SPxSolverBase as number like 123 for 1.2.3 Definition at line 526 of file spxsolver.h. References SOPLEX_VERSION. ◆ writeBasisFile()
Write basis to ◆ writeState()
Write current LP, basis, and parameter settings. LP is written in MPS format to "\p filename".mps, basis is written in "\p filename".bas, and parameters are written to "\p filename".set. If Member Data Documentation◆ addVec
storage for thePvec = &addVec Definition at line 364 of file spxsolver.h. ◆ boundflipsnumber of performed bound flips Definition at line 412 of file spxsolver.h. ◆ boundrangeabsolute range of all bounds in the problem Definition at line 426 of file spxsolver.h. ◆ computeDegeneracyDefinition at line 338 of file spxsolver.h. Referenced by SPxSolverBase< R >::getComputeDegeneracy(), and SPxSolverBase< R >::setComputeDegenFlag(). ◆ coSolveVector2
when 2 systems are to be solved at a time; typically for speepest edge weights Definition at line 303 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4coSolve(). ◆ coSolveVector2rhs
when 2 systems are to be solved at a time; typically for speepest edge weights Definition at line 305 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4coSolve(). ◆ coSolveVector3
when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!) Definition at line 307 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4coSolve2(). ◆ coSolveVector3rhs
when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!) Definition at line 309 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4coSolve2(). ◆ coWeights
store dual norms Definition at line 480 of file spxsolver.h. ◆ decompIterationLimitthe maximum number of iterations before the decomposition simplex is aborted. Definition at line 342 of file spxsolver.h. Referenced by SPxSolverBase< R >::getDecompIterationLimit(), and SPxSolverBase< R >::setDecompIterationLimit(). ◆ degenCompIterOffsetthe number of iterations performed before the degeneracy level is computed Definition at line 340 of file spxsolver.h. Referenced by SPxSolverBase< R >::getDegenCompOffset(), and SPxSolverBase< R >::setDegenCompOffset(). ◆ displayFreqDefinition at line 333 of file spxsolver.h. Referenced by SPxSolverBase< R >::getDisplayFreq(), and SPxSolverBase< R >::setDisplayFreq(). ◆ displayLineDefinition at line 332 of file spxsolver.h. ◆ dualDegenSumthe sum of the dual degeneracy percentage Definition at line 420 of file spxsolver.h. Referenced by SPxSolverBase< R >::sumDualDegeneracy(). ◆ dualFarkas
stores dual farkas proof in case of infeasibility Definition at line 405 of file spxsolver.h. ◆ dualRhs
rhs VectorBase<R> for computing the dual vector Definition at line 362 of file spxsolver.h. ◆ dualVec
dual vector Definition at line 363 of file spxsolver.h. ◆ enterCountnumber of ENTER iterations Definition at line 408 of file spxsolver.h. ◆ enterCyclesthe number of degenerate steps during the entering algorithm Definition at line 415 of file spxsolver.h. Referenced by SPxSolverBase< R >::dualDegeneratePivots(), and SPxSolverBase< R >::primalDegeneratePivots(). ◆ enterDegenCandthe number of degenerate candidates in the entering algorithm Definition at line 417 of file spxsolver.h. ◆ freePricertrue iff thepricer should be freed inside of object Definition at line 311 of file spxsolver.h. ◆ freeRatioTestertrue iff theratiotester should be freed inside of object Definition at line 312 of file spxsolver.h. ◆ freeStartertrue iff thestarter should be freed inside of object Definition at line 313 of file spxsolver.h. ◆ fullPerturbationwhether to perturb the entire problem or just the bounds relevant for the current pivot Definition at line 345 of file spxsolver.h. Referenced by SPxSolverBase< R >::useFullPerturbation(). ◆ getStartingDecompBasisflag to indicate whether the simplex is solved to get the starting improved dual simplex basis Definition at line 337 of file spxsolver.h. Referenced by SPxSolverBase< R >::getDecompStatus(). ◆ hyperPricingEntertrue if hyper sparse pricing is turned on in the entering Simplex Definition at line 472 of file spxsolver.h. ◆ hyperPricingLeavetrue if hyper sparse pricing is turned on in the leaving Simplex Definition at line 471 of file spxsolver.h. ◆ infeasibilitiesFor the leaving Simplex algorithm this vector contains the indices of infeasible basic variables; for the entering Simplex algorithm this vector contains the indices of infeasible slack variables. Definition at line 449 of file spxsolver.h. ◆ infeasibilitiesCoFor the entering Simplex algorithm these vectors contains the indices of infeasible basic variables. Definition at line 452 of file spxsolver.h. ◆ initializedtrue, if all vectors are setup. Definition at line 292 of file spxsolver.h. Referenced by SPxSolverBase< R >::isInitialized(), and SPxSolverBase< R >::unInit(). ◆ instableEnterDefinition at line 326 of file spxsolver.h. ◆ instableEnterIdDefinition at line 325 of file spxsolver.h. ◆ instableEnterValDefinition at line 327 of file spxsolver.h. ◆ instableLeaveDefinition at line 319 of file spxsolver.h. ◆ instableLeaveNumDefinition at line 318 of file spxsolver.h. ◆ instableLeaveValDefinition at line 320 of file spxsolver.h. ◆ integerVariablessupplementary variable information, 0: continous variable, 1: integer variable Definition at line 496 of file spxsolver.h. ◆ isInfeasible0: index not violated, 1: index violated, 2: index violated and among candidate list Binary vectors to store whether basic indices are infeasible the i-th entry equals false, if the i-th basic variable is not infeasible the i-th entry equals true, if the i-th basic variable is infeasible Definition at line 463 of file spxsolver.h. ◆ isInfeasibleCo0: index not violated, 1: index violated, 2: index violated and among candidate list Definition at line 465 of file spxsolver.h. ◆ lastShiftfor forcing feasibility. Definition at line 289 of file spxsolver.h. ◆ leaveCountnumber of LEAVE iterations Definition at line 407 of file spxsolver.h. ◆ leaveCyclesthe number of degenerate steps during the leaving algorithm Definition at line 416 of file spxsolver.h. Referenced by SPxSolverBase< R >::dualDegeneratePivots(), and SPxSolverBase< R >::primalDegeneratePivots(). ◆ leaveDegenCandthe number of degenerate candidates in the leaving algorithm Definition at line 418 of file spxsolver.h. ◆ m_entertolfeasibility tolerance maintained during entering algorithm Definition at line 286 of file spxsolver.h. Referenced by SPxSolverBase< R >::delta(), SPxSolverBase< R >::entertol(), SPxSolverBase< R >::feastol(), and SPxSolverBase< R >::opttol(). ◆ m_leavetolfeasibility tolerance maintained during leaving algorithm Definition at line 287 of file spxsolver.h. Referenced by SPxSolverBase< R >::delta(), SPxSolverBase< R >::feastol(), SPxSolverBase< R >::leavetol(), and SPxSolverBase< R >::opttol(). ◆ m_maxCyclemaximum steps before cycling is detected. Definition at line 290 of file spxsolver.h. Referenced by SPxSolverBase< R >::maxCycle(). ◆ m_nonbasicValuenonbasic part of current objective value Definition at line 275 of file spxsolver.h. Referenced by SPxSolverBase< R >::forceRecompNonbasicValue(). ◆ m_nonbasicValueUpToDatetrue, if the stored objValue is up to date Definition at line 276 of file spxsolver.h. Referenced by SPxSolverBase< R >::forceRecompNonbasicValue(). ◆ m_numCycleactual number of degenerate steps so far. Definition at line 291 of file spxsolver.h. Referenced by SPxSolverBase< R >::numCycle(). ◆ m_numViolnumber of violations of current solution Definition at line 284 of file spxsolver.h. ◆ m_pricingViolmaximal feasibility violation of current solution Definition at line 278 of file spxsolver.h. ◆ m_pricingViolComaximal feasibility violation of current solution in coDim Definition at line 282 of file spxsolver.h. ◆ m_pricingViolCoUpToDatetrue, if the stored violation in coDim is up to date Definition at line 283 of file spxsolver.h. ◆ m_pricingViolUpToDatetrue, if the stored violation is up to date Definition at line 279 of file spxsolver.h. ◆ m_statusstatus of algorithm. Definition at line 273 of file spxsolver.h. Referenced by SPxSolverBase< R >::setBasisStatus(), and SPxSolverBase< R >::setSolverStatus(). ◆ maxItersmaximum allowed iterations. Definition at line 268 of file spxsolver.h. Referenced by SPxSolverBase< R >::getMaxIters(). ◆ maxTimemaximum allowed time. Definition at line 269 of file spxsolver.h. Referenced by SPxSolverBase< R >::getMaxTime(). ◆ multColwiseCallsnumber of products, columnwise multiplication Definition at line 490 of file spxsolver.h. ◆ multFullCallsnumber of products ignoring sparsity Definition at line 489 of file spxsolver.h. ◆ multSparseCallsnumber of products exploiting sparsity Definition at line 488 of file spxsolver.h. ◆ multTimeColwisetime spent in setupPupdate(), columnwise multiplication Definition at line 486 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), and SPxSolverBase< R >::setTiming(). ◆ multTimeFulltime spent in setupPupdate() ignoring sparsity Definition at line 485 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), and SPxSolverBase< R >::setTiming(). ◆ multTimeSparsetime spent in setupPupdate() exploiting sparsity Definition at line 484 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), and SPxSolverBase< R >::setTiming(). ◆ multTimeUnsetuptime spent in setupPupdate() w/o sparsity information Definition at line 487 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), and SPxSolverBase< R >::setTiming(). ◆ multUnsetupCallsnumber of products w/o sparsity information Definition at line 491 of file spxsolver.h. ◆ nCallsToTimelimDefinition at line 271 of file spxsolver.h. ◆ nClckSkipsLeftremaining number of times the clock can be safely skipped Definition at line 270 of file spxsolver.h. ◆ objLimit< the number of calls to the method isTimeLimitReached() objective value limit. Definition at line 272 of file spxsolver.h. ◆ objrangeabsolute range of all objective coefficients in the problem Definition at line 428 of file spxsolver.h. ◆ polishCountnumber of solution polishing iterations Definition at line 410 of file spxsolver.h. Referenced by SPxSolverBase< R >::polishIterations(). ◆ polishObj
objective of solution polishing Definition at line 264 of file spxsolver.h. Referenced by SPxSolverBase< R >::getSolutionPolishing(), and SPxSolverBase< R >::setSolutionPolishing(). ◆ primalCountnumber of primal iterations Definition at line 409 of file spxsolver.h. Referenced by SPxSolverBase< R >::primalIterations(). ◆ primalDegenSumthe sum of the primal degeneracy percentage Definition at line 419 of file spxsolver.h. Referenced by SPxSolverBase< R >::sumPrimalDegeneracy(). ◆ primalRay
stores primal ray in case of unboundedness Definition at line 404 of file spxsolver.h. ◆ primRhs
rhs VectorBase<R> for computing the primal vector Definition at line 360 of file spxsolver.h. ◆ primVec
primal vector Definition at line 361 of file spxsolver.h. Referenced by SPxSolverBase< R >::epsilon(). ◆ printBasisMetricprinting the current basis metric in the log (-1: off, 0: condition estimate, 1: trace, 2: determinant, 3: condition) Definition at line 347 of file spxsolver.h. Referenced by SPxSolverBase< R >::setMetricInformation(). ◆ randomThe random number generator used throughout the whole computation. Its seed can be modified. Definition at line 444 of file spxsolver.h. ◆ recomputedVectorsflag to perform clean up step to reduce numerical errors only once Definition at line 330 of file spxsolver.h. ◆ remainingRoundsEnterDefinition at line 475 of file spxsolver.h. ◆ remainingRoundsEnterCoDefinition at line 476 of file spxsolver.h. ◆ remainingRoundsLeavenumber of dense rounds/refactorizations until sparsePricing is enabled again Definition at line 474 of file spxsolver.h. ◆ siderangeabsolute range of all side in the problem Definition at line 427 of file spxsolver.h. ◆ solveVector2
when 2 systems are to be solved at a time; typically for speepest edge weights Definition at line 295 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4solve(). ◆ solveVector2rhs
when 2 systems are to be solved at a time; typically for speepest edge weights Definition at line 297 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4solve(). ◆ solveVector3
when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!) Definition at line 299 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4solve2(). ◆ solveVector3rhs
when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic solution will be modified!) Definition at line 301 of file spxsolver.h. Referenced by SPxSolverBase< R >::setup4solve2(). ◆ sparsePricingEntertrue if sparsePricing is turned on in the entering Simplex for slack variables Definition at line 469 of file spxsolver.h. ◆ sparsePricingEnterCotrue if sparsePricing is turned on in the entering Simplex Definition at line 470 of file spxsolver.h. ◆ sparsePricingFactorenable sparse pricing when viols < factor * dim() Definition at line 334 of file spxsolver.h. Referenced by SPxSolverBase< R >::setSparsePricingFactor(). ◆ sparsePricingLeaveThese values enable or disable sparse pricing. true if sparsePricing is turned on in the leaving Simplex Definition at line 468 of file spxsolver.h. ◆ SPxBoundFlippingRT< R >
Definition at line 106 of file spxsolver.h. ◆ SPxFastRT< R >◆ spxoutmessage handler Definition at line 493 of file spxsolver.h. Referenced by SPxSolverBase< R >::setOutstream(). ◆ theCoLbound
Lower bound for covars. Definition at line 398 of file spxsolver.h. Referenced by SPxSolverBase< R >::lcBound(), SPxSolverBase< R >::lcBound(), and SPxSolverBase< R >::shiftLCbound(). ◆ theCoPrhs
Definition at line 385 of file spxsolver.h. Referenced by SPxSolverBase< R >::coPrhs(). ◆ theCoPvec
Definition at line 386 of file spxsolver.h. Referenced by SPxSolverBase< R >::coPvec(). ◆ theCoTest
Definition at line 401 of file spxsolver.h. Referenced by SPxSolverBase< R >::coTest(), and SPxSolverBase< R >::fTest(). ◆ theCoUbound
Upper bound for covars. Definition at line 397 of file spxsolver.h. Referenced by SPxSolverBase< R >::shiftUCbound(), SPxSolverBase< R >::ucBound(), and SPxSolverBase< R >::ucBound(). ◆ thecovectorsthe LP coVectors according to representation Definition at line 358 of file spxsolver.h. Referenced by SPxSolverBase< R >::coVector(), and SPxSolverBase< R >::dim(). ◆ theCPvec
column pricing vector Definition at line 391 of file spxsolver.h. ◆ theCumulativeTimecumulative time spent in all calls to method solve() Definition at line 267 of file spxsolver.h. Referenced by SPxSolverBase< R >::cumulativeTime(), and SPxSolverBase< R >::resetCumulativeTime(). ◆ theFrhs
The values of the rhs corresponding to the current basis. Definition at line 380 of file spxsolver.h. Referenced by SPxSolverBase< R >::fRhs(). ◆ theFvec
The values of all basis variables. Definition at line 382 of file spxsolver.h. Referenced by SPxSolverBase< R >::fVec(). ◆ theLBbound
Lower Basic Feasibility bound. Definition at line 377 of file spxsolver.h. Referenced by SPxSolverBase< R >::lbBound(), SPxSolverBase< R >::lbBound(), and SPxSolverBase< R >::shiftLBbound(). ◆ theLbound
Lower bound for vars. Definition at line 396 of file spxsolver.h. Referenced by SPxSolverBase< R >::lpBound(), SPxSolverBase< R >::lpBound(), and SPxSolverBase< R >::shiftLPbound(). ◆ theLCbound
Lower Column Feasibility bound. Definition at line 369 of file spxsolver.h. ◆ theLRbound
Lower Row Feasibility bound. Definition at line 367 of file spxsolver.h. ◆ thepricerDefinition at line 422 of file spxsolver.h. Referenced by SPxSolverBase< R >::pricer(). ◆ thePricingfull or partial pricing. Definition at line 262 of file spxsolver.h. Referenced by SPxSolverBase< R >::pricing(). ◆ thePvec
The pricing VectorBase<R> Definition at line 388 of file spxsolver.h. Referenced by SPxSolverBase< R >::pVec(). ◆ theratiotester
Definition at line 423 of file spxsolver.h. Referenced by SPxSolverBase< R >::ratiotester(). ◆ theRep
row or column representation. Definition at line 263 of file spxsolver.h. Referenced by SPxSolverBase< R >::feastol(), SPxSolverBase< R >::isCoId(), SPxSolverBase< R >::isId(), SPxSolverBase< R >::opttol(), and SPxSolverBase< R >::rep(). ◆ theRPvec
row pricing vector Definition at line 390 of file spxsolver.h. ◆ theShiftsum of all shifts applied to any bound. Definition at line 288 of file spxsolver.h. Referenced by SPxSolverBase< R >::shift(), SPxSolverBase< R >::shiftLBbound(), SPxSolverBase< R >::shiftLCbound(), SPxSolverBase< R >::shiftLPbound(), SPxSolverBase< R >::shiftUBbound(), SPxSolverBase< R >::shiftUCbound(), and SPxSolverBase< R >::shiftUPbound(). ◆ thestarter
Definition at line 424 of file spxsolver.h. Referenced by SPxSolverBase< R >::starter(). ◆ theTest
Definition at line 402 of file spxsolver.h. Referenced by SPxSolverBase< R >::test(). ◆ theTimetime spent in last call to method solve() Definition at line 265 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), SPxSolverBase< R >::setTiming(), and SPxSolverBase< R >::time(). ◆ theTypeentering or leaving algortihm. Definition at line 261 of file spxsolver.h. Referenced by SPxSolverBase< R >::lcBound(), SPxSolverBase< R >::lcBound(), SPxSolverBase< R >::lpBound(), SPxSolverBase< R >::lpBound(), SPxSolverBase< R >::shiftLBbound(), SPxSolverBase< R >::shiftLCbound(), SPxSolverBase< R >::shiftLPbound(), SPxSolverBase< R >::shiftUBbound(), SPxSolverBase< R >::shiftUCbound(), SPxSolverBase< R >::shiftUPbound(), SPxSolverBase< R >::type(), SPxSolverBase< R >::ucBound(), SPxSolverBase< R >::ucBound(), SPxSolverBase< R >::upBound(), and SPxSolverBase< R >::upBound(). ◆ theUBbound
Upper Basic Feasibility bound. In entering Simplex algorithm, the ratio test must ensure that all basic variables remain within their feasibility bounds. To give fast acces to them, the bounds of basic variables are copied into the following two vectors. Definition at line 376 of file spxsolver.h. Referenced by SPxSolverBase< R >::shiftUBbound(), SPxSolverBase< R >::ubBound(), and SPxSolverBase< R >::ubBound(). ◆ theUbound
Upper bound for vars. Definition at line 395 of file spxsolver.h. Referenced by SPxSolverBase< R >::shiftUPbound(), SPxSolverBase< R >::upBound(), and SPxSolverBase< R >::upBound(). ◆ theUCbound
Upper Column Feasibility bound. Definition at line 368 of file spxsolver.h. ◆ theURbound
Upper Row Feasibility bound. Definition at line 366 of file spxsolver.h. ◆ thevectorsthe LP vectors according to representation Definition at line 357 of file spxsolver.h. Referenced by SPxSolverBase< R >::coDim(), and SPxSolverBase< R >::vector(). ◆ timerType
type of timer (user or wallclock) Definition at line 266 of file spxsolver.h. Referenced by SPxSolverBase< R >::getTiming(), and SPxSolverBase< R >::setTiming(). ◆ totalboundflipstotal number of bound flips Definition at line 413 of file spxsolver.h. Referenced by SPxSolverBase< R >::boundFlips(). ◆ unitVecs
array of unit vectors Definition at line 356 of file spxsolver.h. Referenced by SPxSolverBase< R >::coVector(), SPxSolverBase< R >::coVector(), SPxSolverBase< R >::unitVector(), SPxSolverBase< R >::vector(), and SPxSolverBase< R >::vector(). ◆ updateViolsstore indices that were changed in the previous iteration and must be checked in hyper pricing Definition at line 455 of file spxsolver.h. ◆ updateViolsCoDefinition at line 456 of file spxsolver.h. ◆ weights
◆ weightsAreSetupare the dual norms already set up? Definition at line 481 of file spxsolver.h.
|