SPxSimplifier Class Referenceabstract LP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded to SoPlex in order to simplify LPs before solving them. SoPlex will call simplify() on itself. Generally any SPxLP can be given to a SPxSimplifier for simplify()ing it. The simplification cannot be undone, but given an primal/dual solution for the simplified SPxLP, the simplifier can reconstruct the primal/dual solution of the unsimplified LP. More...
Inheritance diagram for SPxSimplifier:
![]()
Detailed DescriptionLP simplification abstract base class. Instances of classes derived from SPxSimplifier may be loaded to SoPlex in order to simplify LPs before solving them. SoPlex will call simplify() on itself. Generally any SPxLP can be given to a SPxSimplifier for simplify()ing it. The simplification cannot be undone, but given an primal/dual solution for the simplified SPxLP, the simplifier can reconstruct the primal/dual solution of the unsimplified LP. Definition at line 41 of file spxsimplifier.h. Member Enumeration Documentation
Result of the simplification. Definition at line 81 of file spxsimplifier.h. Constructor & Destructor Documentation
constructor Definition at line 95 of file spxsimplifier.h. References TimerFactory::createTimer(), and SPxSimplifier::isConsistent().
copy constructor Definition at line 115 of file spxsimplifier.h. References TimerFactory::createTimer(), and SPxSimplifier::isConsistent().
destructor. Definition at line 157 of file spxsimplifier.h. References SPxSimplifier::clone(), soplex::spx_free(), and Timer::~Timer(). Member Function Documentation
add objective offset. Definition at line 226 of file spxsimplifier.h. Referenced by SPxMainSM::FixVariablePS::FixVariablePS(), and SPxMainSM::FreeColSingletonPS::FreeColSingletonPS().
clone function for polymorphism Implemented in SPxMainSM. Referenced by SoPlexLegacy::operator=(), SoPlexLegacy::SoPlexLegacy(), and SPxSimplifier::~SPxSimplifier().
get optimal basis. Implemented in SPxMainSM. Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getBasis(), and SPxSimplifier::isUnsimplified().
gets basis status for a single column. Implemented in SPxMainSM. Referenced by SoPlexLegacy::getBasisColStatus(), and SPxSimplifier::isUnsimplified().
gets basis status for a single row. Implemented in SPxMainSM. Referenced by SoPlexLegacy::getBasisRowStatus(), and SPxSimplifier::isUnsimplified().
get name of simplifier. Definition at line 171 of file spxsimplifier.h. References SPxSimplifier::m_name. Referenced by SoPlex::getSimplifierName(), and main().
get objective offset. Definition at line 220 of file spxsimplifier.h. References SPxSimplifier::m_objoffset. Referenced by SoPlex::_preprocessAndSolveReal().
consistency check Definition at line 242 of file spxsimplifier.h. Referenced by SPxSimplifier::operator=(), and SPxSimplifier::SPxSimplifier().
specifies whether an optimal solution has already been unsimplified. Reimplemented in SPxMainSM. Definition at line 194 of file spxsimplifier.h. References SPxSimplifier::getBasis(), SPxSimplifier::getBasisColStatus(), SPxSimplifier::getBasisRowStatus(), SPxSimplifier::unsimplifiedDual(), SPxSimplifier::unsimplifiedPrimal(), SPxSimplifier::unsimplifiedRedCost(), and SPxSimplifier::unsimplifiedSlacks(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getBasis(), SoPlexLegacy::getBasisColStatus(), SoPlexLegacy::getBasisRowStatus(), SoPlexLegacy::getDual(), SoPlexLegacy::getPrimal(), SoPlexLegacy::getRedCost(), SoPlexLegacy::getSlacks(), and SoPlexLegacy::unsimplify().
assignment operator Definition at line 133 of file spxsimplifier.h. References SPxSimplifier::isConsistent(), SPxSimplifier::m_chgBnds, SPxSimplifier::m_chgLRhs, SPxSimplifier::m_keptBnds, SPxSimplifier::m_keptLRhs, SPxSimplifier::m_minReduction, SPxSimplifier::m_name, SPxSimplifier::m_objoffset, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxSimplifier::m_timerType, SPxSimplifier::m_timeUsed, and SPxSimplifier::spxout. Referenced by SPxMainSM::operator=().
returns result status of the simplification Implemented in SPxMainSM. Referenced by SPxSimplifier::unsimplify().
set minimal reduction threshold to continue simplification Definition at line 232 of file spxsimplifier.h. Referenced by SoPlex::_enableSimplifierAndScaler(). simplify SPxLP Implemented in SPxMainSM. Referenced by SoPlex::_preprocessAndSolveReal(), SoPlex::_solveRealForRational(), SoPlexLegacy::solve(), and SPxSimplifier::timeUsed().
simplify SPxLP Implemented in SPxMainSM.
Definition at line 175 of file spxsimplifier.h. References SPxSimplifier::simplify(), and Timer::time().
returns a reference to the unsimplified dual solution. Implemented in SPxMainSM. Referenced by SoPlex::_solveRealForRational(), SoPlexLegacy::getDual(), and SPxSimplifier::isUnsimplified().
returns a reference to the unsimplified primal solution. Implemented in SPxMainSM. Referenced by SoPlex::_solveRealForRational(), SoPlexLegacy::getPrimal(), and SPxSimplifier::isUnsimplified().
returns a reference to the unsimplified reduced costs. Implemented in SPxMainSM. Referenced by SoPlexLegacy::getRedCost(), and SPxSimplifier::isUnsimplified().
returns a reference to the unsimplified slack values. Implemented in SPxMainSM. Referenced by SoPlexLegacy::getSlacks(), and SPxSimplifier::isUnsimplified().
reconstructs an optimal solution for the unsimplified LP. Reimplemented in SPxMainSM. Definition at line 189 of file spxsimplifier.h. References SPxSimplifier::result(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), and SoPlexLegacy::unsimplify(). Member Data Documentation
number of changed bounds Definition at line 60 of file spxsimplifier.h. Referenced by SPxMainSM::handleExtremes(), SPxSimplifier::operator=(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyRows().
number of change right-hand sides Definition at line 62 of file spxsimplifier.h. Referenced by SPxMainSM::handleExtremes(), SPxSimplifier::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().
number of kept bounds Definition at line 64 of file spxsimplifier.h. Referenced by SPxSimplifier::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().
number of kept left- and right-hand sides Definition at line 66 of file spxsimplifier.h. Referenced by SPxSimplifier::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().
minimal reduction (sum of removed rows/cols) to continue simplification Definition at line 70 of file spxsimplifier.h. Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxSimplifier::operator=(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
name of the simplifier Definition at line 49 of file spxsimplifier.h. Referenced by SPxSimplifier::getName(), and SPxSimplifier::operator=().
objective offset Definition at line 68 of file spxsimplifier.h. Referenced by SPxSimplifier::getObjoffset(), SPxSimplifier::operator=(), and SPxMainSM::simplify().
number of removed columns Definition at line 56 of file spxsimplifier.h. Referenced by SPxMainSM::duplicateCols(), SPxSimplifier::operator=(), SPxMainSM::removeEmpty(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyDual().
number of removed nonzero coefficients Definition at line 58 of file spxsimplifier.h. Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::handleExtremes(), SPxSimplifier::operator=(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
number of removed rows Definition at line 54 of file spxsimplifier.h. Referenced by SPxMainSM::duplicateRows(), SPxMainSM::handleExtremes(), SPxSimplifier::operator=(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
Definition at line 52 of file spxsimplifier.h. Referenced by SPxSimplifier::operator=().
user time used for simplification Definition at line 51 of file spxsimplifier.h. Referenced by SPxSimplifier::operator=(), and SPxMainSM::simplify().
message handler Definition at line 72 of file spxsimplifier.h. Referenced by SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxSimplifier::operator=(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), and SPxMainSM::unsimplify(). |