19 #ifndef _SOPLEXLEGACY_H_ 20 #define _SOPLEXLEGACY_H_ 109 return m_solver.
type();
114 return m_solver.
rep();
133 return m_simplifier != 0;
138 return m_postScaler != 0;
161 MSG_ERROR( std::cerr <<
"ESOLVR04 setting starting basis with presolving not yet implemented" << std::endl; )
162 throw SPxStatusException(
"XSOLVR04 setting starting basis with presolving not yet implemented");
166 for (
int i = 0; i <
nCols(); i++)
167 m_colsbasisstatus[i] = cols[i];
170 for (
int i = 0; i <
nRows(); i++)
171 m_rowsbasisstatus[i] = rows[i];
176 m_colsbasisstatus.
clear();
177 m_rowsbasisstatus.
clear();
223 return m_solver.
delta();
274 assert(idx <
nCols());
280 if (cnames->
has(key))
281 return (*cnames)[
key];
295 assert(idx <
nRows());
301 if (rnames->
has(key))
302 return (*rnames)[
key];
323 virtual void qualSlackViolation(
Real& maxviol,
Real& sumviol)
const;
325 virtual void qualRedCostViolation(
Real& maxviol,
Real& sumviol)
const;
393 const NameSet* rowNames = NULL,
const NameSet* colNames = NULL)
const;
const VectorBase< R > & rhs() const
Returns right hand side vector.
std::string statistics() const
returns statistical information in form of a string.
int iteration() const
returns number of basis changes since last load().
int getSolveCount() const
number of solves performed
SPxSolver::Status getBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) const
get current basis, and return solver status.
UpdateType
Specifies how to perform change method.
SPxRowId rId(int n) const
Returns the row identifier for row n.
void setRep(Representation p_rep)
switch to ROW or COLUMN representation if not already used.
virtual void clearBasis()
clear starting basis
THREADLOCAL const Real infinity
virtual int iteration() const
Pricing pricing() const
return current Pricing.
std::string statistics() const
returns statistical information in form of a string.
int spxSnprintf(char *t, int len, const char *s,...)
safe version of snprintf
virtual void setDelta(Real d)
set parameter delta, i.e., set feastol and opttol to same value.
virtual void setStarter(SPxStarter *starter, const bool destroy=false)
setup starting basis generator to use. If destroy is true, starter will be freed in destructor...
Real feastol() const
allowed primal feasibility tolerance.
DataKey key(int i) const
Returns DataKey of i 'th LPColBase in LPColSetBase.
virtual void setTerminationIter(int iter=-1)
set iteration limit.
void setUtype(UpdateType tp)
sets update type.
Representation
LP basis representation.
Real getFactorTime() const
time spent in factorizations
void setType(Type tp)
set LEAVE or ENTER algorithm.
SPxSolver::VarStatus getBasisRowStatus(int row) const
gets basis status for a single row.
SPxSimplifier * m_simplifier
simplifier
virtual int terminationIter() const
return iteration limit.
SPxSolver::Type type() const
return current Type.
Implementation of Sparse Linear Solver.
Abstract ratio test base class.Class SPxRatioTester is the virtual base class for computing the ratio...
virtual SPxSolver::Status getPrimal(Vector &vector) const
SoPlex start basis generation base class.SPxStarter is the virtual base class for classes generating ...
bool m_vanished
did the presolver solve the problem ?
void clear()
remove all elements.
virtual void setOpttol(Real d)
set parameter opttol.
int getFactorCount() const
number of factorizations performed
void setOpttol(Real d)
set parameter opttol.
virtual void setTester(SPxRatioTester *tester, const bool destroy=false)
setup ratio-tester to use.
Real terminationValue() const
return objective limit.
virtual void setTerminationTime(Real time=infinity)
set time limit.
SPxSolver::Representation rep() const
return current basis representation.
virtual void setBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[])
SPxColId cId(int n) const
Returns the column identifier for column n.
LP simplification base class.
Entry identifier class for items of a DataSet.Every item in a DataSet is assigned a DataKey by which ...
int nRows() const
Returns number of rows in LP.
virtual int getFactorCount() const
number of factorizations performed
virtual void setFeastol(Real d)
set parameter feastol.
virtual Real delta() const
guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a...
bool has_simplifier() const
has a simplifier been set?
declaration of types for file output
virtual void setPostScaler(SPxScaler *scaler, const bool destroy=false)
setup postscaler to use. If destroy is true, scaler will be freed in destructor.
SoPlexLegacy(SPxOut &outstream, SPxSolver::Type type=SPxSolver::LEAVE, SPxSolver::Representation rep=SPxSolver::COLUMN)
default construtor.
SoPlexLegacy & operator=(const SoPlexLegacy &rhs)
assignment operator.
Status status() const
Status of solution process.
const char * getColName(int idx, const NameSet *cnames, char *buf)
virtual void setType(SPxSolver::Type tp)
set LEAVE or ENTER algorithm.
LP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded t...
LP has been solved to optimality.
virtual bool writeState(const char *filename, const NameSet *rowNames=NULL, const NameSet *colNames=NULL) const
virtual void setPricer(SPxPricer *pricer, const bool destroy=false)
setup pricer to use. If destroy is true, pricer will be freed in destructor.
#define MSG_ERROR(x)
Prints out message x if the verbosity level is at least SPxOut::ERROR.
virtual Real terminationTime() const
return time limit.
Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth...
virtual SPxSolver::Status getPrimalray(Vector &vector) const
Real delta() const
guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a...
virtual bool writeBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames)
Abstract pricer base class.Class SPxPricer is a pure virtual class defining the interface for pricer ...
virtual void setPricer(SPxPricer *pricer, const bool destroy=false)
setup pricer to use.
virtual bool readBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames)
virtual SPxSolver::Status getSlacks(Vector &vector) const
virtual void setTerminationTime(Real time=infinity)
set time limit.
const char * getRowName(int idx, const NameSet *rnames, char *buf)
bool m_freePostScaler
true iff m_postScaler should be freed inside of this object
virtual SPxSolver::Status status() const
returns the current status
SPxSolver::VarStatus getBasisColStatus(int col) const
gets basis status for a single column.
virtual void setRep(SPxSolver::Representation p_rep)
set ROW or COLUMN representation.
bool has_postscaler() const
has a postscaler been set?
Bound flipping ratio test (long step dual) for SoPlex.
Preconfigured SoPlexLegacy LP-solver.
Set of strings.Class NameSet implements a symbol or name table. It allows to store or remove names (i...
virtual void setPricing(SPxSolver::Pricing pr)
set FULL or PARTIAL pricing.
Sequential object-oriented SimPlex.SPxSolver is an LP solver class using the revised Simplex algorith...
virtual void setTerminationIter(int iteration=-1)
set iteration limit.
Implementation of Sparse Linear Solver.This class implements a SLinSolver interface by using the spar...
Everything should be within this namespace.
virtual Real opttol() const
allowed optimality, i.e., dual feasibility tolerance.
virtual bool terminate()
Termination criterion.
virtual void setTester(SPxRatioTester *tester, const bool destroy=false)
setup ratio-tester to use. If destroy is true, tester will be freed in destructor.
virtual Real objValue() const
DataArray< SPxSolver::VarStatus > m_rowsbasisstatus
virtual Real getFactorTime() const
time spent in factorizations
SPxScaler * m_postScaler
post-scaler
virtual Real getSolveTime() const
time spent in solves
Real terminationTime() const
return time limit.
LP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in ...
virtual Real terminationValue() const
return objective limit.
void unsimplify() const
undoes preprocessing such that the unsimplified solution values and basis is available ...
virtual SPxSolver::Status getDual(Vector &vector) const
virtual SPxSolver::Status getDualfarkas(Vector &vector) const
Type type() const
return current Type.
SLUFactor m_slu
LU Factorisation.
virtual SPxSolver::Status getRedCost(Vector &vector) const
Real getSolveTime() const
time spent in solves
bool m_freeSimplifier
true iff m_simplifier should be freed inside of this object
DataArray< SPxSolver::VarStatus > m_colsbasisstatus
virtual void setUtype(SLUFactor::UpdateType tp)
message handler
virtual void setStarter(SPxStarter *starter, const bool destroy=false)
setup starting basis generator to use.
int nCols() const
Returns number of columns in LP.
Exception class for status exceptions during the computationsThis class is derived from the SoPlex ex...
void setFeastol(Real d)
set parameter feastol.
Real opttol() const
allowed optimality, i.e., dual feasibility tolerance.
virtual int getSolveCount() const
number of solves performed
virtual void setTerminationValue(Real value=infinity)
set objective limit.
virtual void qualBoundViolation(Real &maxviol, Real &sumviol) const
get violations of bounds.
const SPxBasis & basis() const
Return current basis.
virtual SPxSolver::Status solve()
virtual void reLoad()
reload LP.
void reSize(int newsize)
reset size to newsize.
Representation rep() const
return the current basis representation.
columnwise representation.
SPxSolver::Pricing pricing() const
return current Pricing.
virtual void qualConstraintViolation(Real &maxviol, Real &sumviol) const
get violation of constraints.
bool has(int pnum) const
does NameSet has a name with number pnum?
virtual void setSimplifier(SPxSimplifier *simpli, const bool destroy=false)
setup simplifier to use. If destroy is true, simpli will be freed in destructor.
virtual void setTerminationValue(Real val=infinity)
set objective limit.
int terminationIter() const
return iteration limit.
void setPricing(Pricing pr)
set FULL or PARTIAL pricing.
void setDelta(Real d)
set parameter delta, i.e., set feastol and opttol to same value.
virtual Real feastol() const
allowed primal feasibility tolerance.