Loading...
Searching...
No Matches
SPxScaler< R > Class Template Referenceabstract LP scaler abstract base class. More...
Inheritance diagram for SPxScaler< R >:
![]()
Detailed Descriptiontemplate<class R> class soplex::SPxScaler< R > LP scaler abstract base class. Instances of classes derived from SPxScaler may be loaded to SoPlex in order to scale LPs before solving them. SoPlex will load() itself to the SPxScaler and then call scale(). Generally any SPxLP can be loaded to a SPxScaler for scale()ing it. The scaling can be undone by calling unscale(). Mathematically, the scaling of a constraint matrix A can be written as \( A' = R A C \), with \( R \) and \( C \), being diagonal matrices corresponding to the row and column scale factors, respectively. Besides the constraints matrix, also the upper and lower bounds of both columns and rows need to be scaled. Note that by default scaling is performed both before and after presolving and the former scaling factors are retained during branch-and-bound (persistent scaling). However, while within SoPlex the scaled problem is used, data accessed through the soplex.cpp interface is provided w.r.t. the original problem (i.e., in unscaled form). For instance, consider a scaled constraints matrix A' that is extended by artificial slack variables to the matrix (A',I). A basis \( B' = [(A',I)P]_{[1:m][1:m] }\) (with P being a permutation matrix) for the scaled problem corresponds to the basis \( B = R^{-1} [(A',I)P]_{[1:m][1:m]} [P^{T} \tilde{C}^{-1} P]_{[1:m][1:m] } \). In this equation, \( \tilde{C} \) is of the form \[ \begin{array}{cc} C & 0 \\ O & R^{-1} \end{array} \] Note that in SoPlex only scaling factors \( 2^k, k \in \mathbb{Z} \) are used. Definition at line 86 of file spxscaler.h. Constructor & Destructor Documentation◆ SPxScaler() [1/2]
template<class R >
constructor ◆ SPxScaler() [2/2]◆ ~SPxScaler()
template<class R >
destructor. Member Function Documentation◆ applyScaling()
template<class R >
applies m_colscale and m_rowscale to the ◆ clone()
template<class R >
clone function for polymorphism Implemented in SPxEquiliSC< R >, SPxEquiliSC< BP >, SPxGeometSC< R >, SPxGeometSC< BP >, SPxLeastSqSC< R >, and SPxLeastSqSC< BP >. ◆ computeExpVec()
template<class R >
round vector entries to power of 2 ◆ computeScaleExp()
template<class R >
compute a single scaling vector , e.g. of a newly added row ◆ getCoefUnscaled()
template<class R >
returns unscaled coefficient of ◆ getColMaxAbsUnscaled()
template<class R >
returns maximum absolute value of unscaled column ◆ getColMinAbsUnscaled()
template<class R >
returns minumum absolute value of unscaled column ◆ getColScaleExp()
template<class R >
returns scaling factor for column ◆ getColUnscaled()
template<class R >
gets unscaled column ◆ getLhsUnscaled()
template<class R >
returns unscaled left hand side vector of ◆ getLowerUnscaled()
template<class R >
gets unscaled lower bound vector ◆ getMaxObjUnscaled()
template<class R >
gets unscaled objective function ◆ getName()
template<class R >
get name of scaler ◆ getRhsUnscaled()
template<class R >
gets unscaled right hand side vector ◆ getRowMaxAbsUnscaled()
template<class R >
returns maximum absolute value of unscaled row ◆ getRowMinAbsUnscaled()
template<class R >
returns minimum absolute value of unscaled row ◆ getRowScaleExp()
template<class R >
returns scaling factor for row ◆ getRowUnscaled()
template<class R >
returns unscaled row ◆ getUpperUnscaled()
template<class R >
returns unscaled upper bound vector of ◆ isConsistent()
template<class R >
consistency check ◆ lhsUnscaled()
template<class R >
returns unscaled left hand side ◆ lowerUnscaled()
template<class R >
returns unscaled lower bound ◆ maxAbsColscale()
template<class R >
absolute biggest column scaling factor ◆ maxAbsRowscale()
template<class R >
absolute biggest row scaling factor ◆ maxColRatio()
template<class R >
maximum ratio between absolute biggest and smallest element in any column. ◆ maxObjUnscaled()
template<class R >
returns unscaled objective function coefficient of ◆ maxRowRatio()
template<class R >
maximum ratio between absolute biggest and smallest element in any row. ◆ minAbsColscale()
template<class R >
absolute smallest column scaling factor ◆ minAbsRowscale()
template<class R >
absolute smallest row scaling factor ◆ operator=()◆ rhsUnscaled()
template<class R >
returns unscaled right hand side ◆ scale()
template<class R >
scale SPxLP. Implemented in SPxEquiliSC< R >, SPxEquiliSC< BP >, SPxGeometSC< R >, SPxGeometSC< BP >, SPxLeastSqSC< R >, and SPxLeastSqSC< BP >. ◆ scaleElement()
template<class R >
returns scaled LP element in ◆ scaleLhs()
template<class R >
returns scaled left hand side of row ◆ scaleLower()
template<class R >
returns scaled lower bound of column ◆ scaleObj() [1/2]
template<class R >
returns scaled objective function coefficient ◆ scaleObj() [2/2]
template<class R >
apply scaling to objective function vector ◆ scaleRhs()
template<class R >
returns scaled right hand side of row ◆ scaleUpper()
template<class R >
returns scaled upper bound of column ◆ setBoth()
template<class R >
set wether column and row scaling should be performed ◆ setIntParam()
template<class R >
set int parameter Reimplemented in SPxLeastSqSC< R >, and SPxLeastSqSC< BP >. ◆ setOrder()
template<class R >
set scaling order ◆ setOutstream()
template<class R >
◆ setRealParam()
template<class R >
set R parameter Reimplemented in SPxLeastSqSC< R >, and SPxLeastSqSC< BP >. ◆ setTolerances()
template<class R >
set tolerances Definition at line 160 of file spxscaler.h. References SPxScaler< R >::_tolerances, and SPxScaler< R >::tolerances(). ◆ setup()
template<class R >
clear and setup scaling arrays in the LP ◆ tolerances()
template<class R >
get the _tolerances member variable Definition at line 165 of file spxscaler.h. References SPxScaler< R >::_tolerances. Referenced by SPxScaler< R >::setTolerances(). ◆ unscale()
template<class R >
unscale SPxLP ◆ unscaleDual()
template<class R >
unscale dense dual solution vector given in ◆ unscaleDualray()
template<class R >
unscale dual ray given in ◆ unscalePrimal()
template<class R >
unscale dense primal solution vector given in ◆ unscalePrimalray()
template<class R >
unscale primal ray given in ◆ unscaleRedCost()
template<class R >
unscale dense reduced cost vector given in ◆ unscaleSlacks()
template<class R >
unscale dense slack vector given in ◆ upperUnscaled()
template<class R >
returns unscaled upper bound Friends And Related Symbol Documentation◆ operator<<
template<class R >
template<class T >
Member Data Documentation◆ _tolerances
template<class R >
the tolerances Definition at line 99 of file spxscaler.h. Referenced by SPxScaler< R >::setTolerances(), and SPxScaler< R >::tolerances(). ◆ m_activeColscaleExp
template<class R >
pointer to currently active column scaling factors Definition at line 94 of file spxscaler.h. ◆ m_activeRowscaleExp
template<class R >
pointer to currently active row scaling factors Definition at line 95 of file spxscaler.h. ◆ m_colFirst
template<class R >
do column scaling first Definition at line 96 of file spxscaler.h. ◆ m_doBoth
template<class R >
do columns and rows Definition at line 97 of file spxscaler.h. ◆ m_name
template<class R >
Name of the scaler. Definition at line 93 of file spxscaler.h. ◆ spxout
template<class R >
message handler Definition at line 98 of file spxscaler.h. Referenced by SPxScaler< R >::setOutstream().
|