SoPlex
|
Least squares scaling. More...
#include <spxleastsqsc.h>
Public Member Functions | |
Construction / destruction | |
SPxLeastSqSC () | |
default constructor (this scaler makes no use of inherited member m_colFirst) | |
SPxLeastSqSC (const SPxLeastSqSC &old) | |
copy constructor | |
SPxLeastSqSC & | operator= (const SPxLeastSqSC &) |
assignment operator | |
virtual | ~SPxLeastSqSC () |
destructor | |
virtual SPxScaler< R > * | clone () const override |
clone function for polymorphism | |
Access / modification | |
virtual void | setRealParam (R param, const char *name) override |
set Real param (conjugate gradient accuracy) | |
virtual void | setIntParam (int param, const char *name) override |
set int param (maximal conjugate gradient rounds) | |
![]() | |
virtual int | computeScaleExp (const SVectorBase< R > &vec, const DataArray< int > &oldScaleExp) const |
compute a single scaling vector , e.g. of a newly added row | |
virtual void | applyScaling (SPxLPBase< R > &lp) |
applies m_colscale and m_rowscale to the lp . | |
SPxScaler (const char *name, bool colFirst=false, bool doBoth=true, SPxOut *spxout=nullptr) | |
constructor | |
SPxScaler (const SPxScaler &) | |
copy constructor | |
SPxScaler & | operator= (const SPxScaler &) |
assignment operator | |
virtual | ~SPxScaler () |
destructor. | |
virtual const char * | getName () const |
get name of scaler | |
virtual void | setOrder (bool colFirst) |
set scaling order | |
virtual void | setBoth (bool both) |
set wether column and row scaling should be performed | |
virtual void | setOutstream (SPxOut &newOutstream) |
set message handler | |
virtual void | setTolerances (std::shared_ptr< Tolerances > &tolerances) |
set tolerances | |
const std::shared_ptr< Tolerances > | tolerances () const |
get the _tolerances member variable | |
virtual void | unscale (SPxLPBase< R > &lp) |
unscale SPxLP | |
virtual int | getColScaleExp (int i) const |
returns scaling factor for column i | |
virtual int | getRowScaleExp (int i) const |
returns scaling factor for row i | |
virtual void | getColUnscaled (const SPxLPBase< R > &lp, int i, DSVectorBase< R > &vec) const |
gets unscaled column i | |
virtual R | getColMaxAbsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns maximum absolute value of unscaled column i | |
virtual R | getColMinAbsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns minumum absolute value of unscaled column i | |
virtual R | upperUnscaled (const SPxLPBase< R > &lp, int i) const |
returns unscaled upper bound i | |
virtual void | getUpperUnscaled (const SPxLPBase< R > &lp, VectorBase< R > &vec) const |
returns unscaled upper bound vector of lp | |
virtual R | lowerUnscaled (const SPxLPBase< R > &lp, int i) const |
returns unscaled lower bound i | |
virtual void | getLowerUnscaled (const SPxLPBase< R > &lp, VectorBase< R > &vec) const |
gets unscaled lower bound vector | |
virtual R | maxObjUnscaled (const SPxLPBase< R > &lp, int i) const |
returns unscaled objective function coefficient of i | |
virtual void | getMaxObjUnscaled (const SPxLPBase< R > &lp, VectorBase< R > &vec) const |
gets unscaled objective function | |
virtual void | getRowUnscaled (const SPxLPBase< R > &lp, int i, DSVectorBase< R > &vec) const |
returns unscaled row i | |
virtual R | getRowMaxAbsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns maximum absolute value of unscaled row i | |
virtual R | getRowMinAbsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns minimum absolute value of unscaled row i | |
virtual R | rhsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns unscaled right hand side i | |
virtual void | getRhsUnscaled (const SPxLPBase< R > &lp, VectorBase< R > &vec) const |
gets unscaled right hand side vector | |
virtual R | lhsUnscaled (const SPxLPBase< R > &lp, int i) const |
returns unscaled left hand side i of lp | |
virtual void | getLhsUnscaled (const SPxLPBase< R > &lp, VectorBase< R > &vec) const |
returns unscaled left hand side vector of lp | |
virtual R | getCoefUnscaled (const SPxLPBase< R > &lp, int row, int col) const |
returns unscaled coefficient of lp | |
virtual void | unscalePrimal (const SPxLPBase< R > &lp, VectorBase< R > &x) const |
unscale dense primal solution vector given in x . | |
virtual void | unscaleSlacks (const SPxLPBase< R > &lp, VectorBase< R > &s) const |
unscale dense slack vector given in s . | |
virtual void | unscaleDual (const SPxLPBase< R > &lp, VectorBase< R > &pi) const |
unscale dense dual solution vector given in pi . | |
virtual void | unscaleRedCost (const SPxLPBase< R > &lp, VectorBase< R > &r) const |
unscale dense reduced cost vector given in r . | |
virtual void | unscalePrimalray (const SPxLPBase< R > &lp, VectorBase< R > &ray) const |
unscale primal ray given in ray . | |
virtual void | unscaleDualray (const SPxLPBase< R > &lp, VectorBase< R > &ray) const |
unscale dual ray given in ray . | |
virtual void | scaleObj (const SPxLPBase< R > &lp, VectorBase< R > &origObj) const |
apply scaling to objective function vector origObj . | |
virtual R | scaleObj (const SPxLPBase< R > &lp, int i, R origObj) const |
returns scaled objective function coefficient origObj . | |
virtual R | scaleElement (const SPxLPBase< R > &lp, int row, int col, R val) const |
returns scaled LP element in row and col . | |
virtual R | scaleLower (const SPxLPBase< R > &lp, int col, R lower) const |
returns scaled lower bound of column col . | |
virtual R | scaleUpper (const SPxLPBase< R > &lp, int col, R upper) const |
returns scaled upper bound of column col . | |
virtual R | scaleLhs (const SPxLPBase< R > &lp, int row, R lhs) const |
returns scaled left hand side of row row . | |
virtual R | scaleRhs (const SPxLPBase< R > &lp, int row, R rhs) const |
returns scaled right hand side of row row . | |
virtual R | minAbsColscale () const |
absolute smallest column scaling factor | |
virtual R | maxAbsColscale () const |
absolute biggest column scaling factor | |
virtual R | minAbsRowscale () const |
absolute smallest row scaling factor | |
virtual R | maxAbsRowscale () const |
absolute biggest row scaling factor | |
virtual R | maxColRatio (const SPxLPBase< R > &lp) const |
maximum ratio between absolute biggest and smallest element in any column. | |
virtual R | maxRowRatio (const SPxLPBase< R > &lp) const |
maximum ratio between absolute biggest and smallest element in any row. | |
void | computeExpVec (const std::vector< R > &vec, DataArray< int > &vecExp) |
round vector entries to power of 2 | |
virtual bool | isConsistent () const |
consistency check | |
Scaling | |
R | acrcydivisor = R(1000.0) |
int | maxrounds = 20 |
virtual void | scale (SPxLPBase< R > &lp, bool persistent=true) override |
Scale the loaded SPxLP. | |
Additional Inherited Members | |
![]() | |
virtual void | setup (SPxLPBase< R > &lp) |
clear and setup scaling arrays in the LP | |
![]() | |
const char * | m_name |
Name of the scaler. | |
DataArray< int > * | m_activeColscaleExp |
pointer to currently active column scaling factors | |
DataArray< int > * | m_activeRowscaleExp |
pointer to currently active row scaling factors | |
bool | m_colFirst |
do column scaling first | |
bool | m_doBoth |
do columns and rows | |
SPxOut * | spxout |
message handler | |
std::shared_ptr< Tolerances > | _tolerances |
the tolerances | |
Least squares scaling.
This SPxScaler implementation performs least squares scaling as suggested by Curtis and Reid in: On the Automatic Scaling of Matrices for Gaussian Elimination (1972).
Definition at line 47 of file spxleastsqsc.h.
|
explicit |
default constructor (this scaler makes no use of inherited member m_colFirst)
Referenced by clone(), operator=(), and SPxLeastSqSC().
SPxLeastSqSC | ( | const SPxLeastSqSC< R > & | old | ) |
copy constructor
References SPxLeastSqSC().
|
virtual |
destructor
Definition at line 60 of file spxleastsqsc.h.
|
overridevirtual |
clone function for polymorphism
Implements SPxScaler< R >.
Definition at line 63 of file spxleastsqsc.h.
References SPxLeastSqSC(), and SPxScaler< R >::SPxScaler().
SPxLeastSqSC & operator= | ( | const SPxLeastSqSC< R > & | ) |
assignment operator
References SPxLeastSqSC().
|
overridevirtual |
Scale the loaded SPxLP.
Implements SPxScaler< R >.
|
overridevirtual |
set int param (maximal conjugate gradient rounds)
Reimplemented from SPxScaler< R >.
|
overridevirtual |
set Real param (conjugate gradient accuracy)
Reimplemented from SPxScaler< R >.
|
private |
Definition at line 86 of file spxleastsqsc.h.
|
private |
Definition at line 87 of file spxleastsqsc.h.