19 #ifndef _SPXSIMPLIFIER_H_ 20 #define _SPXSIMPLIFIER_H_ 108 , m_minReduction(1e-4)
118 , m_timerType(old.m_timerType)
119 , m_remRows(old.m_remRows)
120 , m_remCols(old.m_remCols)
121 , m_remNzos(old.m_remNzos)
122 , m_chgBnds(old.m_chgBnds)
123 , m_chgLRhs(old.m_chgLRhs)
124 , m_keptBnds(old.m_keptBnds)
125 , m_keptLRhs(old.m_keptLRhs)
126 , m_objoffset(old.m_objoffset)
127 , m_minReduction(old.m_minReduction)
178 return m_timeUsed->
time();
189 bool keepbounds =
false, uint32_t seed = 0) = 0;
194 bool isOptimal =
true) = 0;
239 m_minReduction = minRed;
256 spxout = &newOutstream;
263 std::ostream& operator<<(std::ostream& os, const typename SPxSimplifier<R>::Result& status);
266 #endif // _SPXSIMPLIFIER_H_ int m_keptLRhs
number of kept left- and right-hand sides
Result
Result of the simplification.
Dense vector.Class VectorBase provides dense linear algebra vectors. Internally, VectorBase wraps std...
the problem was so much simplified that it vanished
int m_remNzos
number of removed nonzero coefficients
virtual const VectorBase< R > & unsimplifiedDual()=0
returns a reference to the unsimplified dual solution.
virtual ~SPxSimplifier()
destructor.
virtual void getBasis(typename SPxSolverBase< R >::VarStatus[], typename SPxSolverBase< R >::VarStatus[], const int rowsSize=-1, const int colsSize=-1) const =0
get optimal basis.
virtual void setMinReduction(const R minRed)
set minimal reduction threshold to continue simplification
virtual Result simplify(SPxLPBase< R > &lp, R eps, R delta, Real remainingTime)=0
simplify SPxLP lp with identical primal and dual feasibility tolerance.
int m_keptBnds
number of kept bounds
virtual void addObjoffset(const R val)
add objective offset.
virtual R timeUsed() const
const char * m_name
name of the simplifier
R m_objoffset
objective offset
simplification could be done
virtual SPxSimplifier * clone() const =0
clone function for polymorphism
Timer * m_timeUsed
user time used for simplification
SPxSimplifier & operator=(const SPxSimplifier &rhs)
assignment operator
virtual const char * getName() const
get name of simplifier.
virtual SPxSolverBase< R >::VarStatus getBasisRowStatus(int) const =0
gets basis status for a single row.
LP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded t...
Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth...
virtual const VectorBase< R > & unsimplifiedRedCost()=0
returns a reference to the unsimplified reduced costs.
primal infeasibility was detected
virtual Real time() const =0
static Timer * createTimer(Timer::TYPE ttype)
create timers and allocate memory for them
int m_remRows
number of removed rows
Debugging, floating point type and parameter definitions.
Everything should be within this namespace.
Saving LPs in a form suitable for SoPlex.Class SPxLPBase provides the data structures required for sa...
primal unboundedness was detected
virtual Result result() const =0
returns result status of the simplification
Saving LPs in a form suitable for SoPlex.
virtual bool isConsistent() const
consistency check
void setOutstream(SPxOut &newOutstream)
virtual SPxSolverBase< R >::VarStatus getBasisColStatus(int) const =0
gets basis status for a single column.
virtual bool isUnsimplified() const
specifies whether an optimal solution has already been unsimplified.
int m_chgBnds
number of changed bounds
SPxSimplifier(const char *p_name, Timer::TYPE ttype=Timer::USER_TIME)
constructor
virtual const VectorBase< R > & unsimplifiedSlacks()=0
returns a reference to the unsimplified slack values.
int m_remCols
number of removed columns
virtual R getObjoffset() const
get objective offset.
virtual void unsimplify(const VectorBase< R > &, const VectorBase< R > &, const VectorBase< R > &, const VectorBase< R > &, const typename SPxSolverBase< R >::VarStatus[], const typename SPxSolverBase< R >::VarStatus[], bool isOptimal=true)=0
reconstructs an optimal solution for the unsimplified LP.
SPxSimplifier(const SPxSimplifier &old)
copy constructor
SPxOut * spxout
message handler
R m_minReduction
minimal reduction (sum of removed rows/cols) to continue simplification
int m_chgLRhs
number of change right-hand sides
virtual const VectorBase< R > & unsimplifiedPrimal()=0
returns a reference to the unsimplified primal solution.
Wrapper for the system time query methods.
void spx_free(T &p)
Release memory.
dual infeasibility was detected