LP simplifier for removing uneccessary row/columns.This SPxSimplifier is mainly based on the paper "Presolving in linear programming" by E. Andersen and K. Andersen (Mathematical Programming, 1995). It implements all proposed methods and some other preprocessing techniques for removing redundant rows and columns and bounds. Also infeasibility and unboundedness may be detected. More...
#include <spxmainsm.h>
Classes | |
| class | DoubletonEquationPS |
| Postsolves doubleton equations combined with a column singleton. More... | |
| class | DuplicateColsPS |
| Postsolves duplicate columns. More... | |
| class | DuplicateRowsPS |
| Postsolves duplicate rows. More... | |
| struct | ElementCompare |
| comparator for class SVector::Element: compare nonzeros according to value More... | |
| class | EmptyConstraintPS |
| Postsolves empty constraints. More... | |
| class | FixBoundsPS |
| Postsolves variable bound fixing. More... | |
| class | FixVariablePS |
| Postsolves variable fixing. More... | |
| class | ForceConstraintPS |
| Postsolves forcing constraints. More... | |
| class | FreeColSingletonPS |
| Postsolves free column singletons. More... | |
| class | FreeConstraintPS |
| Postsolves unconstraint constraints. More... | |
| class | FreeZeroObjVariablePS |
| Postsolves the case when constraints are removed due to a variable with zero objective that is free in one direction. More... | |
| struct | IdxCompare |
| comparator for class SVector::Element: compare nonzeros according to index More... | |
| class | MultiAggregationPS |
| Postsolves multi aggregation. More... | |
| class | PostStep |
| Base class for postsolving operations.Class PostStep is an abstract base class providing the interface for operations in the postsolving process. More... | |
| class | RowObjPS |
| Postsolves row objectives. More... | |
| class | RowSingletonPS |
| Postsolves row singletons. More... | |
| class | TightenBoundsPS |
| Postsolves variable bound tightening from pseudo objective propagation. More... | |
| class | ZeroObjColSingletonPS |
| Postsolves column singletons with zero objective. More... | |
Public Member Functions | |
| SPxMainSM (Timer::TYPE ttype=Timer::USER_TIME) | |
| default constructor. More... | |
| SPxMainSM (const SPxMainSM &old) | |
| copy constructor. More... | |
| SPxMainSM & | operator= (const SPxMainSM &rhs) |
| assignment operator More... | |
| virtual | ~SPxMainSM () |
| destructor. More... | |
| virtual SPxSimplifier * | clone () const |
| clone function for polymorphism More... | |
| virtual Result | simplify (SPxLP &lp, Real eps, Real delta) |
simplify SPxLP lp with identical primal and dual feasibility tolerance. More... | |
| virtual Result | simplify (SPxLP &lp, Real eps, Real ftol, Real otol, bool keepbounds=false) |
simplify SPxLP lp with independent primal and dual feasibility tolerance. More... | |
| virtual void | unsimplify (const Vector &x, const Vector &y, const Vector &s, const Vector &r, const SPxSolver::VarStatus rows[], const SPxSolver::VarStatus cols[], bool isOptimal=true) |
| reconstructs an optimal solution for the unsimplified LP. More... | |
| virtual Result | result () const |
| returns result status of the simplification More... | |
| virtual bool | isUnsimplified () const |
| specifies whether an optimal solution has already been unsimplified. More... | |
| virtual const Vector & | unsimplifiedPrimal () |
| returns a reference to the unsimplified primal solution. More... | |
| virtual const Vector & | unsimplifiedDual () |
| returns a reference to the unsimplified dual solution. More... | |
| virtual const Vector & | unsimplifiedSlacks () |
| returns a reference to the unsimplified slack values. More... | |
| virtual const Vector & | unsimplifiedRedCost () |
| returns a reference to the unsimplified reduced costs. More... | |
| virtual SPxSolver::VarStatus | getBasisRowStatus (int i) const |
| gets basis status for a single row. More... | |
| virtual SPxSolver::VarStatus | getBasisColStatus (int j) const |
| gets basis status for a single column. More... | |
| virtual void | getBasis (SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[], const int rowsSize=-1, const int colsSize=-1) const |
| get optimal basis. More... | |
Public Member Functions inherited from SPxSimplifier | |
| virtual const char * | getName () const |
| get name of simplifier. More... | |
| virtual Real | timeUsed () const |
| virtual Real | getObjoffset () const |
| get objective offset. More... | |
| virtual void | addObjoffset (const Real val) |
| add objective offset. More... | |
| virtual void | setMinReduction (const Real minRed) |
| set minimal reduction threshold to continue simplification More... | |
| virtual bool | isConsistent () const |
| consistency check More... | |
| SPxSimplifier (const char *p_name, Timer::TYPE ttype=Timer::USER_TIME) | |
| constructor More... | |
| SPxSimplifier (const SPxSimplifier &old) | |
| copy constructor More... | |
| SPxSimplifier & | operator= (const SPxSimplifier &rhs) |
| assignment operator More... | |
| virtual | ~SPxSimplifier () |
| destructor. More... | |
Private Types | |
| enum | SimpleStep { EMPTY_ROW = 0, FREE_ROW = 1, SINGLETON_ROW = 2, FORCE_ROW = 3, EMPTY_COL = 4, FIX_COL = 5, FREE_ZOBJ_COL = 6, ZOBJ_SINGLETON_COL = 7, DOUBLETON_ROW = 8, FREE_SINGLETON_COL = 9, DOMINATED_COL = 10, WEAKLY_DOMINATED_COL = 11, DUPLICATE_ROW = 12, FIX_DUPLICATE_COL = 13, SUB_DUPLICATE_COL = 14, MULTI_AGG = 15 } |
| Different simplification steps. More... | |
Private Member Functions | |
| void | handleRowObjectives (SPxLP &lp) |
| handle row objectives More... | |
| void | handleExtremes (SPxLP &lp) |
| handles extreme values by setting them to zero or infinity. More... | |
| void | computeMinMaxResidualActivity (SPxLP &lp, int rowNumber, int colNumber, Real &minAct, Real &maxAct) |
| computes the minimum and maximum residual activity for a given row and column. If colNumber is set to -1, then More... | |
| void | computeMinMaxValues (SPxLP &lp, Real side, Real val, Real minRes, Real maxRes, Real &minVal, Real &maxVal) |
| calculate min/max value for the multi aggregated variables More... | |
| void | trivialHeuristic (SPxLP &lp) |
| tries to find good lower bound solutions by applying some trivial heuristics More... | |
| bool | checkSolution (SPxLP &lp, DVector sol) |
| checks a solution for feasibility More... | |
| void | propagatePseudoobj (SPxLP &lp) |
| tightens variable bounds by propagating the pseudo objective function value. More... | |
| Result | removeEmpty (SPxLP &lp) |
| removed empty rows and empty columns. More... | |
| Result | removeRowSingleton (SPxLP &lp, const SVector &row, int &i) |
| remove row singletons. More... | |
| Result | simplifyRows (SPxLP &lp, bool &again) |
| performs simplification steps on the rows of the LP. More... | |
| Result | simplifyCols (SPxLP &lp, bool &again) |
| performs simplification steps on the columns of the LP. More... | |
| Result | simplifyDual (SPxLP &lp, bool &again) |
| performs simplification steps on the LP based on dual concepts. More... | |
| Result | multiaggregation (SPxLP &lp, bool &again) |
| performs multi-aggregations of variable based upon constraint activitu. More... | |
| Result | duplicateRows (SPxLP &lp, bool &again) |
| removes duplicate rows. More... | |
| Result | duplicateCols (SPxLP &lp, bool &again) |
| removes duplicate columns More... | |
| void | fixColumn (SPxLP &lp, int i, bool correctIdx=true) |
| handles the fixing of a variable. correctIdx is true iff the index mapping has to be updated. More... | |
| void | removeRow (SPxLP &lp, int i) |
| removes a row in the LP. More... | |
| void | removeCol (SPxLP &lp, int j) |
| removes a column in the LP. More... | |
| int | rIdx (int i) const |
| returns for a given row index of the (reduced) LP the corresponding row index in the unsimplified LP. More... | |
| int | cIdx (int j) const |
| returns for a given column index of the (reduced) LP the corresponding column index in the unsimplified LP. More... | |
| Real | epsZero () const |
| Real | feastol () const |
| Real | opttol () const |
Private Attributes | |
| DVector | m_prim |
| unsimplified primal solution vector. More... | |
| DVector | m_slack |
| unsimplified slack vector. More... | |
| DVector | m_dual |
| unsimplified dual solution vector. More... | |
| DVector | m_redCost |
| unsimplified reduced cost vector. More... | |
| DataArray< SPxSolver::VarStatus > | m_cBasisStat |
| basis status of columns. More... | |
| DataArray< SPxSolver::VarStatus > | m_rBasisStat |
| basis status of rows. More... | |
| DataArray< int > | m_cIdx |
| column index vector in original LP. More... | |
| DataArray< int > | m_rIdx |
| row index vector in original LP. More... | |
| DataArray< PostStep * > | m_hist |
| vector of presolve history. More... | |
| Array< DSVector > | m_classSetRows |
| stores parallel classes with non-zero colum entry More... | |
| Array< DSVector > | m_classSetCols |
| stores parallel classes with non-zero row entry More... | |
| Array< DSVector > | m_dupRows |
| arrange duplicate rows using bucket sort w.r.t. their pClass values More... | |
| Array< DSVector > | m_dupCols |
| arrange duplicate columns w.r.t. their pClass values More... | |
| bool | m_postsolved |
| status of postsolving. More... | |
| Real | m_epsilon |
| epsilon zero. More... | |
| Real | m_feastol |
| primal feasibility tolerance. More... | |
| Real | m_opttol |
| dual feasibility tolerance. More... | |
| DataArray< int > | m_stat |
| preprocessing history. More... | |
| SPxLP::SPxSense | m_thesense |
| optimization sense. More... | |
| bool | m_keepbounds |
| keep some bounds (for boundflipping) More... | |
| int | m_addedcols |
| columns added by handleRowObjectives() More... | |
| Result | m_result |
| result of the simplification. More... | |
| Real | m_cutoffbound |
| the cutoff bound that is found by heuristics More... | |
| Real | m_pseudoobj |
| the pseudo objective function value More... | |
Friends | |
| class | FreeConstraintPS |
| class | EmptyConstraintPS |
| class | RowSingletonPS |
| class | ForceConstraintPS |
| class | FixVariablePS |
| class | FixBoundsPS |
| class | FreeZeroObjVariablePS |
| class | ZeroObjColSingletonPS |
| class | FreeColSingletonPS |
| class | DoubletonEquationPS |
| class | DuplicateRowsPS |
| class | DuplicateColsPS |
Additional Inherited Members | |
Public Types inherited from SPxSimplifier | |
| enum | Result { OKAY = 0, INFEASIBLE = 1, DUAL_INFEASIBLE = 2, UNBOUNDED = 3, VANISHED = 4 } |
| Result of the simplification. More... | |
Protected Attributes inherited from SPxSimplifier | |
| const char * | m_name |
| name of the simplifier More... | |
| Timer * | m_timeUsed |
| user time used for simplification More... | |
| Timer::TYPE | m_timerType |
| int | m_remRows |
| number of removed rows More... | |
| int | m_remCols |
| number of removed columns More... | |
| int | m_remNzos |
| number of removed nonzero coefficients More... | |
| int | m_chgBnds |
| number of changed bounds More... | |
| int | m_chgLRhs |
| number of change right-hand sides More... | |
| int | m_keptBnds |
| number of kept bounds More... | |
| int | m_keptLRhs |
| number of kept left- and right-hand sides More... | |
| Real | m_objoffset |
| objective offset More... | |
| Real | m_minReduction |
| minimal reduction (sum of removed rows/cols) to continue simplification More... | |
| SPxOut * | spxout |
| message handler More... | |
LP simplifier for removing uneccessary row/columns.
This SPxSimplifier is mainly based on the paper "Presolving in linear programming" by E. Andersen and K. Andersen (Mathematical Programming, 1995). It implements all proposed methods and some other preprocessing techniques for removing redundant rows and columns and bounds. Also infeasibility and unboundedness may be detected.
Removed are:
Definition at line 60 of file spxmainsm.h.
|
private |
Different simplification steps.
Definition at line 1180 of file spxmainsm.h.
| SPxMainSM | ( | Timer::TYPE | ttype = Timer::USER_TIME | ) |
copy constructor.
Definition at line 1344 of file spxmainsm.h.
References DataArray< T >::append(), SPxMainSM::m_hist, and DataArray< T >::reSize().
|
virtual |
destructor.
Definition at line 1424 of file spxmainsm.h.
References DataArray< T >::size(), and soplex::spx_free().
checks a solution for feasibility
Definition at line 1816 of file spxmainsm.cpp.
References SPxMainSM::feastol(), soplex::GE(), SVectorBase< R >::index(), soplex::LE(), SPxLPBase< R >::lhs(), SPxLPBase< R >::nRows(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), and SVectorBase< R >::value().
Referenced by SPxMainSM::trivialHeuristic().
|
private |
returns for a given column index of the (reduced) LP the corresponding column index in the unsimplified LP.
Definition at line 1302 of file spxmainsm.h.
Referenced by SPxMainSM::ForceConstraintPS::execute(), and SPxMainSM::DuplicateColsPS::execute().
|
virtual |
clone function for polymorphism
Implements SPxSimplifier.
Definition at line 1437 of file spxmainsm.h.
References SPxMainSM::SPxMainSM().
|
private |
computes the minimum and maximum residual activity for a given row and column. If colNumber is set to -1, then
computes the minimum and maximum residual activity for a given variable
Definition at line 1606 of file spxmainsm.cpp.
References soplex::GE(), soplex::GT(), SVectorBase< R >::index(), soplex::infinity, soplex::LE(), SPxLPBase< R >::lower(), soplex::LT(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::multiaggregation().
|
private |
calculate min/max value for the multi aggregated variables
Definition at line 1664 of file spxmainsm.cpp.
References soplex::GE(), soplex::GT(), soplex::infinity, soplex::LE(), and soplex::LT().
Referenced by SPxMainSM::multiaggregation().
|
private |
removes duplicate columns
Definition at line 4000 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector(), SPxMainSM::DuplicateColsPS, SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FIX_DUPLICATE_COL, SPxMainSM::FixBoundsPS, SPxMainSM::fixColumn(), soplex::GErel(), SVectorBase< R >::index(), soplex::infinity, soplex::isNotZero(), soplex::isZero(), soplex::LErel(), SPxLPBase< R >::lower(), SPxMainSM::m_cIdx, SPxMainSM::m_classSetCols, SPxMainSM::m_dupCols, SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxMainSM::m_stat, SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO2, SPxLPBase< R >::nCols(), soplex::NErel(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxLPBase< R >::removeCols(), SPxMainSM::removeEmpty(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), soplex::spx_free(), SPxSimplifier::spxout, soplex::SPxQuicksort(), SPxMainSM::SUB_DUPLICATE_COL, SPxSimplifier::UNBOUNDED, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
|
private |
removes duplicate rows.
Definition at line 3646 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeRange(), SPxLPBase< R >::colVector(), SPxMainSM::DUPLICATE_ROW, SPxMainSM::DuplicateRowsPS, SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SVectorBase< R >::index(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isNotZero(), SPxLPBase< R >::lhs(), soplex::LTrel(), SPxMainSM::m_classSetRows, SPxMainSM::m_dupRows, SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_rIdx, SPxMainSM::m_stat, MSG_DEBUG, MSG_INFO2, SPxLPBase< R >::nCols(), soplex::NErel(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxMainSM::removeEmpty(), SPxLPBase< R >::removeRows(), SPxMainSM::removeRowSingleton(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), soplex::spx_free(), SPxSimplifier::spxout, soplex::SPxQuicksort(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
|
private |
Definition at line 1307 of file spxmainsm.h.
References SPxMainSM::m_epsilon.
Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyRows(), and SPxMainSM::unsimplify().
|
private |
Definition at line 1312 of file spxmainsm.h.
References SPxMainSM::m_feastol.
Referenced by SPxMainSM::checkSolution(), SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxMainSM::multiaggregation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), and SPxMainSM::trivialHeuristic().
|
private |
handles the fixing of a variable. correctIdx is true iff the index mapping has to be updated.
Definition at line 4376 of file spxmainsm.cpp.
References SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::colVector(), SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FixVariablePS, SVectorBase< R >::index(), soplex::infinity, soplex::isNotZero(), soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SPxMainSM::m_hist, soplex::maxAbs(), MSG_DEBUG, soplex::NE(), SPxLPBase< R >::rhs(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::duplicateCols(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyDual().
|
virtual |
get optimal basis.
Implements SPxSimplifier.
Definition at line 1506 of file spxmainsm.h.
References DataArray< T >::size().
|
virtual |
gets basis status for a single column.
Implements SPxSimplifier.
Definition at line 1500 of file spxmainsm.h.
|
virtual |
gets basis status for a single row.
Implements SPxSimplifier.
Definition at line 1494 of file spxmainsm.h.
|
private |
handles extreme values by setting them to zero or infinity.
Definition at line 1408 of file spxmainsm.cpp.
References SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector_w(), SPxMainSM::epsZero(), SPxMainSM::feastol(), SPxMainSM::FREE_ROW, SPxMainSM::FreeConstraintPS, SVectorBase< R >::index(), soplex::infinity, SPxLPBase< R >::isConsistent(), soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SPxSimplifier::m_chgBnds, SPxSimplifier::m_chgLRhs, SPxMainSM::m_hist, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, MSG_DEBUG, MSG_INFO2, MSG_WARNING, SPxLPBase< R >::nCols(), soplex::NE(), SPxLPBase< R >::nRows(), SPxLPBase< R >::obj(), SVectorBase< R >::pos(), SVectorBase< R >::remove(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector_w(), SVectorBase< R >::size(), soplex::spx_alloc(), soplex::spxAbs(), SPxSimplifier::spxout, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
|
private |
handle row objectives
Definition at line 1391 of file spxmainsm.cpp.
References SPxLPBase< R >::addCol(), SPxLPBase< R >::changeRange(), SPxLPBase< R >::changeRowObj(), SPxLPBase< R >::lhs(), SPxMainSM::m_addedcols, SPxMainSM::m_hist, SPxLPBase< R >::maxRowObj(), SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowObj(), and soplex::spx_alloc().
Referenced by SPxMainSM::simplify().
|
virtual |
specifies whether an optimal solution has already been unsimplified.
Reimplemented from SPxSimplifier.
Definition at line 1465 of file spxmainsm.h.
References SPxMainSM::m_postsolved.
|
private |
performs multi-aggregations of variable based upon constraint activitu.
Definition at line 3402 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeElement(), SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeMaxObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::colVector(), SPxMainSM::computeMinMaxResidualActivity(), SPxMainSM::computeMinMaxValues(), soplex::EQ(), SPxMainSM::feastol(), soplex::GT(), SVectorBase< R >::index(), soplex::infinity, soplex::isNotZero(), soplex::LE(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO2, SPxMainSM::MULTI_AGG, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SVectorBase< R >::pos(), SPxMainSM::removeCol(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
assignment operator
Definition at line 1377 of file spxmainsm.h.
References DataArray< T >::append(), DataArray< T >::clear(), SPxMainSM::m_addedcols, SPxMainSM::m_cBasisStat, SPxMainSM::m_cIdx, SPxMainSM::m_cutoffbound, SPxMainSM::m_dual, SPxMainSM::m_epsilon, SPxMainSM::m_feastol, SPxMainSM::m_hist, SPxMainSM::m_keepbounds, SPxMainSM::m_opttol, SPxMainSM::m_postsolved, SPxMainSM::m_prim, SPxMainSM::m_pseudoobj, SPxMainSM::m_rBasisStat, SPxMainSM::m_redCost, SPxMainSM::m_result, SPxMainSM::m_rIdx, SPxMainSM::m_slack, SPxMainSM::m_stat, SPxMainSM::m_thesense, SPxSimplifier::operator=(), DataArray< T >::size(), and soplex::spx_free().
|
private |
Definition at line 1317 of file spxmainsm.h.
References SPxMainSM::m_opttol.
Referenced by SPxMainSM::simplifyDual().
|
private |
tightens variable bounds by propagating the pseudo objective function value.
Definition at line 1836 of file spxmainsm.cpp.
References SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeUpper(), soplex::EQ(), soplex::GT(), soplex::infinity, SPxLPBase< R >::lower(), soplex::LT(), SPxMainSM::m_cutoffbound, SPxMainSM::m_hist, SPxSimplifier::m_objoffset, SPxMainSM::m_pseudoobj, SPxLPBase< R >::maxObj(), SPxLPBase< R >::nCols(), soplex::spx_alloc(), and SPxLPBase< R >::upper().
Referenced by SPxMainSM::simplify().
|
private |
removes a column in the LP.
Definition at line 1291 of file spxmainsm.h.
References SPxLPBase< R >::nCols(), and SPxLPBase< R >::removeCol().
Referenced by SPxMainSM::multiaggregation(), SPxMainSM::removeEmpty(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyDual().
|
private |
removed empty rows and empty columns.
Definition at line 1898 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::colVector(), SPxMainSM::EMPTY_COL, SPxMainSM::EMPTY_ROW, SPxMainSM::EmptyConstraintPS, SPxMainSM::epsZero(), SPxMainSM::feastol(), SPxMainSM::FixBoundsPS, SPxMainSM::FixVariablePS, soplex::GT(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), SPxMainSM::m_hist, SPxSimplifier::m_remCols, SPxSimplifier::m_remRows, SPxMainSM::m_stat, SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO2, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxMainSM::removeCol(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, SPxSimplifier::UNBOUNDED, and SPxLPBase< R >::upper().
Referenced by SPxMainSM::duplicateCols(), and SPxMainSM::duplicateRows().
|
private |
removes a row in the LP.
Definition at line 1285 of file spxmainsm.h.
References SPxLPBase< R >::nRows(), and SPxLPBase< R >::removeRow().
Referenced by SPxMainSM::handleExtremes(), SPxMainSM::multiaggregation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
|
private |
remove row singletons.
Definition at line 2006 of file spxmainsm.cpp.
References SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeUpper(), SPxMainSM::epsZero(), SPxMainSM::feastol(), soplex::GT(), soplex::GTrel(), SVectorBase< R >::index(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), soplex::LTrel(), SPxMainSM::m_hist, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, MSG_DEBUG, SPxSimplifier::OKAY, SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxMainSM::RowSingletonPS, SPxMainSM::SINGLETON_ROW, SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::duplicateRows(), and SPxMainSM::simplifyRows().
|
virtual |
returns result status of the simplification
Implements SPxSimplifier.
Definition at line 1459 of file spxmainsm.h.
References SPxMainSM::m_result.
|
private |
returns for a given row index of the (reduced) LP the corresponding row index in the unsimplified LP.
Definition at line 1297 of file spxmainsm.h.
Referenced by SPxMainSM::FreeZeroObjVariablePS::execute(), and SPxMainSM::DuplicateRowsPS::execute().
simplify SPxLP lp with identical primal and dual feasibility tolerance.
Implements SPxSimplifier.
Definition at line 1447 of file spxmainsm.h.
References SPxMainSM::PostStep::eps(), and SPxMainSM::unsimplify().
|
virtual |
simplify SPxLP lp with independent primal and dual feasibility tolerance.
Implements SPxSimplifier.
Definition at line 4452 of file spxmainsm.cpp.
References SPxMainSM::DOMINATED_COL, SPxMainSM::DOUBLETON_ROW, SPxMainSM::DUPLICATE_ROW, SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::EMPTY_COL, SPxMainSM::EMPTY_ROW, SPxMainSM::PostStep::eps(), SPxMainSM::FIX_COL, SPxMainSM::FIX_DUPLICATE_COL, SPxMainSM::FORCE_ROW, SPxMainSM::FREE_ROW, SPxMainSM::FREE_SINGLETON_COL, SPxMainSM::FREE_ZOBJ_COL, SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::infinity, SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SPxMainSM::m_addedcols, SPxMainSM::m_cBasisStat, SPxSimplifier::m_chgBnds, SPxSimplifier::m_chgLRhs, SPxMainSM::m_cIdx, SPxMainSM::m_classSetCols, SPxMainSM::m_classSetRows, SPxMainSM::m_cutoffbound, SPxMainSM::m_dual, SPxMainSM::m_dupCols, SPxMainSM::m_dupRows, SPxMainSM::m_epsilon, SPxMainSM::m_feastol, SPxMainSM::m_hist, SPxMainSM::m_keepbounds, SPxSimplifier::m_keptBnds, SPxSimplifier::m_keptLRhs, SPxSimplifier::m_objoffset, SPxMainSM::m_opttol, SPxMainSM::m_postsolved, SPxMainSM::m_prim, SPxMainSM::m_pseudoobj, SPxMainSM::m_rBasisStat, SPxMainSM::m_redCost, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_result, SPxMainSM::m_rIdx, SPxMainSM::m_slack, SPxMainSM::m_stat, SPxMainSM::m_thesense, SPxSimplifier::m_timeUsed, MSG_INFO1, MSG_INFO2, SPxMainSM::MULTI_AGG, SPxMainSM::multiaggregation(), SPxLPBase< R >::nCols(), SPxLPBase< R >::nNzos(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxMainSM::propagatePseudoobj(), DVectorBase< R >::reDim(), Timer::reset(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::SINGLETON_ROW, DataArray< T >::size(), soplex::spx_free(), SPxSimplifier::spxout, SPxLPBase< R >::spxout, SPxLPBase< R >::spxSense(), Timer::start(), Timer::stop(), SPxMainSM::SUB_DUPLICATE_COL, SPxMainSM::trivialHeuristic(), SPxLPBase< R >::upper(), SPxSimplifier::VANISHED, SPxMainSM::WEAKLY_DOMINATED_COL, and SPxMainSM::ZOBJ_SINGLETON_COL.
|
private |
performs simplification steps on the columns of the LP.
Definition at line 2615 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeBounds(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeObj(), SPxLPBase< R >::changeRange(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector(), SPxMainSM::DOUBLETON_ROW, SPxMainSM::DoubletonEquationPS, SPxMainSM::EMPTY_COL, SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FIX_COL, SPxMainSM::FixBoundsPS, SPxMainSM::fixColumn(), SPxMainSM::FixVariablePS, SPxMainSM::FREE_ROW, SPxMainSM::FREE_SINGLETON_COL, SPxMainSM::FREE_ZOBJ_COL, SPxMainSM::FreeColSingletonPS, SPxMainSM::FreeConstraintPS, SPxMainSM::FreeZeroObjVariablePS, soplex::GT(), soplex::GTrel(), SVectorBase< R >::index(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isNotZero(), soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), soplex::LTrel(), SPxSimplifier::m_chgBnds, SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, soplex::maxAbs(), SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO2, SPxLPBase< R >::nCols(), soplex::NErel(), SPxLPBase< R >::nRows(), SPxLPBase< R >::obj(), SPxSimplifier::OKAY, SPxMainSM::removeCol(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, soplex::SPxQuicksort(), SPxSimplifier::UNBOUNDED, SPxLPBase< R >::upper(), SVectorBase< R >::value(), SPxMainSM::ZeroObjColSingletonPS, and SPxMainSM::ZOBJ_SINGLETON_COL.
Referenced by SPxMainSM::simplify().
|
private |
performs simplification steps on the LP based on dual concepts.
Definition at line 3144 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector(), SPxMainSM::DOMINATED_COL, SPxSimplifier::DUAL_INFEASIBLE, soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FIX_COL, SPxMainSM::FixBoundsPS, SPxMainSM::fixColumn(), SPxMainSM::FREE_ROW, SPxMainSM::FreeConstraintPS, soplex::GTrel(), SVectorBase< R >::index(), soplex::infinity, soplex::isNotZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LTrel(), SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO2, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxMainSM::opttol(), SPxMainSM::removeCol(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, SPxSimplifier::UNBOUNDED, SPxLPBase< R >::upper(), SVectorBase< R >::value(), and SPxMainSM::WEAKLY_DOMINATED_COL.
Referenced by SPxMainSM::simplify().
|
private |
performs simplification steps on the rows of the LP.
Definition at line 2079 of file spxmainsm.cpp.
References ASSERT_WARN, SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SPxMainSM::EMPTY_ROW, SPxMainSM::EmptyConstraintPS, Param::epsilon(), SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FORCE_ROW, SPxMainSM::ForceConstraintPS, SPxMainSM::FREE_ROW, SPxMainSM::FreeConstraintPS, soplex::GErel(), soplex::GT(), soplex::GTrel(), SVectorBase< R >::index(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isNotZero(), soplex::isZero(), soplex::LErel(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), soplex::LTrel(), SPxSimplifier::m_chgBnds, SPxSimplifier::m_chgLRhs, SPxMainSM::m_epsilon, SPxMainSM::m_hist, SPxMainSM::m_keepbounds, SPxSimplifier::m_keptBnds, SPxSimplifier::m_keptLRhs, SPxSimplifier::m_minReduction, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, soplex::maxAbs(), MSG_DEBUG, MSG_INFO2, MSG_WARNING, soplex::NErel(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, SPxMainSM::removeRow(), SPxMainSM::removeRowSingleton(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), soplex::spxAbs(), SPxSimplifier::spxout, SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
|
private |
tries to find good lower bound solutions by applying some trivial heuristics
Definition at line 1697 of file spxmainsm.cpp.
References ASSERT_WARN, SPxMainSM::checkSolution(), SPxLPBase< R >::colVector(), SPxMainSM::feastol(), soplex::GE(), soplex::GT(), SVectorBase< R >::index(), soplex::infinity, soplex::isNotZero(), soplex::LE(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), SPxMainSM::m_cutoffbound, SPxSimplifier::m_objoffset, MAXIMUM, SPxLPBase< R >::maxObj(), MINIMUM, SPxLPBase< R >::nCols(), SPxLPBase< R >::rhs(), SVectorBase< R >::size(), SPxLPBase< R >::upper(), and SVectorBase< R >::value().
Referenced by SPxMainSM::simplify().
|
virtual |
returns a reference to the unsimplified dual solution.
Implements SPxSimplifier.
Definition at line 1476 of file spxmainsm.h.
References SPxMainSM::m_dual.
|
virtual |
returns a reference to the unsimplified primal solution.
Implements SPxSimplifier.
Definition at line 1470 of file spxmainsm.h.
References SPxMainSM::m_prim.
|
virtual |
returns a reference to the unsimplified reduced costs.
Implements SPxSimplifier.
Definition at line 1488 of file spxmainsm.h.
References SPxMainSM::m_redCost.
|
virtual |
returns a reference to the unsimplified slack values.
Implements SPxSimplifier.
Definition at line 1482 of file spxmainsm.h.
References SPxMainSM::m_slack.
|
virtual |
reconstructs an optimal solution for the unsimplified LP.
Implements SPxSimplifier.
Definition at line 4682 of file spxmainsm.cpp.
References SPxSolver::BASIC, VectorBase< R >::dim(), SPxMainSM::epsZero(), SPxMainSM::PostStep::getName(), soplex::isZero(), SPxMainSM::m_addedcols, SPxMainSM::m_cBasisStat, SPxMainSM::m_cIdx, SPxMainSM::m_dual, SPxMainSM::m_hist, SPxMainSM::m_postsolved, SPxMainSM::m_prim, SPxMainSM::m_rBasisStat, SPxMainSM::m_redCost, SPxMainSM::m_slack, SPxMainSM::m_thesense, SPxLPBase< Real >::MAXIMIZE, MSG_DEBUG, MSG_INFO1, DVectorBase< R >::reDim(), DataArray< T >::reSize(), DataArray< T >::size(), soplex::spx_free(), SPxSimplifier::spxout, and SPxException::what().
Referenced by SPxMainSM::simplify().
|
friend |
Definition at line 1171 of file spxmainsm.h.
Referenced by SPxMainSM::DoubletonEquationPS::clone(), and SPxMainSM::simplifyCols().
|
friend |
Definition at line 1173 of file spxmainsm.h.
Referenced by SPxMainSM::DuplicateColsPS::clone(), and SPxMainSM::duplicateCols().
|
friend |
Definition at line 1172 of file spxmainsm.h.
Referenced by SPxMainSM::DuplicateRowsPS::clone(), and SPxMainSM::duplicateRows().
|
friend |
Definition at line 1163 of file spxmainsm.h.
Referenced by SPxMainSM::EmptyConstraintPS::clone(), SPxMainSM::removeEmpty(), and SPxMainSM::simplifyRows().
|
friend |
Definition at line 1167 of file spxmainsm.h.
Referenced by SPxMainSM::FixBoundsPS::clone(), SPxMainSM::duplicateCols(), SPxMainSM::removeEmpty(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyDual().
|
friend |
Definition at line 1166 of file spxmainsm.h.
Referenced by SPxMainSM::FixVariablePS::clone(), SPxMainSM::fixColumn(), SPxMainSM::removeEmpty(), and SPxMainSM::simplifyCols().
|
friend |
Definition at line 1165 of file spxmainsm.h.
Referenced by SPxMainSM::ForceConstraintPS::clone(), and SPxMainSM::simplifyRows().
|
friend |
Definition at line 1170 of file spxmainsm.h.
Referenced by SPxMainSM::FreeColSingletonPS::clone(), and SPxMainSM::simplifyCols().
|
friend |
Definition at line 1162 of file spxmainsm.h.
Referenced by SPxMainSM::FreeConstraintPS::clone(), SPxMainSM::handleExtremes(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
|
friend |
Definition at line 1168 of file spxmainsm.h.
Referenced by SPxMainSM::FreeZeroObjVariablePS::clone(), and SPxMainSM::simplifyCols().
|
friend |
Definition at line 1164 of file spxmainsm.h.
Referenced by SPxMainSM::RowSingletonPS::clone(), and SPxMainSM::removeRowSingleton().
|
friend |
Definition at line 1169 of file spxmainsm.h.
Referenced by SPxMainSM::ZeroObjColSingletonPS::clone(), and SPxMainSM::simplifyCols().
|
private |
columns added by handleRowObjectives()
Definition at line 1225 of file spxmainsm.h.
Referenced by SPxMainSM::handleRowObjectives(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().
|
private |
basis status of columns.
Definition at line 1209 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().
|
private |
column index vector in original LP.
Definition at line 1211 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateCols(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().
stores parallel classes with non-zero row entry
Definition at line 1215 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateCols(), and SPxMainSM::simplify().
stores parallel classes with non-zero colum entry
Definition at line 1214 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateRows(), and SPxMainSM::simplify().
|
private |
the cutoff bound that is found by heuristics
Definition at line 1227 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::propagatePseudoobj(), SPxMainSM::simplify(), and SPxMainSM::trivialHeuristic().
|
private |
unsimplified dual solution vector.
Definition at line 1207 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedDual(), and SPxMainSM::unsimplify().
arrange duplicate columns w.r.t. their pClass values
Definition at line 1217 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateCols(), and SPxMainSM::simplify().
arrange duplicate rows using bucket sort w.r.t. their pClass values
Definition at line 1216 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateRows(), and SPxMainSM::simplify().
|
private |
epsilon zero.
Definition at line 1219 of file spxmainsm.h.
Referenced by SPxMainSM::epsZero(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().
|
private |
primal feasibility tolerance.
Definition at line 1220 of file spxmainsm.h.
Referenced by SPxMainSM::feastol(), SPxMainSM::operator=(), and SPxMainSM::simplify().
vector of presolve history.
Definition at line 1213 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), SPxMainSM::multiaggregation(), SPxMainSM::operator=(), SPxMainSM::propagatePseudoobj(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::SPxMainSM(), and SPxMainSM::unsimplify().
|
private |
keep some bounds (for boundflipping)
Definition at line 1224 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().
|
private |
dual feasibility tolerance.
Definition at line 1221 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::opttol(), and SPxMainSM::simplify().
|
private |
status of postsolving.
Definition at line 1218 of file spxmainsm.h.
Referenced by SPxMainSM::isUnsimplified(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().
|
private |
unsimplified primal solution vector.
Definition at line 1205 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedPrimal(), and SPxMainSM::unsimplify().
|
private |
the pseudo objective function value
Definition at line 1228 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::propagatePseudoobj(), and SPxMainSM::simplify().
|
private |
basis status of rows.
Definition at line 1210 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().
|
private |
unsimplified reduced cost vector.
Definition at line 1208 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedRedCost(), and SPxMainSM::unsimplify().
|
private |
result of the simplification.
Definition at line 1226 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::result(), and SPxMainSM::simplify().
|
private |
row index vector in original LP.
Definition at line 1212 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateRows(), SPxMainSM::operator=(), and SPxMainSM::simplify().
|
private |
unsimplified slack vector.
Definition at line 1206 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedSlacks(), and SPxMainSM::unsimplify().
|
private |
preprocessing history.
Definition at line 1222 of file spxmainsm.h.
Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::handleExtremes(), SPxMainSM::multiaggregation(), SPxMainSM::operator=(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
|
private |
optimization sense.
Definition at line 1223 of file spxmainsm.h.
Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().